Linuxは、パーソナルコンピュータやワークステーション上のUnixライクなオペレーティングシステムです。しかし、それは決して単純化されたUnixではありません。対照的に、Linuxは強力で革新的なUnixライクなオペレーティングシステムです。これは、Unixの特性を継承するだけでなく、多くの点でUNIXを凌駕しています。 Unixクラスのオペレーティングシステムとして、Linuxカーネルには以下の基本機能があります。
1. Linuxカーネルはモノリシック構造になっています。つまり、Linuxカーネル全体が多数のプロセスで構成されており、各プロセスを個別にコンパイルして、リンカによって互いに接続して別々のターゲットプログラムにすることができます。情報の隠蔽の観点からは、彼女は隠ぺいの程度はなく、各プロセスは他のプロセスからも見えます。この構造の最大の特徴は、内部構造が単純でサブシステムにアクセスしやすいことです。そのため、カーネルは効率的に動作します。さらに、プロセスベースの構造は、さまざまな人がさまざまなプロセスの開発に参加するのに役立ちますこの観点から、Linuxカーネルはオープン構造であり、彼女は誰でもそれを変更、改善、および改善することができます。
2. Linuxのプロセススケジューリングはシンプルで効果的です。 Linuxは効率を追求することに飽きのこないとも言え、スケジューリング方法もユニークです。ユーザプロセスに対しては、Linuxは単純な動的優先度スケジューリング方式を使用し、カーネル内のルーチン(デバイスドライバ、割り込みサービスルーチンなど)に対しては、独自のメカニズムを使用します;ソフト割り込みメカニズムは、カーネルルーチンの効率的な操作
3. Linuxはカーネルスレッド(またはデーモン)をサポートしています。カーネルスレッドは、ターミナルやログインシェルを組み合わせずにバックグラウンドで実行されるプロセスです。多くの標準カーネルスレッドがあり、そのうちのいくつかは特定のタスクを実行するために定期的に実行され(swapdなど)、他のスレッドは継続的に実行され、特定のイベント(inetdやlpdなど)の処理を待機します。カーネルスレッドはユーザープロセスと言えますが、一般的なユーザープロセスとは異なり、カーネルのようにスワップアウトされないため、より効率的に実行されます。
4. Linuxは複数のプラットフォームで仮想メモリ管理をサポートしています。さまざまなハードウェアプラットフォームをサポートし、仮想ストレージ管理テクノロジの多様性を確保するために、Linux仮想メモリ管理はさまざまなハードウェアプラットフォームに統一されたインタフェースを提供するため、Linuxカーネルは新しいハードウェアプラットフォームはそれほど難しくありません。
5. Linuxカーネルのもう1つのユニークな機能は仮想ファイルシステム(VFS)です。仮想ファイルシステムは、複数の論理ファイルシステム(ext2、fatなど)に統一されたインタフェースを提供するだけでなく、(特別なファイルとして)さまざまなハードウェアデバイスに統一されたインタフェースも提供します。
6. Linuxのモジュールメカニズムにより、カーネルは独立していて拡張が容易です。モジュールメカニズムは、カーネルを再コンパイルせずにカーネルが新しいモジュール(新しいデバイスドライバなど)を追加するのを容易にします;同時に、モジュールメカニズムは、必要に応じてカーネルにモジュールを追加したり、カーネルからモジュールを削除したりできます。これにより、必要に応じてカーネルをカスタマイズできます。
7.特定のニーズに合わせてシステムコールを増やします。一般に、システムコールは、オペレーティングシステムの設計者がカーネル機能を使用するためにユーザーに提供するインタフェースですが、Linux用のオープンソースコードを使用して独自のシステムコールを設計し、それをカーネルに追加することもできます。
8.ネットワーク部分のオブジェクト指向設計により、Linuxカーネルは複数のプロトコルと複数のネットワークカードドライバを簡単にサポートできます。
このプログラムと出力を使用して、waitpidの使用法と特性を分析します。 waitpidをWNOHANGノンブロッキング親プロセス状態に設定し、最初にwaitpidが呼び出されたとき:この時点では子
1 vSphere Clientを起動します。 2仮想マシンを起動します[VMを右クリックして[Power]を選択し、[Open]をクリックして開きます)。仮想マシンが正常に起動するかどうか VM
にしています。Linux端末を使うことは、単にコマンドを入力するだけではありません。これらの基本的なテクニックを学んだ後は、ほとんどのLinuxディストリビューションでデフォルトで使用されるターミナル
Unix系システムでは、topを使用してシステムリソース、プロセス、メモリ使用量などの情報を表示することができます。ネットワークの状態を表示するには、netstatやnmapなどのツールを使用できます