Linux は 4 つの部分に分けることができます。 1. カーネル。コンピュータ システム上のすべてのハードウェアとソフトウェアを制御し、主にシステム メモリ管理、ソフトウェア プログラム管理、ハードウェア デバイス管理、およびファイル システム管理を担当します。 2. GNU ツール、シェルなどのカーネル制御のハードウェア デバイス以外に必要なツール、3. KDE などのデスクトップ環境、4. アプリケーション ソフトウェア。
#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。
Linux は、無料のオープンソースの UNIX に似たオペレーティング システムです。これは主に Minix と Unix のアイデアからインスピレーションを受けており、POSIX ベースのマルチユーザー、マルチタスク、マルチスレッド、およびマルチ CPU オペレーティング システムです。 Linux は次の 4 つの部分に分けることができます。
下の図は基本的な構造ブロック図で、各部分がどのように連携して完全な Linux システムを形成するかを示しています。
Linux システムの中核はカーネルです。カーネルは、コンピュータ システム上のすべてのハードウェアとソフトウェアを制御します。カーネルは主に次の 4 つの機能を担当します。
1.1 システム メモリ管理
オペレーティング システム カーネルの主な機能の 1 つはメモリ管理です。カーネルは、サーバー上で使用可能な物理メモリを管理するだけでなく、仮想メモリ (つまり、実際には存在しないメモリ) を作成および管理することもできます。カーネルは、ハードディスク上の記憶領域 (スワップ領域と呼ばれます) を通じて仮想メモリを実装します。カーネルは、スワップ領域と実際の物理メモリの間で仮想メモリの内容を常にスワップしています。これにより、システムは物理メモリよりも多くのメモリが利用可能であると認識します。
メモリ記憶ユニットはグループに従って多数のブロックに分割されており、これらのブロックはページと呼ばれます。カーネルは、各メモリ ページを物理メモリまたはスワップ領域に配置します。次に、カーネルはメモリ ページ テーブルを維持し、どのページが物理メモリに配置され、どのページがディスクにスワップされたかを示します。
カーネルは、使用中のメモリ ページを記録し、使用可能なメモリがまだある場合でも、一定期間アクセスされていないメモリ ページをスワップ スペース領域に自動的にコピーします (スワップ アウトと呼ばれます)。 。プログラムがスワップアウトされたメモリ ページにアクセスしたい場合、カーネルは物理メモリから別のメモリ ページをスワップアウトしてスペースを確保し、要求されたメモリ ページをスワップ スペースからスワップインする必要があります。明らかに、このプロセスには時間がかかり、実行中のプロセスが遅くなります。 Linux システムが実行されている限り、実行中のプログラムのメモリ ページをスワップアウトするプロセスは決して停止しません。
1.2 ソフトウェア プログラム管理
Linux オペレーティング システムでは、実行中のプログラムをプロセスと呼びます。カーネルは、システム上の他のすべてのプロセスを開始するための最初のプロセス (init プロセスと呼ばれる) を作成します。カーネルが起動すると、init プロセスが仮想メモリにロードされます。カーネルは他のプロセスを開始するときに、仮想メモリ内のプライベート領域を新しいプロセスに割り当て、プロセスで使用されるデータとコードを保存します。
Linux オペレーティング システムの init システムは、実行レベルを採用しています。実行レベルは、init プロセスが /etc/inittab ファイルまたは
/etc/rcX.d ディレクトリに定義されている特定のタイプのプロセスを実行するかどうかを決定します。 Linux オペレーティング システムには 5 つの起動実行レベルがあります。
実行レベルが 1 の場合、基本的なシステム プロセスとコンソール ターミナル プロセスのみが開始されます。これをシングルユーザーモードと呼びます。シングルユーザー モードは通常、システムに問題が発生した場合の緊急のファイル システム メンテナンスに使用されます。明らかに、このモードでは、システムにログインしてデータを操作できるのは 1 人 (通常はシステム管理者) だけです。
標準の起動実行レベルは 3 です。この実行レベルでは、ネットワーク サポート プログラムなどのほとんどのアプリケーション ソフトウェアが起動します。 Linux のもう 1 つの一般的なランレベルは 5 です。この実行レベルでは、システムはグラフィカル X Window システムを起動し、ユーザーがグラフィカル デスクトップ ウィンドウからシステムにログインできるようにします。
Linux システムは、起動時の実行レベルを調整することでシステム全体の機能を制御できます。実行レベルを 3 から 5 に調整することで、システムをコンソールベースのシステムからより高度なグラフィカル X Window システムに変更できます。
1.3 ハードウェア デバイスの管理
カーネルのもう 1 つの役割は、ハードウェア デバイスの管理です。 Linux システムが通信する必要があるデバイスはすべて、そのドライバー コードをカーネル コードに含める必要があります。ドライバー コードはアプリケーションとハードウェア デバイスの間の仲介者として機能し、カーネルとデバイスの間でデータを交換できるようにします。 Linux カーネルにデバイス ドライバー コードを挿入するには、次の 2 つの方法があります。
Linux システムは、ハードウェア デバイスをデバイス ファイルと呼ばれる特別なファイルとして扱います。デバイス ファイルには 3 つのカテゴリがあります:
1.4 ファイル システム管理
Linux カーネルは、さまざまな種類のファイル システムを介したハードディスクからのデータの読み取りおよび書き込みをサポートします。表 1-1 に、Linux システムがデータの読み取りと書き込みに使用する標準ファイル システムを示します。
カーネルによるハードウェア デバイスの制御に加えて、オペレーティング システムには、いくつかの標準機能を実行するためのツールも必要です。制御ファイルやプロシージャなど。 Linux システム用のこのコア ツール セットは、coreutils (コア ユーティリティ) パッケージと呼ばれます。 GNU coreutils ソフトウェア パッケージは 3 つの部分で構成されています。
#2.1 シェル##GNU/Linux シェルは特別な対話型ツールです。これは、プログラムを起動し、ファイル システム内のファイルを管理し、Linux システム上で実行されているプロセスを管理する方法をユーザーに提供します。シェルの中核はコマンド ライン プロンプトです。コマンド ライン プロンプトはシェルの対話部分です。これにより、テキスト コマンドを入力し、そのコマンドを解釈してカーネル内で実行できるようになります。複数のシェル コマンドを 1 つのファイルに記述し、プログラムとして実行することもできます。これらのファイルはシェル スクリプトと呼ばれます。
Linux システムでは、通常、複数の Linux シェルが利用可能です。シェルごとに異なる機能があり、スクリプトの作成に適したシェルもあれば、プロセスの管理に適したシェルもあります。すべての Linux ディストリビューションのデフォルトのシェルは bash シェルです。 bash シェルは GNU プロジェクトによって開発され、標準の Unix シェルとみなされます。
2.1.1 シェルの種類どのような種類のシェル プログラムが起動されるかシステムは個人のユーザー ID 構成に応じて異なります。 /etc/passwd ファイルでは、デフォルトのシェル プログラムがユーザー ID レコードの 7 番目のフィールドにリストされています。ユーザーが仮想コンソール端末にログインするか、GUI で端末エミュレータを起動するとすぐに、デフォルトのシェル プログラムが実行を開始します。例: ユーザー root は、デフォルトのシェル プログラムとして /bin/bash (bash シェル) を使用します。
[root@node1 bin]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
しかし、別のデフォルト シェルとして /bin/sh があり、これらのシェルはデフォルトのシステム シェルとして使用されます。起動時に使用する必要があるシステムシェルスクリプト。 CentOS ディストリビューションなど、ソフト リンクを使用してデフォルトのシステム シェルを bash シェルに設定するディストリビューションがよく見られます。
$ ls -l /bin/shlrwxrwxrwx. 1 root root 4 Mar 18 15:05 /bin/sh -> bash
は、仮想コントローラ端末にログインするとき、または GUI で端末エミュレータを実行するときに開始されるデフォルトの対話型シェルです。親シェル。
CLI プロンプトの後に /bin/bash コマンドまたは他の同等の bash コマンドを入力すると、新しいシェル プログラムが作成されます。このシェルプログラムを子シェルと呼びます。サブシェルには CLI プロンプトもあり、コマンド入力を待ちます。 例: ps -f を使用します
[root@node1 bin]# ps -fUID PID PPID C STIME TTY TIME CMD root 727 711 0 11:01 pts/0 00:00:00 -bash root 4385 727 0 12:06 pts/0 00:00:00 ps -f
[root@node1 bin]# bash[root@node1 bin]# ps -fUID PID PPID C STIME TTY TIME CMD root 727 711 0 11:01 pts/0 00:00:00 -bash root 4492 727 0 12:08 pts/0 00:00:00 bashroot 4512 4492 0 12:08 pts/0 00:00:00 ps -f
コマンド bash を入力すると、サブシェルが表示されます。 2 番目の ps -f はサブシェルで実行されます。表示された結果から、2 つの bash シェル プログラムが実行されていることがわかります。親シェル プロセスである最初の bash シェル プログラムの元のプロセス ID は 727 です。 2 番目の bash シェル プログラム、サブシェル プロセスの PID は 4492 です。サブシェルの親プロセス ID (PPID) は 727 であり、この親シェル プロセスがサブシェルの親プロセスであることを示していることに注意してください。サブシェル プロセスが生成されると、親プロセスの環境の一部だけがサブシェル環境にコピーされます。
3.Linux デスクトップ環境 (K デスクトップ環境、K デスクトップ環境) は、当初、オープンソース プロジェクトとしてリリースされました。 1996年。 Microsoft Windows に似たグラフィカル デスクトップ環境を生成します。
KDE デスクトップを使用すると、デスクトップ上の特定の場所にアプリケーション アイコンとファイル アイコンを配置できます。アプリケーション アイコンをクリックすると、Linux システムがアプリケーションを実行します。ファイル アイコンをクリックすると、KDE デスクトップがファイルの処理に使用するアプリケーションを決定します。
(GNU ネットワーク オブジェクト モデル環境、GNU ネットワーク オブジェクト モデル環境) は、もう 1 つの人気のある Linux デスクトップ環境です。 GNOME は 1999 年に初めてリリースされ、多くの Linux ディストリビューションのデフォルトのデスクトップ環境になりました。
3.Unity デスクトップ Ubuntu Linux ディストリビューションを使用している場合は、KDE や GNOME とは多少異なることに気づくでしょう。デスクトップ環境は同じではありません。正確に言えば、Ubuntuの開発を担当する会社がUnityと呼ばれる独自のLinuxデスクトップ環境を採用することを決定したためです。 Unity Desktop の名前は、ワークステーション、タブレット、モバイル デバイスに一貫したデスクトップ エクスペリエンスを提供するというプロジェクトの目標に由来しています。 Ubuntu をワークステーションで使用している場合でも、携帯電話で使用している場合でも、Unity デスクトップは同じように機能します。 関連する推奨事項: 「Linux ビデオ チュートリアル 」
以上がLinux はどの部分に分割できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。