Linuxとは

Linuxの定義

Linuxは、オープンソースモデルで開発された、コンピュータのオペレーティング・システムです。オープンソース・ソフトウェア開発においては、以下のような原則があります。

  • 透明性
  • コラボレーション
  • 早期かつ頻繁にリリースする
  • インクルーシブ・メリトクラシー
  • コミュニティ

また、オープンソースの開発モデルは、さまざまな企業や個人の貢献によって改良が加えられるため、製品の方向性は、単一ベンダーの開発チームではなく、ユーザーのコミュニティによって大きく左右されます。

Linuxカーネルとは

Linuxカーネルは、Linuxコンピュータ・オペレーティング・システムの中心的存在です。カーネルは、コンピューターのハードウェアとそのプロセスの間の中核となるインターフェースで、Linuxアプリケーションが実行するために利用可能なメモリを確保し、プロセッサを最適化し、アプリケーション間でシステム要件をナビゲートします。

Linuxカーネルは、ハードウェアとアプリケーションの間の通信を「割り込み」で行っています。ハードウェアがアプリケーションや広範なシステムとインターフェイスで接続したいとき、プロセッサとカーネルを横断して「割り込み」が発行され、リソースを効率的に管理します。

カーネルは、ハードOSのシェル内に存在し、モバイル、タブレット、デスクトップやラップトップ、サーバーなど、デバイスに依存せず、それぞれのハードウェアのすべての主要機能を制御します。Linuxカーネルは、以下の重要な機能に焦点を当てています。

  1. メモリ管理: どれだけのメモリをどのように活用するかを把握します。
  2. プロセス管理: どのプロセスがどのように中央処理装置(CPU)を使用できるかを決定します。
  3. デバイスドライバ: ハードウェアとアプリケーション・プロセス間の仲介として機能します。
  4. システム・コールとセキュリティ: アプリケーション・プロセスからサービスのリクエストを受け取ります。

開発者向けのLinux

開発者が長い間Linuxに愛着を持っているのには、理由があります。Linuxは実績のある強力なツールです。Oracle Linuxでは、開発者が作ったものを共有したり、トラブルシューティングの機会があればいつでも相談できるような大きなコミュニティがあります。

現在、開発者ポータルでは、複数の言語(Python、Node.js、Go)を使用する上でのOracle Linux開発者へのメリット、アプリケーションおよびインフラストラクチャのチュートリアル、さらにOracle Linuxを使用してハードウェアのユースケースをさらに微調整する方法についてご覧いただけます。

Linuxの使用者

Linuxオペレーティング・システムは、様々なシステムや環境で使用されています。Linuxオペレーティング・システムは、大規模なクラウド・インフラストラクチャ環境、オンプレミスの統合インフラストラクチャ・アプライアンス、アプリケーション・サーバー、デスクトップ・コンピューティング環境、および組み込みシステムを強化します。Linuxソフトウェアの一部のディストリビューションには、仮想マシンをホストするためのハイパーバイザも含まれています。


動画:開発者とLinux(17:03)

Linuxは誰のものか

Linuxは一個人や一企業が「所有」しているわけではありません。多くの個人や企業がLinuxのアップデートを提供しており、彼らは通常、GPLv2のようなオープンソース・ソフトウェア・ライセンスの下でその貢献をライセンス化しています。Linuxという名称の著作権はLinus Torvalds氏が持っていますが、様々なオープンソースのコンポーネントを組み合わせることで、誰でもLinuxのディストリビューションを作ることができます。多くの場合、企業はディストリビューションの使用に対して課金します。あるいは、ディストリビューションのサポートに対してのみ課金したり、ディストリビューションを無料で提供したりします(通常はサポートなし)。


動画:Linuxの違いとは?(2:43)

Linuxディストリビューションとは

Linuxディストリビューション(「Linuxディストロ」と略されることもある)は、主要なコンポーネントとオプションのコンポーネントを組み合わせて、完全なオペレーティング・システムを形成するものです。一般に、Linuxディストリビューションは、ブートローダー、Linuxカーネル、initシステム、デーモン、グラフィカルサーバ、アプリケーションなどのコア・コンポーネントを含んでいます。ディストリビューションによっては、高性能なLinuxカーネル、管理ツール、ハイパーバイザー、さらにはクラウド・ネイティブ環境用のコンポーネントなどの追加オプションが用意されているものもあります。

様々なLinuxディストリビューションをどこでどう使うか

各Linuxディストリビューションの主な違いは、使用できる場所、サポート方法、ソフトウェア更新の管理方法、どのような追加またはオプションのコンポーネントが含まれているかです。上記のディストリビューションのリストだけを考えると、これらのほとんどは、デスクトップ・コンピュータではなくネットワーク・ベースのサーバに使用されていますが、すべての種類のサーバ環境で容易に使えるわけではありません。

たとえば、Red Hat Enterprise Linux は、オンプレミスのデータセンターと一部のクラウドで人気がありますが、すべてのクラウドでサポートされているわけではありません。Amazon Linuxは、Amazon Web Services(AWS)クラウドで利用できますが、他のクラウドやオンプレミスでは、簡単に利用できなかったり、サポートされていなかったりします。CentOSは、ベンダーとサポート契約を交わすのでなく、セルフサポートを希望されるお客様に最もよく利用されています。RHELのユーザーはその逆で、システムのアップデートや電話サポートを受けるために、比較的高い年間サポート費用を喜んで支払っています。Fedoraは、長期の安定的な構成にはあまり関心がなく、常に最新の実験的な機能をシステムに取り入れたいと考えているユーザーを対象にしています。2020年末、CentOSは長期安定型ディストリビューションから、RHELのベータ版に近いものに方向転換することを発表しました。

各ユースケースに最適なLinuxオペレーティング・システム

Linuxのユースケースの数に匹敵するほどの数のLinuxディストリビューションがある中、すべてのユースケースに最適なLinuxというものは存在しません。ただし、各ユースケースに最適なLinuxは存在します。以下のセクションでは、どのLinuxオペレーティング・システムが最適なのかを見極めるのに役立つ、Linuxの種類の違いについて説明します。

Linuxのバージョン

誰もが、入手可能なソースコードからLinuxディストリビューションを作成でき、いくつかのコンポーネントのバリエーションから選択できることから、Linuxのディストリビューションには、よく似たものがたくさんあります。ディストリビューションには、異なる会社から提供されているものもありますが、事実上、互換性があります。

また、ディストリビューションによって最適化の目的も異なります。例えば、可能な限り小さくすることに重点を置いたものや、デスクトップ・ハードウェアを幅広くサポートすることに重点を置いたものなどがあります。また、ディストリビューションによっては、パッチの自動適用やデータベースの高性能化など、特殊な機能を搭載しているものもあります。

人気のあるディストリビューションは以下の通りです。

  • IBM Red Hat/Red Hat Enterprise Linux(RHEL、またはRed Hat Linux)
  • Amazon Linux
  • CentOS
  • Fedora
  • Oracle Linux
  • SUSE Linux
  • Ubuntu

各種Linuxオペレーティング・システムのアップデートとパッチの管理方法

もう一つの違いは、オペレーティング・システムがオプションのソフトウェア・アップデートとパッチを管理する方法です。上記のリストにあるシステムの多くは、RPM(前Red Hat Package Manager)を使用しています。他のLinuxディストリビューションの中には、Debianパッケージ(dpkg)システムを使用しているものがあります。

個々のパッケージ・マネージャは、それ自体ではあまり重要ではありませんが、一方を使用するシステムと他方を使用するシステム間で互換性の相違が生じます。例えば、どんな機能を使うかにもよりますが、RPMシステムを利用したシステム(「rpm Linuxディストリビューション」と呼ばれることもあります)同士は、簡単に交換することができます。なぜなら、同じようなディストリビューション・サーバーから、よく似たパッケージをダウンロードできるからです。

また、CentOSとRHELのパッケージ・マネージャを新しいアップデート・サーバーに向けるだけで、インプレースで簡単にオラクルのインストールに変換することができます。これは、RPM方式を使用しているためです。(上記はあくまで技術面の説明です。ベンダーが指定する遵守するべき追加のライセンス条項があるかもしれませんが、それらに関しては、このドキュメントでは触れていません。)これと同じことを、UbuntoのようなDebianのパッケージ・システムを利用したディストリビューションで行うのは、より困難でしょう。

Linuxディストリビューションを選ぶ際の考慮点

ボトム・スタックのメリット

多くのお客様にとって、オペレーティング・システムはソフトウェア・プラットフォームのスタックの一番下にあり、業務アプリケーションはその一番上にあります。そのため、オペレーティング・システムがスタックの上位レイヤーより重要でないかのように、また、どのディストリビューションを選んでも問題ないかのように思われることがあります。さらには、すべてのディストリビューションは事実上同じだと思っている人もいるかもしれません。

しかし、Linuxオペレーティング・システムはスタックの底に近い(または底にある)からこそ、その上のすべてに影響を与えるのです。セキュリティ、パフォーマンス、信頼性、トラブルシューティングの能力をこの低いレイヤーで向上させることは、スタック全体を通してこれらが改善されることを意味します。例えば、Kspliceと呼ばれる技術では、管理者がサーバーを再起動することなく、セキュリティパッチやバグ修正を適用することができます。それ自体は、小さなメリットのように思えます。しかし、業務アプリケーションを停止させるコストや、最新のセキュリティ脅威に対応できないままシステムを放置するリスクを考えると、業務アプリケーションを停止させずにパッチを適用できることは、とても大きなメリットです。

これらのメリットは、スタックが上がるにつれて、その価値も倍増していきます。OSレベルでの再起動にかかる時間を短縮しても、管理者にとってはたった数分のメリットかもしれません。しかし、主要な顧客向けアプリケーションのダウンタイムがもたらすであろう、組織的な痛手と潜在的な収益への影響を回避できることは、その管理者の年俸の何千倍もの価値があるかもしれません。また、セキュリティ・アップデートを無視することで発生するビジネスへの代償やリスクも忘れてはなりません。

パフォーマンス面でのメリット

同じように、オペレーティング・システムの性能を向上させることは重要でないように思われるかもしれません。なぜなら、管理者が直接オペレーティング・システムを操作する時間は通常ほとんどなく、ユーザーであればさらに少ないからです。しかし、業務アプリケーションのレベルにまで引き上げると、小さなパフォーマンスの向上が何百万もの価値の高いトランザクションによって倍増する可能性もあり、トランザクションあたりのコスト削減につながったり、時間的制約のあるトランザクションを競合他社よりも速く提供することで、ビジネスの競争力を高める可能性もあります。

Linuxを選ぶ理由

オープンおよび完成度の高さ

オープンで完全なオペレーティング環境であるOracle Linuxは、オペレーティング・システムだけでなく、仮想化、管理、およびクラウド・ネイティブなコンピューティング・ツールを単一のサポート・オファリングで提供します。Oracle Linuxは、RHELと100%アプリケーション・バイナリ互換性があります。この互換性により、通常、他のRPMベースのディストリビューションの代用品としても使用できます。

無料で使える

Oracle Linux は、セルフサポート環境では(たとえばCentOSの代わりとして)無料で使用でき、本番ワークロードでは有料のLinux サポート契約により使用することができます。

継続的な改良

Oracle Database の高パフォーマンスをサポートするために、オラクルのエンジニアは Unbreakable Enterprise Kernel に継続的な改良を加えてきました。これらの改良はOracle Databaseを対象としていますが、一般的にはコンピュートやメモリを大量に消費するアプリケーションにも有効です。一部のユーザーからは、このLinuxカーネルの亜種によって30%以上のパフォーマンスの向上が報告されています。

ダウンタイムがゼロのパッチ適用

Oracle Linux には、Kspliceと呼ばれるダウンタイムなしのパッチ適用技術がオプションで含まれており、サーバーの再起動や、サーバー上で動作する業務アプリケーションの再起動を必要とせずに、定期的なパッチ適用が可能になっています。このように、より頻繁にパッチを適用することで、よりセキュアでコンプライアンスに準拠したシステムを実現することができます。また、大規模な業務アプリケーションにありがちな、再起動前のスケジュール調整や関係者の承認に多大な労力を要する、管理上のオーバーヘッドを削減することができます。Oracle Linux には、オープンソースの KVM ハイパーバイザーや(サポート契約があれば)Virtualization Manager(PDF)も含まれています。

多くのクラウド・ネイティブ・ツールを搭載

多くのワークロードはホストされたクラウド環境に移行しており、オンプレミスに残るものは、クラウド・ネイティブ・パターンおよびテクノロジー、Kubernetes、Kataコンテナ、およびIstioを使用して設計されることが多くなってきています。Oracle Linux は、Oracle Cloud Infrastructure (OCI)の基盤となるオペレーティング・システムであり、このアーキテクチャに必要な多くのクラウド・ネイティブ・ツールを含んでいます。つまり、Oracle Linuxは、最も広く、最も要求の厳しい環境でテストされており、またその環境は、ほとんどの最新アプリケーションのデザインパターンにマッチするものです。この経験から得られた教訓は、そのままオペレーティング・システムの改良に反映されます。しかし、クラウドの基盤に独自のシステムを持つ他のクラウド・ベンダーとは異なり、Oracle Linuxは、OCIでも、他のクラウドでも、お客様自身のデータセンターでも、すべてのユーザーが同じ構成で利用できます。

Oracle Autonomous Linuxの基盤

Oracle Linuxは、世界で唯一の自律型オペレーティング・システムの基盤でもあり、毎日パッチを適用することで、セキュリティの脅威と管理者の手間を軽減しています。

2006年以降、Oracle Linux は、ソースコード、バイナリ、アップデートなど、完全に無料でダウンロードし、使用できるようになりました。自由に再配布可能です。本番環境での使用は無料です。