先日nutaさんによって書かれた**Writing an OS in 1,000 Lines** という資料をもとに自作OSを始めた.

大学で情報科学を専攻している身として, 計算機の最重要コンポーネントの一つであるOSは様々なソフトウェアの中でも特別視している節があり, 自作OSには憧れがあった.

その一方, 現代で使われているLinuxをはじめとするOSは非常に複雑であり, また環境構築のむずかしさなどからOSの実装に踏み入れられないでいた.

そんな中X(旧Twitter)で**Writing an OS in 1,000 Lines** の存在を知った.

序文を読んだところ, 今まで見かけたどんな自作OS本よりも敷居が低そうだと思い写経をし始めた.

その結果序文の通り3日程度で以下のような自作OSを作ることができ, 拡張機能の実装なども進めることができた.

https://github.com/speed1313/cos

OSを実装する過程では, OS, 特にカーネルがどのような仕組みで動いているのか実装レベルで知ることができ, カーネルを見る目がかなり変わった.

本稿では自作OSを始めた瞬間の今でしか書けないであろう, 自作OSをする前後で変わった「OSを見る目」について述べる.

<aside> 💡 Attention OSとカーネルをほとんど同義語として使っていることに注意.

OS自作を始めたばかりで私の認識に誤りがあると思うので, 見つけたらぜひ教えてください.

</aside>

OS自作前の認識

Wikipediaに載っているOperating Systemの図にあるような, まさにApplicationとHardwareの間に位置する仲介人といったイメージ.

Operating system

常に起動し続け, アプリケーションの面倒を下から支える.