Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> Linuxのシステムアーキテクチャは何ですか?

Linuxのシステムアーキテクチャは何ですか?

  

Linuxシステムを理解するためには、そのシステムアーキテクチャについてある程度理解しておく必要があります次の小シリーズでは、Linuxシステムアーキテクチャについて説明します。

私は次の図をもとにして、Linuxのアーキテクチャー(architecture)を説明しています。 (図を参照のこと。「UNIX環境での高度なプログラミング」)
ログイン

ハードウェアの最も内側の層であり、最外層は、Firefoxの、進化メッセージ、流体モデルの計算を表示するブラウザなどの一般的なユーザアプリケーションでありますちょっと待って。ハードウェアは重要な基盤であり、アプリケーションはサービスを提供します。しかし、両者の間では、まだいくつかのねじれやターンを経なければなりません。

Linuxの起動を忘れないでください。 Linuxが最初にカーネルを起動するカーネルは、CPU、メモリスペース、ハードディスクインターフェイス、ネットワークインターフェイスなどを含む管理ハードウェアを直接管理するコンピュータプログラムです。すべてのコンピュータ操作はカーネルを介してハードウェアに渡されます。

カーネルの呼び出しを容易にするために、Linuxはカーネルの機能インターフェースをシステム呼び出しにします。システムコールはC言語の関数のように見えます。プログラムで直接呼び出すことができます。 Linuxシステムには、このようなシステムコールが200以上あります。ユーザーはカーネルの複雑な構造を理解する必要はなく、カーネルを使用することができます。システムコールは、オペレーティングシステムの最小機能単位です。オペレーティングシステムおよびオペレーティングシステムベースのアプリケーションは、システムコールを超えた機能を実装することはほとんどありません。システムコール機能は漢字のストロークのようなものです。どの漢字も基本的なストローク(点、十字、シンバルなど)で構成されている必要があります。ストロークは作れません。

すべてのシステムコールを表示するには、コマンドラインで$ man 2 syscallsと入力します。システムコールread()の説明を見るために$ man 2 readを使うこともできます。 2つのコマンドのうち2つは、クラス2(システムコールクラス)でクエリを実行することを示します(特に、各クラスが$ man manから参照できるもの)。

システムコールが提供する機能は非常に基本的なものなので、使用するのは面倒です。メモリ空間を変数に割り当てる簡単な操作では、複数のシステムコールが必要です。 Linuxは、システムコールをいくつかの一般的な関数にまとめるためのライブラリルーチンを定義しています。上記のメモリ割り当ての操作は、ライブラリ関数(malloc()のような関数)として定義できます。たとえば、ファイルを読み取るときに、システムコールは必要なバッファを設定するように要求します。標準IOライブラリのread関数を使うことができます。この読み取り機能は、バッファーの設定と読み取られたシステム呼び出し機能の使用の両方を担当します。ライブラリ関数を使用することは、マシンにとって効率上の利点はありませんが、詳細からプログラマーを救うことができます。ライブラリ関数は漢字の急進的な部分のようなもので、ストロークで構成されていますが、' iron'のように急進的なものを使用して単語を作成する方が簡単です。もちろん、 "people"という単語のように、急進的な表現を使わずに、ライブラリ関数の代わりにライブラリ関数を使用することもできます。

(実際には、オペレーティングシステムはUNIXシステムと呼ばれる必要があります。ISOC標準ライブラリ、POSIX標準などのライブラリ関数が必要です。)

シェルは特殊です。アプリケーション多くのユーザーはそれをコマンドラインと呼んでいます。シェルはコマンドインタープリタであり、' ls -l'と入力すると、この文字列を

として解釈します1.デフォルトパスでファイル(/bin /ls)を探します。

2.パラメータ' -l'を指定してファイルを実行します。

以前は "リダイレクト"を使用していました。 シェル&または|によっても解釈されるパイプを表します。 その意味シェルはコマンドカーネルを使用して、システムチューニングを通じて特定のリダイレクトまたはパイプラインを実装します。グラフィカルインタフェースの前では、シェルはユーザのインタフェースとして機能し、ユーザがいくつかのアプリケーションを実行したい場合は、シェルを使用してプログラムを実行するコマンドを入力します。シェルはプログラム可能であり、シェルの構文に準拠したテキストを実行できます。このようなテキストはシェルスクリプトと呼ばれます。アーキテクチャ図で見ることができる、システムコールを通してシェル、様々なアプリケーションを通して、そして彼ら自身のガジェットの多くを使うことができます。シェルスクリプトは、数行で複雑な機能を実装できます。

UNIXの哲学の1つは、小さな機能を実行するために各プログラムをできるだけ独立させることです。シェルは、これらの小さな機能間の「接着剤」として機能し、さまざまなプログラムが明確なインターフェース(テキストストリーム)で連携して各プログラムの機能を強化することを可能にします。これは、Linuxのベテランが初心者にもっとシェルを使用し、グラフィカルインターフェイスを使用しないように勧めている理由の1つです。

(シェルの多くがありますが、最も一般的なのは、kshの、SH、CSH、tcshのに加えて、bashのである。彼らは別の年で表示され、機能が異なるサポートされています。)

A bashシェルを使用する端末

シェルは端末に対応します。いったん使用されると、端末は出力の入力と表示に使用されるハードウェア装置です。今日、グラフィカルインタフェースの人気により、端末はしばしばグラフィカルウィンドウのようなものです。このウィンドウからテキストを入力または出力できます。このテキストは分析と解釈のためにシェルに直接渡されてから実行されます。

最後に、一般アプリケーションに入ります。アプリケーションはプログラムです、それはすることができます

1.直接システム関数を呼び出します。

2.ライブラリ関数を呼び出します。

3.シェルスクリプトを実行します。

多言語で開発されました。最も一般的なのはC言語です。

概要

Linuxはカーネルを使ってソフトウェアとハ​​ードウェアの会話を実装します。

システムコールのこのインタフェースを通じて、Linuxは上位アプリケーションを基礎となるカーネルから分離し、基礎となる複雑さを隠し、上位アプリケーションの移植性を向上させます。

ライブラリ関数はシステムコールを使用してモジュール機能を作成します。

シェルはユーザーインターフェイスを提供し、シェル構文でスクリプトを組み込んでプログラムを統合することを可能にします。

以上がLinuxシステムアーキテクチャの紹介ですが、本文中の図からわかるように、Linuxシステムは主にハードウェア、カーネル、システムコール、シェル、そしてライブラリ関数で構成されています。 Linuxシステムについてある程度理解してください。

Copyright © Windowsの知識 All Rights Reserved