差分

移動先: 案内検索

オペレーティングシステムとは何か

194 バイト除去, 2011年10月6日 (木) 14:24
/* VFSからデバイスドライバまで */
===== VFSからデバイスドライバまで =====
[[File:Filesystem-layer-1.png|thumb|right|450px|File System Layer]]
ファイルシステムをさらに抽象化するLinuxのファイルシステムを紹介しましょう。
Linuxのファイルシステムは、上位にVFS (Virtual File System)が存在し、その下に、またMinix、MS-DOS、その他のが存在し、その下に、FAX、ext4、JFS、XFS、NFS、その他のファイルシステムをもち、さらにその下にバッファキャッシュがあり、さらに下にデバイスドライバがあるといった、何重もの層を重ねる形になっています。ファイルシステムをもち、さらにその下にバッファキャッシュをおき、さらに下にデバイスドライバをおくという、何重もの層を持っている形になっています。プログラムは、Linuxのファイルを扱っているだけで、その下がMS-DOSのファイルシステムやMinix のファイルシステムであるかを知る必要はありません。しかも、その下には、ハードディスクやフラッシュメモリ (例えばUSBメモリやSDカードなど)といった補助記憶装置との入出力効率を改善するために、バッファキャッシュというクッションをおいてあります。その下に、装置をコントロールするためのデバイスドライバが用意されている形になります。このように重層的な構造にすることによって、抽象化を図っています。プログラムは、Linuxのファイルを扱っているだけで、その下がFATのファイルシステムやJFSのファイルシステムであるか、あるいはネットワーク経由でファイルシステムを使うことができるNFSなのかを知らなくても利用することが可能です。
<PRE>下層には、補助記憶装置との入出力効率を改善するために、バッファキャッシュというクッションをおいてあります。さらなる下層には、ハードディスクやフラッシュメモリ (例えばUSBメモリやSDカードなど)といった記憶するためのハードウェア、あるいはNFSのようにネットワークを経由して使うためのネットワークハードウェアをコントロールするためのデバイスドライバの層があります。
プログラム ^^^^^^^^ ========[ファイル]======= バーチャルファイルシステム (VFS) <----(+) ↑ 高 --^^----^^-----^^----------^^---- 抽象度 [ext2][msdos][minix].....[proc] ↓ 低 ---^^^^^^^^^^^^^^------- バッファキャッシュ -------^^^^^----------- デバイスドライバ------------->(+) ------^^^^^^^^^-------- ___+____+____+_ v v V HDD HDD HDD ext2 --- Linuxのファイルシステム msdos --- MSDオペレーティングシステムのファイルシステム minix --- MINIXのファイルシステム proc --- プログラムファイルシステム (Linux独自)  </PRE>このように重層的な構造にすることによって、抽象化を図り、かつどの層が変化しようとも、上位の層がその違いを吸収するような形になっています。このような枠組みにより柔軟に機能・モジュールを追加、変更することが出来る仕組みになっています。
== 脚注 ==
匿名利用者