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