今回はRaspbianのベースとなっているLinuxの概要を説明します。前回までの記事で、Raspbianをインストールして設定を行いました。インストールやセットアップの手順で、「sudo」とか「apt-get」とか、よくわからない文字がいろいろ出てきましたよね。書いてある通りにやってインストールやセットアップができても、それだけでは今後知識を活かすことができませんので、今回からそれらの意味を一緒に解明していきましょう。最初にRaspbianのベースとなっているLinuxについて概要を説明します。Linuxをご存知の方は読み飛ばして頂いて問題ありません。今回の説明内容は以下になります。Stretchとは?Linux概要RaspbianはLinuxの一種です...なんて説明を始めても余計に分からなくなりますので、まずは「Linux」の概要を理解して、そのあと「Raspbian」とは何ものなのかを確認しておきたいと思います。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は非常に多くの種類が存在します。これからこの「種類」について具体的に説明します。Piからちょっと離れてしまいますがしばらく説明にお付き合いください。Linuxは、「カーネル」と呼ばれる土台となる部分と、それを取り巻くいろいろなソフトウエアモジュールから構成されています。「カーネル」はコンピュータを制御するための基本的な部分で、ソフトウエアの実行制御をしたり、メモリやファイルの管理を行っています。この「カーネル」は基本的な制御しか行いません。そのため人間とやりとりするインターフェースを持っていませんし、デスクトップPCやサーバとして動作するための機能もありません。「カーネル」はコンピュータのハードウエアを制御するため必須とはいえ、単体では何もできないわけです。そこでLinuxカーネルに、デスクトップPCにように操作できるソフトウエアを組み合わせたり、インターネットサーバ(WWWサーバ)として動作するモジュールソフトウエアを組み合わせたりして、macOSやWindowsと同じように機能するように、ひとつのOSとしてまとめます。このように構成される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と呼んでいます。補足しておくと、かなり個性的なディストリビューションもあります。Linuxこのディストリビューションは科学技術計算系の多くのモジュールが同梱されています。(CERN)によるディストリビューションです。他にもいろいろなディストリビューションがありますので、ネットで検索してみてください。Stretchとは?Linuxについてなんとなくわかったところで、Raspbianの位置付けを確認しておきます。探してみてください、というのは酷ですので、ブラウザの検索機能で「Raspbian」と入力してページ内を検索してみてください。検索機能を使うとすぐにどの辺りにいるかわかると思います。「Raspbian」は「Debian」というディストリビューションから派生したLinuxであることがわかりますよね。この「Debian」ディストリビューションはデスクトップOSにもサーバOSにも使えるLinuxです。誰でも自由に使えるように色々な意味で「フリー」に使えることを目指して開発されたOSです。Pi上で動かすには、必要のないモジュールや足りないモジュールがあるんです。Piを動かすために、Debianをベースにして、必要のないモジュールを削除して、足りないモジュールを開発して組み合わせたものがRaspbianというLinuxOSです。このDebianディストリビューションは約2年に1回大きなバージョンアップがあります。