自作OS Advent Calendar 2020 の16日目の記事になります。
2020年を振り返って
今年は色々なオフラインイベントに参加したいな、と思っていたのですが... コロナの影響でほとんどのイベントがオンライン化、 合わせて春先に越してからの物件トラブルでインターネット回線を敷設することが出来ず... どのイベントにも参加できずじまいでした...(惨敗)。
12月に入ってようやく(10ヶ月ぶりに)インターネット回線を供給されたので ぼちぼちオンラインイベントに参加するかも(?)です。
OS自作入門本
低レイヤー周りの知識を得たくて2年前に購入して始めたのですが、 2019年は3章までやった後に色々と整理がつかなくなり辞めてしまっていました。 その後、なんとか今年はじめに再開し、週に1章程度のペースで進めて11月に30章を終えました。 何時何をしたかは slideshare にまとめています(このブログにも残しています)。
一通り終えて思ったのは、自分が何を知らないのか明確が明確になったなということです。
漠然とPCについて知らないからとりあえずやってみようから、 あの仕組みがわからないからやってみように変わったのが小さな進歩かなと思います。 OSの実装に関しても興味あることと無いことがはっきり区別がついてきたように感じます (CPUの上に何かしていることに興味はあるが、それが外の電気信号とかの話になるとそんなに興味ないな、とか)
中盤よくわからずに進めてtypo連発してわけがわからなくなったりしていたのですが、 (良くも悪くも)デバッグして乗り越えた辺りから、楽しいなと思えたので 自分はこういう分野の話題が好きなのだなと再認識出来ました。
次にやること
OS本を終えたら次は '自作エミュレータで学ぶx86アーキテクチャ' という本を、せっかくなのでRustでやります... という内容をここに書こうと思っていたんですが、 この記事を書く前に終えてしまいました... なので今は COMET2という仮想コンピュータのエミュレータを自作しています (すでに多くの人が作成してはいますがそこはご愛嬌)。
OS本はそのまま本の内容をなぞっただけ、x86はRustでやってみる(少し工夫する) だったので、次の段階として自分で1から実装してみるというのが良いんじゃないかと言うことで COMET2のエミュレータ実装を選んでいます。
COMET2エミュレータについては1月中に公開するつもりでいます。
2021年
とにかくCSの基本知識が欠落していると感じたので、 そのへんの知識を実際に試して埋めつつ RustでのOS実装をやる予定です (せっかくM1機を買ったので、動かしてみたいですよね)。
来年は今年の2倍のIOを目指します(元気があれば出来るはず)。