第10回 Linux概要

今回はRaspbianのベースとなっているLinuxの概要を説明します。

今回の説明内容

前回までの記事で、Raspbianをインストールして設定しました。インストールやセットアップの手順で、「sudo」とか「apt-get」とか、よくわからないことがいろいろ出てきましたよね。書いてある通りにやってインストールやセットアップができても、それだけでは今後知識を活かすことができませんので、今回から、それらの意味を説明いたします。

まず最初にRaspbianのベースとなっているLinuxについて概要を説明します。Linuxをご存知の方は読み飛ばして頂いて問題ありません。

今回の説明内容は以下になります。

  • Linux概要
  • Raspbian JessieとWheezyとは?

 

Linux概要

RaspbianはLinuxの一種です。そこで、最初にLinuxの概要を確認し、そのあとRaspbianは何ものなのかを確認しておきたいと思います。

Raspberry Piや電子工作に興味のある方であれば「Linux」という言葉を聞いたことがある方も多いと思います。でも中身までは、、、という感じでしょうか。よく知らなくても問題ありません。さらに聞いたことがなくても問題ありません。まずは「OSの一種」みたいな感じの理解でOKです。(よくご存知でしたら今回の記事は飛ばして問題ありません。一般的なLinux(Debian系)の知識の説明になります)

では、Linuxの歴史から、、、というと眠くなってしまいますので、Raspbianの位置付けを確認するために必要最小限の知識を確認していきたいと思います。

LinuxはMacOSXやWindowsとちょっと様相が違います。その差を理解するために、MacOSXやWindowsの特徴を改めて確認しておきたいと思います。

当たり前だよね、って感じですが、MacOSXは例えばEl Capitan(Version10.11)であれば、1種類しかないですよね。MacOSXは多言語版になっていて、ひとつのパッケージで全ての言語をサポートしています。そのため「日本語版」「英語版」という区別すらありません。またWindowsは、「日本語版」や「英語版」さらに32-bit版や64-bit版などいろいろ種類があります。それでも、Windows10といえばWindows10ですよね。

一方でLinuxは非常に多くの種類が存在します。これからこの「種類」について確認していきます。

これからの説明はちょっと眠くなると思います。

Linuxは、「カーネル」と呼ばれる土台となる部分と、それを取り巻くいろいろなモジュールソフトウエアから構成されています。

Linux structure 1

カーネルはコンピュータを制御するための基本的な部分で、プログラムの実行制御をしたり、メモリやファイルの管理を行っています。このカーネルは基本的な制御しか行いません。そのため人間とやりとりするインターフェースを持っていませんし、サーバとして動作するための機能もありません。

そこでLinuxカーネルに、人間とやりとりするグラフィカルユーザインターフェース(GUI)のモジュールソフトウエアを組み合わせたり、インターネットサーバ(WWWサーバ)として動作するモジュールソフトウエアを組み合わせたりして、OSとして機能するように組み合わせて、ひとつのOSとしてまとめていきます。

Linux structure 2

このように構成されるLinuxですが、一番の特徴はLinuxカーネルも、ほぼ全てのモジュールソフトウエアも、オープンソース(ソースコード公開)で改変・再頒布自由なライセンスで作られている点です(ライセンスについては非常に複雑ですので説明は省略します)。

となると、上のLinuxの構成を見ているといろいろと疑問が出てきますよね。

  • 全てソースコードが公開されていて改変、再頒布自由だったら、好きな組み合わせのものが作れそう
  • 上の図で、GUIを使って操作するんだったら、普段使いだからWWWサーバはいらなさそう
  • 逆にWWWサーバにするんだったらGUIモジュールはいらなさそう

という感じて、Linuxカーネルをベースにいろいろなモジュールソフトウエアの組み合わせが考えられるので、結果、多くの種類のLinuxが考えられそうですよね。さらに上の図では、GUI(グラフィカルインターフェース)モジュール、と書きましたが、このGUIモジュール一つとっても多くの種類が頒布されています。MacのFinderにそっくりなものとか、Windowsのデスクトップにそっくりなものとか、さらにオリジナルなものとか。この組み合わせの違いが多くの「種類」を生み出しています。

実際にこの「種類」は非常に多くリリースされていて、「種類」のことを「ディストリビューション」と呼んでいます(ディストロあるいはディストリと略して呼ばれることが多いです)。また、今までの説明で想像がつくと思いますが、個人でもディストリビューションは作れます。例えば、

「自分で作るLinuxOS」(日経BP)

という書籍も出ています。

それでは、実際にディストリビューションはどのくらいあるのでしょうか。個人でも作成できますので正確にはわかりませんが、名の知れているディストリビューションだけでも数多くあります。一例として以下のサイトがあります。

Linuxディストリビューション家系図

拡大しないとわからないですが、たくさんありますよね。上にも説明しましたが、Linuxはオープンソースで改変、再頒布自由なので、ひとつのディストリビューションを祖先に、多くの派生ディストリビューションがあるのがわかると思います。

上のLinuxディストリビューション家系図で、一番の祖先も何種類かありますが、一番上のディストリビューションは「Debian」というものです。このDebianの特徴は、構成するソフトウエアは(いろいろな意味で)フリーでオープンを目指し、デスクトップOSでもサーバOSでも使えるディストリビューションです。

なんとなくLinuxの概要は把握できましたでしょうか。

ちょっと補足しておくと、正確には、Linuxカーネルを「Linux」と呼びますが、一般的にはディストリビューションの形になったものをLinuxと呼んでいます。

もうちょっと補足しておくと、上のLinuxディストリビューション家系図以外にも個性的なディストリビューションもあります。

Sicentific Linux
このディストリビューションは科学技術計算系の多くのモジュールが同梱されています。フェルミ国立加速器研究所(Fermi National Accelerator Laboratory)と欧州原子核研究機構(CERN)によるディストリビューションです。

moebuntu
萌え系

他にもいろいろありますので、ネットで検索してみてください。

 

Raspbian JessieとWheezyとは?

Linuxについてなんとなくわかったところで、Raspbianの位置付けを確認しておきます。

RaspbianはDebianディストリビューションの派生Linuxです。先ほども説明しましたが、DebianディストリビューションはデスクトップOSにもサーバOSにも使えるLinuxですが、Raspberry Pi上で動かすには、必要のないモジュールや足りないモジュールがあります。そこで、Debianをベースに、必要のないモジュールを削除して、足りないモジュールを開発して組み合わせたものがRaspbianというOSです。

このDebianディストリビューションは約2年に1回バージョンアップがあります。2015年10月現在、最新版は2015年4月にリリースされたVersion 8.0です。その前は2013年5月にリリースされたVersion 7.0になります。Debianはここ十数年のリリースではコードネームも公開されています。最近の2バージョンは、Version 7.0がWheezy、Version 8.0がJessieというコードネームです。

Raspberry Piの公式サイトで頒布されているRaspbianは、「Raspbian Jessie」と「Raspbian Wheezy」でしたよね。ここまでくるとお分かりかと思いますが、Raspbian Jessieは、Debian Version 8.0 (=Jessie)をベースにしたDebianの派生ディストリビューションになります。当然ながらRaspbian WheezyはDebian Version 7.0ベースの派生ディストリビューションです。

また、Debianは最近は2年ごとにバージョンアップされていますので、次のDebian Version 9.0は2017年春頃にリリースされるのではないかと思います。それをベースにRaspbianもバージョンアップされるはずですので、2017年夏〜秋にはDebian Version 9.0ベースのRaspbianがリリースされるのではないでしょうか。

次回はRaspbianを操作しながら「pi@raspberrypi ~ $」の意味を解明します。

« »