差分

移動先: 案内検索

カーネルの構造と機能

3,427 バイト追加, 2007年10月18日 (木) 08:17
/* プロセス管理 */
;補足: 別な見地からいけば、Linux 2.4あたりまでのスケジュラーはやはり他のオペレーティングシステムからみると見劣りするものだというのは否定できない事実です。
 
 
 
=== ファイルシステム ===
 
UNIXのファイルの特徴はファイルがバイト単位のデータストリームであることです。ファイルの中身というのは最初から最後に向かって1バイトづつのデータの列であるだけでそれ以上でもそれ以下でもありません。カーネルでは、そこまでしか関知しません。データの扱いに関してはプログラム側が決めます。
 
 
;補足: デバイスの観点からファイルをみるとブロックデバイスかキャラクタデバイスかの違いはあります。
 
 
次にファイルシステムで大切な点は、"/"を先頭に木構造になっており/foo/bar.txtといった具合にファイルパスとしてアクセスできることです。ファイルの情報はディレクトリと呼ばれる場所に記録されていることです。この名前でアクセスできる名前の空間のことをネームスペース(name space)といいます。これも多くの人は不思議でもなんでもなく、またディレクトリがフォルダというのと同じような意味ですよ、というとなるほどと判る人もいるでしょう。
 
 
バイト単位のデータストリームや、あるいはファイルをファイルパスで探すというのは、今やあたりまえのような気がしますが、UNIX以前では物理的な場所をまずプログラムを稼働させるための前準備の段階で形式や場所を定義しておいて、そこを参照する形を取っていました。大型汎用機ではいまでもそうです。
 
 
Windows NT以降のNTFSの持つファイルシステムの機能はUNIX系と遜色はありませんがC:とかD:といった場所はドライブと呼び、ハードウェアとファイルシステムが直結していた頃の名残を残しています。ちなみにWindows系の世界でもMS-DOS時代の名残でフォルダのことをディレクトリと呼ぶ場合もあります。
 
 
;調べてみよう: 大型汎用機ではどのようにファイルを扱うのか調べてみよう。 http://www.hitachi.co.jp/Prod/comp/soft1/VOS3FS/v3ga0226.htm
 
 
プログラム側から見た場合、ファイルには同じようにアクセスできるのですが、最終的な記憶装置、あるいはオブジェクトへの読み書きをする部分にはext2やext3あるいはReiserFS、XFS、JFSなどの種類のファイルシステムが用意されています。ファイルシステムの部分でも、このようにレイヤ化されています。また名前付きパイプ(FIFO)はプログラム間でデータを"流す"ために使われる見かけ上のファイルです。あるいは/procなどのファイルは、実際にはファイルではなくファイルのように見せかけたカーネルとのAPIになっています。
 
 
唯一の共通点は、ファイルシステム上の名前空間に存在し、統一的なファイルへのアクセスが提供されているということです。そのためプログラム側はファイルを介すという形でのデータの入出力のためのアクセス方法がシンプルにな:ります。
 
 
;補足: /p/tcp/www.sample.com/wwwというファイルをアクセスするとwww.sample.comのwwwポートがアクセスできるというファイルシステムPortal
匿名利用者