第10回 Linux概要

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

今回の説明内容

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

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

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

  • Linux概要
  • Raspbian Stretchとは?

 

Linux概要

RaspbianはLinuxの一種です…

なんて説明を始めても余計に分からなくなりますので、まずは「Linux」の概要を理解して、そのあと「Raspbian」とは何ものなのかを確認しておきたいと思います。

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

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

一般的に「OS」というと、すぐにmacOSやWindowsが頭に浮かぶと思います。Linuxも「OS」なのですが、macOSやWindowsと比べるとちょっと様相が違うんです。その違いを理解するために、macOSやWindowsの特徴を改めて確認しておきたいと思います。

当たり前だよね、って感じですが、macOSはApple社が開発、無償頒布していて、1種類しかないですよね。macOSは多くの言語を1本のOSでサポートしていますので、世界のどこで入手してもmacOSはApple社が頒布している1種類だけです。

またWindowsは、Microsoft社が開発、販売していて、「日本語版」や「英語版」など言語ごとにOSがあり、さらに32-bit版や64-bit版などいろいろ種類があります。それでも、Windows10といえばMicrosoft社が販売しているWindows10ですよね。

一方でLinuxは非常に多くの種類が存在します。これからこの「種類」について具体的に説明します。

この「種類」を理解するためには、Linuxの構造の理解が必要ですので、Raspberry Piからちょっと離れてしまいますがしばらく説明にお付き合いください。

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

Linux構造

「カーネル」はコンピュータを制御するための基本的な部分で、ソフトウエアの実行制御をしたり、メモリやファイルの管理を行っています。この「カーネル」は基本的な制御しか行いません。そのため人間とやりとりするインターフェースを持っていませんし、デスクトップPCやサーバとして動作するための機能もありません。「カーネル」はコンピュータのハードウエアを制御するため必須とはいえ、単体では何もできないわけです。

そこでLinuxカーネルに、デスクトップPCにように操作できるソフトウエアを組み合わせたり、インターネットサーバ(WWWサーバ)として動作するモジュールソフトウエアを組み合わせたりして、macOSやWindowsと同じように機能するように、ひとつのOSとしてまとめます。

Linux構造

このように構成されるLinuxですが、Linuxの一番の特徴はカーネルも、ほぼ全てのソフトウエアモジュールも、「オープンソース」で作られている点です。

「オープンソース」とは、ソースコードか全て公開されていて、誰でも入手可能で、自由に改変したり、改変したものを自由に頒布できます(どのようなことができるかはソフトウエアごとにライセンスで決められています)。

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

  • ソースコードが全て公開されていて、誰でも改変できるんだったら、欲しいものが自分で作れそう
  • Linuxカーネルにソフトウエアモジュールを自由に構成できるんだったら、自分に必要なLinuxが作れそう
  • 誰でも頒布自由だったら、いいものができればサイトで公開できそう

このように、Linuxカーネルをベースにしていろいろなソフトウエアモジュールの組み合わせが考えられるので、結果、多くの種類のLinuxが考えられそうですよね。

さらに上の図では「デスクトップモジュール」と書きましたが、このモジュール一つとっても多くの種類が頒布されています。macOSのFinderにそっくりなものとか、Windowsのデスクトップにそっくりなものとか、さらにオリジナルなものとか。この組み合わせの違いが多くの「種類」を生み出しています。

実際、世の中では非常に多くの種類のLinuxがリリースされていています。

今まで「種類」と呼んできましたが、この「種類」のことを「ディストリビューション」と呼んでいます(ディストロあるいはディストリと略して呼ばれることもあります)。

また、今までの説明で想像がつくと思いますが、個人でもLinuxOS(ディストリビューション)は作れます。例えば、

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

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

それでは、実際にディストリビューションはどのくらいあるのでしょうか。

個人でも作成できますので、現在世の中にあるディストリビューションの正確な数はわかりませんが、名の知れているディストリビューションだけでも数多くあります。

以下のサイトに今までリリースされた、ある程度有名なディストリビューションがまとめられています。

https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

思ったよりたくさんあるなぁ、って感じでしょうか。

先ほども説明しましたが、Linuxはオープンソースで改変、再頒布自由です。

新しくLinuxディストリビューションを作りたい場合、すでに近いものがあればそれを利用した方が手っ取り早いですよね。ひとつのディストリビューションを祖先に、多くのディストリビューション作られています。

上のサイトを見ると、ひとつのディストリビューションから多くのディストリビューションが作られて、さらに枝分かれして作られていることがわかると思います。

ここまでの説明で、Linuxの概要や特徴は把握できましたでしょうか。

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

もうちょっと補足しておくと、かなり個性的なディストリビューションもあります。

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

moebuntu
萌え系

他にもいろいろなディストリビューションがありますので、ネットで検索してみてください。

 

Raspbian Stretchとは?

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

先ほどのサイトに「Raspbian」もあるのですが、どこにあるかわかりますか? ちょっと探してみてください、というのは酷ですので、ブラウザの検索機能で「Raspbian」と入力してページ内を検索してみてください。

検索機能を使うとすぐにどの辺りにいるかわかると思います。「Raspbian」を見つけたらその先祖はどのディストリビューションか探してみると、、、

「Raspbian」は「Debian」というディストリビューションから派生したLinuxであることがわかりますよね。

この「Debian」ディストリビューションはデスクトップOSにもサーバOSにも使えるLinuxです。誰でも自由に使えるように色々な意味で「フリー」に使えることを目指して開発されたOSです。

ただ、「Debian」はRaspberry Pi上で動かすには、必要のないモジュールや足りないモジュールがあるんです。そこで、Raspberry Piを動かすために、Debianをベースにして、必要のないモジュールを削除して、足りないモジュールを開発して組み合わせたものがRaspbianというLinuxOSです。

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

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

また、Debianは最近は2年ごとにバージョンアップされていますので、次のDebian Version 10.0は2019年春頃にリリースが予定されています。それをベースにRaspbianもバージョンアップされるはずですので、2019年夏〜秋にはDebian Version 10.0ベースのRaspbianがリリースされると思われます。

Debian Version 10.0のコードネームは「Buster」と発表されていますので、次のRaspbianは「Raspbian Buster」ですかね。

ところで、スマホで有名なAndroid(アンドロイド)もLinuxなので、上でご紹介したサイトのどこかに隠れていますよ。Androidの先祖がいるのでしょうかね。

Linux概要の説明はこのぐらいにして、次回は実際にRaspbianを操作しながら「pi@raspberrypi ~ $」の意味を解明します。

 

更新履歴

日付 内容
2015.10.24 新規投稿
2019.3.7 Raspbian Stretchの説明に更新