How Linux Worksという本の和訳版を読んだ。和訳されたタイトルは、スーパーユーザーなら知っておきたいLinuxの仕組み、というのだけど長いのでそうは呼ばない。色々と学んだことがあった。特にデバイスのようなカーネルに近い部分や、systemdによるサービス管理の方法などの領域に対するスキルポイント配分が完全に不足していたということを認識した。今後その不足分を補っていくように意識していかないといけない。別のところでは、ネットワークを扱っていて、そこは割と読みやすく感じたので、そこまでスキルポイントが不足していたことはなかったと認識した。積極的に割り振った記憶はない。日常的にネットワークの設定を行ったりするから、身近な話題であったというのが読みやすかった理由だろう。ネットワークの設定といっても、専門的なことではなく、インターネットに繋がらないと家族などに頼まれたとき様子を見にいったりする程度だ。それだけでも結構違ってくる。普段は自分のPCのLinuxでネットワークの設定をしたりもするので、それも影響していただろう。これも大したことしていない。ちゃんとインターネットに接続できるか、確認して調整したりするといった程度だ。その程度でもちゃんと話しについていけた。合格基準が低いように思われるかも知れないが、デバイスの章なんかは、全く意味不明だったので、それと比較してしまえば、遥かに合格だったとみなしている。
デバイスがだめだったので、次やるべきことはデバイスについて強化するのが順当な学習プランだ。あとsystemdにもうちょっと親しんでおくというのも忘れてはいけない。その一方で、ネットワークについてもっと知りたいという欲が出てきた。これは良い傾向なのだけど、時間配分が難しい。デバイスをまず先にやるべきなのだが、ネットワーク程は関心がないというのが本音でもある。試しにやってみたらいいかもしれない。デバイスドライバのプログラミングが良い入口だろう。そもそもデバイスってなんなんだという疑問さえある。/devにあるデバイスファイルと、現実のデバイスとの繋がりが全くイメージできない。あとはカーネルだ。カーネルとデバイスは近いところにある。この2つについて学習する必要がある。全くやったことないのだけど、どういうわけか、カーネルやデバイスドライバのプログラミングの本を所有している。今、ちょうど必要性を感じたので、これを機に取り組んでみるのがベストタイミングだと思われる。ネットワークはどうするか。これも今やってみたいと思っているところなので、またベストなタイミングだと思われる。
ネットワークプログラミングにはバイブルのような本が存在している。UNIX Network Programmingというタイトルの本がそうだ。初版を所有しているが、かなり内容が古いようで、第2版では大きく書き換えられて、原著は第3版まで出ている。しかし、残念なことにもう新品の入手が困難で、中古でもそれほど数が出回っているわけではないようだ。ただ、入手不可能と言うほどではない。これを期になんとしても入手しておきたいという欲が湧いている。
書いている途中にAmazonを物色し始めた。やはり第3版の中古が割と安く出品されているので買ってしまおうと思ったのだが、他の出品と比べて異様に安いのと、レビューをみると不安が捨てきれなくて、断念することにした。信頼できる国内の出品もあるのだが、価格が1万円ほど高くなるので躊躇してしまう。その代わりにVolume 2の和訳版を中古で安く出品されているのを購入しておいた。今は円安ということもあって、どうしても洋書が高くなってしまう。高くなるだけならまだしも、事実上入手が難しいことすらある。もっとKindleで電子書籍化が進んでくれれば安心できる。UNIX Network Programmingのような、定番で重要な本はぜひ電子書籍化してほしいと願う。
というわけで、目当てのものを入手しそこねた。今所持している初版でなんとか好奇心を満たそうかと思う。どの程度古くなってしまっているのかわからない。ネットで新しい情報と見比べながら読めば、なんとかなるだろう。そもそも、今はデバイスとsystemdをちゃんとやっておくべきだ。本格的にネットワークプログラミングを始める機会を失ったことは、ある意味好都合だ。自分で気の向くままに興味のあることばかりやっていたら、いつまでもバランスの悪い偏った不格好な装いになってしまう。定期的にちゃんと鏡を見て見た目を正す機会を設けることも必要だ。鏡と言っても、前に立つだけで姿を移してくれるような便利なものもないし、問いかけるだけで世界で一番美しいのは誰か答えてくれるような魔法の鏡もないし、テクマクマヤコンと謎の呪文を唱えるだけで変身できる秘密の鏡ものなどありはしない。今どんな見た目をしているのかは、何かの判断基準に沿って、比較してみることが良い方法だ。もし、その基準が歪曲されていたら、誤った判断をしてしまう。例えば、魔法の鏡に世界で一番美しいのは誰か答える鏡に問いかけるのは危険だ。そんなことをしてみても間違った感情しか生まれない。判断を鏡に委ねるのではなくて、できるだけありのままの姿かたちを移してもらうことだけを期待して、どこが不格好なのか、バランス良い見た目になるのはどこを修正すらばいいのか最終的な判断は自身が下すべきだ。そのような道具というのはあまりない。本はある分野に特化していて専門的であるのが普通だ。専門的なことを求める読者の要望に応えようとしていて、だからこそ価値がある。平均的なところにとどめておきたいという変わった要望に答えるような本はあまりない。
この本に関して言うなら、タイトルが示す通り、Linuxの仕組みについての専門書と言える。もし、他のメジャーなプラットフォームである、Windows、Web、スマホなどについてもバランス良く身に付けたいと考えている読者にとっては、これはLinuxの専門的な内容であって、バランスを整えるための道具とはならないだろう。同じような本をそれぞれの分野にも見つけ出さないといけない。しかし、Linuxに限定して、その領域内でバランスをよく身に着けたいと考えているのなら、この本は専門的というよりも平均的にバランス良く解説した内容だと思える。どの章も平均的な水準で解説されていると自信を持って言うことはできないのだけど、そういう風にみなしておこう。そうしておくことで、もし、読んでみてどこかが難しすぎたり、逆に簡単すぎたりしたら、本の方に偏りがあるとみなすのではなく、それだけスキルポイントの振り分け方が偏っていたと解釈する。もし全部簡単すぎると感じたのなら、時間を無駄にしたと考えずに、十分に基礎を身に着けていると自信が得られたので有意義だったとでも思っておくのがいい。全部難しすぎると感じたら、スキルポイントよりもベースとなるレベルが不足しているので、経験値稼ぎが必要な兆候かもしれない。最も理想的なケースは、ある章は簡単だったけど、別の章は難しかったという感想をもつ場合だ。この場合は、難しかった章の分野にスキルポイントを振り分けるようにすることで、偏りを正すための道具となる。定期的にこういうもので見た目をチェックしておくことも悪くないという新しい視点が得られた。ちょっとばかし前向きで肯定的な考え方すぎるかも知れない。