「12ステップで作る組込みOS自作入門」を読んでOS実装してみた感想
本の簡単な紹介
やったのは半年以上前ですが一応一通り実装したので簡単にメモしときます。
この本ではH8マイコンボード上で動作する組込みOS(筆者独自製作)を12ステップで実装していきます。6ステップ目まではブートローダを作り、後半の6ステップでOSの実装をします。
(たしか)1ステップごとにソースコードを書く→動作確認という流れになるので飽きずに続けやすいと思います。内容は少し難しく用語も聞いたことがないものが多いですが、丁寧に説明されているのと、1ステップという区切りになっていて少しずつ理解できるのでなんとかなります。
ただ、後半部分は正直難しくて作り終わった今でも把握しきれていないところはあります。そのため後半部分の実装は1月くらいかけてゆっくりやりました。
6ステップ目までの内容は組み込み系の仕事に就いたばかりの人には結構役に立つ情報が多いのではないかなと思いました。elfファイルやリンカスクリプト、ブートローダなどのことがわかるようになります。
下の写真は実際に使ったH8マイコンです
日程感
全ステップの実装にかかった期間が2か月くらいで、前半は大体1ステップを1日~2日でやってました。
仕事終わでしんどい日は何もせずに寝ることも多々でしたので、早い人は1月もかからないと思います。学生の方だと一週間くらいで終わらせてる人もいました。
環境
本書はLinux系でもwindow系のOSでも開発できるようです。
理由は忘れてしまったのですが、自分はWindows10にVMWareをインストールしてubuntuで開発してました。(仮想マシンの知識がほぼないので、詳しい説明はできませんが。。)
一応困ったことがあったのでメモしときます。
------------------------------------------------------------------------------------------------
WindowsOSとVMWareには相性がありそう。
WindowsOSとVMWare,linuxOSの組み合わせによっては、linuxOSインストール中に停止してそれ以降進まなくなってしまう。
実際に起きた例
・Windows10
・VMware ver 14系
・ubuntu 18.04 LTS
⇒ubuntsのインスール中に固まった
対策
・VMWareを最新Verに変更(14⇒15)
これで再度ubuntu18.04をインストールすると成功した。
vmwareにubuntuをインストールする際は以下を参考にした。
VMware PlayerにUbuntu 18.04 LTSをインストールする方法 | Muroi Log
----------------------------------------------------------------------------------------------
本当は14系でも動いたかもしれないけど、詳しいことはわかりません。
その辺はまた別途知識を調達します。
8ステップ以降のこと
8ステップくらいから内容が徐々に濃くなってきて、私の頭では理解が難しくなってきました。なので、簡単な図を書いてなんとか理解を進めてみました。
正直モデル化のルールとかは詳しくないのでオリジナルでやっている部分しかないです。なので私しか理解できない図になっていると思いますが、勉強の仕方として図を書くというのは結構大事かなぁという気はします。
上の図は関数同士の呼び出し関係などをまとめてます。
こちらは、シーケンス図風のものを作って処理の流れを理解しようとしてみたやつです。あくまでシーケンス図"風"です。理解できればなんでもよいと思ってやりました。
終わりに
最初にも書きましたが組み込みやってる人なら一回やってみると苦しいけど楽しいかなと思います。OS実装そのものに興味がなくてもいろいろわかって面白いです。
自分は内容を忘れてきてしまったので冬休みとかにもう一度読み直したいですが、マイクロマウスもやりたいのでどうしようかなというところですが。
かかった金額は本とマイコンで1万くらいなのでお財布的にもそんなに厳しくないしおすすめです。