RAMで実行するプログラムを起動する人は誰ですか?カーネルですか?
Linuxで「ls」コマンドを実行したとします。 CPUコアによって処理され、必要に応じてシステムコール(カーネル用)を作成し、システムコールを使用してo / pをフラッシュするRAMで実行されていることがわかります。しかし、実際に誰がRAMで "ls"を実行することを許可しますか?
ベストアンサー1
ls
端末に入力すると、その端末で実行されているシェル(bashやzshなど)は、カーネルにプロセスをフォークするように指示するシステムコールを呼び出します。その後、カーネルにシステムコールを使用して、新しいプロセスのプロセスイメージをls
プログラムに置き換えるように指示しますexecve
。これにより、ls
プログラムコードがディスクからメモリにロードされます。
したがって、どのプログラムにプログラムを実行させるかを言及する場合、これはシェルです。