どのプロセスがこれらのマッピングを担当しているかを理解するためにソースコードを読みましたが、まだわかりません。誰でもこれに関連するコードを教えてもらえますか?
ソースコード: agetty+login(util-linux プロジェクト)、 システム
ベストアンサー1
このマッピングを担当するプロセスはありません。これはカーネルの一部であるデバイスドライバ機能であり、ctrl-cデフォルトは .
ctrl-ctty(またはpty)デバイスにマッピングされ、SIGINT
端末を制御するフォアグラウンドプロセスに送信されます。
Systemdはagettyをttyデバイスに接続して起動し、agettyはttyデバイスを初期化し(styまたはtcsetattrのシステムコールバージョンを使用して)入力を待ってから、最終的にログインを実行します。
たとえば、tcsetattrを使用している場合は、c_cc
ttyがアクション(行の編集やシグナルなどを含む)にマッピングする特殊文字配列とデフォルト値をVINTR
含むttyにtermios構造を適用します。ctrl-ctty がこれらの文字を解釈できるようにします。
しばらくすると、アプリケーション(bash、vim、emacsなど)もtermiosを操作し、モードビットを変更して行編集文字を無効にしたり(エミュレート)、文字通り読み込んで使用できるように一部または全部の中断文字を無効にすることができます。 。アプリケーションのニーズに応じて。