ホームページ  >  記事  >  運用・保守  >  Linux はどの部分に分割できますか?

Linux はどの部分に分割できますか?

青灯夜游
青灯夜游オリジナル
2022-05-12 19:29:2111293ブラウズ

Linux は 4 つの部分に分けることができます。 1. カーネル。コンピュータ システム上のすべてのハードウェアとソフトウェアを制御し、主にシステム メモリ管理、ソフトウェア プログラム管理、ハードウェア デバイス管理、およびファイル システム管理を担当します。 2. GNU ツール、シェルなどのカーネル制御のハードウェア デバイス以外に必要なツール、3. KDE などのデスクトップ環境、4. アプリケーション ソフトウェア。

Linux はどの部分に分割できますか?

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

Linux は、無料のオープンソースの UNIX に似たオペレーティング システムです。これは主に Minix と Unix のアイデアからインスピレーションを受けており、POSIX ベースのマルチユーザー、マルチタスク、マルチスレッド、およびマルチ CPU オペレーティング システムです。 Linux は次の 4 つの部分に分けることができます。

  • Linux カーネル
  • GNU ツール
  • グラフィカル デスクトップ環境
  • アプリケーション ソフトウェア

下の図は基本的な構造ブロック図で、各部分がどのように連携して完全な Linux システムを形成するかを示しています。
Linux はどの部分に分割できますか?

1.Linux カーネル

Linux システムの中核はカーネルです。カーネルは、コンピュータ システム上のすべてのハードウェアとソフトウェアを制御します。カーネルは主に次の 4 つの機能を担当します。

  • システム メモリ管理
  • ソフトウェア プログラム管理
  • ハードウェア デバイス管理
  • ファイル システム管理

1.1 システム メモリ管理

オペレーティング システム カーネルの主な機能の 1 つはメモリ管理です。カーネルは、サーバー上で使用可能な物理メモリを管理するだけでなく、仮想メモリ (つまり、実際には存在しないメモリ) を作成および管理することもできます。カーネルは、ハードディスク上の記憶領域 (スワップ領域と呼ばれます) を通じて仮想メモリを実装します。カーネルは、スワップ領域と実際の物理メモリの間で仮想メモリの内容を常にスワップしています。これにより、システムは物理メモリよりも多くのメモリが利用可能であると認識します。
Linux はどの部分に分割できますか?

メモリ記憶ユニットはグループに従って多数のブロックに分割されており、これらのブロックはページと呼ばれます。カーネルは、各メモリ ページを物理メモリまたはスワップ領域に配置します。次に、カーネルはメモリ ページ テーブルを維持し、どのページが物理メモリに配置され、どのページがディスクにスワップされたかを示します。

カーネルは、使用中のメモリ ページを記録し、使用可能なメモリがまだある場合でも、一定期間アクセスされていないメモリ ページをスワップ スペース領域に自動的にコピーします (スワップ アウトと呼ばれます)。 。プログラムがスワップアウトされたメモリ ページにアクセスしたい場合、カーネルは物理メモリから別のメモリ ページをスワップアウトしてスペースを確保し、要求されたメモリ ページをスワップ スペースからスワップインする必要があります。明らかに、このプロセスには時間がかかり、実行中のプロセスが遅くなります。 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 文字のみを処理できるデバイスを指します。ほとんどのタイプのモデムと端末は、キャラクタ デバイス ファイルとして作成されます。
  • ブロック デバイス ファイル: ハードディスクなど、一度に大量のデータを処理できるデバイスを指します。
  • ネットワーク デバイス ファイル: さまざまなネットワーク カードや特殊なループバック デバイスなど、データ パケットを使用してデータを送受信するデバイスを指します。

1.4 ファイル システム管理
Linux カーネルは、さまざまな種類のファイル システムを介したハードディスクからのデータの読み取りおよび書き込みをサポートします。表 1-1 に、Linux システムがデータの読み取りと書き込みに使用する標準ファイル システムを示します。
Linux はどの部分に分割できますか?

2.GUN ツール

カーネルによるハードウェア デバイスの制御に加えて、オペレーティング システムには、いくつかの標準機能を実行するためのツールも必要です。制御ファイルやプロシージャなど。 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/sh

lrwxrwxrwx. 1 root root 4 Mar 18 15:05 /bin/sh -> bash

/bin/sh と同等 /bin の場合/bash --posix、sh を使用してスクリプトを呼び出して実行することは、bash の POSIX 標準モードをオンにすることと同じです。これらの違いはすべて、POSIX 標準モードと bash の違いに由来します。

2.1.2 シェルの親子関係

は、仮想コントローラ端末にログインするとき、または 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

ps -f を使用すると、2 つのプロセスが表示されます。プロセスの 1 つのプロセス ID は 727 で、bash シェル プログラムを実行しています。別のプロセスのプロセス ID は 4385 で、これはコマンド 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 デスクトップ環境

1.KDE

(K デスクトップ環境、K デスクトップ環境) は、当初、オープンソース プロジェクトとしてリリースされました。 1996年。 Microsoft Windows に似たグラフィカル デスクトップ環境を生成します。
KDE デスクトップを使用すると、デスクトップ上の特定の場所にアプリケーション アイコンとファイル アイコンを配置できます。アプリケーション アイコンをクリックすると、Linux システムがアプリケーションを実行します。ファイル アイコンをクリックすると、KDE ​​デスクトップがファイルの処理に使用するアプリケーションを決定します。 Linux はどの部分に分割できますか?

2.GNOME

(GNU ネットワーク オブジェクト モデル環境、GNU ネットワーク オブジェクト モデル環境) は、もう 1 つの人気のある Linux デスクトップ環境です。 GNOME は 1999 年に初めてリリースされ、多くの Linux ディストリビューションのデフォルトのデスクトップ環境になりました。

Linux はどの部分に分割できますか?

3.Unity デスクトップ

Ubuntu Linux ディストリビューションを使用している場合は、KDE ​​や GNOME とは多少異なることに気づくでしょう。デスクトップ環境は同じではありません。正確に言えば、Ubuntuの開発を担当する会社がUnityと呼ばれる独自のLinuxデスクトップ環境を採用することを決定したためです。

Unity Desktop の名前は、ワークステーション、タブレット、モバイル デバイスに一貫したデスクトップ エクスペリエンスを提供するというプロジェクトの目標に由来しています。 Ubuntu をワークステーションで使用している場合でも、携帯電話で使用している場合でも、Unity デスクトップは同じように機能します。

Linux はどの部分に分割できますか?

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinux はどの部分に分割できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。