Why Linux 2017

Loading....

Loading....

Loading....

Loading....

Loading....

全文

(1)

計算数学Ⅰ Why Linux?

2017年6月版 一井信吾 / ichii@ms.u-tokyo.ac.jp / @si007a

Contents

1. 計算数学ⅠでなぜLinuxを扱うのか 2. Linuxの成り立ち

3. Linux Distributions 4. Linux実習の目標 5. 参考書

̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶-

計算数学ⅠでなぜLinuxを扱うのか

計算数学ⅠでLinuxを扱う理由をいくつか挙げてみる。 1. Linuxは広く使われている。

-

スマートフォン(Android)やガジェット・アプライアンス(Amazon Kindle)から、スー パーコンピュータまであらゆる種類のコンピュータで使われている。一見コンピュータに 見えないもの(ホームルータやカーナビなど)もLinuxで動いているものがある。流行の Raspberry Piも。

-

Scientific computingの世界では「これしかない」的 存在 。科学・工学分野の大規模計算はほとんどLinux1

で行われている。MathLibreもLinuxベース。

-

クラウドやWebサービスのためのサーバとしてLinux が使われることが多い。IT業界に入るならLinuxを扱え ると選択肢が広がる。

2. LinuxはUnixによく似ている。

-

Unixは1960年代から1980年代にかけて米国ベル研究 所で開発され世界に広まったOSで、そこで開発された 様々なアイディアが今では情報科学・工学の常識の一 部となっている。LinuxはUnixに似せて開発されたもの

で、Unixのアイディアの多くが取り入れられている。Linuxを知ることでそれを自分のもの にできる。

-

Unix/Linuxの基本はずっと変わっていないし、今後も大きく変わることはないだろう。し たがって一度学んだ知識が長持ちする。

-

一方で、Linuxはサーバやクラウドサービスに使われるため、新しい技術がどんどん投入さ れている。例えばネットワーク関係の実装では、かつてはUC Berkeleyで開発されたUnix の一種であるBSD Unixが標準的だったが、今ではLinuxが最先端である。

3. Linuxはオープンソース。

右の円グラフは、世界のスーパーコンピュータのランキングであるTOP500の2016年11月版でのOSシェ

1

(2)

-

Linuxを基にしたシステムを商品として販売する企業、サービスを有償で提供する企業はあ

るが、自分で頑張る限り費用がかからない。

-

計算数学Ⅰで既に扱った通りのオープンソースの利点を全て享受できる。ソースコードを

見て勉強したり、改造したりも可能。コミュニティ活動も活発。

-

利用目的に特化したシステムを作る基盤として有用。Androidもその一つ。 4. Linuxなんて必要ない!という人が必ずいる。

-

Windows(やmacOSやiOSやAndroid)で十分と思うのだろうが…

-

だからこそ今ここでやることに意義がある!

Linuxを扱う本当の理由

上に挙げたのはそれぞれ真っ当な理由ではあるのだが、いかにも外面的な理由である。計算数学 ⅠでLinuxを扱う本当の理由は、Linux(というよりもUnix)はプログラミング環境として設計さ れ、その思想が様々なレベルで実感できるからである。

 計算数学Ⅰの目的は、「情報を処理する機械としてのコンピュータを、学習・研究に活用でき るようになること」である。つまりそれはコンピュータを単なる「便利な文房具」としてではな く、学習・研究に必要な処理をコンピュータに自動的に行わせたい、ということであり、した がって何らかのプログラミングの要素が必要になる。

 コンシューマやオフィス利用を主なターゲットとするWindowsのようなOSは、利用法の決まっ たアプリケーションプログラムを動かすために使う人が最大のマーケットである。このため、「ア プリケーションプログラムを使う人=プログラミングしない人」と「アプリケーションプログラ ムを作る人=プログラミングする人」を分離する設計となっている 。これはこれで、セキュリ2

ティや管理上の都合に合致しているのだが、我々の目的に最もふさわしいとは言いにくい。それ に対して、Unix/Linuxはいろいろなレベルでプログラミングする人のためにある。

 今後Linuxを日常的に使い続けるかどうかは別として、この機会にプログラミング環境としての Unixの思想に触れてほしい。その思想の具体的な内容は、今後の実習から自ずから理解できると 思う。

Linuxの成り立ち

Linuxの開発は、フィンランドの大学生だったLinus Torvaldsが独力で始めた。それが時代の波に 乗り、オープンソース運動の流れを作りながら、大きく育ったものである。一人の大学生が始めた ことが世界を変えるに至った目覚ましい事例として、参考にしてほしい。

1991年


Linux Torvaldsが開発に着手。4月に始め、8月にはgccやbashが動いている 。 3

1994年


Linux 1.0公開。

最近発表された軽量Windows 10 Sでは、ストアからのアプリケーションソフトウェア以外は実行できず、

2

コマンドプロンプトやPowerShellも提供されないと伝えられている。

OSを作っていることを発表したときの文面が The First Linux Announcement from Linus

3

(3)

1996年


Linux 2.0公開。

2001年


Linux 2.4公開。大企業も注目し始める。

2004年


Linux 2.6公開。サーバ、サイエンス分野からデスクトップ、組み込み分野への展開が広まる。

なぜ一大学生が始めたプロジェクトが成功したのか?

いろいろ要因はあると思うが、ここでは以下のことを指摘しておく。

1. ちゃんと勉強していたこと。


LinusはA. S. Tanenbaum, Operating Systems: Design and Implementation という教科書でOSの技術を勉強し た。この本は、MinixというUnix風のOSを題材に、実践的 にOSの技術を解説している。ソースコードも載っている。 Minixは実際にPCで動かすことができ(今も開発が続いて いる )、Linusも使っていた。なおLinusはドロップアウト4

せず、Linuxを題材にした修士論文を書いてヘルシンキ大学 を修了している。

2. 努力したこと。


ヘルシンキの夏は日光浴をして過ごすものだが、Linusは一 夏をカーテンで締め切った自室でのプログラミングに没頭 して過ごしたということである。

3. 技術発展の波にうまく乗ったこと。


PCで使われるマイクロプロセッサとしてi386が発表された。i386はそれまでのPCに乗っ ていた16ビットCPUとは違って32ビットのアドレス空間を持ち、仮想記憶機構もサポー トしていた。また、教科書でソースコードをもとに解説できるほどにOS技術も成熟してい た。

4. ソースコードを公開したこと。


Linusは、一通り動くようになったところで、ソースコードを公開した。当時はまだインター ネットがそれほど普及していなかったので、大学や企業の研究所など限られた範囲ではあっ たが、興味を持った人がバグ取りや改良を繰り返し、次第に広まっていった。当時、世の 中にはいろいろなOSがあったが、それらは今でいうオープンソースではなく、企業の商品 であったり、クローズドライセンスであったり(Unixはこちら)して、ソースコードを自 由に見ることもできなかった。そのため、OS技術に関心ある人はこぞってLinuxに注目し た。しかも、開発チームとかプロジェクトとかいうものがあったわけではないので、自発 的に参加した人が自由に貢献できたことで、オープンソース運動の先駆けとなった。

Linux Distributions

狭義のLinuxはOSの中心的な機能を実装したkernelと呼ばれるソフトウェアを指すが、それだけ では使えないので、様々なソフトウェアや設定ファイルを追加して、実際に利用できるパッケージ

MINIX 3 (http://www.minix3.org)

(4)

としたものをdistributionと呼んでいる。主義主張や好みにより様々なものが作られている。例え ば以下のようなものがある(宗教戦争を避けるため、代表的な、とかは言わない)。

Debian Linux http://www.debian.org/


歴史あるディストリビューションの一つで、 free であることに強いこだわりを持っている。 GUIはあっさり目。他のディストリビューションのもとにされることも多い。MathLibreは Debianをもとにしている。日本での活動も盛ん。Debian JP Project: http://

www.debian.or.jp/

CentOS https://www.centos.org


RedHat社が開発・販売しているRHEL (Red Hat Enterprise Linux)をもとにして、商用パッ ケージ等を除去した上でオープンソースとして公開されているもの。Linux標準教科書はこれに 準拠している。

Ubuntu http://www.ubuntu.com


Debian Linuxをもとに、ユーザインタフェースや同梱ソフトウェアを充実させ、使いやすいも のにすることを目指している。サーバ版もある。Ubuntuを開発しているCanonical社が Microsoftと提携したというので話題になっている。Windows 10の2016年夏のリリースで Ubuntuのソフトウェア(bashを含む)が動くようになった。

Linux実習の目標

1. Linuxシステムをインストールし、使える状態にできる。

2. 基本的なコマンドの主要な使い方を理解する。(ls, cp, mv, rm, pwd, cd, mkdir, rmdir, cat, find, which, man)

3. シェルの対話的機能を使って、簡単なone linerが書ける。 4. 簡単なシェルスクリプトが書ける。

5. 簡単な正規表現を使った操作ができる。(grep, sed)

参考書

Linuxの使い方の解説などは好みもあるので特にはあげない。Webにいくらでも情報があるし、 コマンド解説的な本も出版されている。一部は204号室の書棚にもあるので参考にされたい。

リーナス・トーバルズ+ディビッド・ダイヤモンド、『それがぼくには楽しかったから』(小学 館プロダクション、2001)


Linux開発初期にまつわるLinusの自伝的な物語。面白い。

Eric Steven Raymond、『伽藍とバザール』(光 社、1999)


オープンソースという開発手法についての古典。

Brian W. Kernighan and Rob Pike, The UNIX Programming Environment (Prentice-Hall, 1984)(石田晴久訳、『UNIXプログラミング環境』(アスキー、1985))


プログラミング環境としてのUnixの具体的な表現として古典的。

藤田昭人、『Unix考古学』(アスキードワンゴ、2016)


Updating...

関連した話題 :