• 締切済み

なんで、長大なOSが必要なの?

単純な疑問 私は四十数年前に博士論文を書く実験で、 「4個の測定器からデータが送られて来たら、実験を中止する」「4個の測定器から実験データを4次元で読み込む」「それらのデータを取り込んで、メモリーに保存する」とかなり複雑なことを、「12ビットの4098メモリーのPDP5」という計算機でしていました。 つまり、プログラムとデータ記録を12ビット、4096メモリーの計算機でしていたのです。 そこで、質問。 今のパソコンでも周辺機器は数個、 インターネット関連でもたいした数ではありませんね。 「なぜ、マイクロソフトが出すような長大なOSが必要なのでしょうか? 」 「ただ単に、これまでに作ってきたプログラムを繋ぎ合わせていて、何十年もたったからではないか?」 「今のパソコン用OSは1MBもあれば、書けるのではないか?」と思います。 単純な疑問ですが、お教えください。            吉 村  

みんなの回答

  • heinell
  • ベストアンサー率35% (420/1172)
回答No.13

大きな理由は他の方が述べられている通りです。 他には開発言語の問題もあるんではないかと。 okyoshiさんの言われた時代でしたら総アセンブラか下手すれば16進(2進?)のマシン語直書きだったんではないかと思います。 まず間違いなく現行OSはアセンブラでは作られていないと思います。 恐らくC言語またはその派生(C++など)でしょう。 総アセンブラで記述すれば、ファイルサイズだけでいえば1/10近くに縮められても不思議は無いです。 もっとも、そんな物でWindowsOS級の大規模ソフトを作ったら人間が(人類が?)メンテナンスできる限界を超えると思います。 実行速度やディスク・メモリ資源を考えれば、絶対にアセンブラ記述が有利です。 しかし今アセンブラで開発をしようという人はまずいません。 なぜここまでアセンブラが駆逐されたか? 開発やメンテナンスの容易さ(またそのコスト)を考えれば当然です。 今WindowsXPが十分に動くパソコンは6万円ほどもあればそこそこのが買えます。 OSは2万円足らずです。 じゃあ総アセンブラ軽量OSが十分動くパソコンなら3万円で買えるとします。 でもそのOSを作るための人件費を考えると何百万円の価値があるやもしれません。 このコストパフォーマンスの差が巨大OSでも許されている現状を生んでいると思います。 あと、言語は同じとして、機能を強烈に絞ったところで、思ったほどサイズは絞れないと思います。 自宅で使っているネットワークハードディスクのファームウェア(中はLinuxOSを使っている)は、ディスク管理・ネットワーク管理・システム管理(管理画面WEBサーバ)だけの機能でいいはずなのに既に数十メガの規模になっています。

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

一言で言えば、OSの役割が増えたからです。 古めのところだけかいつまんで ホストでは今でもそうですが、初期のコンピュータでは、ファイルをコピーするだけで、TSSなりバッチのユーティリティーを起動していましたが、PCのOSでは、初期のCP/M-80の時代からこれらの機能をOSのコマンドとして持っていました。 もっとも、PCにはTSSはありませんし、タスク管理は単純で、かつ、扱えるデバイスもDASDなどではなかったため、かなり小さい物でした。 これが、MS-DOSの時代まで続きますが、この間、扱うデバイスの種類や容量が増え、デバイスドライバは大きくなっていきます。また、OS内部に吸収されるコマンドや機能も増え徐々に容量が大きくなります。 ここに、Windowsが登場するわけですが、それでも、最初の製品版であるWindows 1.x(OSというよりシェルでしたが)ではフロッピーだけで起動できました(ウィンドウをオーバーラップではなく、タイリングで表示していたのもあるでしょう)。しかし、この時期でも、Digital ReszearchからでていたビジュアルシェルであるGEMだとすでにハードディスクが必要だったようです。やはり、GUIはOSには重荷なんですね。 この後はご存じのように機能拡張と対応デバイスの拡充で肥大化を繰り返して現在に至るわけです。そういう意味では「ただ単に、これまでに作ってきたプログラムを繋ぎ合わせていて、何十年もたったからではないか?」というご指摘は正鵠を射ています。人の書いたプログラムソース(それもアセンブラ)を読めやしませんから、バグがあってもさわれない。改造もできず、最悪、使わないのにそのコードを外すと何故か動かないなどでそのまま残っているというコードもあるはずです。 コンポーネント化すれば、1MBのOSで現在と同じような機能を実現することも可能だと思いますが、すでにそうじゃない方向にかなり進んでしまいましたからね、戻るのは無理でしょう。 どこまでをOSと考えるかによりますが、カーネル・シェル・デバイスドライバに分割した場合、現在のPCのOSでも、カーネルだけならそれほど大きくないはずです。Machカーネルなどはそうですね。 なお、PCではありませんが、組み込み制御に使われるOSであれば、今でもそれほど大きな物ではありません。

  • nano_cat
  • ベストアンサー率24% (26/106)
回答No.11

PDP-5ですか、調べてみると1963年12月に発表されたそ うで、40数年前当時では最新のミニコンですね!私は かろうじて生まれていました。3万ドルもしたのですね。 PDP-5は不明ですが、2年後に発売されたPDP-8はスピー ド=1.5μ秒とありました。スピードの意味がよくわか りませんが1命令の実行速度ということでしょうか。 それならば、0.67MIPSということですね。 今ならもっと凄いスペックのCPUが2000円程度で買えま す。16ビットでRAM8kバイト(4kワード)、ROMは512k バイトが内蔵されて15mm角のワンチップマイコン。 (H8/3052)これはPDPよりも何倍も早く動くと思います。 (クロック=25MHzですが、H8は1命令に数クロック かかるので、数MIPSというところでしょうか。) >>「今のパソコン用OSは1MBもあれば、 >>書けるのではないか?」 ほんの10年ぐらい前まではMS-DOS全盛でした。これは OS部分は100kバイトも無かったと思います。これはシン グルタスクでしたが、OS-9というマルチタスクOSもあり ました。これも内蔵用途でなくパソコン用としてもOSの 大きさは100kバイトありません。 ここ10年で肥大化しました。 >>「ただ単に、これまでに作ってきたプログラムを >>繋ぎ合わせていて、何十年もたったからではないか?」 それはないでしょう。 制御系なら相当複雑なことをしても数十kバイトの メモリでOKです。 Windowsはメモリを贅沢に使いますね。GUIだからでしょ うね。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.10

皆さんがほとんど言い尽くされていますが、40数年前との根本的な違いをいくつか。 1.マルチタスク・マルチユーザーがサポートされている。 2.仮想記憶がサポートされている。 3.通信機能が強化されている。 4.セキュリティ管理が導入されている。 5.プラグアンドプレイが導入されている。・・・以前は自分で登録が必要だった。 6.ファイル管理が進歩した。(階層構造、自動サイズ拡大)・・・以前は事前に領域定義 などなど。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.9

これまでの回答のように、GUIにしたから、使いやすくしたから、付属のアプリケーションが増えたからといった理由が大きいと思います。 ただ、質問者さんがご指摘のような、「ただ単に、これまでに作ってきたプログラムを繋ぎ合わせていて」に近い理由があることも確かです。 パソコンの性能が向上するにつれて、ソフトウェア開発者の実装技術は加速度的に低下していきました。 本来であれば、性能を向上させるための努力を払うべきところを、パソコンの要求性能を上げることで解決するような怠慢を繰り返した結果、どんどんハードウェアの性能に甘えた開発スタイルが根付いていきました。

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.8

エクセルの表をワードで書いた文章に貼り付けて ワードで再度編集可能で、文章の中に写真を加工したものを貼り付けて、 同じような内容がほとんどのアプリで実行できる 特定のプリンターではなく、ほとんどが機種に依存せず デバイスドライバーをメーカーが用意してくれて ドライバーをインストールするだけで動作でき USBカメラつなぐだけでビデオチャットが可能で DHCPのチェック入れるだけでネットに接続できて 既にあるデバイスなら、接続するだけで勝手に認識してくれて 3D映像も早いVGAさえあればグリグリ動作してくれて 細かいことを考えずに映画配信が簡単に見れて そのような便利な機能が数MBの軽いOSで可能なら、非常にうれしいです。

  • driverII
  • ベストアンサー率27% (248/913)
回答No.7

はじめまして。 回答ではないので、アドバイスとさせていただきます。 1、なぜ、マイクロソフトが出すような・・・   やはり初心者にやさしいというのが、一番の  理由だと思います。Windows は もともとMS-DOS  というOSでしたが、CUI(文字)画面であり、素人  でも直感的にわかる表現は、難しかったと思い  ます。 2、ただ単に、これまで・・・・   そうかもしれません。ただし商業ベースであ  る以上、売れないものは作らない。必要な機能  を開発する。この姿勢は重要です。さらに不具  合を修正する機能WindowsUpdateなど、管理コ  ストを低減する仕組みまで盛り込んであり、さ  きほども書いた初心者にやさしいという目的を  満たすようになっています。 3、今のパソコン用・・・   書けるかもしれません。ただ様々なデバイス  ドライバなどは現在、各メーカがWindowsに  合せて開発・提供しており、それらを認識する  だけでも、かなり大変かと思います。   ただ単に低機能DOSの機能だけならそんなも  のでしょう。

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.6

Windowsが大きいプログラムである原因は、 二つ理由が挙げられると思います。 WindowsはOSとして売られていますが、 中身の大半は、OSではなく、アプリケーションです。 「ソリティア」「メモ帳」など。 それだけではなく、フォルダの中身を見る「エクスプローラ」なども、 昔のコンピュータでは、アプリケーションに分類されるものです。 インターネットエクスプローラ(IE)も同様で、 OSの基本機能ではありません。 OS以外のものがいろいろ同梱されているために巨大化したというのが最初の理由です。 ただし、OSの基本機能も、それなりの大きさにはなります。 たとえば\WINDOWS\system32\kernel32.dllなどが OSの中核機能として働いている部分です。 これは1.2MBくらいあります。 こういうのがいくつか働いているわけだから、 WindowsがOSとして働くのに必要なプログラムは数MB以上だと思います。 これはおそらく、周辺機器との入出力のために大きくなっているのだと思います。 測定器からのデータは、多少まちがっていても、 その場合「測定器が悪い」か「プログラムが悪い」かとして処理されるでしょう。 しかし、ファイルを使うようになると、 ファイルがディスクシステムに正確に保存されたか、 正確に読み出されたかを確認するため、 かなり複雑な処理が必要になってきます。 我々は普段、HDDを意識せずに使っていますが、 構造を詳細に見ると、物理的フォーマット、論理的フォーマットなど 何重にも重なった構造を取っており、相当ややこしいものです。 OSはそれを隠して、使いやすいようにしているのです。 また、ビデオカード、USB、ネットワークなども相手にしなければなりません。 これらに対してそれぞれ、正しい「プロトコル」(データのやりとりに関する取り決め) に従って扱ってやる必要があります。 USBだけを取っても、プロトコルの処理をするのは相当面倒なものです。 たしかに、「これまで作ってきたプログラムを繋ぎ合わせて」いるために 肥大化しているという面はあります。 ですがOSだけの責任ではなく、 周辺機器との「プロトコル」が肥大化しているという面もあります。 ハードウェアをある日急に一新するわけにもいかないので、 仕方がないという面もあります。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.5

>今のパソコンでも周辺機器は数個、 そりゃぁひとつのPCにつけてる周辺機器は数個かもしれませんが・・・ 今のOSはPlug&Playといって、たいていのものはつなげれば使えるようになっています。逆に言うと、OSがさまざまなデバイスを認識し、ドライバを持っているということです。 >「なぜ、マイクロソフトが出すような長大なOSが必要なのでしょうか? 」 簡単に言えば、「PCを誰でも使えるようにしたから」です。 >「今のパソコン用OSは1MBもあれば、書けるのではないか?」と思います。 別に今のでも、昔のPCでも、PC/AT互換機ならMS-DOS/Vって立派なOSがあります。当然ブートだけならFD一枚ですよね。 PC-UNIXでもFD一枚で何とかすることも可能です。 ただし、現在、MS-DOS/VのようなCUIのOS、簡単に万人が使えますか? で、ようはOSに何を求めているかです。 okyoshiさんは、OSとは何をするものと思っていますか? それによって、1MのOSで十分かもしれないし、数GのOSが必要かもしれません。 今の需要、世間一般は何でもできるOSを望んでいるようですから、OSがどんどん巨大化していくのは不思議なことではないかと思います。

  • faicha
  • ベストアンサー率50% (4/8)
回答No.4

いろいろな理由が考えられます。  まず、おっしゃるように、1MBもあれば、OS(どこまでをOSと呼ぶかは議論のわかれるところでしょうが)は、実装可能と思われます。独自開発でやっておられるOSの配布サイズなどをみても500KB程度です。(例えばhttp://osask.jp/)  グラフィックやサウンドに凝って、サイズが肥大化している部分もあります。WindowsXP標準の壁紙サイズでも、結構な大きさになっていますので。  技術的な部分でいいますと、PC/AT互換機(死語に近し)の互換性が優れていたのは昔の話で、今はグラフィックカードにしても800x600以上で速度を稼ごうと思えば、ビデオカードごとのプログラムが必要ですし(この部分についてはVESAという規格があって、速度を気にしなければ互換性は確保できます)ATAにしても、DMA66などを使おうと思えば、チップセットごとのプログラムが必要になります。ネットワークカードにしてもそうですし、この部分(ドライバーと呼ばれる部分)で、サイズがかなりいってると思います。  最後に、CPUの速度が上がり、ハードディスクやCD,DVDメディアの容量が増大したので、大きくしなければ(かつ重くしなければ)乗り換えてくれないという政治的な理由が考えられましょう。

関連するQ&A