今OSを自作する意味は? 130
ストーリー by mhatta
面白ければいいのでは 部門より
面白ければいいのでは 部門より
bad-head曰く、"/.Jerに聞きたいのだが,今OSを自作する意味はあるのだろうか。
最近「30日でできる! OS自作入門」や「自分で作るLinux OS」といった書籍が出ており、「学習用+OS自作へのあこがれ」ニーズは盛り上がりつつあるように思える。タレコミ子が学生のときは,「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:OSは大きいとは限らない (スコア:2, 興味深い)
PC BIOSのブートローダはしょぼいので、昔は確かにそういった初期化は面倒でしたが、今ならgrubやredbootやEFIなどの高機能ブートローダを使えばいい話。
「OS自作」といってブートローダ作成で引っかかってる人を見ると、「ソコはOSじゃねえ!」と声を大にしていいたくなります。
Re:OSは大きいとは限らない (スコア:1, 参考になる)
あと、POSIXである必要は無いと思うんですが、とりあえずの指標としてPOSIXくらいのものがちょうどいいのかなと。自前で革新的かつ実用的なOSをデザインするのも難しいですし。
POSIXで不満な部分はOS層で実現するより、ミドルウェアあたりで実現した方が楽だし現実的かなぁと思ったり。
Re:OSは大きいとは限らない (スコア:1, 興味深い)
そこから逃げちゃダメだ!(ぉ
そこから逃げずに、じっくりとその困難に立ち向かえるのが自作OSの魅力。
# 別に第二第三のUNIXを作る努力を否定するわけでもないけど
Re:OSは大きいとは限らない (スコア:5, 参考になる)
PC上で動くOSを作りたいならOS Wiki [osdev.info]の方が密度高いですね。
一口にOS作りといっても、それが指す領域はメモリ管理から
UIまで非常に幅広いのでまとめるというよりは方々の知識を総動員するものなので。
今のところは書籍の方が(日本語の情報源としては)良いと思います。
ストーリーで挙がっているようなものとか、Solarisインターナルとか。
Re:OSは大きいとは限らない (スコア:2, 参考になる)
osdev-j [osdev.info]
Re:OSは大きいとは限らない (スコア:2, 参考になる)
今ならVESAのページでVBEの資料を入手するが吉。
あとはintel系なら440の資料を入手するとある程度は使えるはず。
Re:OSは大きいとは限らない (スコア:2, 参考になる)
VMWare専用ビデオドライバを作ろうと思った時点で萎えるので、その点ではVirtualPCの方が優れていると思います。
Re:OSは大きいとは限らない (スコア:2)
今じゃ2GBくらいのUSBメモリも価格こなれてきたし、USBでどこでも俺仕様OSが動かせるようなのを作ってみたら楽しいのでは?
いつの日か (スコア:5, おもしろおかしい)
Re:いつの日か (スコア:2, 参考になる)
Re:いつの日か (スコア:1)
I think I can
Re:いつの日か (スコア:1)
Re:いつの日か (スコア:2, おもしろおかしい)
深い所 (スコア:5, すばらしい洞察)
便利なGUIライブラリやら、メモリのことを忘れられるような高級言語や、
LightWeightなスクリプト言語やらが発達して大抵のことはできるし、
Linuxやら使うにしても、インストーラやらGUIやら便利なコマンドが充実していて、
昔よりは敷居がずっと低くなったように思えます。
一方、ハードウェアもソフトウェアも複雑化して、
そういったものを直接いじるのは難しくなってきています。
そのおかげで、コンピュータの表面をちょっと触るだけで操作できるけど
奥深いところは隠されてしまってるような気がするんですよ。
アレゲな人として、深い所に足を踏み入れたいというのは、当然の欲求。
この状況に満足できないアレゲ人がいても、何の不思議もありません。
俺は今のところ、Linuxを使いはじめたらWindowsよりもいろんなとこを
のぞいたりいじったりしやすくなったので、それで満足してるけど
もし、それでも物足りなくなってきたらOSが作りたくなるかもしれません。
1を聞いて0を知れ!
趣味の世界に意味や意義を尋ねてはいけないの法則 (スコア:4, すばらしい洞察)
趣味とはその人が満足できさえすればそれでいいわけで、そういう趣味に対して第三者の検討や検証の余地が入り込む「意味」だとか「意義」だとかを求めてはいかんと思うのですよ。
「それっていったい何の意味があるの?」って尋ねたら「自己満足」以外に回答のしようがないのはどの趣味でも共通のものです。
ですからOSを作りたいと思う人はその人の好きな手段で作っていけばいいわけで、そのうちの一つの選択肢としての「OS自作本」ではないかと思います。
Re:趣味の世界に意味や意義を尋ねてはいけないの法則 (スコア:3, すばらしい洞察)
ってのがこのスレッドのテーマなんだと思いますが。
なぜ好きかという個の問題は問うても仕方がないのはおっしゃるとおり、
でもなぜそういう人が増えたのかというマスの問題は
社会や環境の問題でもあるのでそれなりに議論の意義はあるのでは?
Re:趣味の世界に意味や意義を尋ねてはいけないの法則 (スコア:1, すばらしい洞察)
要は漫画のヒット作と似たようなものでしょう。根底の題材は昔から有るけど味付け等が良かったというような。
流行ってある意味タイミング勝負ですからねぇ。遅くても早くても駄目。
Re:趣味の世界に意味や意義を尋ねてはいけないの法則 (スコア:1, おもしろおかしい)
世の中には色んな趣味があるわけで、それに対していちいち「意味があるんでしょうか?」と問うのは、
それこそ意味がありませんし、何よりそれを趣味としている人にとって大変失礼なことでもあると思います。
まあ、意味の無い問いを発することにも意味があるとは思いますが・・・。
おそらくこのタレコミは、そのような深遠な思慮に基づいて発せられたものと推察します。
Re:趣味の世界に意味や意義を尋ねてはいけないの法則 (スコア:1, 興味深い)
「そういうことをしてどういう意味が?」と質問する人は、多少なりともその方向に進みたいけど、まだ迷いがある。だからその道を先に進んでいる人の話を聞きたい。ってのがあるんじゃないかな。全員がそうだとはいえないけれど。
> 「自己満足」以外に回答のしようがないのはどの趣味でも共通のものです。
うん、だからどこらへんがよかったから満足したのかを言ってあげると、同好の士が増えるかもしんない。
組込みの世界では (スコア:4, すばらしい洞察)
Re:組込みの世界では (スコア:3, 興味深い)
独自OSって、ほとんどなくなりました・・・
Re:組込みの世界では (スコア:2, 参考になる)
http://www.assoc.tron.org/jpn/research/data/survey2005J.pdf
市販のITRON仕様OS 24%
自社用のITRON 仕様OS 8%
自社用独自仕様OS 5%
単純に (スコア:3, すばらしい洞察)
どんなに無骨でもいいから自分の自由になる箱庭がほすい,と思ってみたり.
「30日でできる! OS自作入門」はいま読んでます.
Re:単純に (スコア:3, 興味深い)
ある程度決まった筋書きとは言え、何もないところから作る楽しみを味わってみてください。
そうすれば、少しは仕事のモチベーションもあがるかも。(^_^;
--
長年引き継がれたわけのわからないハードをメンテさせられているのでID... (;_;)
Architect/Designer != Programmer (スコア:3, すばらしい洞察)
OSのアーキテクチャーやデザイン、実装の方法を知っておくのは有用だと思います。
コンパイラ作成本 (スコア:3, 参考になる)
コンパイラ入門 C#で学ぶ理論と実践 [amazon.co.jp]
いまどきのプログラム言語の作り方 [amazon.co.jp]
スモールコンパイラの制作で学ぶプログラムのしくみ [amazon.co.jp]
JavaCC―コンパイラ・コンパイラfor Java [amazon.co.jp]
Javaによるパーサ構築技法 [amazon.co.jp]
Re:コンパイラ作成本 (スコア:1)
興味のおもむくまま&腕を磨くため (スコア:3, 参考になる)
その一環でOSも作ってみたいと思う時期がありました。
業務アプリ屋としてくすぶってる時にひげぽんさんの記事 [itmedia.co.jp]を読み、大いに刺激されました。
今では職を替え、自作こそしませんが自社の組み込みボード用にLinuxカーネルを移植する仕事もするようになりました。
昔の理想には近づきましたが、やはり今でもOS作りへの興味はまだ尽きません。
News for Nerds. (スコア:3, すばらしい洞察)
「意味」とか「価値」とか求めるのはEngineerの仕事。
オタクの行動原理はJust for Fun。パソコンオタクだろうと鉄道オタクだろうとアニメオタクだろうとそれは共通でしょう。
発想力の低下 (スコア:2, すばらしい洞察)
むしろ今使っているものが大変使い憎くだめなOSとして定義できるなら
その次にくるべきOSが見えてくると思います。
#OSを作ってみたいと思ってきたのでAC
Re:発想力の低下 (スコア:2, 興味深い)
# アプリケーションという概念を排除したいのですよ。
Re:発想力の低下 (スコア:1)
# 文字コードがTRONCODEだったりするし。
知名度の問題では? (スコア:2, すばらしい洞察)
コンパイラやデータベースよりもOSの自作の方がより多く書籍化されるのは、単純に知名度の問題では?
「コンパイラ」と「データベース」よりも「OS」の方が有名な気がするし、出版社もそう考えるかもしれないし。実情はわからないけどね。
Re:知名度の問題では? (スコア:2, 興味深い)
ちなみに
「データベース」で検索 → Postgre, Oracle, MySQL等の書籍がたくさんヒット
「データベース」「作り方」で検索 → CREATE DATABASE の書き方を解説した入門書がたくさんヒット。
「データベース」「設計」で検索 → 表の正規化についての本がたくさんヒット。
「データベース」の部分はDB,DBMS,RDBMS等替えてみてもあんまりかわらなかった。あれにはほんともううんざり。
そこにプログラミング可能なコンピュータがあるからだ (スコア:2, すばらしい洞察)
ちょいと方向が違うだけで、CGを描いたりゲームを作るのと替わらないと思う。
ささやかなフロンティアとその向こうを目指して。
Just for Fun (スコア:2, すばらしい洞察)
10年くらい前から (スコア:2, 興味深い)
と5年くらい前に坂村健がなげいていたと思う。出典はみつからず。
なぜ今か、を (スコア:2, 興味深い)
XPの長寿はハードウェア買い換えへの興味を(多少なりとも)削ぎ、「そういえば最近面白いことしてなかったなあ」と目先を変えようとしたサンデープログラマもそこそこいらっしゃるのではないかと。
冥土OS (スコア:2, おもしろおかしい)
-- 哀れな日本人専用(sorry Japanese only) --
意味を求めるとすれば (スコア:2, 興味深い)
基礎知識はいつの時代でも必要 (スコア:1, すばらしい洞察)
新しい世代が全員それに依存してしまうようでは困るわけで。
OSの構造に興味を持ち必要とあらば1から設計しなおすようなパワーのある人材が増えるのはいいことじゃないですかね。
Linuxカーネルに詳しくなればいいじゃんという話もありますが、学習用サンプルとしては大きすぎます。
キーを押すとスクリプトが呼ばれる系のエディタを挙げるスレッド (スコア:1, 興味深い)
キーを押すとスクリプトが呼ばれる系のエディタ
Re:キーを押すとスクリプトが呼ばれる系のエディタを挙げるスレッド (スコア:1)
スクリプトが呼べるという程度の仕組みだったら、エディタならかなり
沢山の種類のものが実装しているんじゃないですかね。
いちいちあげるのも面倒なくらいですが、例えば私はWindowsでは
秀丸を使用していますが、この秀丸なら秀丸用のマクロが実装されて
いますし、やり方次第では他のスクリプト言語を呼び出すこともできます。
私はPerlでスクリプトを書いて秀丸から呼び出すようにすることもあります。
とかいいつつ、他にどんなのがあってマクロ/スクリプト言語呼び出しの
機能があるか調べてみたら、代表的なものはWikipediaのページ [wikipedia.org]に
載っているようで、そこからいけるリンク先を見ればだいたい分かりますね。
どうでもいいけど、yiってリンクの下線がつくとviとほとんど区別が
つかないので、しばし説明文に頭をひねりました。
Re:キーを押すとスクリプトが呼ばれる系のエディタを挙げるスレッド (スコア:1)
秀丸は使ったことないのですが、そのような仕様なのですか?
Re:どこかに勇者はおらぬか (スコア:2, おもしろおかしい)
Re:「データペースを作ろう」 (スコア:2, おもしろおかしい)
>RDBMSの作り方でOK?
RDPMSの作り方じゃなくて?