[解決済み] オペレーティングシステムの開発を始めるためのリソースは?[クローズド]
質問
私がいつもやりたいと思っていることのひとつに、非常に独自のオペレーティングシステムを開発することがあります(LinuxやWindowsのような派手さは必要ありませんが、すでにやったことのある単純なブートローダーよりはましです)。
シンプルな "Hello World" OS を書く以上のリソースやガイドを見つけるのに苦労しています。
多くの人が Linux や BSD を見るように勧めるだろうけど、そのようなシステムのコードベースは (おそらく) とても大きいので、どこから始めればいいのかわからないんだ。
何かお勧めはありますか?
更新:Googleでこの記事にたどり着いた人のために、OSの開発リソースをいくつか紹介します。
-
独自のオペレーティングシステムを構築する (アダムに感謝)
-
リナックス・フロム・スクラッチ (ジョンさんありがとうございます)
-
SharpOS(C#オペレーティングシステム) (lomaxxさんありがとうございます)
-
OS Dev Wiki と フォーラム (スティーブさんありがとうございます)
-
BonaFide (スティーブさんありがとうございます)
-
ブラン (スティーブさんありがとうございました。)
-
おもちゃのUNIXクローンOSを自作する (Steveさんありがとうございます)
その他の資料
という素敵なリソースを発見しました。 マイクロス MikeOSは、シンプルなOSがどのように動作するかを示す学習ツールです。BIOSアクセスに16ビットリアルモードを使用しているので、複雑なドライバは必要ありません"。
2008年11月14日更新
でいくつかのリソースを見つけました。 Freebyte's Guide to...Free and non-free Operating Systems(フリーと非フリーのオペレーティング・システム OSKit や ExOS library などのキットにリンクしています。 これらは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コース Berkleyの23の講義を収録しています。
トム・オーエス のフォークです。 マイクロス 小さなメモリマネージャとマウスサポートを含んでいます。MikeOSと同様、教育プロジェクトとして設計されています。 NASMアセンブラで書かれています。
2009年8月4日更新
を発見しました。 スライド等 バークレー校のオンライン講義を受講しています。
2009年8月23日更新
すべて osdevタグの付いた質問 on stackoverflow
OS/161 は、模擬ハードウェア上で動作する、c言語で書かれた学術用OSです。 このOSは、Nachosに似ています。 Novelocratさん、ありがとうございます。
タングレナのおすすめ http://en.wikipedia.org/wiki/MicroC/OS-II は、組み込みシステム用に設計されたOSです。 があります。 コンパニオンブック にも対応しています。
Linuxカーネル開発 ロバート・ラブ著は、アンダースからの提案です。 これは Linux カーネルについての広く称賛されたインサイダールックです。
2009年9月18日更新
Tim S. Van Harenさん、教えてくれてありがとうございます。 コスモス は、すべてc#で書かれたOSです。
tgiphilが教えてくれたのは マネージド・オペレーティング・システム・アライアンス(MOSA)フレームワーク Common Intermediate LanguageをベースとしたマネージドOSの開発を促進するためのツール、仕様、ソースコードのセットです。
2009年9月24日更新
Visual Studioを使ったWindowsでの開発について、Steveがいくつかのリソースを発見しました。 BrokenThornのガイドでは、VS 2005でセットアップしています。 または OSDevのVSセクション .
2012年9月5日更新
kerneltrap.org は廃止されました。 linux kernel v0.01は以下から入手可能です。 kernel.org
更新日:2012年12月21日 基本的なOSの開発 チュートリアル 一学期のプロジェクトとして設計されています。基本的なコンポーネントでOSを構築するためのガイドです。初心者の方にはとても良いスタートとなるでしょう。関連 紙 . Srujanさん、ありがとうございます。
2013年11月15日更新
簡単なオペレーティングシステムをゼロから作る . James Mooreさん、ありがとうございます。
2013年12月8日更新
コンピュータのオペレーティングシステムの作り方 ddtoniさんありがとうございます。
更新日:2014年3月18日
2016年9月12日更新
2016年12月10日更新
シンプルなオペレーティングシステムを書く -from Scratch (タイラーCさん、ありがとうございました)
解決するには?
この後、たくさんのリンクがあります 概要 X86プラットフォーム用のOSを書くのに何が必要なのかについて。
最も有望と思われるリンク先(www.nondot.org/sabre/os/articles)は、もう利用できませんので、以下のリンク先を詮索してください。 Archive.orgバージョン を読んでみてください。
結局、ブートローダはカーネルのマシンコードを受け取ってメモリに置き、そこにジャンプしているのです。 カーネルには好きなマシンコードを入れることができますが、ほとんどのCプログラムはOSを期待しているので、コンパイラにそのすべてを持たないように伝えるか、ブートローダがその一部を作成しなければなりません。
そして、カーネルがすべての重労働をこなし、あなたが望む例のカーネルになるのではないでしょうか。 しかし、「Hello world"」と言うだけのカーネルから、コマンドインタプリタをロードし、ディスクサービスを提供し、プログラムをロードして管理するカーネルになるには、まだまだ長い道のりがあります。
80年代後半から90年代前半の初期のコンピュータ雑誌には、以下のような記事がたくさん掲載されています。 代替OSの作成 . この時代の本も絶版になっているものがありそうです。 これらの雑誌の索引を調べて(このサイトでは、雑誌名の近くにある "index"をクリックします)、コピーを持っている人を尋ねれば、同じ情報を無料で手に入れられるかもしれません。
最後に、ユースネットは死んだと言われていますが(インターネットの運命の予言者がそう言っているからです)、その時代のごつい老専門家の多くがまだそこに住んでいることに気づくはずです。 google グループを検索してみてください(dejanews の古いリポジトリがあります)。 Linus Torvaldsが元々Linuxを開発していたので、彼の多くの問い合わせに出くわすかもしれません。 検索しても何も出てこない場合は、適切なニュースグループ(おそらく comp.arch で始まるでしょうが、名前に OS が含まれるものを検索してください)で質問してみてください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン