2013年09月17日の日記です


Linux の初公開日(1991)  2013-09-17 06:17:00  コンピュータ 今日は何の日
Linux の初公開日(1991)

今日は Linux の初公開日。

1991年、Linux カーネル 0.01 はインターネット上の MINIX ニュースグループに投稿されました。


当時は 80386 が出たばかり。

…って言ってもわからない人の方が多いだろうな。Intel の CPU が 16bit から 32bit になって、でも OS は DOS しかないから、みんな 386 を「16bit 互換モード」で動かしていました。


もちろん、386の性能を活かしきることなんてできません。どうしても性能を引き出したい人は、DOS 上から 386 のネイティブモードに移行してからプログラムを実行する「DOS EXTENDER」と呼ばれるソフトを使っていました。


FM-TOWNS でも、 RUN386.EXE を使ってましたね。

ほかにも GO386 とか EXE386 とか、いろんな会社から発表されていました。


でも、これは結局小手先のごまかしにすぎません。

パソコンマニアは、386 の性能を引き出せる OS を求めていました。




当時、MINIX という、8086 (16bit)で動く UNIX 互換の OS がありました。

(当時僕は大学生でしたが、先輩が PC9801 用の MINIX を入手して喜んでいたのを思い出します)


この OS はそれなりによく出来ているのですが、目的の一つが「OS の勉強用」だったため、できるだけ複雑な処理は行わないように作られていました。

そのため、簡素な 16bit 用につくられていて、32bit への拡張予定もありませんでした。


#当時の話。現在は 32bit 対応しています。


そして、Linus Tovals(以下、Linux と混乱しやすいのでリヌスと表記)は MINIX で OS を勉強し、新たに 32bit 対応の OS を書き起こします。

ある程度動くようになった最初のバージョンを発表したのが、1991年の今日、と言うことになります。


ちなみに、当時はまだ WEB はありません。

情報交換には、文字中心のニュースグループが使用されていました。まぁ、掲示板みたいなものだと思ってください。


リヌスは MINIX で勉強したので MINIX のニュースグループに投稿したわけですが、これはある意味「スレ違い」でした。リヌスの新しい OS は、MINIX ではないのですから。


ここで、MINIX の開発者であるタネンバウム教授と、リヌスの間で激しい議論が交わされます

後に「喧嘩になった」とされていましたが、実際にはお互いの思想の違いなどを説明し合い、お互い始終冷静だったと言います。


そして、お互いの考えは相容れないことがわかりました。


タネンバウム教授は教育用にお手本となる OS を求めていたため、誰でも使える古い CPU の機能のみで作る一方で、プログラム的には最新技術を取り入れていました。

一方で、リヌスは実用になる 32bit OS を求めており、最新技術を使うよりも、使い慣れた古い技術で作りたいと考えていました。


リヌスは MINIX とは袂を分かち、新しい OS を独自に育てることにしました。

この時、MINIX コミュニティの中でも、PC 上で動く実用になる UNIX を求めていた人たちは、リヌスについていきます。


#当時、まだ PC 用の BSD はありませんでした。

 PC 用 BSD の始祖である NetBSD の登場は 1993年。




OS に詳しくない人のために、説明しておきます。

一般的に、OS を購入すると、最低限必要な周辺ソフトも一式付いてきます。


しかし、狭い意味では OS は「コンピューターを制御する部分」のみです。

ユーザーの入力を受け付けるのは、OS の上で動く別のプログラム。


狭い意味での OS を「カーネル」、ユーザーの入力を受け付ける部分を「シェル」と呼びます。

さらに、シェルから呼び出されて動くアプリケーションなどがあります。


リヌスが作った Linux 0.01 は、カーネルのみです。

しかし、すでにフリーソフトとして存在したシェルを使うことで、一応ユーザーの入力に対して反応できる、と言う程度のものでした。

ちょっと複雑なアプリケーションを動かそうとすると、上手く動かずにハングアップします。


1か月後には 0.03 が作られ、コンパイラ(結構複雑なアプリケーションです)を使って、カーネル自身のプログラムをコンパイルすることが可能になります。


当時、UNIX は非常に高価なワークステーションで動くのが普通でした。

パソコンは 16bit 、ワークステーションは 32bit で、明確な棲み分けがあったのです。


MINIX は UNIX とはいっても 16bit ですから、アプリケーションを動かすのには、複雑な移植作業が必要でした。

しかし、Linux は 32bit です。多少の移植作業が必要なことはありましたが、多くのソフトがほとんどそのままか、簡単な手直しのみで動きました。


コンパイラが動くようになれば、多くのアプリケーションが移植されます。

リヌスが作ったのはカーネルだけですが、UNIX にはプログラムソースが公開されたフリーソフトが沢山ありました。


つぎつぎアプリケーションが移植され、カーネル開発も進み、Linux は「PC用の UNIX」としての地位を固めていきます。




UNIX には、大きく分けて SystemV と BSD の2つの系統がありました。


BSD には先進的な機能が次々実装され、多くの人が BSD を使った時代もあります。

しかし、Linux が出てきた頃は、SystemV が BSD に追いつき、総合力で上回ろうとしていた時でした。

リヌスは、Linux を SystemV 互換として作っています。

しかし、「少し前の時代」は BSD が全盛でした。フリーソフトの多くは、BSD 用に作ってあります。


移植しやすいように、Linux は BSD の機能も数多くサポートしています。

SystemV 互換だけど、BSD にもかなり似ている。この節操のなさが Linux が広まった理由に思えます。

主に BSD 互換のアプリケーションを使っているため、細かなコマンドオプションの違い(同じ名前のアプリケーションでも、BSD と SystemV ではわずかに使い方が違う)などは、ほとんど BSD 互換になっています。


これもまた、BSD を使い慣れたユーザーが移行するのによかったように思います。


OS としての全体が整うと、簡単にインストールできるようにまとめた「ディストリビューション」が登場します。

これによって、気軽にインストールができるようになると、Linux はますます地位を向上させていきます。




僕が最初に Linux に触れたのは大学のころ、FM-Towns 用の Slackware + JE でした。Laser5 で売ってたやつ。

(Linux は IBM互換機用でしたが、FM-Towns にはいち早く移植されていました。

 Slackware は、Linux を誰でもインストールできるようにした、最初のディストリビューション。

 JE は Japanese Extensions 、日本語を扱えるようにするための拡張パッケージです。

 Laser5 は CD-ROM 専門のソフトショップでしたが、このような独自の CD-ROM も作成して売っていました)


当時、日本の Linux 界には「タコは財産」という言葉がありました。

タコとは、どうしようもない初心者のこと。


今でも聞いてばかりの初心者に対して「ググレカス!」とひどい言葉を投げつける人がいますが、当時も同じような風潮はありました。


しかし、MINIX コミュニティに受け入れてもらえなかった、というところから始まる Linux では、どんな初心者であろうと「仲間を増やす」ことが大切だと考えられました。

初心者であっても、興味を持って続ければいつか上級者になる。そういう人を増やすことが大切だ…というわけです。


Laser5 の Slackware + JE では、おまけにシールが付いてきました。

「Linux inside」と「タコ」のシールでした。この頃はまだ TUX 君は Linux のマスコットではなく、日本での事実上のマスコットは、この「タコ」でした。


…シールを公開したいと思ったのですが、探しても見当たりません。もういらないと思って捨ててしまったのかなぁ。


後日追記 2015.1.12

タコシール発見し、この日記冒頭に表示しています。(クリックで拡大します)

また、リンク先のツイートで見られます。

追記終り。




僕は、Linux を導入しようとしたころ、まさに「タコ」でした。

大学で UNIX を使い始めたばかりだったので自宅にも…とおもったのですが、ただのユーザーと管理者ではやることが全然違います。

もっと言えば、大学の UNIX も、よくわかっていない大学院生が管理しており、非常に使いづらい状態でした。

当時は「UNIX の何がそんなに良いのだろう?」と思っていました。


その後会社に入って「よく整備された」UNIX ネットワークを使い、その後にふたたび、今度は移植ではない本来の Linux を使い始めます。

この時には RedHat を使用しました。もっとも、RedHat もまだ日本語対応していない時期で、RedHat + JE がやはり Laser5 から発売されていました。


また、この頃の RedHat は専用にパッケージされたアプリケーションが少なく、自分でアプリケーションを導入すると、独特のアプリケーション管理と相性が悪い、と言う状態でした。

後に、最初から日本語対応していて Slackware ベースの Plamo Linux に変更した覚えがあります。




今では、Linux の導入も非常に楽になりました。

僕は Linux 信者ではないので、Win と Linux を使い分けていますが、仕事内容によっては Linux だけで十分、という人もいるようです。


最新の Linux カーネルは 3.11 (2013/9/17現在)。

3.8 以降は、最初の目的であった「386用の OS」であることを捨てました。

…つまり、386 は古すぎるものとして、すでにサポートされていません。


MINIX が「単純化のため」古い CPU にしか対応していなかったのとは対照的です。

この、時代に合わせて変わっていくさまこそが Linux らしさなのでしょう。



同じテーマの日記(最近の一覧)

コンピュータ

今日は何の日

関連ページ

Linuxの存在が明かされた日(1991)【日記 16/08/25】

リーナス・トーバルズの誕生日(1969)【日記 14/12/28】

LinuxBean【日記 15/10/23】

古くて非力なマシンをLinuxBeanで再生してみた【日記 15/10/23】

タネンバウム教授(1944) ストールマン(1953) 誕生日【日記 17/03/16】


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

21003

-- follow --




- Reverse Link -