序文

目次

1. Linux カーネルを学ぶ意義
2. C++ カスタムアロケーターを作る意義

本書は Linux でのメモリー/ファイル/mmap/malloc やカスタムアロケーターの実装を技術者や学生が学ぶ際の副読本として執筆しました。

キーボードを叩きながら学ぶための助言付き実験ハンドアウト(もしくはノートやワークシート)としての用途も想定しているので、本としてはかなり柔らかい方に部類すると思います。

具体的には以下の内容を説明していきます。

  1. Linux の I/O
  2. Linux カーネルのファイルとメモリー
  3. glibc2.7 の malloc のアルゴリズム
  4. mmap
  5. C++ アロケーターの実装

本書の前半では Linux I/O と POSIX C から基本的な箇所を抜粋して説明していきたいと思います。

次に Linux カーネルのメモリーやファイルのデータ構造、C標準ライブラリー(glibc) からは malloc のアルゴリズム、 mmap() 関数の理解を深めていきます。

後半では前半で学んだ malloc() や mmap() の知識を活かせる C++ のアロケーターに応用してみます。

大まかに本書を要約すると Linux のカーネルソース等からファイルシステム、キャッシュ、メモリーについて浅く広く理解できるように、本書では雑なまとめを試みています。

そんなわけで書いた本なので、万人向けではないという点をご理解頂いた上でお読みいただければと思います。

Copyright 2018-2019, by Masaki Komatsu