私がずっとやりたかったことの 1 つは、独自のオペレーティング システム (必ずしも Linux や Windows のような凝ったものではなく、私がすでに作成している単純なブート ローダーよりも優れたもの) を開発することです。
単純な「Hello World」OS の作成以上のリソースやガイドを見つけるのに苦労しています。
おそらく多くの人が Linux や BSD を検討することを勧めるだろうことは分かっていますが、そのようなシステムのコード ベースは (おそらく) 非常に大きいため、どこから始めればよいのかわかりません。
助言がありますか?
更新: Google 経由でこの投稿にたどり着いた人のために、OS 開発リソースをいくつか紹介します。
独自のオペレーティングシステムを作成する(ありがとう、アダム)
Linux をゼロから学ぶ(ありがとう、ジョン)
SharpOS (C# オペレーティング システム)(lomaxxさん、ありがとう)
本物の(ありがとう、スティーブ)
ぬか(ありがとう、スティーブ)
自分だけのUNIXクローンOSを作る(ありがとう、スティーブ)
その他のリソース:
私は素晴らしいリソースを見つけましたマイクOS「MikeOS は、シンプルな OS がどのように動作するかを示す学習ツールです。BIOS アクセスに 16 ビット リアル モードを使用するため、複雑なドライバーは必要ありません。」
2008年11月14日更新
私はいくつかのリソースを見つけましたFreebyte のガイド...無料および非無料オペレーティング システムOSKit や ExOS ライブラリなどのキットにリンクします。これらは、OS 開発を始めるのに非常に役立つようです。
2009年2月23日更新
リック東京推奨ナノスこの質問Nanoos は C++ で書かれた OS です。
2009年3月9日更新
Dinah は、OS 開発者を目指す人々に関する Stack Overflow の有益なディスカッションをいくつか提供してくれました。カスタムオペレーティングシステムの作成における障害OSの開発中に遭遇する可能性のある落とし穴について説明します。OS開発より一般的な議論です。
2009年7月9日更新
LBはリンクを提供したピントスプロジェクトOS開発を学ぶ学生向けに設計された教育用OSです。
2009 年 7 月 27 日更新 (まだ順調です!)
私は偶然オンラインOSコースバークレー校から23回の講義が行われます。
トムOSはのフォークですマイクOS小さなメモリ マネージャーとマウス サポートが含まれています。MikeOS と同様に、教育プロジェクトとして設計されています。NASM アセンブラで記述されています。
2009年8月4日更新
私は見つけたスライドやその他の資料上記のオンラインバークレー講義に合わせて行われます。
2009年8月23日更新
全てosdev タグの付いた質問スタックオーバーフローで
OS/161は、シミュレートされたハードウェア上で実行される C で書かれた学術 OS です。この OS は Nachos に似ています。Novelocrat に感謝します!
タングレナのおすすめhttp://en.wikipedia.org/wiki/MicroC/OS-II組み込みシステム向けに設計されたOSである。付属書籍同じように。
Linuxカーネル開発Anders は Robert Love 著の Linux カーネルに関する記事を推薦しています。これは「Linux カーネルに関する内部者の見解」として広く評価されています。
2009年9月18日更新
ティム・S・ヴァン・ハーレン氏に教えていただき、ありがとうございます宇宙完全に C# で書かれた OS。
tgiphilが語るマネージド オペレーティング システム アライアンス (MOSA) フレームワーク「共通中間言語に基づく管理対象オペレーティング システムの開発を促進するためのツール、仕様、およびソース コードのセット」
2009年9月24日更新
スティーブはVisual Studioを使用したWindows開発のためのリソースをいくつか見つけました。BrokenThorn のガイド VS 2005 でのセットアップまたはOSDev の VS セクション。
2012年9月5日更新
kerneltrap.orgは利用できなくなりました。Linuxカーネルv0.01は以下から入手できます。カーネル.org
2012年12月21日更新基本的なOS開発チュートリアル学期のプロジェクトとして設計されています。基本的なコンポーネントを使用して OS を構築する方法をガイドします。初心者にとって非常に良いスタートです。関連紙ありがとう、Srujan!
2013年11月15日更新
シンプルなオペレーティングシステムをゼロから作成するありがとう、ジェームズ・ムーア!
2013年12月8日更新
コンピュータのオペレーティングシステムの作り方ありがとうddtoni!
2014年3月18日更新
ToAruOSはGUIを含め、ほぼゼロから構築されたOSです
2016年9月12日更新
2016年12月10日更新
シンプルなオペレーティングシステムをゼロから作成する(ありがとう @Tyler C)
ベストアンサー1
この後にはたくさんのリンクがあります概要X86 プラットフォーム用の OS の作成に何が必要なのかを説明します。
最も有望と思われるリンク(www.nondot.org/sabre/os/articles)は利用できなくなっているので、Archive.org版それを読むために。
結局のところ、ブートローダはカーネルのマシン コードを取得してメモリに配置し、そこにジャンプします。カーネルには任意のマシン コードを配置できますが、ほとんどの C プログラムは OS を前提としているため、コンパイラに OS がすべて含まれないことを伝えるか、ブートローダが一部を作成する必要があります。
その後、カーネルがすべての面倒な作業を実行します。これが、必要なサンプル カーネルだと思います。ただし、「Hello world」と表示するカーネルから、コマンド インタープリターをロードし、ディスク サービスを提供し、プログラムをロードして管理するカーネルになるまでには、まだ長い道のりがあります。
ACMの古い文献にアクセスするために購読を検討してもよいでしょう。初期のコンピューティング雑誌には、80年代後半から90年代前半にかけて、代替OSを作成するこの時代の本も絶版になっているものが多いようです。それらの雑誌の索引(そのサイトで入手できます。雑誌名の近くの「索引」をクリックしてください)を調べて、持っている人がいないか尋ねてみると、同じ情報を無料で入手できるかもしれません。
最後に、Usenet は死んでいる (インターネットの終末を予言する人たちがそう言っている) ことは知っていますが、あの時代の頑固な年老いた専門家の多くがまだそこに住んでいます。Google グループを検索してください (dejanews の古いリポジトリがあります)。おそらく、今あなたが尋ねているのと同じ質問を 10 年か 1.5 年前にしている人がたくさん見つかるでしょう。Linus Torvalds が Linux を最初に開発していたときに、彼が助けを求めて何度も質問したことに出会うかもしれません。検索しても何も出てこない場合は、適切なニュースグループで質問してください (おそらく comp.arch で始まりますが、名前に OS が含まれているものを検索してください)。