sucklessを使用した実際の「sinit」初期化[閉じる]

sucklessを使用した実際の「sinit」初期化[閉じる]

設定しようとしています。サインLinuxへinit(PCから..)。今私の目標は、tty/bashそのうちの1つを実行することです。カーネルはroot=/dev/sda2すでにcmdline

sinitバイナリファイルがありますが、/sbin/init次に何をすべきかわかりません。いくつかのスクリプトを適切な場所に配置する必要があることを知っていますが、sinitスクリプトを実行する方法やbash

ベストアンサー1

含まれているsinit.8のマニュアルページとreadmeファイルは私にとって非常に役立ちます。しかし、ソースコードを見ると、簡単な概要をお知らせします。

  • /sbin/initpid 1でカーネルによって起動されるsinitデフォルトの実行可能ファイル
  • /bin/rc.initスクリプトを別のサブプロセスとして実行するための初期環境を準備します。
  • /bin/rc.init別々のプロセスで実行されるため、その/bin/rc.init時点以降にシステムを初期化するコマンドが含まれています。
  • 無限ループに陥り、ゾンビプロセスを捕捉し、終了コードをどこにも読みません。
  • 無限ループにあるときに信号によって中断される可能性があります。受信する信号がSIGUSR1とSIGINTであることを定義します。 SIGUSR1 は init が/bin/rc.shutdownスクリプト名で実行されることを強制しpoweroff、SIGINT は init がreboot名前で同じスクリプトを実行するように強制し、スクリプト内の動作モードを区別します。これら2つの信号はinitが聞く信号です。含むSIGKILLとSIGSTOPを無視します。そしてスーパーユーザーだけがinitに信号を送ることができます。 SIGINTはCtrl-Alt-Deleteを押すとカーネルによって生成されますが、そのようにマークされている場合にのみ生成されます(initプロセスは通常CADでSIGINT転送を有効にするために特別なシステムコールを実行します)。

だから、しかも、sinit使用不可:

  • 初期化スクリプト
  • 制御モード(実行レベルなど)、2つの単純なコマンドのみ

しかし、sinitは素晴らしいとかわいい小さなinitです。現代のデスクトップ環境の手間をかけずに、単純なデスクトップシステムだけでなく、組み込みシステムでもうまく機能すると確信しています。

おすすめ記事