OS実装までのロードマップ

こんにちは、anti-doteです。

 

今日はどんな感じでOSの実装までやっていこうか考えたいと思います。

 

もし、こうしたほうがいい、とかお前の知識は間違っている、というコメントがありましたら、ぜひdenchu526@gmail.comの方に送ってください。とても喜びます。

 

全体的なロードマップは以下のように開発、実装をしていこうと思います。

FPGAを用いたCPUの開発

  • 周辺部の開発
  • メモリの開発
  • 画面出力部分の開発
  • 不揮発性メモリ部分の開発
  • CPUの開発
  • テスト用バイナリの開発、実行

OSの開発(CUI

これは、先人の神様の記事を参考にしてまずxv6を移植しようと思います。

nullpo-head.hateblo.jp

kw-udon.hatenablog.com

[xv6 #0] xv6ソースコードリーディングの準備 – 日曜研究室

https://peta.okechan.net/blog/archives/1210

その後、xv6の中身を理解、分解、再構築する流れで行きたいと思います。

そのため、以下のような流れになると思います。

て感じで進めていくつもりです。

特にOS以降はどのように開発するかが全く検討がついていません。

参考になる記事等もいろいろ探しながらやるつもりです。

はじめてのblog開設

どうも、こんにちは、anti-doteです。

人生で初めてblogをはじめてみることにしました。

 

このブログでは、FPGAを使ってCPUを作り、その上にOSを乗っけて動作させることを目指します。

 

N番煎じ感がすごいですが、それでも始めようと思ったきっかけは、このエントリを読んだからです。

time-space.kddi.com

ギャルが電子工作をやってみた、という内容のエントリです。

 

よく授業や趣味などでCPU、OSを実装した、という内容のエントリが多く回ってきます。その中で共通しているのがOSやCPUを作っている人って、なんかどこかぶっ飛んでいて、すごい人が多いように思います。

 

その現状に対して、上の記事にもあったとおり、もっと素人が気軽に作ってみてもいいんじゃないか、敷居が低くていいじゃないといった思いで本blogを作ろうと思いました。

例えば、高校生とか大学生とか、別に専門家じゃない人でも、「あ、なんとなくCPUとOSつくってみようかな?」と思ってはじめてみるぐらいのお手軽さでいいんじゃないか?そう思ってはじめました。

 

私の能力は、残念ながら一般ピーポーレベル以下ぐらいだと思います。

性格は飽きっぽく、継続能力が乏しく、文章の理解力、数学的思考能力は、ウンコレベルです。そのため、最後まで完結することは望み薄です。

過度な期待はしないでください(といっても、このエントリを見ている人はいないと思いますが。。。)

それでも(空中分解する公算大ですが...)、まあやるだけやってみるかということで始めてみたいと思います。

 

始めるにあたり、終了条件を決めていきます。

終了条件:

1.独自OSをFPGA上に実装したCPU上で動かす

 

ルール:

独自OSは最終的に全ての部分を自分の実装したものに置き換える

カーネルコンパイラ...)

 

 

現時点での知識量:

幸いにして、大学院でFPGAをやっていたため、verilog-HDLはかけます。また、だいたいOSはこんな感じで動いているのかな?というぐらいはわかります(が、その先がわかりません。)かなり見切り発車です。まあ、blog書いてみることに意味があるし多少はね?

 

方針:

だれでも作れるように、できるだけ、最低限の知識で済ませる。

これはきっちりやります。例えば、より難しい概念を使ってスマートに実現する方法と、少ない知識でいいけれども泥臭く実現する方法があるとしたら、後者を選ぶことにします。俺の頭が追いつかないから、仕方ないね。

 

次回からは、大体のロードマップを示していけたらなあと思います。

 

あと、今年の4月から社会人になるため、更新が途切れ途切れになることが予想されます。完結に10年ぐらいかかるかもしれません。繰り返しになりますが、過度な期待はしないでください。