Thread Content
このアイデアはとても良いです。なぜなら、最初のコンピュータもまさにそうやって動作していたからです。 では、なぜ後にはそうしなくなったのでしょうか?理由は理解しやすい。実行されるプログラムが多くなるからだ。 考えてみてください。例えばコンピュータを使っているとき、Wordの文書を開いて文章を書きながら、ウェブページを開いて資料を調べ、PSで素材を加工し、画像ビューアーで素材の効果を確認し、翻訳ソフトで外国語を翻訳し、同時にヘッドフォンをつけて音楽を聴いているかもしれません。その一方で、コンピュータのバックグラウンドでは、アンチウイルスの監視プログラムやオンラインアップデートのチェックプログラム、入力法の単語帳作成プログラムなどが動いているのです。 ここで問題が生じます。すべてのプログラムには、CPUの演算リソース、メモリの主記憶容量、ハードディスクの読み書き処理量、ネットワークカードのネットワーク伝送量、バス上の内部データ転送量など、コンピュータからのリソースが必要です。
プログラムにとって、自身のスムーズな動作を保つためには、割り当てられるリソースが多ければ多いほど良いとなります。しかし、コンピュータのリソースには常に限りがあり、皆が自分のためだけにリソースを奪い合えば、全体として動作しなくなるか、あるいは一部のプログラムが他のプログラムのリソースをすべて奪ってしまうことになります。 さらに厄介なことに、プログラムの設計者には自分のプログラムがどのような他のプログラムと同時にコンピュータ上で実行されるかを予測することは不可能なため、あるプログラムの一時データが偶然にも別のプログラムの重要なデータと非常に似てしまう可能性が高く、その結果、あるプログラムが別のプログラムのデータを破壊してしまうといった問題が発生するのです。 さらに厄介なことに、私たちのコンピューターのハードウェアも異なるメーカーによって製造されており、そのベースとなるハードウェアシステムもそれぞれ異なります。消費者であれソフトウェア開発者であれ、あるソフトウェアがこの機種のコンピューターでは動作するのに、別の機種では動作しないという状況は望まないでしょう。
したがって、調整役としてプログラムを操作する必要があります。一方で、オペレーティングシステムは一連の低層インターフェースと上層標準を提供し、異なるコンピュータ間のハードウェアの違いを「埋め合わせる」ことで、オペレーティングシステムが同じであればハードウェアはソフトウェアの動作に必要な最低基準を満たすことになり、理論的にはそのソフトウェアは互換性を持つようになる。 また、オペレーティングシステムはすべてのプログラムにリソースを割り当てることができ、あらゆるプログラムがコンピュータのリソースを使用するにはオペレーティングシステムに権限を申請する必要があります。これにより、コンピュータのリソースを最大限に活用しつつ、さまざまなプログラムが互いに干渉することがないようになります。 全体的に見ると、オペレーティングシステム自体もコンピュータのリソースを一部消費するものの、コンピュータの動作をより安定させると同時に、プログラマーがハードウェアシステムの低層的な違いを考慮する必要がなく、オペレーティングシステムの標準的なインターフェースのみを考えればよいため、開発者の作業負担も軽減される。
もちろん、オペレーティングシステムにもさらなる問題があります。例えば、悪意のあるプログラムやコンピュータウイルスもこれらの標準インターフェースを利用できるのです。また、オペレーティングシステムが各種プログラムにリソースを割り当てるアルゴリズムも完璧とは言えず、ソフトウェアの終わりのないアップグレードに対応することも不可能です。そのため、オペレーティングシステムはこうした問題に対処するために、様々なファイアウォールや監視プログラム、パッチを継続的に提供せざるを得ず、それが結果として、決して消えないアップグレードの通知が出現する原因となっているのです。また、オペレーティングシステムも商用企業によって提供されており、彼らは常にそれを通じて利益を上げたいと考えています。そのため、あなたのコンピューターは、アップルのようにこうしてはいけない、ああしてもいけないと制限されるか、あるいはマイクロソフトのように頻繁にブラックスクリーンやブルースクリーンなどの問題が発生するのです。 ですから、問題を解決すると必ず新たな問題が生じますが、幸いなことに新しい問題は常に古い問題よりも軽度です。
現在のCPUには仮想化技術が搭載されており、CPUを多数の部分に仮想化して、各部分が特定のスレッドを処理することができる。。。それによって、現在のように複数のソフトウェアを同時に操作できるようになったのです~~~
オペレーティングシステムに関しても、WindowsやMac OSにこだわる必要はありません。多くのプログラマーたちは、Ubuntuというシステムを好んでいます。これは完全にオープンソースで、完全に無料であり、時間があれば誰でも自分に合ったオペレーティングシステムをカスタマイズすることができます~~
もう一つ言えば、私の印象では、システムをインストールせずにプログラムを直接実行することはできない。。。私の知る限り、最も初期のコンピュータでさえ、たった1つのプログラムしか実行できないものであっても、DOSシステム上で動作していました。。。現在は計算機のように特定の機能しか持たないもので、原理的には入力出力装置、レジスタ、メモリ、演算装置がすべて備わっているが、それをコンピュータとは呼べず、単なる計算機と言えるだけだ。。。
チャンスをあげるよ、謙虚に君の家のことを教えてもらおう
コンピュータは異なる機能を持つハードウェアで構成されており、システムによって各部品の動作や連携が呼び出され調整されます。システムがなければ特定の作業を完了するのは非常に困難であり、その場合、各アプリケーションは非常に複雑になってしまうかもしれません。