Linuxカーネルについて
Unixはプリエンプティブプロセスを備えたマルチプロセッシングオペレーティングシステムです。複数のシステムプロセスは、ログインしているユーザーがなく、実行中のアプリケーションがない場合でも周辺機器を監視します。特に、システム端末でユーザがログインするのを待ついくつかのプロセスがある。ユーザーがログイン名を入力するとリスニングプロセスは、ユーザーのパスワードを確認するプログラムを実行します。ユーザーのアイデンティティが確認されると、プロセスはコマンドが入力されるシェルを実行する別のプロセスを作成します。 グラフィック表示が有効な場合、1つのプロセスがウィンドウマネージャを実行し、ディスプレイの各ウィンドウは通常別々のプロセスによって実行されます。ユーザーがグラフィックシェルを作成するとき、1つのプロセスがグラフィックウィンドウを実行し、2つ目のプロセスが実行される。シェルユーザーはここにコマンドを入力できます。各ユーザーコマンドに対して、シェルプロセスは、そのプログラムを実行する別のプロセスを生成します。
ここで「グラフィックシェル」とはどういう意味ですか?
GNOMEシェルはグラフィックシェルですか?
私の以前の問題ですか?「グラフィカルシェル」は、「ウィンドウシステム、ウィンドウマネージャ、デスクトップ環境」の階層でどこに適していますか? ここにあるものと関係がありますか?質問にリンクしましたhttps://en.wikipedia.org/wiki/Shell_(コンピューティング)#GUIすなわち
グラフィックシェルウィンドウを開く、閉じる、移動、サイズ変更、ウィンドウ間でフォーカスを切り替えるなどの操作が可能なグラフィカルユーザーインターフェイス(GUI)ベースのプログラム運用方法を提供します。グラフィックシェルは、デスクトップ環境に含まれているか、別々に提供されているか、または緩く結合されたユーティリティのセットとして提供することもできます。
最後の「シェル」は「グラフィックシェル」を意味しますか?ターミナルエミュレータで実行されるコマンドラインシェルですか?
答え1
この用語は、graphics shell
グラフィックシェルまたはその下で実行されるコマンドラインシェルを指すことがあります。つまり、GUI(グラフィックユーザーインターフェイス)またはGUI機能を制御するコマンドラインを意味します。
まず、シェルから始めましょう。 「シェル」という単語の定義は、オペレーティングシステムとハードウェアを制御するプログラムまたはプログラムのグループを意味します。シェルは実際にコンピュータを直接制御できるソフトウェアです。
グラフィックシェルは、出力をプレーンテキストの代わりに2Dまたは3Dグラフィックにレンダリングするシェルです。つまり、ウィンドウ、メニューなどを含むグラフィカルユーザーインターフェース(GUI)は、ターミナルインターフェースによって提供されるプレーンテキストよりもユーザーとシステム間のより柔軟な対話を提供します。
しかし、GUIのコアはシェルで構築されているため、すべての機能をコマンドラインで制御できます。。たとえば、次のコマンドはGNOMEシェルGNOME デスクトップ用のグラフィックシェルです。このコマンドは、GNOMEデスクトップのコアユーザーインターフェース機能を提供し、コマンドラインを介して調整できます。もう1つの例は、Gnomeのファイルエクスプローラの基本的なGUIインタフェースであるNautilusです。これはコマンドラインとして使用でき、呼び出されます。ノーチラス。コマンドラインには次の機能があります。
$ nautilus --help
Usage:
nautilus [OPTION...] [URI...]
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gapplication Show GApplication options
--help-gtk Show GTK+ Options
Application Options:
-c, --check Perform a quick set of self-check tests.
--version Show the version of the program.
-w, --new-window Always open a new window for browsing specified URIs
-n, --no-default-window Only create windows for explicitly specified URIs.
-q, --quit Quit Nautilus.
-s, --select Select specified URI in parent folder.
--display=DISPLAY X display to use
これは、コマンドラインからGUI機能を制御できることを意味します。
Linuxでは、グラフィカルシェルは通常、複数層のソフトウェアで構成されています。オペレーティングシステムは、グラフィックドライバ、キーボード、およびマウスドライバを提供する必要があります。その後、ドライバの上にX11やWaylandなどのWindowsシステムがあります。ディスプレイドライバに転送された2D画像を格納するメモリを管理するために、入力の周りに高レベルのラッパー(キーボードレイアウトを提供するなど)を作成し、アプリケーションにこれらの2D画像をメモリに描画する機能を提供します。
ウィンドウシステムの上にはウィンドウマネージャがあり、これはアプリケーションがキーボードとマウスイベントをシステムコールに変換してアプリケーションが描画するウィンドウを操作する方法です。これには、アプリケーションの起動、一時停止、非表示、表示と閉じ、アプリケーションエラーの検出、エラー後のクリーンアップなどの操作が含まれます。
Unity、Gnome Shell、Xfwm、OpenBox、i3、Xmonadなどを含む、広く使用されている数十のウィンドウマネージャがあります。
アプリケーションは必要に応じてグラフィックを描画できますが、アプリケーション開発者は、アプリケーションがシステム上で実行されている他のすべてのアプリケーションと一貫して見えるように、共通の描画ツールセットを使用することを好むことがよくあります。これはアプリケーションにインポートするソフトウェアライブラリです。その後、その関数を呼び出してメニュー、ボタン、テキスト入力、PNG、JPGなどの画像を表示できます。
これらの一般的な描画ツールは「ウィジェットキット」と呼ばれます。 Linuxで最も人気のある2つのウィジェットツールキットはGtk +とQtです。 Gtk+とQtを同時に使用することができます。これは、多くの場合、Linux上の複数のアプリケーションが外観と感覚を一貫していない理由です。
これらの層はLinuxソフトウェアエコシステムにのみ適用されます。 Mac OS、Windows、Androidはすべて異なるアプローチをとりますが、各レイヤーを単一のグラフィックシェルソフトウェアに統合する傾向があります。これは作業を簡素化しますが、多くのカスタマイズを防ぎます。
Linuxが状況を複雑にする理由は、人々が選択肢を好み、シェルをカスタマイズしたいからです。独自のLinuxディストリビューションを管理する場合は、デフォルトのアプリケーションセットを選択して、すべて同じウィジェットツールキットを使用し、一貫した外観と感触を提供するように努力することをお勧めします。
グラフィックシェルの上に、ファイルシステムブラウザ、アプリケーションランチャー、通知およびシステムステータスアプリケーション、システム構成(「コントロールパネル」)アプリケーションなどのグラフィックアプリケーションを構築できます。これらのアプリケーションは、一緒に「デスクトップ環境」と呼ばれる環境を構成します。