概要
OSであるLInuxがどういう仕組みで動いているのかを解説している。この本の特徴は図解をふんだんに用いているところだ。文章も比較的平易で,わかりやすくするような配慮を感じた。
著者の竹内 覚はTwitter上のIT界隈でけっこう有名な人らしく,そこに興味を持って読んでみた。富士通でLinuxカーネルの開発に10年ほど従事し,現在はサイボーズ社の技術顧問についている。仕事でやっているのだから,どうりでLinuxに詳しいわけだと思った。
OSの仕組みを一つ一つトレースしながら解説している。例えば,サンプルプログラムを実行して,CPUの使用率がどうなっているか,メモリーの使用率がどうなっているかを確認している。けっこう細かいところを見ている。
流れとしては,以下がひたすら続いている印象だった。
- Linuxにこういう機能があります。
- こういう仕組みになっています (図解)。
- では実験プログラムで確認しましょう。
- そうなったでしょ?
わかりやすくしようと図解を入れているのはいいが,別にそれでわかりやすいとは限らない。
仕組みありきになっていて,あまりよくなかった。なぜこういう機能が存在するのか,何が便利なのか。そういった解説が足りない感じがした。特に,この仕組みが現実世界・実務上どういうときに役に立つのか,大事なのかという視点がもっとほしかった。学校で学ぶなら,別に理論だけしっていてもいいのだが,やはり何に役に立つのかが見えないと面白くない。
また,書籍の構成が上記の流れになっている都合,その場その場で必要なコマンドがとりとめもなく登場していた。例えば,CPU消費量の確認でsarコマンドがいきなりでてきたり,psコマンドでプロセスの使用時間を確認したりなど。
これらのコマンドの紹介も最小限になっていて,リファレンスとしても使いにくい。これらのLinuxのシステムレポート把握のためのコマンドの使い方に1章割いてきちんと解説してくれたほうがよかった。
後半もけっこう細かい話が書いてある。例えば,ファイルシステム。Linuxで使えるファイルシステムはけっこうある。それらを簡単に紹介しているが,結局どれがいいのかというのは曖昧なまま。
全体的に中途半端に感じた。図解をいれてわかりやすくしようとしているのはわかるが,文章のわかりやすさ,筋道の立て方,そして中身の詳しさが合っていないと感じた。せめて,本文中で解説している章はLinuxカーネル公式文書のどこを参照すればいいかを引用してくれたら,不十分なところを辿れるが,それすらない。
また,Linuxの仕組みと言っても起動のブートシーケンスなどはなく,メモリーや,CPU,ファイルシステムなどある程度テーマを絞っていて,網羅しているわけでもない。
結局,なんとなく知るためだけの読み物で終わってしまった感がある。一番良かったのは,あとがきで引用されている書籍だった。本書だけでは,不十分であり,最初からあとがきに書かれている書籍をあたったほうがよかったのではないかと思った。
参考
p. v: はじめに
実験プログラムのソースコードはすべて掲載し、GitHubで公開しています (https://github.com/satoru-takeuchi/linux-in-practice/)。
後で振り返るときに役に立つ。
p. 268: あとがき
最後に、さらなるステップアップを目指すための書籍をいくつか紹介しておきたいと思います。
- コンピュータの構成と設計 第5版 上・下
- What Every Programmer Should Know About Memory (https://www.akkadia.org/drepper/cpumemory.pdf)
- ふつうのLinuxプログラミング 第2版
- 詳解システム・パフォーマンス
- Linux Kernel Development
Linuxのしくみについてさらに知るための文献だった。
結論
Linxuの仕組みを豊富な図解とともに解説した本だった。図解を作るのは労力がかかるので,そこは良いと思ったが,内容がいまいちだった。
読み物として,Linuxの仕組みを知るには良かった。ただ,これだけだと不十分なので,詳しくなりたければ,結局あとがきで参照された書籍をあたるしかないだろう。
コメント