システムコールを行わないシェルコマンドを探すように言われました。私は多くのことを検索し、最終的にここで、バックエンドでシステムコールを呼び出さないLinuxシェルまたはUNIXにコマンドがあるかどうかを尋ねました。
ありがとう。
システムコールを行わないシェルコマンドを探すように言われました。私は多くのことを検索し、最終的にここで、バックエンドでシステムコールを呼び出さないLinuxシェルまたはUNIXにコマンドがあるかどうかを尋ねました。
ありがとう。
はいの部分...
シェルのマクロプロセッサプログラミング言語の制御フローまたは定義を処理するシェルビルトインがいくつかあります。
本質的にシステムコールを行う必要があるビルトインはごくわずかです。一般に、シェルのメモリイメージ内で状態を変更するだけです。
ノーパート..。_ _
実際には、多数のシステムコールを実行せずに、シェルでEnterと入力することさえできません。シェルは、子が終了したかどうかを確認するためにwait(2)する場合があり、時間をチェックする場合があり、通常はプロンプトを出力します...そしてもちろん次のコマンドを読み取ります。
シェルとは何か、コマンドをどのように実行するかを考えてください。
シェルはインタプリタです。大まかに言えば、単一のインタプリタループがあります
do {
get_next_command();
switch(next_command){
cmd_alias: ...
cmd_break: ...
...
}
} while (true);
ここで、どのコマンドがシェルプロセスの内部構造を更新するだけで、どのコマンドがその機能を実行するためにオペレーティングシステムを呼び出す必要があるかを考えてみてください。