私はオペレーティングシステムを書くことを計画していますが、オペレーティングシステムについてあまり知りません。私が学ぶために読むべき良いリソースや本はありますか?あなたの推奨事項は何ですか?
私が参加した大学では、Andrew Tannenbaumの Modern Operating Systems を使用しました。あなたが突き当たるであろう多くの設計決定に内在するトレードオフの明確な説明のためにそれを強くお勧めします。この本は、Minixの本よりも少し「公正でバランスの取れた」ものです。
彼の Linus Torvaldsとのネットで有名なフレーム戦争 にもかかわらず、彼の偏見のほとんどが本に出てこないので、この本をお勧めします。また、彼はかなりまともな作家であり、本は実際に面白いです。
この本は、LinuxのベースとなっているMinixの背後にいる主人であるTanenbaumによって書かれています。メモリ管理、ファイルシステム、プロセスなどの基本的なOSの概念の概要を提供します。この本の概念は、Minix OSの例と密接に結びついています。
そのようなことから始めるべきだと思います。
このまさにサイト上の同様のスレッド:
Os dev 独自のOSのコーディングを開始したい場合、ウェブサイトは情報が豊富です。
オペレーティングシステムの概念 は、大学で使用した本です。非常にいですが、内部の情報は十分に説明されています(基本的なメモリ管理から、実行するOSの決定方法やデッドロックを回避する方法まで)。かなり広い。
古いものの、これらの本は非常に優れています。
オペレーティングシステムの設計-XINUによるインターネットワーキング、第2巻
: http:// Operating System Design-Internetworking With XINU、Vol。 II
HelenOS をご覧ください。これは、完全に最新のOSを目指すゼロからのマイクロカーネルベースのOSです。 Disclamer、私は寄稿者です。Shellをゼロから開発しています。
HelenOSはia32/64、SPARCに移植されています。ARMなど、非常にうまく設計され、読みやすい。まだ初期段階ですが、マイクロカーネルを実際に利用できる1つの可能な設計マイクロカーネル実装(IPCなど)の多くの問題を設計して解決します。
また、クロスコンパイルに必要な適切なツールチェーンを自動的にセットアップするスクリプトも含まれています。構築が非常に簡単で、ほとんどのシミュレーター(QEMUなど)またはベアメタルで非常にうまく動作します。
また、L4、Minix3、およびGNU HURD(Machに基づく)、後者はマイクロカーネルを活用しようとする際の設計上の落とし穴の例です。
モノリシックルートに行きたい場合は、Linuxを勉強してください。
MIT Operating Systemsクラス をご覧になることを強くお勧めします。役立つ参考資料がたくさんあります。また、いろいろなラボ演習を試してみることができます(自動採点スクリプトを含むため、MIT学生である必要はありません)。
教科書http://ecx.images-Amazon.com/images/I/411E3CQQYZL._SS500_.jpg
私は大学時代にオペレーティングシステムとミドルウェア:制御された相互作用のサポートを使用しました。これはおそらくこのテーマに関する最高の教科書の1つです。
Richard A. Burgessによる独自の32ビットオペレーティングシステムの開発。ブートローダーについての詳細、それらの奇妙なメモリやプロセス管理レジスタの設定などについて詳しく説明しました。1996年に簡単なOSをゼロから書くことにひびが入ったと思ったのは素晴らしい読み返しでしたが、現在、最初の数世代のPentiumクラスのCPUのみを扱っています。
MINIX 3を調べる必要があります。これは、10,000行未満で記述されたオペレーティングシステムです。 Tanenbaumの書籍の1つを使用してOSがどのように機能するか、MINIX 3がどのように機能するかを理解することで、非常に良いアイデアを得ることができます。 Linuxに直行することもできますが、これは便利なタスクであり、実際に動作するOSを構築するのにそれほど多くの行を必要としないことを理解するのに役立つと思います。
私の記憶が正しければ、 Powerup to Bash Prompt HOWTO には、これに役立つと思われる多くの情報が含まれていました。 Linux From Scratch HOWTOの古いバージョンも同様でしたが、最近のバージョンでは削除されました。
また、 nderstanding the Linux Kernel にも多くの良い情報があります。
組み込みオペレーティングシステムを見て、組み込みOSを構築することをお勧めします。これは、最新のデスクトップCPUのオーバーヘッドなしで、コアの概念を処理します。
昨春、マルチタスクの組み込みOSを最終プロジェクトとして作成しましたが、想像以上に簡単です。
本とは別に、OS開発を学ぶ多くのサイトがあります
BrokenThorn Entertainment は、このWebサイトにあり、ベースからOS開発を学習します