#何故書いたのか。
社会人エンジニア1年目に向けてプログラミングに関する基礎の基礎を学ぼうということで、まずはOSの歴史をまとめてみようと思います。
その前身として前回は、そもそもOSはどんな構成なのか、OSの有名所って何があったっけ、と言った超初歩的な疑問点があったの以下のリンクにまとめてみました。
OSの基礎の基礎をまとめてみた。
今回はこの続きとして、本題のOSの歴史についてまとめていきたいと思います。それぞれコンピュータの種別でOSの歴史などを考察していった後に、まとめにある画像でわかりやすく流れを確認していただけたらと思います。
#種別OS
##汎用コンピュータ用OS
汎用コンピュータ(≒メインフレーム)とは、企業の基幹システムにおける膨大かつ機密性の高いデータを処理する大型コンピュータのこと。黎明期のコンピュータは計算処理なら計算処理、事務処理なら事務処理のコンピュータを用意すると言った形で生産しており、非常に売り手、買い手どちらにおいても不便な時期があった。その不便さを取り除く、つまり、計算処理と事務処理を統合的に処理できるように進化していった。その統合的な処理をしたのがOSであり、OSの始まりはここからであると言われている。その初期のOSと言われているものはOS/360(System/360)というIBMが開発したものである。IBMは汎用コンピュータのシェアをこの時から席巻しており、最近の2015年時点でもIBMのメインフレームシェアは国内80%、日本を除くと93%となっており現在も業界を牽引する企業となっている。今回はその初期のOSと言われるOS360、その後に登場するIBMが開発したOS360進化ver.のMVSについて解説していく。
###OS360
現在から約65年前の1950年の世界最初の商用コンピューターUNIVAC誕生(真空管が大量にあるコンピュータで、この時代を第一世代という)から2年後の1952年にIBMがメインフレーム業界に参入し、その12年後の1964年にOS360(System/360)を発表した。これがOSの元祖と言われており、今の多様なOSの基盤を築き上げた。
特徴は以下。
- 文字コードはEBCDICを採用
- 磁気ディスク装置(DASD) を扱う最初のOS
- OSはSystem/360アセンブリ言語で記述された
- 当初より企業用として、プログラム(プログラマ用API)と運用管理(オペレータ用システムコマンド、JCL)を明確に分離している
- 現在のIBMメインフレームOS (z/OS) も、OS/360を受け継いでいる(上位互換)
###MVS
MVS(Multiple Virtual Storage)はIBMが開発したメインフレーム向けOSの一つ。
MVSの意味は多重仮想記憶の意味。
1964年にOS360が発表され様々な機能が拡充されたが、それらの追加機能を総合的にかつ体系的に整理拡充した新OSはとなっている。
主な特徴は、名前の通り「多重仮想記憶」が搭載されたことである。
多重仮想記憶とは仮想メモリを採用したシステムのうち、異なるプロセスに与えられる仮想メモリー空間の仮想アドレスが重複する方式を採用しているものを多重仮想記憶と呼ぶ。
このMVSが汎用コンピュータの業界標準で、汎用コンピュータ全盛期の代表的OSとなっている。
##UNIX、LINUX、その他
###UNIX
UNIXは1970年にAT&T社のベル研究所で開発されたOS。
元々、「Multics」というOSを開発していたが、Multiといったその名の通り機能が多く有りすぎて、とてつもなく処理スピードが遅いといったOSがあった。
このMulticsの機能を削減し、改良したものがUnicsという風に言われるようになり、改名後「Unix」となった。(「Uni」は単一と言った意味。)
UNIXの特徴は、完全なマルチタスク機能を搭載し、ネットワーク機能や安定性に優れ、セキュリティー強度が高いことで知られている。
また、UNIXは現在のMacOS XやiOSのベースとなっており、またこのあとに説明するLinux、更にLinuxをベースにしたAndroidも生み出したOSの中でもかなりの影響を与えたと存在。
###LINUX
1991年にリーナス・トーバルスが開発したOS。
90年代初頭、当時UNIXは著作権に関して非常にややこしい状況があったので、リーナスがそれを不便と思い、UNIXを0から再構築しLINUXを誕生させた。
なので、UNIXとはコマンドなどが似ているものが多いが、ソースコード自体は違うと言った物となっている。
リーナスはLINUXを開発後、それ自体のできがよかったので多くの人に見てもらいたかったという理由とそれに関してレビューが欲しかったと言う理由でオープンソース化し、その後2年ほどで世界に広まり、今ではOSS(Open Sorce Softwear)の代表格となった。
ただ、LINUX自体はカーネルの部分のみなので、OSとして動作させるためにはカーネルに様々なカーネルを助けるためのアプリケーションソフトウェアを組み合わせる必要がある。
この組み合わせたものをディストリビューションと呼び、現在では数多くのディストリビューションが存在する。
例で言えば、CentOSやUbuntuなどがある。
windowsOS以外のOSは知っている限りだいたいUnixやLinuxをベースにしていると思ってもよいのかも。
###その他
LINUXは現在のMacOSXから取り入れられているOSで、Macユーザーにとっては非常に馴染み深いOSとなっている。そこでLINUXのディレクトリはどんなものがあるか知っておいたほうが環境構築などの際にとても参考になると思うので以下よく使うディレクトリを載せておく。
ディレクトリ | 説明 |
---|---|
/bin | 基本的なコマンドが置かれているディレクトリ。 |
/dev | デバイスファイルがまとめられているディレクトリ。 |
/etc | システムの基本的な設定ファイルが置かれているディレクトリ。 |
/home | 一般ユーザーが自分の本拠地(ホームディレクトリ)として使うディレクトリ。 |
/lib | 基本コマンドの実行に必要なライブラリファイル(WindowsのDLLに相当します)が置かれているディレクトリ。 |
/root | システム全体に関わる設定ができる特別なユーザーであるroot(まあいわゆる管理人)のホームディレクトリ。 |
/sbin | 管理人用のコマンドが置かれているディレクトリ。 |
/tmp | コマンドが実行中に生成する一時ファイルが置かれるディレクトリ。 |
/usr | 一般ユーザーが使えるコマンドや、それらの設定ファイル、ライブラリ、ドキュメントなどが置かれているディレクトリ。 |
/var | プリンタ、メール、システムログなどのスプール領域として使われるディレクトリ |
##PC用OS
###WindowsOS
WindowsOSはPC用のOSとして世界大きなシェアを取っているOS。
1985年Windows1.0が登場する前にWindows社はキャラクタベースのMS-DOSというPC用OSを開発しており、それが1980年代PC用OS業界の標準となっていた。
以来windows3.0頃からデファクトスタンダードの地位を徐々に築き上げていき、1995年のWindows95でインターネットに接続するためのTCP/IPとWebブラウザとしてInternet Explorerを標準で搭載したことで、インターネットに接続するためのOSとして広く普及した。
その後バージョンアップを繰り返し、現在の最新OSはwindows10となっている。
###macOS
Software1.xというmacintosh用のGUI-OSから始まり、現在のmacOSsierraまで続くOS。
2001年、MacOS X10.0よりUnixベースのOSとなり、UNIXユーザーが多く増加した。
#現在のOS世界動向
OSの歴史をまとめてみたが、現在のシェアについてはこちら。
windowsよりもAndroidが世界で最も普及しているOSとなっており、
windowsとandroid以外はシェアについてかなり低いものとなっている。
Source: StatCounter Global Stats - OS Market Share
#まとめ
最後にわかりやすく年表方式でOSの歴史がまとめられている画像があったので参考にどうぞ。
(引用:http://www.is.s.u-tokyo.ac.jp/vu/99/jugyo/OS/Kougi2.html#History)
調べてみての感想だが、
現在macOSを使用しており、UNIX系?LINUX系?何言ってるんだといった感じで今までやりすごしていた。今回の記事作成でやっと体系的にOSを知ることができ、今後の学習に非常に役に立ちそうだった。
また、OSの構成要素(カーネル、シェルとか)もそれぞれの歴史を調べるときに必要な知識だったので、調べるうちにそこの知識(例えば仮想メモリの「仮想」の概念とか、、)も理解出来てちょっとエンジニアに近づいてる気がした。
ただ、まだまだエンジニアと名乗れないのでもっと深くOSの中身を学習していきたいと思う。
#参考
仮想講義オペレーティングシステム
メインフレームが時代遅れとは言わせない
IT Pedia MVS
OSの歴史:ITpro
[初心者向け]Linuxとは何か?
UNIX系OSとは何か?
【初心者向け】Linuxの歴史解説! OS誕生からLINUXへ
Apple Mac OSの歴史
WindowsとMacOSの種類と歴史
StatCounter
..etc