私はコーディングが大好きですが、現在はWeb開発のみを行っています。ユニークで楽しく、ウェブプログラミングとはまったく異なる何かをしたいと思います。
ええ、これは馬鹿げた質問かもしれませんが、本当にシンプルなオペレーティングシステムを構築するのは本当にクールだと思います。だから失礼なことは言わないでください。次のことを知りたいだけです。
*どこから始めれば? *リソース*どの言語を使用しますか?
私はcmdベースのようなシンプルなものを考えていました
オペレーティングシステムの設計に関する絶対的な「聖書」は、アンドリュータネンバウムの オペレーティングシステムの設計と実装 -「ドラゴン」の本です:-)
他にも多くの参考文献があります。 独自の32ビットオペレーティングシステムの開発 。
Microsoft Researchには、マネージコード(C#)で Singularity と呼ばれるオペレーティングシステムを作成するプロジェクトがあります。
しかし、完全なOSを書くことは簡単な作業でも簡単な作業でもありません。
Webdevからバックエンドに切り替えるのは非常にイライラするでしょう。
まず、ボード/ハードウェア/アーキテクチャを選択します-マシンで実行できるOSシミュレーターを使用することもできます。 OSを構築するCPUアーキテクチャに応じて、Cといくつかのアセンブリ(Intel、MIPS、ARM、coldfire/motorolla 68k)を学びます。
C++でOSを作成し、それを自動的にアセンブリに変換できるC++パッケージを見てきましたが、それらを適切に変換するのは非常に頭痛の種です。私はそれらをお勧めしません。
コードを書き始める前に、OSを設計する必要があります。たぶん、いくつかの図も含めて50ページの紙にデザインの決定を入れてください。
考慮すべき点:
message envelopes {sender process id, receiver process id, message type, message}
の形式)EDIT-URL update独自の32ビットオペレーティングシステムの開発は絶版ですが、オンラインで利用可能です: http://www.ipdatacorp .com/mmurtl/mmurtlv1.pdf
開始するためのリンクを次に示します。
http://www.brokenthorn.com/Resources
http://wiki.osdev.org/Main_Page/
GCCとNASMが必要です。 GASMも使用できると思います。
BIOS割り込みを学習します。
また、APIC A20 Gate PCI&PCIExなどの一連の標準を入手する前に、それらのいずれかを取得しようとしています。多少の変更が必要です。 Intel&AMD-これらを見てください。多くの情報が得られます。 VGA ATA&SATAなど...たくさんあります。
また、bochsおよびqemuのようなエミュレーターを入手します。
コンピューターがどのように機能するか、つまり、どのように起動するかを理解します。
そこにはたくさんの情報があります、あなたはあなたの研究をしなければなりません。
幸運を。
Tanenbaumsの Modern operating systems のようないくつかのオペレーティングシステムの本を読むことから始めます。
これにより、オペレーティングシステムを作成するために解決する必要がある問題を理解できます。
あなたがそれらをグーグルで検索するとき、かなりのリソースがありますが、私はあなたにnotをお勧めします!
たとえ簡単なものであっても、OSを作成するには、コンピューターが低レベルでどのように機能するかを十分に理解する必要があります。また、少なくともCまたはC++、できればアセンブリも必要です。これらのスキルがなければ、退屈でイライラするプロジェクトになります。熟練したCプログラマーにとっても困難でやりがいがあります。
OSの記述は困難です。 OS開発者になる前に開発者になることをお勧めします。基本的なオペレーティングシステムを作成するには、C/C++とアセンブリを知る必要があります。 OSの作成方法、つまりカーネルの種類、リアルモードまたは保護モード、メモリマップなどを考える必要があります。
Andrew S. Tanenbaum workを探索し始めた方がいいと思います。