Linuxとは
Linuxとは、UNIX互換APIを実装したフリーのオープンソースUNIX系OSを指します。1991年、リーナス・トーバルズによって開発されました。狭い意味合いでは、Linuxのカーネル自体を指す場合もありますし、動作環境やシステムを含めてLinuxということもあります。
UNIX系OSとは、UNIXの認定を取得していないものの、UNIXと同等の機能が実装されているOSを指します。代表的な例として、LinuxやFreeBSDをはじめとするBSD系OSが挙げられます。
Linuxカーネルは、当初32ビットx86PC向けUNIX互換OSとして一から記述されました。現在、POSIXならびにSingle UNIX Specification(SUS)準拠を目標に開発を行っており、サーバーからモバイル端末まで多数採用されています。 【参考】:About Linux Kernel
Linuxの成り立ち
Linuxはリーナス・トーバルズが、ライセンス管理されている商用UNIXを、より安価に利用する目的で開発をスタートしました。当時UNIX互換OSとして流通していた教育用MINIX上で開発をはじめ、1991年カーネルコードをLinuxカーネルに置き換えました。その際自身の名前と、UNIXやMINIXの末尾に用いるXの合成語でLinuxと命名しました。
MINIXで物足りなさを感じていたPC UNIX系OSの開発者の賛同により、Linuxの実用性が一気に高まりました。
Linuxの推進団体
The Linux Foundation(LF)は、技術コンソーシアムでLinux標準化を担当します。Linuxの成長促進のために2007年、それまでのOpen Source Development LabsとFree Standards Groupが合併発足しました。トレーニングやサポートプログラムを実施しています。 【参考】:THE LINUX FOUNDATION
Linuxの種類
LinuxはUNIX互換OSですが、UNIXの認定を受けているわけではありません。Linuxの基準は、The Linux FoundationによってLinux Standard Base (LSB)として制定されています。Linux Standard Baseは The Open Groupにより認証されますが、全てのLinuxディストリビューションが認証を受けているわけではありません。最終仕様もLSB 5.0として2015年の制定から更新されていません。 【参考】:Linux Standard Base Specifications Archive
Linuxの違いがはっきりするのは、Linuxディストリビューションの違いです。Linuxディストリビューションとは、Linuxカーネルおよびライブラリ・システムコマンド・ツール・シェル、コンパイラ・デスクトップGUI等をパッケージ化したLinuxシステムを指します。
インストールパッケージの管理には、パッケージマネージャを用いますが、ディストリビューションによってパッケージマネージャが異なります。そのため、Linuxディストリビューションの違いによって、操作環境や搭載ソフトウェアが異なります。このことによりLinuxの種類とは、Linuxディストリビューションの種類を指すこともあります。
Linuxディストリビューションの種類
Linuxでは、Linuxカーネルに関連ソフトウェアを同梱したLinuxディストリビューションを用いることが一般的です。Linuxディストリビューションによって、パッケージに採用されるミドルウエアやデスクトップインターフェースに違いがあります。
以下が、主要Linuxディストリビューションです。 ・Red Hat系ディストリビューション パッケージマネージャとしてRPMを利用します。RPMは、Red Hat Package Managerの略語が由来です。Red Hat Enterprise LinuxやFedra・Oracle Linux・SUSE Linux等が対応します。 【参考】:RPM Package Manager
・Debian系ディストリビューション パッケージ管理にdeb形式のファイルを用います。deb形式はdpkgやapt・aptitude等のパッケージ管理コマンドを用いてソフトウェアを管理します。DebianやUbuntu等が対応します。
Linuxの特徴とメリット
Linuxでできることは多数あります。Linuxの特徴とメリットですが、以下のポイントが挙げられます。
・フリーのオープンソースソフトウェア LinuxはフリーのオープンソースOSです。そのため、無料で利用することができます。さらにLinuxディストリビューションでは、オープンソース製品を中心にパッケージしていますので開発環境・ミドルウェア・アプリケーションが無料で揃うメリットがあります。
・トータルコストを削減可能 Linuxカーネルは無償であり、Linuxディストリビューションもそれにともない導入コスト削減が可能です。さらにシステム稼働中のトータルコストも商用OSに比較すると低コスト運用が可能です。
・対応機器が豊富 Linuxは、業務システム・ハイパフォーマンスコンピュータからモバイル端末まで対応しており、ゲーム機や組み込み機器でも採用されています。そのため、実績も多数あります。動作が軽いので多くの機種で快適に動作します。
・豊富なディストリビューション Linuxはカーネルにシステムライブラリやコマンド・ミドルウエア・ツールを同梱したLinuxディストリビューションを利用するのが一般的です。そのため用途に応じて、ディストリビューションが多数提供されています。利用者は好みに合わせてディストリビューションを選択することができます。
・デベロッパーとコミュニティが活躍 Linux開発やメンテナンスは、コミュニティと全世界のデベロッパにより実施されています。そのため、日々製品開発と品質改善が行われています。これは利用者からすると安心材料と言えます。
・実績あるソフトウェアスタックが構築可能 Linuxは、LAMPと言われるLinux・Apache・MySQL・Perl・PHP・Pythonを構成するシステムの中核であり、実績あるソフトウェアスタックが構築可能です。
Linuxのデメリット
メリット多数のLinuxですが、以下のポイントは考慮する必要があります。
・自己責任が求められる Linuxはフリーのオープンソースソフトウェアですので、利用者はリスクを理解して活用する必要があります。具体的には、製品のトラブル対応時には切り分け作業が必要ですし、不具合修正のコミットが得られないリスクがあります。有償サポートでこれらの作業を代行してもらえますが、本質的には自己責任に代わりがありません。
・デバイスの互換性に制限を受ける Linuxではデバイス接続等のドライバーが提供されますが、より利用者が多いデバイスを重点対応します。そのため、特殊な装置や利用の少ない機器では動作確認や品質テストが十分なされないこともあります。特にUSB等の外部デバイスについては事前に動作確認を行う必要があります。
・システム管理の理解が必要 主要用途のデスクトップ環境では、商用OSとしてWindowsやMacOSがあります。これはの商用OSではGUIの一貫性があり、システム管理の操作も統一されています。そのため、一般利用者でも簡単に操作できます。Linuxではグラフィカルユーザインターフェース(GUI)も利用されますが、システム管理にはコマンドラインインターフェース(CLI)の操作が求められるケースが多くなります。
Linuxのインストール
Linuxのインストールは、LinuxカーネルのみインストールするのではなくLinuxディストリビューションをインストールするのが一般的です。すでに希望するディストリビューションがあれば、そのLinuxディストリビューションのインストール手順にしたがいます。
実際に試してみてから選定したいのであれば、仮想マシンに導入することをおすすめします。Windowsの場合は、Windows Sussystem for Linux 2(WSL2)を導入します。MacOSは、VirtualBoxやLimaを利用し動作確認してみるのが良いでしょう。お試し版として、あるいは普段使い用として利用できます。 【参考】:WSL のインストール 【参考】:VirtualBox 【参考】:Lima: Linux virtual machines
Linuxの基本操作とコマンド
Linuxのコマンドインターフェースを利用するために、ログインを行います。ログインが成功すると、”$”のプロンプトが表示されます。これは一般ユーザのシェルプロンプトです。
初心者の方は、ファイルやディレクトリ操作のコマンドがわかれば作業がしやすくなります。カレントディレクトリの表示はpwdです。ファイルやディレクトリの表示はlsです。WindowsのDIRに相当します。カレントディレクトリの変更にはcd・chdirを使います。ファイルやディレクトリの移動はmv、削除はrm、コピーはcpを使います。
ファイルや結果の表示はcat・more・less等を使います。使い方がわからない場合はmanコマンドで使い方を確認します。この操作方法はこれまでのUNIXと違いがありません。
rootをはじめとするスーパーユーザでは、”#”のプロンプトが表示されます。スーパーユーザで操作する場合は、root等のスーパーユーザでログインしたり、suコマンドでスーパーユーザとしてログインしなおすと管理者コマンドが利用可能となります。
ここまではコマンドラインインターフェースの操作方法でした。 Linuxディストリビューションではグラフィカルユーザインターフェースがデスクトップ環境として採用されています。デスクトップ環境を使用することで、より簡単な操作環境が提供されます。Linuxディストリビューションによって、GNOMEあるいはKDE・Ubuntu Unity等が利用可能です。
利用拡大が進むLinuxに慣れ親しみましょう
LinuxはAndroidのカーネルにも採用されており、IoT・組み込み機器の採用実績も多数あります。業務システムでの採用も進んでおり、自動化システムにおいては、Linuxは切り離せないものとなりつつあります。この利用拡大が進んでいるLinuxの経験を高めるには、知識吸収に加えて実際に操作することで理解が深まるためおすすめです。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから