アカウント名:
パスワード:
恥を忍んで白状いたしますが、 正直なところ、この「OS」のどのあたりが技術的に優れているのか、よくわかりません。 一通りコメントを読んでみたつもりですが、「日本発だから素晴らしい」「独りで作っているからすごい」という以外には特にどこが優れているのか理解できませんでした。
OSなんて所詮トレードオフの固まりじゃないかと思う
さて話を戻すと、fluffy_nnsさんはOSにおいて重要なのはトレードオフだとおっしゃっているように読めますが、だとすれば「NOWSMART 386-OSはこことここのトレードオフが優れているのだ」と言えれば、十分「技術的に優れたOS」と言えると思います。NOWSMARTはどういったトレードオフに見るべき点があるのでしょうか? そういった辺りから、技術的議論にできると思いますよ。
「OSなんて所詮――」とまで言いきってしまうのは技術者としてかなり悲しいことだと思います。
これはどちらかというと勉強不足なのではないでしょうか。例えば負荷の受け付け制御は性能保証になるので処理能力の下限が厳しい場合は役立つでしょうし、DoS攻撃への対策としても使える可能性はあります。これが実際に有効であるという論文 [nec.com]は1995年にすでに出ている(しかも60回以上citeされている)のですが、実装されかつ世に出たOSは(特定用途を除いて)私の知る限りありません。
また、私の例ですが、Solarisはadaptive lockでmutexのcostを下げているとされています。しかし、実装を見るとspin loopの中でatomic opを連発するためmemory busを占有する恐れがあることに気が付きました。というわけで、FreeBSDのadaptive lockではspin loopで一切atomic opを使わないような工夫をしています(実験は人まかせにしてしまったけど)。
手もとのOSが実世界のどんな状況で使われるかをよく考えて、ある程度genericに現れるところをたたいてみるようにすればトレードオフ以外の点でも技術的な勝負ができると思うんですけどねぇ... Sunはそういうやり方でfine-grained lockをやったんだし、今やほかのOSがそれに追従しようとしているということはあれは大成功ですよね?
技術はせいぜい大学院の研究でしか付き合ってないですが、その限りではトレードオフというのはたたける問題を全てたたいた後、調整用に持ち込むものと考えてます。ですから、初期にトレードオフの形で持ち込んだものでも、しばらく時間が立つと最適な落しどころが分かってそこにfixしてしまうということもよくあります。
8bitマイコンの時代ですが、自前でいわゆる「FDOS」を作ったことがあります。bootすると、単純なファイルシステムと単純なラウンドロビンスケジューリングのTSSが動き出すようになっていましたが、8bitマイコンの時代とて、仮想メモリはもちろんメモリ保護もありませんでした(いちいち空いてるメモリ空間にリロケートしてロードしなきゃいけないので、ある意味逆に面倒くさい)。
当然GUIもないので、タスク間の切り替えは各タスクへの仮想キー入力を振り替えられるようにして、それで使い分けるという感じでした。画面切り替えとかじゃないから、出力は混在(文字ベース)。複数のタスクが同時に文字出力すると、両方の出力が数文字毎に混じりながらでてきちゃう。でも、当時はそのほうがいかにもマルチタスクっぽくて、かえって気に入っていました。^^;
ファイルシステムも独自だったんですが、当時はちゃんとオペレーティングシステムの勉強をして作ったわけではなかったので、今思うとお世辞にも効率の良い安全なファイルシステムとは言えなかったですね。しかもシーケンシャルアクセスしか考えてなかったりして。
ま、当時は遊びで作っただけだったけど、それなりに良い経験ではあったと思います。こんな風に自前OS作ったことある人って8bit時代の人には多かったんじゃないかな?
うーん、懐かしくなってきた。当時のフロッピーやテープが読めたら実家から引っ張り出してくるんだけどなあ。すでに読み出す方法がないのが残念……つーか、もうメディアが駄目になってる可能性が高いか。私の青春だったのに…… T_T
OS開発者といってもいろいろいると思いますが、私の指導教官は学生時代にワンボードの計算機を組んでOSを書いて...ということをやっていたそうです(今は全然違うことをやっているけど)。現役というなら、NetBSDを新しいarchへportしている人達というのも該当するのではないでしょうか。その点では、このタイプの開発者は多そうです。こちらの方は、どちらかというと「CPUを知ればOSが書ける、kernelのsubsystemは後からついてくる」という考えですね。
ただ、世の中にはもう1つ、別の種類のOS開発者がいます。v6がしゃべれるnetwork stackを作るとか、lwpを作ってprocessが並列に動けるようにするとか、memory allocatorをもっと速くするなどという人達です。こういう人達は、applicationを走らせるために必要なsubsystemを作る、あるいは直しています。こういうことをやっている人というのは、日本にはあまりいないでしょう。KAMEとUSAGIあたりでまとまった人数がいるぐらいでしょうか。
私はどういうわけか後者だったりするので、
OS(モニタ?)を一人で作ってしまった
と聞いても、「で、その上で何するの?」と突っ込んでしまうタチなのですが。後者の場合だと、例えばTPCの数字を上げるとか具体的な目標があるのでどうしても気になってしまうんですよね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲを呼ぶ -- ある傍観者
求む――技術的側面からの解説 (スコア:0)
恥を忍んで白状いたしますが、 正直なところ、この「OS」のどのあたりが技術的に優れているのか、よくわかりません。 一通りコメントを読んでみたつもりですが、「日本発だから素晴らしい」「独りで作っているからすごい」という以外には特にどこが優れているのか理解できませんでした。
Re:求む――技術的側面からの解説 (スコア:1, すばらしい洞察)
仕事においても、ゲームシステムというOSを作る必要があり
実際、いろいろなゲームシステムがつくられてきた。
それぞれ、OSとしての最低限な機能と
必要最低限な描画機能と、シェルをもっている物がおおいとおもう。
彼もゲームをつくってたようなので
i386のネイティブなOSをつくってみただけだとおもう。
この手のOSは、発表してないだけで
いろんな人が、それぞれ実験的につくってるんじゃないだろうか。
したがって、特別ニュースにするようなもんじゃないとおもうけど。
いや、技術ではなくってね。 (スコア:2, 参考になる)
>いろんな人が、それぞれ実験的につくってるんじゃないだろうか。
>
>したがって、特別ニュースにするようなもんじゃないとおもうけど。
「実験的に作っている」というのはたぶんまったく正しいと思います。
でも、それを公開するところまでもって行くには度胸とそれなりの作業も必要なわけで、
それをやってのけただけでも、俺なんかはただ単にすごいとか思ってしまうんですけどね。
いわば「心意気を買った」というヤツでね。
でも、どうも/.-jの人にはそういうふうには見えないみたいですね。
そこらへんはちょっと残念です。
#(以下、余談)
#ところで世間的に「技術的に優れたOS」って、どういうのを言うんでしょうかね?
#OSなんて所詮トレードオフの固まりじゃないかと思うんですけど。
#極論かも知れませんけど(^^;
Re:いや、技術ではなくってね。 (スコア:1, 興味深い)
さて話を戻すと、fluffy_nnsさんはOSにおいて重要なのはトレードオフだとおっしゃっているように読めますが、だとすれば「NOWSMART 386-OSはこことここのトレードオフが優れているのだ」と言えれば、十分「技術的に優れたOS」と言えると思います。NOWSMARTはどういったトレードオフに見るべき点があるのでしょうか? そういった辺りから、技術的議論にできると思いますよ。
Re:いや、技術ではなくってね。 (スコア:1)
これはどちらかというと勉強不足なのではないでしょうか。例えば負荷の受け付け制御は性能保証になるので処理能力の下限が厳しい場合は役立つでしょうし、DoS攻撃への対策としても使える可能性はあります。これが実際に有効であるという論文 [nec.com]は1995年にすでに出ている(しかも60回以上citeされている)のですが、実装されかつ世に出たOSは(特定用途を除いて)私の知る限りありません。
また、私の例ですが、Solarisはadaptive lockでmutexのcostを下げているとされています。しかし、実装を見るとspin loopの中でatomic opを連発するためmemory busを占有する恐れがあることに気が付きました。というわけで、FreeBSDのadaptive lockではspin loopで一切atomic opを使わないような工夫をしています(実験は人まかせにしてしまったけど)。
手もとのOSが実世界のどんな状況で使われるかをよく考えて、ある程度genericに現れるところをたたいてみるようにすればトレードオフ以外の点でも技術的な勝負ができると思うんですけどねぇ... Sunはそういうやり方でfine-grained lockをやったんだし、今やほかのOSがそれに追従しようとしているということはあれは大成功ですよね?
技術はせいぜい大学院の研究でしか付き合ってないですが、その限りではトレードオフというのはたたける問題を全てたたいた後、調整用に持ち込むものと考えてます。ですから、初期にトレードオフの形で持ち込んだものでも、しばらく時間が立つと最適な落しどころが分かってそこにfixしてしまうということもよくあります。
Re:いや、技術ではなくってね。 (スコア:0)
Re:いや、技術ではなくってね。 (スコア:1)
「国産の」と入ってるし、日本人がエベレストに上った!と同じで、俺もすごいと思った。
公開するのにオープンにせず、個人でやって、皆の評価を聞きたいとしている。
敢えて今の流行とは別の流れを取ったという、この点だけでもニュース性があるのでは?
日本人って「赤信号、皆でわたれば恐くない」ところはあるけど、最初に渡る一人って少ないし。
>でも、どうも/.-jの人にはそういうふうには見えないみたいですね。
>そこらへんはちょっと残念です。
べつに/.-jの人ではないですが、近頃の/.-jってこういわれても仕方ない気がするので、そういう人ばかりでは無いと出てきました:笑。
Re:いや、技術ではなくってね。 (スコア:0)
/.-jって良くも悪くもLinux度の濃い場所なんでしょうね。だから、何かOSの話になる度に現在のLinuxを基準に「これといって新しさが無い」だの「使い物にならない」だのとあーだこーだ言いたがる人が多いんでしょう。GUIとかweb browserとかには寛容なくせに、kernelとかOSとかいうレイヤになった途端に、alternativeなものや、そもそも比較すること自体が無意味なものに対してまでもLinuxと比較して「こんなものが今更出てきても無意味だ」と満足したがる人が多い気がします。そう
Re:いや、技術ではなくってね。 (スコア:1)
「技術的にできるかどうか」じゃ無くて「それを開発する(行動する)」にはかなりのパワーが必要な訳で、その努力?を考慮しないで「使えねぇ」の一言で切るのはどうかと思います。
Re:いや、技術ではなくってね。 (スコア:0)
OS開発経験者っていますか? (スコア:1)
ここのユーザーでもOS開発経験のある人って、ざらにいるのでしょうか?
追記
今、有用だと思われるOSって、486~PentiumクラスのNEC PC98シリーズで軽く動くOSだと思います。TCP/IPが利用できて、マルチタスクで、DOS環境(当然一太郎やLotusが動く)を複数立ち上げられるなんていうものがあったら、PC98の延命に役立つのではないでしょうか?(^_^;)
(私はATに移行してしまってますが・・・)
Re:OS開発経験者っていますか? (スコア:1, 興味深い)
8bitマイコンの時代ですが、自前でいわゆる「FDOS」を作ったことがあります。bootすると、単純なファイルシステムと単純なラウンドロビンスケジューリングのTSSが動き出すようになっていましたが、8bitマイコンの時代とて、仮想メモリはもちろんメモリ保護もありませんでした(いちいち空いてるメモリ空間にリロケートしてロードしなきゃいけないので、ある意味逆に面倒くさい)。
当然GUIもないので、タスク間の切り替えは各タスクへの仮想キー入力を振り替えられるようにして、それで使い分けるという感じでした。画面切り替えとかじゃないから、出力は混在(文字ベース)。複数のタスクが同時に文字出力すると、両方の出力が数文字毎に混じりながらでてきちゃう。でも、当時はそのほうがいかにもマルチタスクっぽくて、かえって気に入っていました。^^;
ファイルシステムも独自だったんですが、当時はちゃんとオペレーティングシステムの勉強をして作ったわけではなかったので、今思うとお世辞にも効率の良い安全なファイルシステムとは言えなかったですね。しかもシーケンシャルアクセスしか考えてなかったりして。
ま、当時は遊びで作っただけだったけど、それなりに良い経験ではあったと思います。こんな風に自前OS作ったことある人って8bit時代の人には多かったんじゃないかな?
うーん、懐かしくなってきた。当時のフロッピーやテープが読めたら実家から引っ張り出してくるんだけどなあ。すでに読み出す方法がないのが残念……つーか、もうメディアが駄目になってる可能性が高いか。私の青春だったのに…… T_T
Re:OS開発経験者っていますか? (スコア:1)
OS開発者といってもいろいろいると思いますが、私の指導教官は学生時代にワンボードの計算機を組んでOSを書いて...ということをやっていたそうです(今は全然違うことをやっているけど)。現役というなら、NetBSDを新しいarchへportしている人達というのも該当するのではないでしょうか。その点では、このタイプの開発者は多そうです。こちらの方は、どちらかというと「CPUを知ればOSが書ける、kernelのsubsystemは後からついてくる」という考えですね。
ただ、世の中にはもう1つ、別の種類のOS開発者がいます。v6がしゃべれるnetwork stackを作るとか、lwpを作ってprocessが並列に動けるようにするとか、memory allocatorをもっと速くするなどという人達です。こういう人達は、applicationを走らせるために必要なsubsystemを作る、あるいは直しています。こういうことをやっている人というのは、日本にはあまりいないでしょう。KAMEとUSAGIあたりでまとまった人数がいるぐらいでしょうか。
私はどういうわけか後者だったりするので、
と聞いても、「で、その上で何するの?」と突っ込んでしまうタチなのですが。後者の場合だと、例えばTPCの数字を上げるとか具体的な目標があるのでどうしても気になってしまうんですよね。
Re:OS開発経験者っていますか? (スコア:1)
別の仕事でグラフィックまわり一式とかファイルシステムとか組んだこともあるので...
ま~、カーネルだけならスタックべたべた触れる程度の技術力があれば組めるかと。
>追記
今となっては有用だとは思えないなぁ...
98シリーズも「FA系を残すのみ」なようだし。
Re:OS開発経験者っていますか? (スコア:1)
私は高校時代、ワンボードマイコンに拡張を重ねた自走ロボットの制御プログラムを作っていましたが、汎用性は無いものの、各種車載センサー、テンキー、液晶、紙テープw、で完結したOSだったのかも知れません。
もう、あんな体力無いなぁ、、、
Re:OS開発経験者っていますか? (スコア:0)
Undocumented Windowsあたりを読んで、Win3.1/95の下層部分だけを利用すれば
みかけはDOSだけどタスクスイッチ可
Re:OS開発経験者っていますか? (スコア:0)
ここ [cjb.net] とか見ると一から作らなくても良い可能性くらいはあるのかもしれませんが。