独自のx86オペレーティングシステムを最初から作成するために調査するのに最適なオペレーティングシステムは何ですか?
9 に答える
Minixはまさにその目的のために作成されたと思います。
楽しむ!
x86カーネルのバージョンを最初から作成しました。(私のOSクラスプロジェクトの場合)そしてそれは私がおそらく説明することができなかった経験でした。上記のリンクで貴重なリソースを見つけることができます。
大学のOSクラスでは、Nachos OSプロジェクトを使用して、それを実装しました。私はC++バージョンを作成しましたが、これのJavaポートもあると思います。大変な作業でしたが、とても面白くてたくさんのことを学んだことを覚えています。
それはすべて、オペレーティングシステムをどのように機能させるかによって異なります。マイクロカーネルが必要な場合は、おそらくMinix 3を学習する必要があります。モノリシックカーネルが必要な場合は、現在のLinuxカーネルから始めるのが適切です(ヒント:arch /を参照) x86 / boot、そこには非常に興味深いコードがいくつかあります)。ただし、個人的には、IntelとAMDのマニュアルを読んでから、osdev.orgフォーラムとwikiを少し読んでください。彼らは勉強するためのたくさんのコードを持っており、一般的に初心者に役立ちます。
正直なところ、おそらくx86アーキテクチャ、あるいはオペレーティングシステムから始めるのではなく、基本的なFox11開発キットのような8ビットスターターキットのようなものから始める必要があります。大学では、M68HC11プロセッサ(キットに含まれているもの)用にアセンブリ言語で最初の(そして唯一の)OSを作成しました。
本当にゼロから独自のOSを構築したいのであれば、長い道のりがあります。
多くの異なるオペレーティングシステムソース、間違いなくosdevベアボーンチュートリアル、OS調査に関するホワイトペーパー、およびターゲットハードウェアに関するドキュメントを読むための最良の方法だと思います。
個人的には、かなり良いC++で書かれたl4-kaピスタチオカーネルを見ることをお勧めします。jimixや血統のように、間違いなくチェックする価値のある小さなプロジェクトも複数あります。
osdevフォーラムとwikiに固執するのが最善です-そこにはすでに答えられた多くの情報があります-http://forum.osdev.orgとhttp://wiki.osdev.orgを参照してください
しばらく前にこの記事を読みました。あなたはそれが面白いと思うかもしれません。この男は、OSの概念を教えるという目的のために、当時MINIXを書きました。ですから、勉強するのはおそらく良いシンプルなOSでしょう。http://www.cs.vu.nl/~ast/brown/
しかし、マーティンとコーリーが述べたように、噛むのは大きな塊です。
廃止されたOSを研究する意味はあまりありません。これは、寿命が長い傾向があるため、現在のOSのほとんどすべてです。Singularityのようないくつかの新鮮なアイデアを見てください(ただし、試行錯誤に基づいています)