• ベストアンサー

OS作り

どうも今晩は、早速質問なんですが、まだソフトも作ったことがないんですけど、簡単なOSを作ってみたいなぁと思ったのですが、つくりかたが分かりません。簡単な作り方ってありますか? OSキットなんかがあると聞いたのですが・・・(自分は日本語版を知りません) あとC言語は本を見ながら勉強しています。 どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Interest
  • ベストアンサー率31% (207/659)
回答No.8

ANo.2 = ANo.5 = Interest です。 http://pcsoft-os.log.thebbs.jp/1112298277.html​ 一通り目を通してみましたが、OSの上で動くOSがあるという話はありませんでした。強いてあげれば、 http://pcsoft-os.log.thebbs.jp/1112298277.html#r163 で、 --- 引用 --- 例えば、 1. 文字どおり、既存のコード、例えば既存OSの入出力部のソースを流用するとか、 2. 既存OSの上で動かして、入出力は既存のOSの機能をつかうとか。  このときは、そのOSの実装は、既存OSに寄生してたり、アプリだったりします。 --- ここまで --- という表現があった程度です。 確かに、Windowsの上でVMwareのような仮想マシンを動かせばVMwareの上でLinuxがうごいちゃいますから、OSの上でOSが動くというのは完全に間違いというわけでもありませんね。 私はOSの目的は「コンピュータ資源の管理」と「利用効率向上」だと考えています。コンピュータ資源とはCPUの処理時間、メモリ、各種デバイス、ネットワーク等です。これらを直接管理できないプログラムにOSを名乗る資格は無い! というのは大げさでしょうか(^-^A; せっかくANo.3でよさそうな本を紹介していただいたので、「習うより慣れろ」でとにかく作り始めてみればどんな知識が必要か見えてくるのではないでしょうか。 参考までに:  ITRON系のOSでは、TOPPERSというプロジェクトで開発されたOSのソースコードが無償で公開されています。コンパイラはGCCでOK. http://www.toppers.jp/

yamanomi
質問者

お礼

あっ、そうでしたか・・・ 自分の勘違いでした。 とくにかく、まだ本を買う暇がないので^^; いろんなサイトを見て、勉強していきます。 回答ありがとうございました。

その他の回答 (10)

回答No.11

OSの上で動いてたOSとして有名なのがwindowsですね。 とりあえずDOSとUNIXを勉強してください。 両方ともソースを手に入れることは出来ますから。 (ソースを手に入れてもyamanomiさんの知識では解析出来ないから無駄になりそうですがw) とりあえずはDOSやUNIXのツールを作れるくらいになってから、 OSを作る事を考えましょう。

yamanomi
質問者

お礼

やっぱりはじめはソースからなんですね。 がんばって勉強したいと思います。 回答、ありがとうございました。

  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.10

いきなりOSはさすがに敷居が高いと思うので まずはインタラクティブな電卓を作ってみましょう、こんそーるアプリケーションでかまいませんから、対話型で計算が出来ること、つぎに、関数やメモリーを扱えるようにする。 要は仮想機械を作ってみると言うことです。 で、作っているときに、カーネルとデバイスドライバを意識してやってみてください。 OS自体も今はCPUパワーがあるので、仮想空間でいろいろ試すことが出来る環境もありますから、まずはやってみましょう。

yamanomi
質問者

お礼

やはり、敷居がたかいですか。 インタラクティブな電卓・・・どうやって作ればいいのか・・・ すいません、まだ初心者なんで。

  • elmclose
  • ベストアンサー率31% (353/1104)
回答No.9

どうも。No.4です。 質問者のyamanomiさんも、せっかくOSに興味をもたれたのですから、これを機会に、コンピュータのハードウェアとOSの勉強をされたらどうですか。面白いですよ。 C言語で始めるのでしたら、まず、C言語で書かれたOSのソースを読むところから始めても良いのではないでしょうか。 私は、やや特殊なマシンですが、SymbolicsというLisp専用アーキテクチャのマシンで、OS自体もLisp(的なオブジェクト指向言語)で書かれていたものがあって、そのソースコードを読んだことがあるのですが、非常に勉強になりました。

yamanomi
質問者

お礼

そうですね、ソースからよむことにします。 でも、どのソースから読めばいいのかわからないです(^_^;) 回答ありがとうございました。

回答No.7

こんにちは。 私も#3が紹介されている「30日でできる!OS自作入門」でOSを作っているところです。 とりあえずC言語しか分からない自分でしたが、この本のおかげでハードウェアの仕組みや アセンブラもずいぶん理解できるようになりました。 ちょっと高い本ですけど、パソコンやOSの仕組みを理解するのにお勧めの本です。 現在はウィンドウマネージャが完成したところでGUIが使えるようになりました。 夏休み中にOSが完成する予定です。

yamanomi
質問者

補足

FoggyMountainさんだけじゃないのですが、この質問自体の補足をします。 OSを作るとすると、最初はどんなことからはじめればいいのでしょうか? あと、どんなことが出来るのでしょうか? このことについても、答えていただければ幸いです。

  • Interest
  • ベストアンサー率31% (207/659)
回答No.6

訂正 ANo.2 = Interest でした。

  • Interest
  • ベストアンサー率31% (207/659)
回答No.5

ANo.1 = Interest です。 > 自分が思い描いているOSは、 > テキストファイルが読み書きできることと、 > windows上で動くOSということであればいいかなと思います。 なにか、大きな勘違いをしていませんか?? テキストファイルが読み書きできる --> エディタ(アプリケーション)の仕事です。 Windows上で動く --> OSの上でOSを動かすのですか? OS が何なのか、誤解されているのではないかと思います。 まずはOSを作るための本を買う前に、コンピュータの基礎知識を得るための本を買うことをお勧めします。

yamanomi
質問者

お礼

訂正します。 テキストファイルのこととかが乗っているサイトです

yamanomi
質問者

補足

すいませんが、OS上で動くOSもありますけど。 ここにのっていました。 http://pcsoft-os.log.thebbs.jp/1112298277.html

  • elmclose
  • ベストアンサー率31% (353/1104)
回答No.4

かなり前ですが、私もOS(らしきもの)を作ったことがあります。 他の方も書いておられるように、ある程度は機能を絞るのが良いと思います。そのためには、どのような特徴を持ったOSを作ってみたいか、イメージを描いてみると良いと思います。 OSを書いていて面白いのは、やはり、プロセスの管理(CPUの割り当てとか)、メモリの管理のあたりだと思います。 コンピュータアーキテクチャや並列処理の概念など、ある程度は基礎知識を持っていたほうが良いでしょう。 実マシン用のOSだけではなく、仮想マシン用のOSを書いてみるのも面白いと思います。 いずれにしてもがんばってください。 下記URLなども参考に。

参考URL:
http://mega-tokyo.com/osfaq2/
yamanomi
質問者

お礼

ご回答ありがとうございます。 機能的にはテキストファイルの読み書きができればなぁと それが出来たら、機能を増やしていこうと思います。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.3

この本が売れているみたいですよ。 夏休みに、ぜひ挑戦してみてください。 30日でできる!OS自作入門 http://www.cbook24.co.jp/bm_detail.asp?sku=4839919844 http://www.amazon.co.jp/gp/product/4839919844/503-2323623-9075140?v=glance&n=465392

yamanomi
質問者

お礼

回答ありがとうざいます。 こんな本があるんですね。 この期間に挑戦してみます。

  • Interest
  • ベストアンサー率31% (207/659)
回答No.2

OSは実にさまざまなサービスプログラムが集まってできています。 yamanomiさんが仰るOSとは、どのようなものを想定していますか? 本当に機能を絞り込んでしまえば、それらしいものができないことも無いと思いますが、CPUをアセンブリ言語で直接たたく知識がなければOSを作るのは難しいと思ってください。 OSの作り方を説明した書籍は確かにあります。私の手元にも1冊  永井正武、澤田勉、権藤正樹:実用 組み込みOS構築技法、共立出版、2001. があります。(汎用OSではなく、リアルタイムOSの本です。)

yamanomi
質問者

お礼

回答ありがとうございます。 自分が思い描いているOSは、テキストファイルが読み書きできることと、windows上で動くOSということであればいいかなと思います。 最終的(まだ先のことですが)には、windowsと互換性のあるOSになればいいかなと、考えています。

回答No.1

> まだソフトも作ったことがないんですけど、 こんな状態じゃ、絶対に無理です。断言します。 OSを作るには、ハードウェアの知識が絶対必要です。 「アドレス」の意味は知っていますか? 「割り込み」のプロセスは知っていますか? 「ファイルシステム」の意味は知っていますか?

yamanomi
質問者

お礼

やはり無理ですか・・・ アドレスなら分かる様な気がします。 そこらへんを書いているサイトがあればよいのですが・・・ 回答ありがとうございました。

関連するQ&A