Linux / ディストリビューション / Debian / Ubuntuとは? #128日目
Dockerを勉強する中で、そもそも前提となっている開発環境周りの知識が全然ないことを痛感しました。具体的には、チュートリアルの中でDebianという言葉が出てきて「これ何?」状態になってしまい。。
そのため、まずは足場固めで表題にあるテーマについてそれぞれまとめていきたいと思います。
Linuxとは?
LinuxはOS (Operating System)と言われる基本ソフトウェアの一種です。他の代表的なOSとしては、私も使っているWindowsや、Mac OSなどがあります。OSの役割はハードウェアの制御やプログラムのインターフェイスを提供するなど、コンピュータを利用するための環境を提供することです。
各OSにはいくつかの機能的な特徴や設計思想があり、それらによって利用用途が決まってきたりします。
Linuxの大きな特徴はマルチタスク・マルチユーザーをサポートしている点です。あるアプリを動作させながら別のアプリを動作させることができたり(=複数のプログラムを同時実行できる)、複数のユーザーが同時にOSを操作できる(=複数登録できるだけじゃなくて操作できる)ことを意味しています。
つまり、複数のユーザーが同時に色んなアプリを動作させることを前提に作られたOS、ということです。
[Linuxの歴史]
Linuxを語る文脈で色んな名称や言葉が出てくるので、簡単に歴史を追って整理しておきます。Linuxも突如生まれたOSではなく、元となったUNIXというOSが存在しています。
・1960年代より前にMulticsというOSの開発が行われたが失敗(巨大で複雑すぎた)
↓
・失敗を元に、1960年代にAT&T社のベル研究所でUNIXが誕生(シンプルで独立したモジュール群で構成され高パフォーマンスだった)
↓
・UNIXが大人気となり、様々な派生も生まれた(派生はUNIXクローンOSと呼ばれた)
↓
・しかし当時UNIXマシンは高価で誰もが自由に使えるものではなかった
↓
・UNIXクローンOSに「MINIX」という分かりやすい教育用のOSがあった
↓
・1991年、当時学生だったLinus B.Torvalds氏がこのMINIXをお手本に「Linux」を開発。そしてこれをライセンスフリーのOSとして公開した。
↓
・元々大人気だったUNIX系統のOSが手軽に利用でき、かつ安価なマシンでも動作するということで、世界中の開発者を獲得して進化し続けてきた
歴史を知ると面白いですね。
ディストリビューションとは
ディストリビューションとはLinuxの配布形式を指します。そもそもLinuxという言葉には狭義のLinuxと広義のLinuxがあり、広義のLinux = ディストリビューションを指しています。通常Linuxというときはこのディストリビューションを指していることがほとんどです。
狭義と広義がそれぞれどういうことか解説します。
・狭義のLinux = OSのコアであるカーネルを指す
・広義のLinux = カーネルとそれを利用するソフトウェア一式を指す
カーネルとはOS本来の役割であるハードウェアの制御やファイル / ソフトウェアの実行、リソース等の管理を行う部分です。そしてLinuxとは本来はこのカーネルを指す言葉です。
ただし、実際にLinuxカーネルだけがあったとしても、それを利用するソフトウェア一式が存在しないとOSとして成立しません。
そこで最初からカーネルと様々なソフトウェアを組み合わせて配布する形が生まれ、それがディストリビューションと呼ばれています。もちろんLinuxカーネルとソフトウェアを自力で組み合わせて使うことも不可能ではないですが、1から自力で構成するには時間と労力と知識が必要です。Linuxでは様々なディストリビューションが存在するので、自分で作るよりもそれらを利用する方が効率的に開発ができます。
[ディストリビューションの種類]
各ディストリビューションはLinuxカーネルを使っている点においてはまったく同一ですが、どういうアプリと組み合わせているか、インストール形式、パッケージの管理方法、システム構成などが異なります。
それらはベースとなるものによって大きく3つの系統に分類できます。
どのディストリビューションを選択するかは環境や嗜好、ハードウェア / ソフトウェアのサポートなどがポイントになります。
Debianとは?
非常に高度なパッケージ管理技術を持つLinuxディストリビューションです。オープンソースソフトウェアであり、完全にボランティアの技術者の手によって開発・運営が行われています。サポートという面でも、用途や所属に応じた日本語のメーリングリストが公式に運用されており、オープンな情報交流が活発です。
方針的にコミュニティ主体のディストリビューションであり、バージョンアップ頻度やその変化は比較的ゆるやかで、安定したものを選択し堅実な構成を好む傾向にあるそうです。
コンピュータリソースの要求度合いは、デスクトップ無し(コンソールのみ)だと非常に脆弱なスペックでも動作する水準ですが、デスクトップありの場合はそれなりに「重い」水準となります。
Ubuntuとは?
UbuntuもLinuxのディストリビューションの1つで、その分かりやすさから人気を博している「初心者に優しいOS」です。そもそもUbuntuという言葉は「他者への思いやり」という意味を持っているそうです。上記のDebianから派生したものになります。
企業の支援を受けており、開発速度は非常に早く、かつ高品質。世界的な注目度も高く圧倒的にメジャーなディストリビューションです。個人利用だけでなくWikipediaなどの組織的な大規模採用の例も多いです。
また有志による日本語ローカライズ組織が存在しており、日本でも存在感が大きくなっています。
Ubuntuには以下6つの特徴があります。
リリースロードマップが明確な点は非常に歓迎されている一方で、リリース速度が速すぎるため安定した環境を求めるユーザーには不安もあると思います。そのため5年間のセキュリティフィックスサポートが提供される長期サポート版が存在し、最後に「LTS」と付くバージョンがそれに該当します。
コンピュータリソースの要求度合いはDebianのデスクトップありと同等以上で、それなりに高いです。これは使いやすさを重視するため「デスクトップとして使用する」前提で提供されているためといえます。
開発環境の関する知識がアップデートされ、エンジニアっぽいことが少し分かるようになりました。Dockerに関して学びつつ、分からないことが出てきた段階でこうやって整理したいと思います。
ここまでお読みいただきありがとうございました!!
参考
この記事が気に入ったらサポートをしてみませんか?