最近引っ越しましたPG_MANAです、家賃は25kです。
さて、その引っ越し作業中に人生初の献本をいただきました。
その名も「ゼロからのOS自作入門」です。

入れ替わりが激しいIT書の本棚に長らく重鎮として並んでいた「30日でできる! OS自作入門」の流れを汲んだ最新のPCで動くOSの自作本です。
というのも、「30日でできる! OS自作入門」(以後、30日OS自作本と呼ばせていただきます)の内容は古く、PS/2 マウス・キーボードや32bitプロテクトモードなど現在では使われてない機器や機能について取り扱っています。
これらの中にはすでに最新のPCでは搭載されてない機能も存在しており、本の内容を実機で試そうにも動かないなんてこともあります。それでも長く本棚に並んでいたのはプログラミング初心者にも分かりやすく、OSのことだけでなくプログラミングのエッセイも学べる大変優れた良書であるからだと思いますが、続編が出ていないのもまた事実でした。「作って理解するOS」という、これまた良書も出たのですが、やはりレガシーな内容を多く含んでいます。
話を戻すと「ゼロからのOS自作入門」の献本をいただいたのですが、実はこの本のテスト読者として参加しておりました。思い出せば一昨年の話ですが、著者のuchanさんからテスト読者としてのお誘いをいただきました。「OS自作本のテスト読者」というワードで二つ返事で了承したわけですが、その時に「献本がほしい」と言ったことを覚えています。そんな待ち望んだ献本を頂いたのですが、引っ越し作業の忙しさや本をもらった直後(約10分後)の祖父との最後のビデオ通話をして、その夜の訃報の哀愁感などで部屋の片隅でプチプチシートにくるまれて放置されており3日経ってやっとまじまじと見たところです。

ゼロからのOS自作入門の献本


表紙は30日OS自作本を想起させる緑色をベースとし、MikanOS(「ミカノス」と呼ぶようです)の「未完」と「蜜柑」をかけ合わせたことがわかる蜜柑の断面がデザインされております。
ちなみに、果汁飲料のパッケージでは果汁100%でないと果物の断面のイメージを使用してはいけないと公正取引委員会の規約で定められています。このことを踏まえるとこの表紙から「この本はMikan100%だよ!!つまり未完成率100%、本を読んでOSを作り上げ、完成させるのは君自身だ!!」という著者の熱い思いが読み取れますね(と深読みをしたつもりで得意げになってるPG_MANAであった。未完成率ってなんだろう)。
さらに「Intel 64モード」「UEFI BIOS起動」「USB3.0 ドライバ」などという現代の規格を表すワードが並んでいます。これはワクワクです。背表紙を見ると30日OS自作本の著者である川合さんからのメッセージや東工大教授である権藤先生のコメント、ツイッターg…吟遊詩人のヴァネロピさんのコメントがあり、どれも素晴らしいコメントです。

内容面では、この本はC++を使って記述されています。そのためクラスやnew演算子といったC言語にない用語が出てきます。C++をガチガチに理解していないとこの本を読み進めることはできない、ということでは決してありませんが完全の無知では少々厳しいかなと思います。C言語など手続き型言語しか触ったことがない、またはプログラミング初心者の方はC++の入門書やサイトで予習したり必要に応じて参照したりすれば良いでしょう。Javaなどの他言語でオブジェクト指向をなんとなくでも触った方は「C++ではこう書くのか」程度で対応できると思います。いずれにせよ、できる限りのフォローアップはされていますのでそれを読んで理解できないようでしたら適宜検索するか「そいうものもあるのか」と読み飛ばしても構わないと思います。
大変分厚い本ですが、1章から丁寧にステップアップ方式で書かれています。ここは30日OS自作本と同じで、これまたこの本も30日で読めるようになっています。とはいえ、30日で読み切る必要もなく自分のペースで読んで構わないと思います。
最初の数日はEDK2(UEFIの開発環境です)を用いてブートローダを作成しています。この部分はC言語で作成されています。ここではOS本体のELFのヘッダーを解析してメモリ上に展開しております。30日OS自作本ではフロッピーディスクのセクタ数を指定して読み込んでいたのでOSを改造して大きなバイナリを内蔵すると不具合が出てましたが、そのような心配はもうありません。
そこからはフレームバッファに縞模様を書き込んだりmakeを導入したりと30日OS自作本を読んだことがある方は懐かしく感じるような内容を実践していきます。
この後も30日OS自作本の流れを大まかに汲んだ進行となっています。後半になるとページングを用いたデマンドページングやコピーオンライトなど30日OS自作本にはない内容が出てきます。このような内容の濃い本となっておりますが、ステップアップで書かれているので一つ一つ丁寧に理解できると思います。

テスト読者として執筆途中の原稿を読んだとき、「もう完璧じゃん…」と思ったのを覚えております。しかし30日OS自作本を読んだときの記憶を思い出し、できる限りのレビューをさせていただきました。思い出せば、30日OS自作本を読んでいたときはちょうどLinuxインストールなどにも手を出したところでBIOSの設定をいじり起動しなくなったことがあり、OS自作ではなるべくQEMUを使うようになったなどの覚えがあります。OS自作初心者の段階で自作OS用PCの購入はやはり躊躇するでしょうし、普段使いのPCのBIOSの設定は慎重に行うように促したほうが良いのではないか、という意見をさせていただいたところ恐縮にも原稿に反映してくださりました。すごく嬉しい。さらに謝辞にも載せていただきました、本当に光栄です。

長々と書きましたが、要約するとすっごい良書です。一ヶ月も読める本が4kで買えます。家賃5日分で30日分の本が買えます、これはお買い得です。
ぜひお手にとっていただければと思います。

投稿者: PG_MANA

支離滅裂な自称プログラマー。C,C++,Rust,Zen,JavaScript,PHP,HTML,CSS,OS自作,openSUSE,Arch,Solus,ラノベ,アニメ,鉄道 なんか色々してる人 #seccamp 17 19 #OtakuAssembly