「Linux システムプログラミング」 を読む

一言

Linuxシステムプログラミング

Linuxシステムプログラミング

  • 読み始めた

第一章(基礎概念)

  • すべてはファイルですよ、という話
  • シムリンクとハードリンクのパフォーマンスの違い
  • プロセスディスクリプタがプロセスのテーブルを持つ

第二章(ファイル I/O など)

  • ファイルテーブル / プロセスごとに管理されている。
  • ファイルディスクリプタ / ファイルへのメタデータを保持する
  • EOF が何なのか / また注意するケース
  • non-blocking I/O とは
    • read などでブロックしないようになる
    • EAGAIN で読み込み中であることを返す
  • write の動作
    • buf -> カーネルのバッファにデータをコピーする -> ディスクに書き込む(ライトバック
    • 遅延書き込みは順序を指定できない
  • 2.11カーネル内の動作 が面白そう
    • VFS
    • ページキャッシュ
      • ディスクアクセスしたときのキャッシュ
      • 最初にアクセスしに行く
      • 先読み機能もある