Linux driverの技術書で、とても良い本を見つけたのでご紹介します。洋書ですが・・。
ついでに私が知っている Linux kernel, driver 関係の書籍を紹介したいと思います。
もし良い書籍があったらコメントで教えていただけると嬉しいです。
まずはみつけた良書の出版社 Packt Publishing の紹介です。
Linuxの書籍を知りたい人は飛ばしてください。
Table of Contents
Packt Publishingとの出会い
仕事で組み込み系のLinuxドライバ開発を行っているのですが、あることで困って調べていたときに見つけたのがこの出版社の本でした。
Packt Publishingとは?
2004にイギリスで設立された出版社で、IT関係に特化して技術書やビデオを販売しているようです。電子書籍だけでなくちょっと高くなりますが印刷された本も販売しています。もちろん全て英語ですが・・。
Java, JS, Python, Ruby, Go, Rust といった言語系や、React, Vue と行ったフレームワーク、AWS, azure などクラウド/サーバ関係、AI, 機械学習、Fintechのような最近のトレンドの技術など幅広く揃っています。
その中に、あまり多くはありませんが、Linux driver, Linux system の書籍もありました。
Packt Publishing には、日本の出版社では考えられないような面白い特徴があります。
DRMフリー
まず、全ての電子書籍がDRMフリーです!! すごい!!
しかも、PDF, MOBI, EPUB など色々な形式でダウンロードすることが可能です。
所有しているどのデバイスでも読めますし、オフラインで読めることはもちろん、出版社が倒産したり方針転換しても読み続けられます。日本でDRMフリーで販売しているのはまだまだ少数派ですよね。
ただ、様々な形式でダウンロードできるのは、本家で購入したときのみなので注意です。
Packt の本は Amazon や GooglePlay でも購入できるのですが、PDFのみだったり、Kindle 専用だったりするので、電子書籍として購入するなら Packt のサイトで購入をおすすめします。
サブスクリプション契約で全ての本が読み放題
次に驚いたのが、$9.99/月の契約で全ての電子書籍が読み放題、動画が見放題!! ということです。
サブスクが充実しているのも今どきのビジネスモデルって感じですよね。
前述のようなPDFやEPUBなどでのダウンロードはできませんが(当たり前か・・)、試し読みではなく、全てが 読めてしまいます。1冊がだいたい$39くらいするので、$9.99で読み放題なのは非常にお得です。
私は 1 ヶ月だけ・・と思って契約しましたが、ズルズルと今でも契約し続けています。サブスクの罠ですね (^^;
5ヶ月間は$5/月にディスカウントといった新規契約向けのキャンペーンをやっていたり、2週間はキャンセル可能だったりするので、試しに契約して立ち読みのように本の中身を見てみると良いと思います。
英語の本ではありますが、Chromeを使えばブラウザの翻訳機能を使って日本語でも読むことができます。もちろん完全ではないですが、一昔前の機械翻訳からするとだいぶ普通の日本語になっていて、結構普通に読めますよ。
動画については字幕がないので、英語が苦手な私は見てもさっぱりわからないのですが、英語を聞き取れる方には非常に魅力的ではないかと思います。umedy などで講習の動画を購入すると1万円以上したりと非常に高いですからね。
$9.99/月のプランよりも1つ上の$99.99/年の1年契約では更に毎月1冊好きな電子書籍を無料でもらえるそうです。これは購入と同様に所有権を持ち、ダウンロード可能になるのだと思います。また、後述のセール期間でなくても対象書籍が $5 で購入できるそうです。詳しくは以下のページを参照ください。
毎日無料で1冊もらえる
アカウントさえ持っていれば、サブスク契約していなくても、毎日ランダムで1冊もらうことができます。太っ腹ですね。
トップページの Free Learning のリンクから取得することができます。これで入手した本は、購入した場合と同様に各形式でのダウンロードも可能です。
ランダムなので興味のない本も多いですが、たまに欲しいジャンルの本が出てくることもあるので、ちょこちょこチェックしてはゲットするようにしています。
たまにセールをやっている
今まさにセール期間なのですが、全ての電子書籍、動画が$5で購入できます!!!
今回は2021/12/14から2022/1/19までのようです。今日現在で残り4日なので欲しい人はお早めに!!
だいたい、毎年年末年始の1ヶ月間くらいセールをやっているようです。
Linuxドライバ開発でオススメの本
前置きが長くなりました。ここからオススメの本を紹介します。
Mastering Linux Device Driver Development (PacktPublishing) ※洋書
仕事で組み込み系のLinuxドライバ開発を行っているのですが、あることで困って調べていたときに見つけたのがこの本です。前述の PacktPublishing から出版されています。
日本の Amazonでも販売されています。紙の書籍を買いたいときはAmazonの方が手軽かもしれませんが、電子書籍はおそそらく Kindle 縛りになるため、前述したように本家のサイトで購入することをおすすめします。
2021年2月発売で、kernel 4.19をベースにした情報なので書籍にしてはかなり新しく、Regmap, 割り込みコントローラ, MFD, Common Clock Framework, Video4Linux2, NVMEM, PCIe, PowerManagement(Runtime-PM)など、あまり情報が多くない新しめのドライバフレームワークについても記載されていて結構貴重な情報源です。
ドライバ入門本によくある「キャラクタデバイスを作ってみましょう」みたいなドライバ入門ではなく、実際にI2Cのハードウェア用のドライバを作ったり、自社製PCIeデバイス向けのドライバを作ったりする時に必要な情報が書かれており、より実践的な内容です。初心者向けではありませんが、仕事では役に立つ内容と思います。
私はサブスク契約しているものの、サブスクを止めても読めるように、$5 セールの時に購入してしまいました。
前述したように英語が苦手でも、Chromeの翻訳機能を使えばある程度日本語で読むことができます。
動くメカニズムを図解&実験! Linux超入門 (CQ出版社)
2016年に発売された本で日本語の書籍では比較的新しい部類です。雑誌 Interface 誌の連載記事が元になっていることもあり、わかりやすい言葉で説明されていてとても読みやすい良書です。内容的には初級〜中級者向けでしょうか。連載記事であるため、対象 kernel バージョンがまちまちで kernel 3.8〜3.15 あたりの情報となりますが、2021年現在でも内容の大半はそのまま通用します。
2部構成になっており、第1部は組み込み Linux 入門といった内容で、第2部は高速化Tipsなど、より実践的な内容となっています。
第1部ではメモリ管理、スケジューラ、割り込みの動作、ファイルシステムなど Linux kernel 入門的な内容だけでなく、デバイスツリーなど組み込み向けの情報もあり、組み込みLinux入門としては非常に良い内容です。
駆け出しの頃にこういう本があったら良かったなー思える本で、新人にオススメできる本だったので紹介しました。
余談ですが、第2部の著者の海老原さんは昔から雑誌の記事を書かれていて、組込みLinuxの黎明期の頃から有名な方です。
代表を務めていらっしゃるシリコンリナックスの社名が「りぬくす工房」の頃から存じ上げていました。転職も考えたほどです。会社が名古屋ではなく東京近辺であったなら一度は面接に行っていたことでしょう。
Linux デバイスドライバ開発 第3版 (オライリー)
日本語でLinuxドライバの本で有名なものといえばこの本ですよね。
分厚くて難しくて何人の心を折ってきたのかわからないくらい初心者泣かせの本ですが、仕事でも結構お世話になった本です。2005年の出版当時は日本語で詳しい本はこれしかありませんでした。
発売されてから相当年月が経っていて kernel 2.4, 2.6 の頃の情報のため、正直あまり参考にならない部分もあります。ただ、基本的なエッセンスの部分などは今でも参考になりますし、今でもごく稀に開くことがあります。
英語版は第4版まで発売されていて kernel 3.2 の情報に更新されているようです。
英語の第4版は読んだことがないので読んでみたいものです。
ちなみに、英語の第3版は無料で公開されています。手元に本がないときにWebで読めるので覚えておくと便利です。
Mastering Embedded Linux Programming – Third Edition (PacktPublishing) ※洋書
こちらはドライバ開発ではなく、組み込みLinuxシステム開発といった趣の本ですが内容が良かったので紹介します。前述の PacktPublishing から出版されています。
2021年5月出版で kernel 5.4.10 を使っており、最新の内容となっています。
クロスコンパイラの作成方法、Kernelのビルドから、buildroot/Yoctoを使ったRootファイルシステムの作成、busyboxの活用、アプリ開発の仕方、デバッグの方法など、アプリまで含めた組み込みLinuxシステム全体を構築するのに必要な内容が凝縮されています。オライリーの「Linux 組み込みシステム構築」を最新にして、より実践的にした感じでしょうか。初級〜中級者向けです。
ターゲットボードとして Beagle Bone Black や Raspberry Pi を使っているので、実際に読者が手を動かして体験することができるため、とても良いテキストだと思います。ターゲットボードは1つに統一してもらえるとより学習しやすそうですが・・
buildroot/Yoctoでrootfsを作成するのは仕事でも行いますし、gdbを使ったアプリのデバッグ、ftrace によるトレースなども開発現場でよく使う内容ですので、実践的と感じました。
組み込みLinuxシステムの入門書としては幅広く、より実践的なのでこちらも新人にオススメです。
最後に
本のサブスクは初めてだったのですが、やってみたらとても良いですね。基本的に技術書は高価なので、私の場合はいきなり買うということはせずに、必ず立ち読みして良さそうなら買うということをしていたのですが、サブスクなら立ち読み感覚で全ての本が読めてしまいます。
Amazon Unlimited も Packt Publishing とほぼ同じ値段ですが、対象の本が少ないイメージがあるんですよね。Kindle対応の本すべてが読み放題ならいいんですけど。
洋書は全く読まないのですが、Packt Publishing はとても気に入りました。日本にも Packt Publishing のような新鋭の出版社が出てくるといいですね。