昔のパソコンは、画面表示とかキー入力などについてはROMモニターとか、IOCS とか、BIOS といったOSに依存しない標準ライブラリ的なものが ROM に載ってたし、 自作のプログラムを直接ブートすることも容易だったので OS の上に乗っていない独自動作「hello world」なんて簡単に作れました。
今の wintel PC で IA32 でそれをやろうと思ったら、最初にプロテクトモードへ移行するだけでも、テーブル確保してセレクタ設定などの、初期化にすごく手間がかかる。 でもって、BIOS はあるけど16bit専用だから、プロテクトモードに移行したら入出力を全て自前でやらなきゃいけないんですよね。
むしろ逆だと思います。 PC BIOSのブートローダはしょぼいので、昔は確かにそういった初期化は面倒でしたが、今ならgrubやredbootやEFIなどの高機能ブートローダを使えばいい話。 「OS自作」といってブートローダ作成で引っかかってる人を見ると、「ソコはOSじゃねえ!」と声を大にしていいたくなります。
OSは大きいとは限らない (スコア:5, 興味深い)
μTRON系の互換OSならサイズもコンパクトなものが結構ありますし。
スクラッチから書くのは確かにいろいろ大変かもしれませんが、
今だとOSkit [osaka-cu.ac.jp]なんてものもありますしね。
昔のようにOSの作成がどのように行えばいいのか模索中の状態で、
UNIXみたいにソースコードの公開されたサンプルもなく、
書き上げるのもWizard達の「大魔法」だった頃と違って、
今ならAPIにも標準規格があるし、各種ファイルフォーマットも解析されていて、
サンプルコードもネット上にゴロゴロしてる現状だと、
「何をやればいいのか整理されてきて、だいぶ作りやすくなった」
ということは、あるのかもしれません。
Re:OSは大きいとは限らない (スコア:2, 興味深い)
インターネットによって確かに資料もタダになったのですが、最近のデバイスは仕様が非公開だったり、自分で制御するには非常に面倒だったりで使いこなすのが大変。
端的に言えば、自作OSの現状はここ20年のハードウェアの進歩から置いてけぼりを食ってるんじゃないでしょうか。
あと、個人的には、いわゆるオープンソースの流行で「POSIXにあらずんばOSにあらず」になりつつあるのがなんだかなぁと思います。
RubyFSとかPlan9を見て、POSIXではなかなか幸せになれないと感じる人はそれなりにいると思いますが。。
Re:OSは大きいとは限らない (スコア:2, 興味深い)
あと「ブートが面倒」だとか。
OS作成以前の段階として、OSを介さずに自作プログラムを直接実行することを考えた場合、
昔のパソコンは、画面表示とかキー入力などについてはROMモニターとか、IOCS とか、BIOS といったOSに依存しない標準ライブラリ的なものが ROM に載ってたし、
自作のプログラムを直接ブートすることも容易だったので
OS の上に乗っていない独自動作「hello world」なんて簡単に作れました。
今の wintel PC で IA32 でそれをやろうと思ったら、最初にプロテクトモードへ移行するだけでも、テーブル確保してセレクタ設定などの、初期化にすごく手間がかかる。
でもって、BIOS はあるけど16bit専用だから、プロテクトモードに移行したら入出力を全て自前でやらなきゃいけないんですよね。
でもって、その前段階「自作プログラムをブートさせる」のも一苦労な気もします。FDD があれば簡単ですが、今時のPCにはFDD付いてないし。
まぁ、VMware とか VirtualPC とか使えばいいんでしょうけど、それでは面白味に欠けるというか「OS抜きにプログラムを直接実行させてる」感が無くて興ざめです。
そこでDOSEextenderですよ! (スコア:2, 興味深い)
フリーの基本Cライブラリが有ったらもっと良かったんだけど、在り処がよくわからずに(どっかにありませんかね?)仕方がないのでDOSコール。
で、表示とか全然簡単、でもファイルアクセスとかになると資料が標準入出力ばっかりでファイル操作のやり方とか意外とDOSの叩き方についてのオンライン資料というか実例が少なくてよく判らなかったり、これならセクタ読み書きだけ使って自前で管理した方が手っとり早いんじゃないかとか考えたらそういうのが独自のOSになっていく気がします。
それにしても、持てる限りの資源を低コストで使いやすい形で提供出来るからこそOS基本ソフトだと思うんですが、
その辺の使命をコロリと忘れた移植OS(シミュレータ)みたいなのとかなんちゃってOSばかりが多いのはなんなんでしょう?
今や主記憶の百分の1以下なFD位しか管理出来ないようなものをOSと言い張るのは、DOSに申し訳ないような気がしますね。
Re:そこでDOSEextenderですよ! (スコア:0)
まあFDという資源を管理できるのであればOSと名乗ってもいいのでは無いかと。
それよりもGUIが無いとOSと認識されない空気をどうにかしてほしいような…
Re:OSは大きいとは限らない (スコア:2, 興味深い)
PC BIOSのブートローダはしょぼいので、昔は確かにそういった初期化は面倒でしたが、今ならgrubやredbootやEFIなどの高機能ブートローダを使えばいい話。
「OS自作」といってブートローダ作成で引っかかってる人を見ると、「ソコはOSじゃねえ!」と声を大にしていいたくなります。
Re:OSは大きいとは限らない (スコア:1, 参考になる)
あと、POSIXである必要は無いと思うんですが、とりあえずの指標としてPOSIXくらいのものがちょうどいいのかなと。自前で革新的かつ実用的なOSをデザインするのも難しいですし。
POSIXで不満な部分はOS層で実現するより、ミドルウェアあたりで実現した方が楽だし現実的かなぁと思ったり。
Re:OSは大きいとは限らない (スコア:1, 興味深い)
そこから逃げちゃダメだ!(ぉ
そこから逃げずに、じっくりとその困難に立ち向かえるのが自作OSの魅力。
# 別に第二第三のUNIXを作る努力を否定するわけでもないけど
Re:OSは大きいとは限らない (スコア:1, すばらしい洞察)
VMWareとかも
Re:OSは大きいとは限らない (スコア:2, 参考になる)
VMWare専用ビデオドライバを作ろうと思った時点で萎えるので、その点ではVirtualPCの方が優れていると思います。
Re:OSは大きいとは限らない (スコア:0)
ハードウェアを隅から隅までしゃぶり尽くせると楽しいだろうなあ。
Re:OSは大きいとは限らない (スコア:2, 参考になる)
今ならVESAのページでVBEの資料を入手するが吉。
あとはintel系なら440の資料を入手するとある程度は使えるはず。
Re:OSは大きいとは限らない (スコア:1)
フツーのディスプレイばかりだと飽きるでしょう。
#昔発注ミスされた不良在庫が沢山あるのでID。
#VFDが流行らんかなぁ・・・。
Re:OSは大きいとは限らない (スコア:0)
Re:OSは大きいとは限らない (スコア:5, 参考になる)
PC上で動くOSを作りたいならOS Wiki [osdev.info]の方が密度高いですね。
一口にOS作りといっても、それが指す領域はメモリ管理から
UIまで非常に幅広いのでまとめるというよりは方々の知識を総動員するものなので。
今のところは書籍の方が(日本語の情報源としては)良いと思います。
ストーリーで挙がっているようなものとか、Solarisインターナルとか。
Re:OSは大きいとは限らない (スコア:2, 参考になる)
osdev-j [osdev.info]