サマリー
「ゼロから始めるLinuxサーバー」より。Linuxの概要について述べる。ITインフラ全般に関する概要は”ITインフラストラクチャ技術“を参照のこと。
Linuxについて
Linuxは1991年に誕生したフリーのオペレーティングシステムとなる。コンピューターの操作、運用、運転(オペレーティング)を司るソフトウェアとなり、ユーザーやアプリレーションプログラムとハードウェアの中間に位置して、ユーザーやアプリケーションプログラムに対して標準的なインターフェースを提供するとともに、ハードウェアなどの各リソースに対して効率的な管理を行うものとなる。
具体的な機能としては、ファイルシステムなどの補助記憶管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、GUIなどのユーザーインターフェース、TCP/IP等のネットワークの管理などになる。
OSの目的には、製造メーカー個度に異なるハードウェアの仕様を抽象化させ、ソフトウェア開発を効率化すること、また複数のプログラムを同時に利用する際に、互いに独立して動作できるように資源を管理すること等がある。
Linuxは、1980年頃より大学・研究機関で開発されてきたUnixと呼ばれるOSに近いものであり、Unixの派生OSしてはappleのOSXやFrreBSD等以下に示すようなものがある。
Linuxは上記のOと異なり、ゼロから開発されたOSとなる。ただし、UNIXの標準仕様仕様であるPOSIXに準拠しているため、UnixOSとは多くのコマンドが共通していて、Unix用のソフトウェアもLinux上で動かせるためUnixライクなOSとも呼ばれる。
Linuxカーネルは、ソースコードがインターネット上で公開され、誰もが開発に参加でき、誰もが自由に利用できるオープンソースソフトウェア(Open Source Software:OSS)という形で発展してきた。主なOSSを以下に示す。
OSSと対になるのがプロプライエタリなソフトウェアで、ソフトウェア会社の中だけで開発されているソフトウェアとなる。オープンソースソフトウェアは何らかのライセンス(使用許諾)に従って公開されている。最も有名なライセンスはGPL(GNU General Public License)であり、LinuxカーネルもGPLライセンスを採用している。
OSの中核となるプログラムをカーネルと呼ぶ。「Linux」という名前は本来カーネルに付けられた名前となる。カーネルだけではOSとして使えず、利用者とカーネルとの仲介役をするシェルや、様々なユーザープログラム、ユーザーインターフェースを実現するプログラムなどが組み合わさって、初めて日常の用途に使えるOSが出来上がる。
ただし、一般のユーザーがそれらを組み合わせるのは祇女つ的に難しく大変な手間もかかる。そこでLinux開発コミュニティは、Linuxカーネルと、多数のオープンソースソフトウェアを組み合わせ、インストーラーと一緒に配布するようになった。これをディストリビューションと呼ぶ。一般に「Linux OS」とはこのディストリビューションを指す。以下にディストリビューションの構成を示す。
ディストリビューションとしては、サーバー用、エンタテイメント用、教育用、組み込み機器用等利用目的にあわせて様々なものが準備され、数百種以上の種類がある。ディストリビューションには大きく分けて2つの系統がある。一つがRedHat系でもう一つがDebian系となる。
RedHat系のディストリビューションでは、Fedoraコミュニティにより開発されているfedora、RedHat社が開発している企業向けディストリビューションであるRed Hat Enterprise Linux(RHEL)、ほぼRHELの構成でるCentOS等がある。CentOSの詳細と実装に関しては”CentOS8の概要とインストール“を参照のこと。
Debian系のディストリビューションでは、サーバー用でもクライアント用でも利用できるDebian GNU Linux、Debian GNU Linuxから枝分かれした派生ディストリビューションであるUbuntu(デスクトップ用途で人気の初心者向けに使いやすさを追求して作られたもの)や、日本のコミュニティが改良したRemix、軽量なデスクトップ環境LXDEを採用したLubuntu、Linux Mint等がある。Ubuntuの詳細と実装に関しては”Ubuntuの立ち上げについて“を参照のこと。
またRed Hat系でもDebian系でもないのとして、SlackwareとGentoo Linux等もある。
ディイストリビューションの構成のもう少し詳細を記載したものを以下に示す。
上記の中で、「シェル」はカーネルとユーザーの仲介をするプログラムで、後述するコマンドの入力を受けて実行するものとなる。「コマンド」は、Linuxの実行形式のプログラムで、シェルにコマンドを入力すると、対応するプログラムが実行される。Linuxのコマンドは数千種類あるが、50前後のコマンドを知っていれば基本的な業務管理は可能となる。「ライブラリ」はプログラムのきょうつう部品となるものでlinuxではglibcというC言語のライブラリが用いられる。
「GUI」はグラフィカルなユーザーインターフェースで、X Window SystemおよびウィンドゥマネージャーというLinuxカーネルとは別のプログラム群で作られる。X Window Systemは入出力の中核処理を管理し、ウィンドゥマネージャーは見た目や操作を管理する。「クライアントソフトウェア」はWebブラウザやオフィススィートなどの各種アプリケーションソフトウェアで、例えばブラウザ度はChromeやFirefox、オフィススィートではLibreOffice、グラフィカルソフトのGMP等がある。
次にカーネルについての詳細を述べる。カーネルの構成は以下のようになる。
カーネルのバージョンは「4.3.6」のように、3つの数字で表される。様々な機能が追加されると「4.2」から「4.3」のように2つ目の数字が上がり、「4.3」についての不具合の修正を行うとバージョンは「4.3.1」「4.3.2」のようになる。
カーネルにはリナース氏がリリースするmianline、安定板のstable、長期サポートのlongtermなどいくつかの種類がある。
Linuxディストリビューションには、様々なサーバーソフトウェアが標準で装備されている。以下に代表的なサーバーソフトウェアを示す。
- Apache HTTP Server : Webサーバーのシェアとしては世界一を誇ってきた最も普及しているWebサーバーソフトウェア。
- nginx : エンジンエックスと読み。大量の接続があるWebサイトではApacheよりもパーフォーマンスがよく、リバースプロキシとしてもよく使われる。
- Postfix : Linuxで標準的に使われているメールサーバー。CentOSにも採用され、そょう順的に稼働している。かつての標準メールサーバーはSendmailだったが、せっていがとても煩雑だったためねPostfixに変わっていった。
- Dovecot : メールサーバーに届いたメールをダウンロードするため、メールクライアントが接続する先がPOPサーバーとなる。IMAPというプロトコルを使えば、メールをサーバーにおいたままメールの送受信ができる。DovecotはPOPおよびIMAPに対応したサーバーとなる。
- BIND : ホスト名・ドメイン名とIPアドレスの対応づけをおこなうDNSサービスを提供するのがDNSサーバーであり、BINDは最も広く使われているDNSサーバーとなる。
- Samba : Windowsのファイルサーバー機能やActive Directoryのドメインコントローラーを実現するサーバーとなる。Sambaを導入すると、LinuxサーバーをWindowsサーバーの代替として使うことができる。
- Squid : 社内から社外へWebアクセスするとき、社内のクライアントに変わってWebサーバーへ代理でアクセスするのがプロキシサーバーとなる。Webアクセスを高速化したり、特定のWebサイトへの接続を制限したりすることができる。プロキシサーバーとして最も有名なものがSquidとなる。
コメント
[…] WebサーバーのOSSの実装としてはLinuxによるものが著名となる。 […]
[…] Linuxについて (概要) […]
[…] Linuxについて (概要) […]