3日坊主
3日坊主とはよく言ったものです。
記事を3つ書いてそのままとなり、はや1年。
実は新しいLinuxの教科書は読破していました。
ただ、モチベーションの問題か、
バックヤードには記事をストックしつつも公開できていませんでした。
しかもLinuxをがっつり使っていたわけではないのでほとんど覚えていない。
まあ、忘れちゃった分はまたやり直せばいいんです。
前より早く理解や覚えることもできるでしょうし…。
今現在は世の中で新型コロナウイルスが蔓延しています。
ステイホームの一環で「12ステップで作る組込みOS自作入門」の学習が終わったので記事にしようと思います。
組込みシステムのことはある程度知っているつもりでしたが、
1から作る (ブートローダから作る) 本書はなかなか面白かったです。
解説もかなり丁寧に書かれている印象で俗にいう良書に当たるのでしょう。
親切丁寧に前のステップで出てきた内容への参照ページも書かれています。
強いて言うならば、ブートローダとOSでコードを共通化している部分があるので
ちょっとわかりにくくなっている部分があるかもしれません。
(著者も指摘していたと思いますがデッドコードがあります。)
私は紙と頭の中である程度理解がまとまったので実施しませんでしたが、
共通コードから要らないコードを削除することで
もしかしたら理解がしやすくなるかもしれません。
書籍の紹介はさておき8thステップが難しかったです。
私はプログラムの流れなどを紙に書きだしてようやく理解ができました…。
(おそらくただのC言語だったらそんなに難しくないんでしょうが、
アセンブリ言語で書かれている部分との絡みが難しかったんだと思います。)
ネットでいくつか解説はあったんですが、
表面上の説明というか、
大枠の説明というか、
わかっている人の説明という感じで、
いまいちプログラムの動きとのイメージが繋がらなかったです。
学習済みの皆さんは難なく乗り越えられたんでしょうか、
一読して理解できているんだったらすごいなあ…。
ともあれアウトプットは大事なので、
7thステップ (8thステップの前知識的なもん) と8thステップを
なるべく図を交えた解説を書こうと思います。
目標は今週末までに7thステップと8thステップの解説を書く。
人は締め切りがなければなかなか動けないので (締め切りがあれば動くとは誰も言っていませんが) 。
P.S.
組込みOSの自作には (というよりはプログラミング全般ですが)
環境づくりが避けて通れませんが結構大変です。
OSを作り始める前に心が折れても仕方ないので著者の方が用意してくださった
環境構築済みのVMイメージを利用させて頂くのが良いと思います。
(慣れている方は自分で環境作ってください、どうぞ)
リンクはこちら。