Linux® カーネルは、多くのコンピューターシステムに不可欠な無料のオープンソースカーネルです。Linuxオペレーティングシステム(OS)では、Linuxカーネルがハードウェア層とソフトウェア層の間に重要なインターフェースを形成し、OSが多くの異なるコンポーネントを一度に管理できるようにします。
カーネルは、オペレーティングシステム(OS)の中核を形成し、システムを構成するハードウェアおよびソフトウェアコンポーネントを完全に制御するコンピュータープログラムです。カーネルは、システムを適切に機能させるために不可欠な重要なプロセス間の競合を防ぐのに役立ちます。カーネル コードはコンピュータのメモリに保持され、ソフトウェアとハードウェア間のすべての対話を可能にします。たとえば、入力/出力 (I/O)、CPU とキャッシュの使用率、デバイスの占有率、ファイル システム、ネットワーク ソケットなどです。
Linuxカーネルは、ユーザーがコンピューターと直接対話できるようになった最初のOSの1つであるUnixに代わる無料のOSとして、1991年にLinus Torvalds氏によって開発されました。それ以来、 Linuxカーネルとその後のカーネル バージョンおよびカーネル リリースは、 Linuxディストリビューションにとって重要なものになりました。現在、これらは世界最大級のテクノロジー、ソフトウェア、コンピューティング企業によって使用されています。
9~10週間ごとに、Linuxカーネルの新しいバージョンがリリースされます。これらのバージョンは「安定版カーネル」と呼ばれ、Linuxカーネル開発者やLinuxリポジトリのメンテナによって管理されており、kernel.orgやGitHubで入手可能です。
しかし、DebianやRed Hatなどの一部のベンダーは、カスタマイズされたソース ツリー、つまり自社プロジェクト用のすべてのLinuxカーネル ソース コードのコレクションを維持することを好みます。このアプローチは、 AI、エッジコンピューティング 、 IoT(モノのインターネット) などの多くの最新のエンタープライズアプリケーションにおける Linux カーネルの使用に重大な影響を及ぼします。
例えば、Red Hat Enterprise Linuxは、オーダーメイドのセキュリティーと主要な機能を備えた安定した高性能なLinuxプラットフォームであり、Red Hat社がカスタマイズしたLinuxソースツリーを使用して構築されています。Debianは、ソース・ツリーを使用して、多くのIoT(モノのインターネット)アーキテクチャーの基礎となるオープンソース・コードであるUbuntuを保守しています。
カーネルは、ユーザーがコンピューターのハードウェアおよびソフトウェアと対話できるようにするシステムであるOSの心臓部として機能するコンピューター・プログラムです。Linux OS の場合、Linux カーネルは OS のコアコンポーネントを形成し、OS の機能を実行できるようにするコードです。
Linux OSは、Linuxカーネル以外にも、システム・ライブラリーやユーザー空間ユーティリティー、アプリケーションなど、さまざまなコンポーネントで構成されています。ただし、これらすべてのコンポーネントは、入力/出力 (I/O) などのコマンドを受信し、ユーザーの要求を満たすことができるように、OS と通信するためにLinuxカーネルに依存しています。Linux カーネルは柔軟性が高いことで知られており、ユーザーのニーズや特定のプログラムの要件に合わせて変更できます。
各Linuxカーネルのリリースには、テストが行われ、一般に公開され、その後段階的に廃止されるライフサイクルがあります。Linuxカーネルのライフサイクルは、プリパッチ、メインライン、安定性レビュー、長期サポート(LTS)、サポート終了(EOL)の5つのフェーズに分けられます。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
Linuxカーネルは、コア機能を実現する6つの異なる層、つまりサブシステムで構成されています。
ここでは、それぞれとその機能について詳しく見ていきます。
SCI層には、カーネルがユーザー空間からカーネルにシステム・コールを実行できるようにする機能が備わっています。これは Linux カーネルの重要な機能です。ユーザー空間はアプリケーション・ソフトウェアとドライバーがワークロードを実行する場所であるのに対し、カーネル・スペースはクリティカルな OS 機能を実行するためだけに使用されるためです。SCI 層は、2 つの空間の間にブリッジを形成します。たとえば、Eメールの受信トレイを更新したり、モバイルバンキング・アプリケーションを開いたりといったリクエストが、システム・コールとしてユーザー空間から開始されると、システム・コールはカーネル層への切り替えをトリガーし、そのリクエストをOSに送信できるようにします。
プロセス管理層により、Linuxカーネルは、ユーザーがコンピューターと対話できるようにするプロセスを実行できます。たとえば、Linuxを初めて起動するとき、Init(「初期化」の略)は、起動スクリプトを実行し、実行レベルを管理することによって、システムを使用可能な状態にします。各プロセスは、スレッド・コード、データ、スタック、CPUレジスターなど、プロセッサーの個別の仮想化を表します。
コンピューターは、「ページ」と呼ばれるものを使用して仮想メモリを管理します。ページは、仮想メモリに依存するOSでデータを分類できる最小単位です。Linuxカーネルのメモリー管理層は、OS(ひいてはユーザー)がコンピューターの利用可能なメモリを管理できるようにします。仮想メモリは、すべてのプログラムとアプリケーションにとってクリティカルです。
Linuxカーネルの仮想ファイル・システム(VFS)は、ファイル・システム用の共通インターフェースを提供します。VFSは、SCIとカーネルでサポートされているファイル・システムの間の切り替えレイヤーとして動作し、多くのクリティカルな機能(オープン、クローズ、読み取り、書き込みなど)を可能にします。
ファイル・システムの抽象化(言い換えれば、ファイル、ディレクトリー、ファイル・システムがユーザーに表示される方法)は、VFSレイヤーのもう1つの重要なコンポーネントで、ユーザーが理解しやすい代表的な方法でコンピューティング・システムの複雑さを示すのに役立ちます。
「ノード」とも呼ばれるネットワーク上のすべてのコンピューターは、データを共有および受信するための厳格なルール・セットであるネットワーク・プロトコルに従う必要があります。これらのプロトコルは、Android電話とMacコンピューターなど、互換性のないデバイスが同じネットワークを使用できるようにするために重要です。
この種の通信を促進するために、ネットワーク・プロトコルは、2つの異なるネットワーク間の通信を促進するハードウェア・デバイス(ルーターなど)であるゲートウェイに依存しています。Linuxカーネルのネットワーク・スタックは、レート・コンバージョンやプロトコル・トランスレーターなど、多くの一般的なゲートウェイ・デバイスを使用して、互換性のないデバイス間のインターネット通信を可能にしています。
デバイス・ドライバーは、外部キーボードやドライブ、マウス、プリンターなどの特定のデバイスが機能できるようにするソフトウェア・インターフェースをOSに提供します。Linuxカーネルのソースコードの大部分は、特定のデバイスに固有のドライバーに含まれるコードで構成されています。
Linuxソースツリーは、Linuxカーネルとデバイスドライバーのすべてのソースコードを含むディレクトリであり、サポートされているさまざまなデバイスとその接続(Bluetoothやシリアルポートなど)に分割されています。デバイス・ドライバーは、個々のデバイスまたはデバイスのクラスに与えられたコマンドを認識し、これらのコマンドを含むI/O要求を作成し、デバイスがユーザーの意図した方法で動作するようにします。
さまざまな業種・業務が、Linuxカーネルと、Linuxカーネルが提供するさまざまな機能を利用して、従業員のイノベーションを維持し、顧客が信頼するプログラム、アプリケーション、サービスを提供しています。ここでは、Linuxカーネルの最も一般的なエンタープライズ・ユースケースをいくつか紹介します。
Linuxカーネルを使用すると、デバイスの互換性に関係なく、Wi-Fi、イーサネット、またはその他の接続タイプを介して、コンピューターとコンピューティング・デバイスを安全に接続できます。この機能により、イントラネットの使用や、 SaaS (Software as a Service)製品の迅速かつ効率的な配信など、クリティカルな知識とリソースの共有が可能になります。
Linux カーネルには、コンピューター、プログラム、アプリケーション、およびそれらが実行されるネットワークに危害を与える可能性のあるサイバー脅威からユーザーとオペレーティング・システムを保護するのに役立つ強力なセキュリティ機能が備わっています。これらの脅威には、 ランサムウェア 、ルートキット、ワームなど、さまざまな種類の マルウェアが含まれます。Linux カーネルの脆弱性を狙ったこうした脅威は、修正プログラムなどのパッチを頻繁に適用することで対処され、システムとその上で実行されるプログラムのセキュリティが確保されます。
企業の89%がデジタル・トランスフォーメーションの取り組みを実施しており2、デジタル・トランスフォーメーション専用のコンピューティング・リソースの最適化は、ほとんどのビジネス戦略の不可欠な要素となっています。
Linuxカーネルは、企業がサーバーやデータベース、最先端のアプリケーション・ソフトウェアなど、最も貴重なコンピューティング・リソースのニーズのバランスを取るのに役立ち、カーネル・チューニングと呼ばれるプロセスを通じて、システムとネットワークがピークレベルでパフォーマンスしていることを確信できるようにします。
カーネル・チューニングとは、Linuxカーネルの設定を微妙に調整することで、ネットワーク、メモリー、プロセス・スケジューリング、ファイル・システムといった特定のLinuxカーネル・サブシステム全体の性能を向上させることです。たとえば、ファイル・システムの場合、ビデオ・ゲーム、金融取引アプリ、ソーシャル・メディア・サイトなどの多くのデータ集約型アプリケーションをピークレベルで実行するためには、ファイル・システム・パラメーターのチューニングが必要になります。LinuxのVFSであるprocファイルシステムは、カーネルの内部データ構造間のインターフェースを介してシステムに関するデータを取得し、カーネル・パラメーターを調整してアプリケーションの性能を最適化できるようにします。
今日、最も成功している企業は、成長するために、従業員にノートPCやモバイル・デバイスなどの最先端のテクノロジーを備えさせる必要があります。Linuxカーネルを使用すると、さまざまな場所にいる何千人もの従業員がさまざまな種類のデバイスを使用してシームレスに連携できるようにサポートするプログラムとネットワークが可能になります。カーネルにより、ハードウェア・デバイスは、カーネルにロードできる特定のデバイス・モジュールを使用して対話できるため、OSで管理できます。
一般的なLinuxデバイス管理プロセスの1つは、中断として知られています。Interrupt は、特定のオペレーションが必要ないときに Linux カーネルがデバイスとアプリケーション間の通信を停止できるようにすることで、コンピューティング リソースを節約するのに役立ちます。もう1つは、OSへのデバイスの追加と削除を管理し、各デバイスがディレクトリ内にどのように表示されるかを制御するLinuxデバイス管理ツール、udevです。
クラウド・コンピューティングは、インターネットを介してコンピューティング・リソースをオンデマンドで提供するもので、多くの現代の企業にとって不可欠なツールとなっており、イノベーションを促進し、迅速かつスケーラブルな方法で顧客にソリューションを提供するのに役立っています。
Linuxカーネルはクリティカルな方法でクラウド・コンピューティングを可能にし、Amazon(AWS)、Microsoft Azure、Oracle、Googleクラウドなど、世界最大級のクラウド・プロバイダーにおいて不可欠なコンポーネントとなっています。
カーネルの拡張性により、参考情報を大幅に増やすことなく、スーパーコンピュータやデータセンターなどの大規模なコンピュータ・システムをサポートできます。これは、クラウド・アーキテクチャに不可欠な機能です。Linuxカーネルは安定性が高く、ダウンタイムが比較的短いため、クラウドのワークロードにも最適です。最後に、Linuxカーネルは汎用性が高く、さまざまな種類のハードウェアで動作できます。これは、現代のクラウドの中核をなす仮想化環境における重要な機能です。
1. 2024年のトップ5コンテナ化テクノロジー(リンクはibm.com外部にあります)6Sense、2024年
2.デジタル・トランスフォーメーションの価値(ibm.com外部へのリンク)ハーバード・ビジネス・レビュー、2023年7月31日
IBM Cloud Infrastructure Centerは、IBM zSystemsおよびIBM LinuxONE上のプライベートクラウドのインフラストラクチャーを管理するためのOpenStack互換ソフトウェア・プラットフォームです。
企業のハイブリッドクラウドとAI戦略のために設計された、サーバー、ストレージ、ソフトウェアを紹介します。
安全性と柔軟性を備えたクラウドで、ビジネスの成長に合わせてリソースを無理なく拡張できます。