go-signal - 背景

歴史的経緯

UNIX シグナルの起源

1970年代、UNIX の開発者たちはプロセス間で非同期に情報を伝える仕組みが必要でした。これがシグナルの起源です。

初期のシグナルは単純な通知(割り込み、終了など)でしたが、POSIX で標準化され、ユーザー定義シグナル(SIGUSR1, SIGUSR2)も追加されました。

シリアル通信

シグナルによる1ビットずつの通信は、歴史的なシリアル通信(RS-232など)に似ています。モールス信号も同様の概念です。

コンピュータサイエンス的な意味

シグナルの種類

シグナル 番号 説明
SIGINT 2 割り込み(Ctrl+C)
SIGKILL 9 強制終了
SIGUSR1 30 ユーザー定義1
SIGUSR2 31 ユーザー定義2

ビット通信のプロトコル

文字 'A' (65 = 0b01000001) の送信:
時刻: t0  t1  t2  t3  t4  t5  t6  t7
ビット: 0   1   0   0   0   0   0   1
シグナル: U1  U2  U1  U1  U1  U1  U1  U2

実践での活用

  • デーモンプロセスの制御
  • ログローテーション通知
  • グレースフルシャットダウン