興味のあるところから掘り下げていくことにする。
下記は備忘記録として記載。
14章 ファイルシステム
名前はわかりやすい章だが、中身は今までの内容がわかっていないと辛い。
システムに接続されたデバイスに対応するファイル
デバイスは大きく分けて2種類
・実デバイス(マウス、ディスク、テープドライブ)
・仮想デバイス(virtual device、擬似デバイス)
アプリケーション 仮想ファイルシステム(VFS) 各ファイルシステム
14.6 ジャーナリンクファイルシステム
ディレクトリ、i-node、ファイルブロックポインタなど
15章 ファイルの属性
ファイルが持つ多種多様な属性(メタデータ、アトリビュート)を解説。
ファイル情報の大部分はi-nodeが保持し、これを取得するシステムコールにstat()、lstat()、fstat()がある。
16章 ファイルの属性拡張
まずなんのこっちゃ。
56章ソケット基礎
さっぱりわからん。
ただネットワーク通信のロジックが書かれている。
ファイルディスクリプタがわかっていないと辛い。
よって4章、5章のファイルI/Oを読み返した。
・アプリケーションはソケットを作成する
・サーバはソケットをwell-knownアドレスへバインドする。
クライアンどはwell-knownアドレスによりサービスを特定する。
ソケットを作成するのはsocket( )システムコールです。戻り値hソケットを表すファイルディスクリプタです。
(通信ドメイン)
(ソケットの種類)
(ソケットシステムコール)
単一のシステムコールsocketcall( )のみを実装し、上記でシステムコールと記述した関数はいずれも内部でsocketcall( )を実行するライブラリ関数
- 5章ファイルI/O:その詳細
アトミック:システムコールは他から割り込まれず、1ステップとして実行するシステム
コール動作。
→他から割り込まれないとは?
ファイルディスクリプタ、オープンしたファイルがカーネル内でどのように表現されるか、その内部データ。
オープンしたファイルにセットするオープンファイルステータスフラグ
ファイルデイスクリプタが異なっていてもオープンファイル情報が同じならば、ファイルオフセット情報は共有される。
オープンファイルステータスフラグ
この辺りいきなりすぎないか。わかりにくい。
せっかく具体的に書いているのに。
4章 ファイルI/O:統一されたインターフェース
I/Oを処理する全てのシステムコールは、オープンしたファイルを、ファイルディスクリプタにより参照する。
ファイルに関するシステムコール
ファイルディスクリプタ、統一されたI/Oインターフェースを実現するシステムコール
4.1概要
I/Oを処理するシステムコールはオープンしたファイルをファイルディスクリプタにより参照する。
ファイルI/Oの基礎となるシステムコールは4つ。
プログラミング言語やソフトウェアパッケージはI/Oライブラリなどを用い、これらのシステムコールを間接的に使用するのが一般的である。
・fd=open(pathname,flags,mode)
pathnameに指定されたファイルをオープンし、ファイルディスクリプタを返す。以降はこのファイルディスクリプタをオープンしたファイルを意味するものとして使用される。
open()が返すファイルディスクリプタ
ファイルディスクリプタ、i-node、