Linux IOサブシステムのどのコンポーネントがデバイスに依存せず、デバイスに依存していますか?

Linux IOサブシステムのどのコンポーネントがデバイスに依存せず、デバイスに依存していますか?

Tanenbaumの最新のオペレーティングシステム、

すべてのオペレーティングシステムには、I / Oデバイスを管理するI / Oサブシステムがあります。一部のI/Oソフトウェアは デバイス独立つまり、複数またはすべてのI / Oデバイスに同じように適用されます。デバイスドライバなどの他の部分は次のとおりです。 特定のI/Oデバイスのみ

I / Oソフトウェアシステムの階層図もあります。

ここに画像の説明を入力してください。

下の2つの写真LinuxIOサブシステム、デバイス独立コンポーネントとデバイス依存コンポーネントの間に線を描くことはできますか?つまり、どのコンポーネントがデバイス依存であり、どのコンポーネントがデバイスに依存しませんか?私の考えでは、「ドライバ」はデバイスによって異なり、「VFS」はデバイスに依存しないと思います。しかし、他のコンポーネントについてはよくわかりません。

同じ本から:

ここに画像の説明を入力してください。

BovetのLinuxカーネルの理解2005にも次の記事があります。

ここに画像の説明を入力してください。

ベストアンサー1

最初のLinuxダイアグラムの「デバイスドライバ」セクションの上のBovetダイアグラムでも同様です。

オペレーティングシステムを作成するときは、より多くのデバイスをきれいに追加できるように、デバイス関連の部分をできるだけ分離したいと思います。 Linuxの場合、「ディスクデバイスドライバ」(または「ネットワークカード」、「WiFiカード」など)はクラスオブジェクト指向プログラミングの意味では、これは各デバイスタイプのクラス(例:「Realtek Semiconductor Co.、Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller」)のクラスにさらに細分化され、複数のクラスにインスタンス化できます。 。必要に応じて同じ(または十分に似た)デバイスのコピー。例えば、誰のオブジェクト場合によっては、デバイス固有の機能は、WiFi管理ドメインや制限(元の各ドライバの一部である)の完全な複雑な処理など、高レベルのサブシステムに抽象化されます。 USB を使用し、USB ディスク経由の SCSI または IP 経由の SCSI (光ファイバー ネットワーク インターフェイス経由で実行) で処理される USB サム ドライブなどのデバイス層がある場合もあります。

簡単に言うと:このきれいな分離(「オペレーティングシステム」のテキストに見られるようには単に非常におおよその最初の近似によると、現実ははるかに興味深い混乱です。

おすすめ記事