mstdn.maud.io is one of the many independent Mastodon servers you can use to participate in the fediverse.
The place to express your ❤️ more freely. / あなたの「すき」をもっと自由に書き表すための場所。

Administered by:

Server stats:

347
active users

歴史の話をすると、計算機の発祥は様々なものがあるけれど現在の計算機の直系の先祖である ENIAC のような真空管電子計算機ではパッチパネルがあって千人のオペレーターが指示に従い配線を物理的に繋ぎ替えることで「programming」をしていた

で、これが進むとパンチカードが登場し、計算機がパンチカードを読み、コンパイルをし、そのバイナリをパンチカードや紙テープに打ち出し、それを計算機に入力させ、計算するようになる

当初はコンパイルに使う事務処理系マシン、メインの科学技術計算をするマシン、同じ会社でもどれも CPU アーキテクチャから違うもので、当然 OS も存在しない。

それで、パンチカードは研究者が提出して、専任のオペレーター(大抵女性)がパンチカードの束を管理し、時間で課金されるのも手動で帳簿で管理する

これがそのうち、計算機の需要が増えたのに応じて、束にしたパンチカードを読み込む、優先度に合わせて読み込む順番を整理するといった部分がだんだん自動化されてきた。実質、OS のスケジューラーである。タスクがあって、それをディスパッチするのが OS の原始の姿だ。

ところでこの頃、IBM が System/360 を開発した。事務機も科学技術計算機も全部 CPU の ISA は同一で、しかもこの上で動くタスク管理システムのソフトウェアは同一なのだ。これをもって世界初の汎用機と世界初の商用 OS の登場と言われている(諸説ある)

それまでパンチカードを自動処理するバッチシステムだったものが、OS になった、ということでもある

また、1960 年代には System/360 の OS である OS/360 以外にも重要なものが登場していて、Time-sharing System である。それまでのバッチ処理システムではユーザーが計算機を占有することはできず、また、一度プログラムを提出したらその結果が帰ってくる翌日(あるいは翌週かもしれない)までバグってるかどうかすらわからなかった。

Fernando J. Corbató らによる Time-sharing System では、計算機の資源を時分割で細切れにすることによって同時に複数のユーザーが計算機に接続し、使用することが可能となった。

マルチユーザーシステムの登場であり、マルチタスクシステムの登場でもある。

また、Unix の roff の原型と言われる RUNOFF も CTSS 産であり、また FSF 揺籃の地となった MIT AI Lab. の ITS は CTSS を意識して作られた OS である

また、1961 年 CTSS が生まれ、1964 年 System/360 が発売し、そのころもう一つ重要な開発が始まったのが、Multics だった。

Multics では file という概念の登場、PL/I のような高級言語による OS 開発といった野心的な要素が多数あり、このプロジェクト自体はポシャったもののここで培った知見をコンパクトに実現したものこそ Unix である。

Unix は当初 Multics で得た Mr. Ken Thompson によるファイルシステムのアイディアの黒板スケッチを実現するための環境であった

まとめよう。OS の起源は明確にバッチ処理システムにあって、ここで重要なのはタスクを管理すること、つまりタスクに CPU 時間をどれだけ渡すかというスケジューリング、そしてどれだけメモリを使わせるかというメモリ管理がある。また、時分割によるマルチユーザーシステムとユーザー間保護、そして Multics や Unix で生まれたファイルシステム、これらの要素が現代の OS に必要不可欠となっている、と言える。逆に言えば、これらは 1960 年代には出揃っていた。

ちなみに、元々はプログラムって鉛筆と紙でフローチャートガリガリやってからパンチカードや紙テープに穿孔するもの、コンパイラも汎用機の前は専用のコンパイルマシンにパンチカードを突っ込んでバイナリの紙テープやパンチカードの出力を待つもの、で今とプログラミングの意識が違った。だから、Time-sharing system ではずっと計算機に端末を繋げたまま、キーボード操作だけでプログラムを記述し、コンパイルし、実行し、デバッグできるのは非常に斬新で、それをすることを指して「オンライン」と呼んでいた

だから計算機の上でプログラムをエディットできるという最新の概念を持つエディタはオンラインエディタだったし、マニュアルを計算機で閲覧できるのでオンラインマニュアル(man pages)だった