Linuxとは、Unixを基に開発されたオープンソースのオペレーティング・システム(OS)です。Linuxはコンピューターやサーバー、携帯電話、その他さまざまなデバイスで利用されています。
Linuxは、1991年の発明以来、世界で最も広く使用されているオペレーティング・システムの1つになりました。Microsoft WindowsやmacOSなどの他のプロプライエタリなオペレーティング・システムに代わる無料の代替手段となっています。
Linuxは、Torvalds氏によって、史上初めて構築されたオペレーティング・システムの1つであるUnixに代わるUnix系代替システムとして開発されました。その機能はLinuxカーネルに大きく依存しています。OSのカーネルは、ユーザーがシステムのハードウェアとソフトウェアを制御できるようにするコンピューター・プログラムです。Linux OSではカーネルに加えて、システム・ライブラリーや空間ユーティリティーなどのさまざまなコンポーネントを使用します。これらはすべてカーネルを利用して通信し、ユーザーからコマンドを受信します。
Linuxカーネルとは、Linuxオペレーティング・システムを実行するすべてのデバイスとシステムで使用される無料のオープンソース・カーネルです。カーネルは、ハードウェアとソフトウェアを接続するコンピューター・プログラムであり、ユーザーがネットワーク、ファイル・システム、ドライバなどのさまざまなシステム・コンポーネントを管理できるようにします。
カーネルの設計は、インプット/アウトプット(I/O)、コンピューター処理装置(CPU)の使用、アプリケーションの実行など、コンピューター・システムを機能させる重要なプロセスにおける衝突を防ぎ、安定性を維持する上で重要です。Linuxカーネルは、その柔軟性と安定性、高い性能で知られています。Linux OSは、世界で最も人気のあるOSの1つになりましたが、その主な理由はLinuxカーネルの優れた性能にあります。
Linux OSでは、カーネルはソフトウェア・パッケージおよびユーティリティと組み合わされ、ユーザーがコンピューターを安全かつ効果的に操作できるようにするLinuxディストリビューションを構成します。
Linusを成功に導いた側面の1つは、開発者の世界的なコミュニティによって常に改良されていることです。9~10週間ごとに、Linuxカーネルの新しいバージョンが世界中にリリースされ、性能の向上、機能の追加、新しいデバイスとの互換性の向上を実現する更新が行われます。Linuxの新しいバージョンはすべて「安定カーネル」と呼ばれ、kernel.orgとGitHubに保存されているLinuxディストリビューションのリポジトリに追加されます。
Linuxユーザーは、新しいバージョンを統合するたびにパッケージ・マネージャーに依存します。パッケージ・マネージャーは、ソフトウェア・パッケージのインストール、更新、削除を支援するソフトウェア・ツールです。
自社ソフトウェアの機能がLinuxに大きく依存しているベンダーの中には、カスタマイズされたソース・ツリーや、自社の用途に展開できるLinuxカーネル・ソース・コードのコレクションを維持することを好む場合があります。「カスタムLinuxカーネル」または「フォークされたLinuxディストリビューション」の維持として知られるこのアプローチは、人工知能(AI)、エッジコンピューティング、IoT(モノのインターネット)などの新しいテクノロジーに依存する多くの最新のエンタープライズ・アプリケーションの開発において重要になっています。
たとえば、Red Hat社はRed Hat Enterprise Linuxとして知られるLinuxのバージョンを展開しています。これは、特別なLinuxのセキュリティーと管理機能を備え、安定した高性能プラットフォームです。CentOS(Community Enterprise Operating System)もまた、Red Hatをベースにした無料のオープンソースLinuxディストリビューションです。Debianも選択肢の一つです。Linuxカーネル上に構築されたカスタマイズ可能なOSで、特にそのソース・ツリーを使用して、多くのIoTアーキテクチャーに欠かせないオープンソース・コードであるUbuntuを維持します。
Linux OSアーキテクチャーは、多くのバージョンおよび多数の人気のあるLinuxディストリビューションの主要な機能であるモジュラー設計に基づいて構築されています。LinuxディストロはすべてLinuxカーネルに基づいていますが、各バージョンはカーネルのバージョンとモジュールによって異なる場合があります。
Linux OSを実行するすべてのシステムは、次の3つの簡単なステップで動作するLinuxカーネルを実行する必要があります。
LinuxシステムのBIOS(Basic Input/Output System)が開始されると、通常はGRUB(Grand Unified Bootloader)と呼ばれるブートローダー・プログラムをロードします。このプログラムは、ハード・ディスクからLinuxカーネル・イメージを見つけてメモリに格納し、起動を開始します。これにより、カーネルはシステムを制御し、タスクの実行を開始できるようになりマス。
カーネルが起動されると、システムを制御し、関連するすべてのプロセスを開始して、制御することができます。Linuxは、システムの基盤となるアプリケーションがアクセスできる一連のストリーム(標準的な入力、出力、エラーなど)を通じて入出力を管理します。Linuxカーネルは、アプリケーションと外部ハードウェア・デバイス間のすべての通信を制御し、ドライバを通じてアプリケーションからデバイスにリクエストを送信します。
コマンド・ライン・インターフェイス(CLI)は、キーボードを使用してオペレーティング・システムと対話するためのテキストベースの方法です。Linux CLIを使用すると、ユーザーはCLIを使用して単純な命令を入力するだけでコンピューター・システムのリソースを簡単に制御および管理できます。システムが起動されると、Linuxはユーザーの要求に応答してプロセスを開始します。たとえば、コンピュータ・ネットワークの機能にとって重要なネットワーク・サーバー機能は、Linuxが「サービス」または「デーモン」(事前に定義されたネットワーク・プロトコルに基づいてユーザーやノードからのリクエストを処理するソフトウェア・プログラム)を実行することに依存しています。
世界で最も人気のあるオープンソースOSであるLinuxは、誰でも自由に使用およびカスタマイズできます。高性能であり、柔軟性、安定性、安全性が高いと考えられています。開発者の専用コミュニティーによって常に更新されているため、新しいテクノロジーとの高い互換性があります。
組織または個人のユースケースに応じて、Linux上に構築することには多くの利点があります。しかし、デメリットもいくつかあります。ビジネス・ニーズにLinuxを使用しようとしている人にとって、考慮すべき重要なポイントがいくつかあります。
新しいLinuxカーネル・ディストリビューション(「ディストロ」と呼ばれる)はそれぞれ、GNU GPL(GNU General Public License)オープンソースと呼ばれるライセンスの下でリリースされ、ユーザーは必要に応じてコード・ベースを実行、共有、変更する権利を得ることができます。同じライセンスの下では、作成された成果物もオープンソースとして配布する必要があります。これにより、その成果物も他のユーザーに対してオープン、アクセス可能かつ無料であることが保証されます。
Microsoft WindowsやmacOSのようなプロプライエタリなオペレーティング・システムとは異なり、Linuxはライセンス料を請求しません。しかし、RedHat、Debian、SUSEなどのLinuxベンダーは、サポートを提供するために料金を請求します。組織はOSを無料で入手し、好きなように使うことができますが、サードパーティー・ベンダーとのサポート契約によって、プロプライエタリOSからLinuxに乗り換えた場合の潜在的なコスト削減効果が低くなる可能性があります。
Linuxが信頼性の高いOSとみなされている理由は、主にコード・ベースを常に更新および保守している開発者の世界的なコミュニティーにあります。これと同じ理由で、安定性が高いとも考えられています。プログラミング言語の1つの分野の不具合が他の分野に影響を与えないように、システム機能を分離させた独自の設計(モジュラー設計)により、ユーザーは常にソース・コードを調査し、バグを発見して修正できます。
しかし、モジュール設計には欠点もあります。他の種類の設計に慣れているユーザーにとってLinuxの習得は難しい場合があり、またモノリシック・カーネル(マイクロカーネルやハイブリッド・カーネル設計とは対照的)であるという事実により、他のプロプライエタリなオペレーティング・システムよりも柔軟性が低くなる可能性があります。
Linuxは、他の多くの種類のオープンソース・ソフトウェアと同様に「下位互換性がある」とみなされています。つまり、そのソース・コードは、元の機能を維持しながら、セキュリティーと互換性の問題に対処するために常に変更およびパッチが適用されています。利用可能なさまざまなLinuxディストリビューション、サポートされているアプリケーション、幅広い構成オプションにより、Linuxは互換性が高いと考えられています。
しかし、独自のデバイスを製造する多くのハードウェア・メーカーは自社製品用のLinuxデバイス・ドライバを製造しておらず、一部のユーザーには、macOSやWindowsなど、より広くサポートされている独自のOSを使用する場合よりも選択の余地がありません。さらに、Linuxには標準バージョンがないため、特に標準化されたサーバーやデスクトップイメージの導入を検討している開発者にとって、組織が利用する特定のバージョンのサポートを見つけることが困難になる場合があります。
Linux OSが新しくがリリースされるたびに、Linuxユーザーは新しいハードウェア・リソース、アプリケーション、機能を利用できるようになります。現在Linuxは、Webサーバー、科学的事例およびエッジコンピューティング・インスタンス、Android OSを搭載したスマートフォンなどのOSとして、さまざまな目的で使用されています。ここでは、Linuxが世界中で使用されている最も一般的な方法をいくつか紹介します。
Linuxは、生産性を向上させ、多くのデスクトップ・インスタンスのオペレーションを合理化するために使用されます。デスクトップ環境用として一般に販売されているOSよりも無料のオープンソースOSを好むプログラマーにとって、Linuxは最も広く使用されている選択肢の 1 つです。
たとえば、Linux Fedoraは、Linuxカーネルをベースとした無料のオープンソース・オペレーティング・システム(OS)であり、多くの基本的なタスクのためのソフトウェアが含まれています。さらに、Linuxをベースにした無料OSであるLinux Mintは、現在までに最も人気のあるLinuxディストリビューションの1つとなりました。
Linuxは、ネットワーク上で情報やリソースを交換する目的で、さまざまなエコシステム上のデバイスやシステムを接続するために広く使用されています。ネットワークOSとして、Linuxはルーター、スイッチ、ドメインネームシステム(DNS)サーバー、その他ネットワークにおいて重要な多くのデバイスで使用されています。
Linux OSを使用するサーバーはLinuxサーバーと呼ばれます。たとえば、Cisco社は、人気の高いCiscoインターネットワーク・オペレーティング・システム(IOS)のバージョンをサポートするために Linuxカーネルを利用しています。W3Techsによる最近の調査によれば、世界中で稼働しているWebサーバーの半分超がLinuxで動いています。
現在使用されているWebサーバーのほとんどは「ヘッドレス」です。つまり、モニターやキーボードなどのグラフィカル・ユーザー・インターフェース(GUI)がありません。ネットワークを介してリモートで管理されるヘッドレス・システムは、多くの場合、ユーザーが対話して操作するためにLinux OSを使用しています。たとえば、K Desktop Environment(KDE)は、Linux用の無料のオープンソースGUIであり、コミュニティー主導で、他の多くのデスクトップ環境よりもユーザーフレンドリーと考えられています。
Linux OSは、スマートウォッチ、スピーカー、サーモスタットなど、多くの一般的なIoT(モノのインターネット)デバイスで使用されています。その柔軟性と拡張性により、クラウドに接続する複雑なアプリケーションに機能が依存するIoTデバイスに最適です。
IoTデバイス上では、Linux OSは重要なコンピューティングとハードウェア・リソースの管理に役立ち、アプリを実行して他のネットワークに接続するための基盤となるプラットフォームを提供します。
Linuxは、多くのクラウド・コンピューティング・インスタンスの基盤となるOSです。Amazon Web Services(AWS)、Microsoft Azure、Google Cloud Platform(GCP)、IBMなど、すべての主要なクラウド・プロバイダーは、プラットフォーム上でLinuxカーネル・ディストリビューションを提供しています。その柔軟性、スケーラビリティ、費用対効果により、クラウド・プロバイダーやクラウドベースのアプリケーションに対しても人気があります。Linux Foundationによると、Linuxはパブリック・クラウドのワークロードの90%を実行しています。
多くのスーパーコンピュータ(高性能コンピューティングで解決までの時間を短縮するコンピュータ)はLinuxに依存しており、スーパーコンピュータの開発者はLinuxのオープンソース・コードをカスタマイズして特定のニーズを満たしています。たとえば、科学技術計算で使用されている「Avalon Cluster」は、PCやオープンソース・ソフトウェアなどすぐに入手できるハードウェアで構築されているため、他のスーパーコンピューターよりも幅広い研究者が使用できます。
IBM Cloud Infrastructure Centerは、IBM zSystemsおよびIBM LinuxONE上のプライベートクラウドのインフラストラクチャーを管理するためのOpenStack互換ソフトウェア・プラットフォームです。
企業のハイブリッドクラウドとAI戦略のために設計された、サーバー、ストレージ、ソフトウェアを紹介します。
安全性と柔軟性を備えたクラウドで、ビジネスの成長に合わせてリソースを無理なく拡張できます。