2014年12月28日の日記です


リーナス・トーバルズの誕生日(1969)  2014-12-28 09:56:47  コンピュータ 今日は何の日

今日はリーナス・トーバルズ氏の誕生日(1969)。


Linux を作った人です。


Linux なんて使ってない、という人でも、Android 端末の中身が Linux だったり、ネットワークハードディスクは大抵 Linux で動かされていたり、WiFi ルータの中身が Linux だったりすることが多い、と書けば、どこかでお世話になっているのではないかな。


それでも使ってない、という人。

今あなたが読んでいるこの日記は、Linux サーバーから配信されています。

ネットの半数くらいのサーバーは Linux 。影響なしに生活している人なんていない、と断言できます。



そんな彼ですから、あまりに有名すぎて、僕が生半可な知識で何か語って間違っていたら、各方面からお叱りがきそう。


エピソードはちょっと探せばたくさん見つかりますから、概要だけをかいつまんで書きましょう。




その昔、IBM-PC 互換機の OS といえば MS-DOS 、と相場が決まっていました。


IBM-PC 互換でなくても、Intel 系の CPU であれば大抵 MS-DOS。

PC-9801 も、FM-Towns もそうでした。


MS-DOS は、8086 向けに作成された OS です。

細かな経緯は省きますが、Multics に由来する「ディレクトリ管理」や、「デバイスファイル」などの概念を持つ OS です。

ただし、非常に簡素で低機能でした。


時代は過ぎ、80386 が登場すると、MS-DOS は「非力」となります。80386 の機能を十分に活かせないのです。


たとえば、先に書いた FM-Towns では、全体の管理には MS-DOS を使いつつ、アプリケーションを実行するときは RUN386 という支援ソフトの力を借りていました。

面倒な手順が必要となりますが、こうすることでやっと、80386 の機能を開放することができたのです。


とはいえ、最終的には 8086 で動作する OS に戻らなくてはならいないので、非常に制限の多いものでしたが。




リーナス・トーバルズは、80386 の機能を十分に活用できる OS が欲しい、と考えていました。


8086 用には、Minix と呼ばれる OS がありました。

これは、UNIX を 8086 向けに移植したもので、実用と言うよりは「OS 構造の教育用」でした。


しかし、リーナスは Minix で OS の構造を勉強し、80386 向けに1から Minix に似た OS を作ります。


また、この際に Minixが 8086 の制約で「本物の UNIX」とは変えてあった部分も変更し、80386 の機能を活かして「本物の UNIX」とします。


こうして生まれたのが Linux でした。




最初は Minix の「改良」として作られた Linux ですが、Minix とは全く開発方針の違うものでした。


Minix は OS 構造の教育用ですから、実用性よりもわかりやすさと、最新テクニックを使用することを心がけられていました。


しかし、Linux は 80386 の機能を活かせる OS としての「実用品」でした。

わかりやすさよりも高速性、最新テクニックよりも信頼のおける技術を使うことが重要でした。


このため、最初は Minix のコミュニティで発表された Linux は、すぐに Minix コミュニティを離れて独自のコミュニティを作り上げます。




Linux は、 OS の「中心部分」しかありませんでした。


OS というのは、CPU やメモリを管理するための「中心部分」と、その上で人間が便利に使うための最低限のアプリケーションなどのセットです。


リーナスは、当初アプリケーション部分に GNU のプログラムを利用しました。

GNU は、独自の UNIX 環境を構築することを最終目標として活動していた団体で、一通りのアプリケーション群は全て無償で公開されていました。


しかし、GNU が作成すると約束していた OS の「中心部分」は、予定通りには開発が進んでいませんでした。


GNU の思惑とは違いましたが、GNUのアプリケーション群に Linux を組み合わせることで、一揃いの UNIX 環境が構築できました。




ところで、UNIX には大きく二つの「流派」があります。


UNIX を開発した AT&T ベル研究所がそのまま拡張を施した、SystemV 系列がその一つ。(以下 SysVと書きます)


教育機関向けに無償公開されていた初期の UNIX を元に、カリフォルニア大学バークレイ校が独自に拡張を施した Berkeley Software Distribution 系列がもう一つです。(以下 BSD と書きます)


初期の UNIX を元に多数の機能を追加した BSD が先にあり、その拡張を本家が真似する形で SysV が作られています。


UNIX が急速に普及したのは、BSD を採用した Sun 社の存在があったためです。

その一方で、Linux が作られたころには「本家」である SysV が標準規格となりつつありました。


GNU アプリケーションは、主に BSD 向けに作られており、細かな「方言」に相当する部分が BSD に準拠していました。

一方で、Linux は SysV に適合するように作られました。


そのままでは、同じ UNIX と言えども、GNU アプリケーションを動かすのには「移植」が必要となります。



でも、リーナスは現実主義者でした。

Linux は SysV をベースとしていますが、BSD の機能も次々と搭載してしまい、BSD のソフトもほぼそのまま動作するようになっています。




このように書くと、Linux が最初から夢の環境だったようです。

しかし実際には、当初の Linux は問題の多いものでした。


個人が趣味で作ったものでしたから、拡張性に乏しい部分が多く、すぐに壁に突き当たったのです。


僕が初めて Linux に触れたのはその頃でした。

FM-Towns に Linux が移植され、国内の会社から「日本語が使える」Linux が販売されていました。


…すみません。正直に言えば、僕はその頃に「Linux に触れた」のは事実ですが、とても使いこなせませんでした。

UNIX に対する知識があまりに不足していて、インストールはしたものの、それをどのように設定し、運用するのが適切かわからなかったのです。


だから、比較的早い時期に Linux に触れていたからエキスパート、というようなことは * まったく * ありません。

ただ、触れてたのは早いんだよ、と自慢してみたかっただけで。



そして、リーナスも最初から素晴らしいものを作り出した偉人、というわけではありません。

上に書いた通り、初期の Linux は多数の問題がありました。


彼一人で Linux を作り出したのではなく、時代が作り上げていったのです。




Linux は普及に従って協力者が増え、次々に機能が追加されていきました。

当初あった壁も、すぐに解消されます。今でも Linux には多数の問題点がありますが、それらもやがて解決されるでしょう。


ただし、協力者はみな「趣味で」やっているだけです。問題点がわかっていても、その作業が「ひたすら面倒で誰もやりたがらない」ような問題の場合、永久に手を付けられない場合もあります。


また、素晴らしい仕組みが作られていても、余りにもエキスパート向けの機能すぎて誰もその素晴らしさに気付かない場合、こちらも協力者が少ないために作業が遅々として進まない問題もあります。


ここら辺が、マイクロソフトが作成する Windows に比べて弱いところです。

Windows は、製品として作られていますので、必要とされる機能であればどんなに面倒な事であってもキッチリ作成されます。


#Windows 8.1 では、95 のソフトも動かせる「互換モード」があります。

 Linux では、すでに 80386 時代のソフトの互換性は切り捨てられています。


#MacOS や Android は企業が作っているけどサポート弱いね…。ここは企業の持つ総合力の問題。

 それがわかっているから、それ以外の「アイディア」部分で差をつけているわけだけど。




すでに、リーナスのプログラム作業はほとんど行われていないようです。


彼の一番重要な仕事は、全体にとって何が大切で、何が不要かを決めること。

たとえば、かなり前に Google は Linux の本体部分に Android のための機能を「追加」しました。


しかし、その後 Google がこれらの機能を一切メンテナンスしようとしないため、彼は「切り捨て」を決定しました。

本体部分は、デスクトップ PC やサーバー、Android まで含め、すべての環境に影響を与えるものです。


しかし、Android 専用の機能を「本体部分」に追加した挙句、その後ほったらかしという態度に怒ったのです。

これらは機種ごとに作ることができる「付属部分」で解決することが妥当で、本体に入れるべきではない、というのが彼の決定でした。


Android は、Linux を利用した機械としてはかなり大きな市場です。

そこに影響が出る大きな決定を、彼の一存で決めてしまうわけです。


しかし、これは Linux の崩壊を防ぐためには必要な決定です。

Android は大きな市場とはいえ、Linux のすべてではありません。

その Android 専用の機能を「その他すべての Linux 」も含めて追加するのは、妥当ではないでしょう。



彼は時々このような重要な決定をするので、Linux 界隈で「優しい終身の独裁者」と呼ばれています。

これが彼の現在の一番重要な仕事です。




Linux は無償で提供される、「オープンソース」の代表のようなソフトですが、リーナス自身がオープンソース信者と言うわけではありません。


その昔、トランスメタと言う会社でソフトを作り、そのソフトを「企業秘密」として公開しなかったこともあります。


…当たり前の行為です。彼はその時は、一社員に過ぎないのですから彼の一存で公開などできません。


しかし、全てがオープンソースであるべきだ、と考えている一派から見ると、Linux を作ったリーナスがソフトを秘密にした、というのは許しがたい裏切り行為に思えたようです。



リーナスをオープンソース界の神、とみる人々がいて、裏切り行為だとみられたのはその反動です。

しかし、彼は決して神などではないし、熱心にオープンソースをやりたいと思っているわけでもなさそうです。



ただ、彼は非常に優れたバランス感覚の持ち主だと思います。


そのバランス感があるから、Linux でも重要な決定を次々に行っていますし、オープンソースにするか否か、という根本部分でも必要に応じて変えられるのです。




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

コンピュータ

今日は何の日

別年同日の日記

02年 ページレイアウト変更

05年 サンマルク

15年 今年のクリスマス

18年 The House of the Dead 2

19年 【訃報】6502 の開発責任者、チャック・ぺドル


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


戻る
トップページへ

-- share --

4000

-- follow --




- Reverse Link -