「手探りでCUI OS作成に挑む」連載
この記事は「手探りでCUI OS作成に挑む」連載の一部です。
全体の目次は「手探りでCUI OS作成に挑む」連載目次を御覧下さい。
開発日記
計算機の仕組みを根底から理解し、そしてその結果を布教したくてこの連載を始めました。
大学で計算機について4年間学び、その後会社に入りjavaやsqlを使ってシステムの開発をしていましたが、実際に内部でどう動いているのか想像できず、又どう勉強したら良いのかも分からず、難しい本を買っては挫折を繰り返して来ました。
例えばHELLOWORLDのプログラム、なぜprintfを呼び出すだけで画面上に文字が表示されるのか。
この標準関数の中身はどうなっている、OSはなぜ動く、本に載っているような概念的なことではなく、実際にどう実装されているのかずっと知りたいが、調べようがない、そんなジレンマをずっと抱えていました。
そんな疑問は計算機に限った事ではありません。
例えばカレーを作るとして、ルーから作ったカレーは果たして自分が作ったと言えるのか。
ではルーから作ればよいのか?材料の小麦は自分が植えたものを使わないといけないのか?
でも小麦の種を植えて収穫した小麦は自分で作ったと言えるのか。
突き詰めれば原子、敷いては宇宙の真理に辿り着くのではないか、昔からそんな壮大な想像をよくしてきました。
最近AIが普及しだし、自分の疑問を直接聞けるようになり、知識が飛躍的に増えました。
ずっとアセンブリ言語に興味がありましたが、本を買ってもよく分からず2冊ほど捨てました。しかし今はAIに聞くと答えてくれます。
BIOSの仕組み、OSの仕組みなど、本を読んでも分からなかったことがどんどん分かるようになっていきました。
1時間に1回は何かしら聞いている気がします。
そこでCUIのOSを作ってみることを思いつきました。
本当はGUIで作れたら嬉しいですが、能力が追いつかないので一旦諦め、CUIからMSDOSのようなものを作ることにしました。
C言語などに頼ってしまうと、抽象化されてしまうところがあるので、全て自分で実装できるアセンブリ言語を使うことにしました。
BIOS割り込みは仕方なく使っていますが、痒い所に手が届かない感じがあるので、並行してBIOSも作っていくつもりです。
ある程度コードはできているのですがコンパイルが通っていません。
思ったより順調に進んでいるかなと思います。
AIがないとここまでこれませんでした。
自分で書いていないコードがたくさんあることに引け目を感じることもありました。
しかし少なくとも記事にする前に一行一行理解し、そして検証もし、理解した上で自分の言葉で解説をしています。
AIがなければこの土俵にすら立ててません。
OS30日本すら挫折した人間です。
ブートローダーすら書けなかったでしょう。
あるものは使ってそれで自分の学びになるのならよいと、割り切ってこれからもAIの力を借りながら開発を進めていきます。
読んでくれる人が1人でもいれば幸いです。