7044オペレーティングシステムの歴史(オペレーティングシステムのれきし)では、オペレーティングシステム(OS)の観点から比較的最近の計算機の歴史を解説する。OSはコンピュータのほとんどのアプリケーションプログラムが必要とし利用する機能群や、コンピュータのハードウェアを制御し同期させるのに必要な機能群を提供する。初期のコンピュータにはOSがなく、個々のプログラムは通常のタスクを実行するものであってもコンピュータのハードウェア仕様を完全に把握し、プリンターやパンチカードリーダーなどの周辺機器を自前で制御する必要があった。ハードウェアとアプリケーションプログラムが複雑化してくるにしたがって、OSが必須となっていった。背景[編集]初期のコンピュータはメインフレームであり、OSを持たなかった。この時代のユーザーはマシンを単独使用し、パンチカードや磁気テープやさん孔テープの形でプログラムとデータを事前に用意してやってきた。そのプログラムをマシンに読み込ませ、完了するかクラッシュするまでプログラムを実行させる。プログラムのデバッグは制御パネルのトグルスイッチやランプを使って行った。このような作業が得意だったという。彼は万能チューリングマシンの原理から「オペレーティングシステム」の基本的概念に既に到達していた。プログラマは記号言語、アセンブラ、コンパイラなどを開発し、それまでバイナリで直接書かれていたプログラムを記号化されたプログラムコードで書いて自動的にバイナリに変換するようになった。入出力などを扱うサポートプログラムをライブラリとしてまとめ、パンチカードや磁気テープに格納し、ユーザープログラムとリンクして利用するようになる。その仕組みが現代的オペレーティングシステムの始まりである。その時点でもまだマシンは一度に1つのジョブしか実行できなかった。イギリスのケンブリッジ大学ではテープを物干し竿にかけ、それぞれに色つきの洗濯ばさみをつけて優先順位を示すという人力のジョブ管理を行っていた。コンピュータの性能が向上してくると、実際に計算をする時間よりもユーザーからユーザーへ利用を引き継ぐのにかかる時間が大きくなってきた。それまで壁にかかった時計をチェックして課金していたが、コンピュータが自動的にログをとるようになった。ランキューは文字通りドアの前に並ぶユーザーのキューだったが、それが予約表となり、リーダーに複数のジョブのパンチカードを積み重ねるようになり、最終的にOSが磁気テープ装置をオンラインにする順序を自動的に選択するようになった。プログラム開発者がマシンを直接操作してジョブを実行していたが、マシンの保守も行う専任オペレータがそれに取って代わるようになり、タスクを手動で設定することは少なくなっていった。計算センターが商売として成り立つようになると、入出力のバグなどでデータが失われることが問題となり、装置ベンダーはシステムリソースの誤用を防ぐようランタイムライブラリを強化せざるを得なくなった。自動監視はCPU使用状況だけでなく、印刷したページ数、パンチしたカード枚数、読み込んだカード枚数、使用したディスク容量などに及ぶようになり、ジョブ実行中の磁気テープ交換などオペレータの介入が必要な事象を知らせる機能が生まれた。セキュリティ機能としては、どのプログラムがどのファイルにアクセスしたかなどを記録する監査証跡機能がOSに加えられ、科学技術計算プログラムが給与台帳ファイルにアクセスするなどの不正なアクセスを防ぐようになった。これらの機能はすべて、完全なオペレーティングシステムの一部となった。ランタイムライブラリが進化してジョブ投入前に起動するようになり、ジョブを受けつけ、その実行を制御し、リソース使用状況を記録し、ジョブが完了するとリソースの再割り当てをして次のジョブを実行するといった機能を持つようになった。このバックグラウンドで常駐してシステム全体を管理するプログラムは、モニターあるいはモニタープログラムなどと呼ばれ、後にオペレーティングシステムと呼ばれるようになった。ハードウェアの管理、ソフトウェアのスケジューリング、リソース監視などを行うプログラムが後のパーソナルコンピュータ時代のユーザー志向OSの先祖といえる。OSの意味するものは時代と共に変化している。昔の自動車にはスピードメーターもラジオもエアコンもなかったが、後にそれらは標準装備となった。それと同様に、オプションのソフトウェア機能が多くのOSパッケージの標準機能となっていった。データベース管理システムや表計算ソフトといったアプリケーションは今もオプションであり、別個に販売されている。このため現代でOSと言えば、グラフィカルユーザインタフェースを備え、ユーティリティ群を備え、テキストエディタやファイルマネージャなどのアプリケーションや設定ツールを含むシステムを指すようになっている。初期のOSの真の子孫は、今では「カーネル」と呼ばれる部分である。技術畑では、古くからの意味でのOSが今も保たれている。これは、携帯機器から産業ロボットやリアルタイム制御システムまでの様々なデータ処理を伴う電子機器の組み込みオペレーティングシステムの開発が今も活発に行われているからで、その多くはユーザーが目にするようなフロントエンドのアプリケーションを実行しない。現代の組み込みOSは1950年代のOSの先祖と比べてもそれほどかけ離れたものではない。他の多くの初期のIBMメインフレーム用OSも顧客が自ら開発した[3]。初期のオペレーティングシステムは非常に多彩で、ベンダーや顧客が特定のメインフレーム向けに様々なOSを生み出していた。同じベンダーであってもコマンド体系や操作手順、デバッグ用ファシリティなどが全く異なるOSを複数作っていた。一般に、メーカーが新たな機種を開発する度に新たなオペレーティングシステムも開発され、その度にアプリケーションを人力で修正し、再コンパイルし、評価し直していた。IBM製コンピュータのOS[編集]→詳細は「IBMメインフレーム用オペレーティングシステムの歴史」を参照そのような状態は1960年代まで続いていたが、ハードウェアベンダーとして頭角を現していたIBMはそれまで開発していた様々なシステムの開発をやめ、System/360シリーズの開発に集中するようになった。それは小規模なマシンから大規模なマシンまで、すべて同じ命令セットを使い、入出力アーキテクチャを統一したシリーズである。OS/360の開発で発生した問題は半ば伝説となっており、ソフトウェア工学の古典ともいえるフレデリック・ブルックスの『人月の神話』に描かれている。シリーズ全体の性能があまりにも異なり、ソフトウェア開発が遅延したため、実際には単一のOSでシリーズ全体をカバーすることができず、OS/360はOSファミリの一部となった[4][5]。IBMは以下の2つのオペレーティングシステムを長くリリースすることになった。中規模および大規模向けのOS。3種類の構成オプションが存在した。マルチプログラミング用リソースがない。