学習に十分なシンプルなOSはありますか?[閉まっている]


19

オペレーティングシステムが舞台裏でどのように機能するかを本当に理解したいと思います。しかし、そこにあるほとんどのオープンソースOSのカーネルは、フルタイムのプログラマーが学習するのであっても、学習目的には複雑すぎると思います。学習目的のためだけに作られた「シンプルな」OSはありますか?




私はこれを検索で見つけましたが、試したことはありません。pdos.csail.mit.edu/6.828/2012/xv6.html明らかに、学習ツールとしてUnix v6を置き換えるために書かれたようです。
ctrl-alt-delor 14

回答:


28

Andrew TanenbaumのMinix(「オペレーティングシステムの設計と実装」を参照)は、まさにこのような目的のためのものです。もう1つの(かなり古い)可能性は、Unix V6(完全なUnixですが、まだ簡単に学習できるほど十分に古い十分なバージョン)をカバーするLion's Bookを読むことです。後者の明らかな欠点は、使用するCがかなり時代遅れであるため、かなり経験豊富なCプログラマーでさえ、読みにくい部分を見つける可能性があり、コードを消化する最新のコンパイラーを計画できないことです。


7
MINIX 3は教育ツールでなく、MINIX 3マイクロカーネルは間違いなく理解しにくいものです。Tanenbaumによると、MINIX 1のみが教育ツールでした。
sakisk


7

Minixは素晴らしい選択肢であり、他の回答の1つで説明されています。

新u

XINU-XINU Is Not Unixも検討してください。

また、逆スペルのUNIXです。

ダグラス・コーマーの著書で、よく書かれていて、説明がよく、範囲が広いと思ったものがあります。

Embedded Xinuと、Xinuでのティーチングに関するWebサイトがあります。

http://xinu.mscs.mu.edu/Teaching_With_Xinu

FreeRTOS

最近多くの愛を集めているもう1つの小さなOSは、FreeRTOSです。ほとんどすべてで実行されます。火星から来て、それが実行されないプロセッサまたは評価ボードを持っている場合、約10ページのドキュメントを読み、割り込み、タイマー、およびUARTに関連する約5つのファイルを変更して実行できます。

http://www.freertos.org/

彼らは、31のアーキテクチャと18のツールチェーンをサポートしていると主張しています。2009年後半の私の経験は素晴らしかったし、それ以来ずっと改善されたと聞いています。

その他のリンク

あなたに役立つ情報があるかもしれない同様の質問はここにあります:

/programming/254149/how-do-you-write-a-basic-operating-system

Linuxや他の多くのオペレーティングシステムの設計はUNIXの影響を受けているため、元のデザイナー(Kernigan、Richie、Thompsonなど)が有益であり、ソースから設計のアイデアを得るこのビデオ。

http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System

古典的な、しかししばしば改訂されるオペレーティングシステムのテキストブックがあります。

Silberschatz、Galvin、Gagne:オペレーティングシステムのコンセプト、第7版

新しいエディションもあります。書籍販売業者を通じて書籍にリンクすることはめったにありませんが、プレビューは非常に寛大なので、オペレーティングシステムの詳細については、以下をご覧ください。

http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720


3

私の大学では、NachOSを学びました。それは学習のための素晴らしいオープンソースOSです。また、学習のためにNachOSで多くの大学の演習を見つけることができます。

Nachosは、学部生および潜在的に卒業生のレベルのオペレーティングシステムコースを教えるための教育ソフトウェアです。Nachosディストリビューションには次のものが含まれます。

  • 概要ペーパー
  • 動作中のオペレーティングシステムのシンプルなベースラインコード
  • 一般的なパソコン/ワークステーションのサンプル割り当て用のシミュレーター
  • C ++入門書(NachosはC ++の学習しやすいサブセットで書かれており、この入門書はCプログラマーにサブセットを教えるのに役立ちます)

割り当ては、スレッドと同時実行、マルチプログラミング、システムコール、仮想メモリ、ソフトウェアロードTLB、ファイルシステム、ネットワークプロトコル、リモートプロシージャコール、分散システムなど、最新のオペレーティングシステムのすべての領域を示し、調査します。


0

KOS(Kid OD)とSOS(Simple OS)をご覧ください。どちらもOSの内部を教えるように設計されたオペレーティングシステムです。KOSはSOSの「父」であり、KOSから得た経験に基づいて構築されました。

これらのプロジェクトは、Linux Magazine Franceの多くの教育記事の基礎でした。

KOS Webサイトでは、他のシンプルOSのソースをダウンロードできるページも見つけることができます。



0

すべてのCP / Mおよび初期のDOSバージョンを理解できます。その後、物事は制御不能になり、誰ももうすべてを知りません。OSがどのように機能するかを学習するために設計されたものではありませんが、多くの人 OSからそれを学習しました。


1
回答をバックアップするために、いくつかの参照または追加の事例証拠を追加することを検討してください。または、XバージョンがYバージョンよりも理解しやすい理由を示すために、さらに詳細を追加します。

-1

アセンブラーでのプログラミングに関する本を読んでください。あなたはそれに習熟する必要はありませんが、それはあなたにコンピュータの内部の働きの多くを教えてくれます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.