すべてのプログラムは、実行したいプロセスを完了するためにシェルを通過する必要がありますか?

すべてのプログラムは、実行したいプロセスを完了するためにシェルを通過する必要がありますか?

「bash は Linux カーネルとの通信に使用される」とどこかで見たことがあります。

これは端末にのみ適用されますか? それとも、すべてのプログラム (GUI を持つプログラムを含む) は、実行したいプロセスを完了するためにシェルを通過する必要がありますか?

(写真に色を付けることを考えてみましょう。bash はどのようにして私たちが何をしているのかを知るのでしょうか? gimp と bash の間に、それらを bash に変換するサードパーティが存在するのでしょうか?)

例を挙げて説明していただけると本当に助かります :)

答え1

いいえ。ユーザーだけがシェルを介してカーネルと通信する必要があります。アプリケーションはAPIについて

たとえば、ファイルを削除したい場合は、いずれかのシェルを使用してから、アプリケーションを使用してファイルを削除する必要があります。

  1. などのコマンドライン インターフェイス (CLI) シェルを使用すると、コマンドを使用してファイルを削除bashできます。rm
  2. GUI シェル (Unity や GNOME Shell など) を使用すると、ファイル マネージャーなどの他のものを使用してファイルを削除できます。GUI シェルでは、CLI シェルを使用する必要はありません。

ファイルマネージャと(またはrmよりunlink(3)高レベルのremove(3))機能(またはシステムコール)が実際の作業を行います。

関連情報