見出し画像

私が書いた本をどんな人に読んでもらいたいのかを紹介します

ゆたかさんの著書がたくさんあるので、どれを買ったらよいのかわからないという人がたくさんいる。各々の本についてまとまって紹介してほしい」というご意見をいただきました。

なるほど!

その視点はありませんでしたので、現在発売中の本について紹介していきたいと思います。なお、ここに挙げていない本はすでに絶版になっているものです。また、技術書(コンピュータ書籍)ではない本は対象外としました。

Linuxデバイスドライバの開発

画像1

C言語の文法は一通り理解していて、アプリケーション(ユーザープロセス)のソースコードが読めるけれど、Linuxデバイスドライバをまったく知らない人向けです。Linuxカーネルのバージョンは5.11。

昨今の組み込み開発はアプリで作ることが一般的で、デバイスドライバのような低レイヤの開発はあまりありません。ある日突然、上長から「キミ、C言語できるよね? ドライバもいけるよね。来週からドライバ案件やってほしい。担当者が倒れてしまったんだ」と言われても泣かないようにするためには、デバイスドライバの基礎を押さえておけば大丈夫です。


私はどのようにしてLinuxカーネルを学んだか Device Tree編

画像2

組み込みLinuxではDevice Treeという概念の習得が必修科目となっていて、Device Treeをまったく知らない人がどんなものかを知りたい人向けです。そもそも、私が業務開発でDevice Treeを使ったことがなかったので、個人的にもDevice Treeに大変興味があって、一度調べておく必要があると思っていたのもあります。

誰向けかというと、実は自分が一番読みたかった本です。

前提条件は、C言語を使ったLinuxデバイスドライバのソースコードが読めることです。


私はどのようにしてLinuxカーネルを学んだか

画像3

Linuxカーネルを学んでみたいけれど、どこから手を付ければよいかを知りたい人向けです。初心者向けにやさしく書きました。

もともとはエッセイのつもりで書いていて、ソースコードを載せる予定はなかったのですが、書いていて面白くなくなってきたので、途中からソースコード解説がでてきます。よって、C言語の文法は理解していたほうが、より楽しむことができるでしょう。


超例解Linuxカーネルプログラミング

画像4

Linuxカーネルの修正内容を題材として、ソフトウェアの不具合修正について学ぶ本です。どんなバグがあって、どう修正しているのかを知ることで、プログラミングスキルが向上します。

ある程度、Linuxカーネルやデバイスドライバのソースコードが読めることが前提条件です。私としては中級者向けに書いたつもりでしたが、読者さんの意見を聞いていると上級者向けと感じる方がおおいようです。

基本的に技術書は入門書であることが強く要求されるのですが、上級者向けの本を書かせてもらったC&R研究所さんには感謝しております。どうもありがとうございます。


Linux技術者のためのC言語入門

画像5

大手メーカーなどでハードウェアを製造している、もしくは組み込み開発の仕事に携わっている人で、日頃からC言語を使っているけれども、もう一度C言語を学び直したい人向けです。

実は、開発の現場ではもっぱらC言語はC89(C90)を使います。C99も少しは増えてきました。C11は現場使っているところはほとんどないと思います。

また、アウトソーシングが当たり前の時代なので、プログラミングは外注(協力会社)さんにお任せしているプロパーもおおいです。自分でコードを書かなくなってくると、だんだんと忘れてくるものです。そのうえで、外注さんの作ったコードをレビューしないといけないわけですから、「C言語、もう忘れちゃった」なんて立場上言えないわけですね。

ちなみに、私はこの本を書いたことではじめてC11を知りました。本を書くと、自分でも学びを得ることができます。


Linuxデバイスドライバプログラミング

画像6

ガチでLinuxデバイスドライバをやりたい人向けです。この本は2008年に発売されて2013年に絶版となり、2017年にAmazonのPODで復刊しました。よって、Amazonの通販でしか買えません。

古い本なのでカーネルバージョンが2.6となっています。

C言語を熟知していて、Linuxのアプリケーションのソースコードが読めて、ある程度書ける人向けです。もともと、オライリーの馬本が難解であることに対抗して作った本なので、馬本で事足りない方向けにもなっています。


Linuxカーネル 「ソースコード」を読み解く

画像7

Linuxカーネルのソースコードを読んでみたいけど、どうやって読めばいいかわからない、という人向けです。ツールの話がメインなので、あまりプログラミングの話はでてきません。

なぜ、このような本を書いたかというと、当時業務でやっていた組み込みLinux案件で部下さんたちが「Linuxのソースコードがまったくわからない。読み方もわからない」と嘆いていたからなのです。

結局のところ、マネジメントやっている私がやる仕事ではなかったのですが、私がLinuxカーネルのソースコードをみていました。いま思えば、うまくだまされていたのかもしれません。

大手メーカーで働いていると、非常に多くの人たちといっしょに仕事を進めていかなけばなりません。いろんな人たちがいるものですが、案外現場のレベルはこんなものだったりします。


Linuxカーネル解析入門[増補版]

画像8

ネットワーク(Ethernet)のデバイスドライバを理解できるようになる本です。当時、私が仕事でネットワークドライバをよくやっていたので、ノウハウと経験を記録として残しておきたかったのです。

2006年の本がベースで、2011年に改訂したものなので、カーネルバージョンは2.6と古いです。

C言語を知っていて、Linuxのアプリケーションのソースコードが読める人向けです。


おわりに

他にもたくさん本を書いてきたのですが、ここで紹介しなかった技術書はすべて絶版となっています。小説や漫画と比べると、技術書は寿命が短いですね。だからこそ、改訂をやりやすいというメリットがあります。


貴重な時間を使って最後まで読んでくださり、ありがとうございました。 よかったら、記事の拡散もお願いいたします。