オペレーティング・システムでもあり、汎用プラットフォームでもある Linux についての考察

多くの使用モデルで、強力かつ適応可性の高いプラットフォームとして使われている Linux について探る

Linux はあらゆるところで使われています。小型のものであればスマートフォンから、インターネットの仮想バックボーン、そして大型のものであれば最強のスーパーコンピューターに至るまで、Linux が使われています。これらのプラットフォームに期待される機能の多様さを考えると、これほどまで広範に使われるようになるのは大変なことです。この記事では、Linux がいかに幅広く使用されており、小型機器や大型機器、そしてその中間のあらゆる機器をどれほどサポートしているかを説明します。

M. Tim Jones, Independent author, Consultant

M.Tim JonesM. Tim Jones は組み込みソフトウェアのエンジニアであり、『Artificial Intelligence: A Systems Approach』、『GNU/Linux Application Programming』(現在、第 2 版です) や『AI Application Programming』(こちらも現在、第 2 版です)、それに『BSD Sockets Programming from a Multilanguage Perspective』などの著者でもあります。技術的な経歴は静止軌道衛星用のカーネル開発から、組み込みシステム・アーキテクチャーやネットワーク・プロトコル開発まで、広範にわたっています。彼はコロラド州ロングモン在住で、Intel に勤務するプラットフォーム・アーキテクトであり、執筆活動も行っています。



2012年 4月 12日

Tim とつながるには

Tim は developerWorks で人気の高いお馴染みの著者の 1 人です。Tim が書いたすべての developerWorks 記事を閲覧してみてください。また、developerWorks コミュニティーでは、Tim のプロフィールを調べることや、彼やその他の著者、そして他の開発者とつながることができます。

Linux は成人に達しました。2012年で、誕生してから 21 年を迎える Linux は成熟したオペレーティング・システムとして、多種多様な使用モデルをサポートするようになっています。しかし Linux を単なるオペレーティング・システムと考えることには無理があります。Linux はカメレオンのようであり、柔軟なモジュール構造の Linux カーネルは (最も大型のものであればスーパーコンピューターから、最も小型のものであれば組み込み機器に至るまで) 非常に多くの使用モデルに対応することができます。このため、Linux をさまざまなものの実現技術としてとどめておかずに、1 つのカテゴリーに分類するのは困難です。実際、Linux はプラットフォームです。Linux は、ほんの少し前まで知られていなかった一部の製品を含め、新しい製品を作り出す上で鍵となる技術なのです。

ではまず、Linux と Linux の基本アーキテクチャー、そして Linux の重要な性質のいくつかについての簡単に説明から始めましょう。次に、Linux ではこれらの性質をどのようにして Linux の多様な使用モデルに適用しているのか、そして、なぜ Linux が単なるオペレーティング・システムではなくプラットフォームであるのかを説明します。

Linux とは何か?

Linux は表面的にはオペレーティング・システムです。図 1 に示すように、Linux は、カーネル (ハードウェア・リソースとソフトウェア・リソースを管理するコア・コード) と、一連のユーザー・アプリケーション (ライブラリー、ウィンドウ・マネージャー、アプリケーションなど) で構成されています。

図 1. Linux の概観
ユーザー空間、カーネル空間、ハードウェアのレベルで Linux のすべてのコンポーネントを示した図

この単純な図を見ると、見逃されがちな重要な性質を理解することができます。つまり Linux スタックの一番下にはアーキテクチャーに依存する一連のコードがあり、それらのコードにより、膨大な種類のハードウェア・プラットフォーム (ARM、PowerPC、Tilera TILE など) 上で Linux を実行することができます。もちろん、この機能は Linux の高い「移植性」を可能にする GNU ツールチェーンによって実現されています。

Linux の「移植性」の高さは別格です。(膨大な機能を備えた) ドライバー・サブシステムはパフォーマンスに影響を与えずに複数モジュールを動的にロードできるため、Linux の (プラットフォームとしてのより動的な性質に加えて)「モジュール性」を可能にしています。また Linux は (さまざまな方式で) カーネル・レベルのセキュリティーが組み込まれているため、「セキュア」なプラットフォームとなっています。外部ファイルシステムに関しては、Linux はあらゆるオペレーティング・システムの中で最も多くの種類のファイルシステムをサポートしているため、例えばモジュールの設計における「柔軟性」が実現されています。Linux は標準的なスケジューリング機能を実装しているのみならず、(割り込み遅延の保証を含む)「リアルタイム」のスケジューリングも実装しています。

最後に、Linux は「オープン」です。つまり、実質的に誰でも Linux のソースを見たり改善したりすることができます。このようにオープンな性質のため、悪用される可能性は非常に低く、より「セキュア」なプラットフォームを実現しています。多くの企業が Linux に貢献しているため、Linux は今後も核となる特性を維持しつつ、多様な使用モデルに対応することができるはずです。

この 7 つの重要な性質は決して Linux の特性のすべてではありませんが、この 7 つの性質により、Linux は広範な使用モデルにわたっての汎用的なプラットフォームとなっています。しかも、これらの使用モデルのどれにおいても、Linux は (設計原則のみならずコード自体も) すべて同じです。他のオペレーティング・システムの場合はそうはいかず、(Windows の場合はデスクトップ PC、サーバー、組み込み機器でそれぞれ異なり、Mac OS X と Apple iOS は異なるなど) サポートする使用モデルごとに種類が分かれています。


Linux はどこに使用されているのか?

「Linux はどこに使用されているのか?」という質問の方が「Linux が使用されていないのはどれか?」という質問よりも難しいかもしれません。Linux は非常に柔軟でスケーラブルなため、あらゆるコンピューティング分野に使用されています (さらには、まだ完全に定義されていない分野にも使用されています)。このセクションでは、コンピューティングの主な分野における Linux の使用状況について探っていきます。取り上げるのは、デスクトップ PC やネットブックによるコンピューティング、サーバーによるコンピューティング、クラスター・コンピューティング、メインフレームによるコンピューティング、スーパーコンピューターによるコンピューティング、ハンドヘルド機器やタブレットによるコンピューティング、組み込み機器によるによるコンピューティング、仮想化を利用したコンピューティング、そして実験的なコンピューティングです (図 2)。

図 2. Linux の特性と対応分野
Linux の特性と対応分野

デスクトップ PC とネットブック

多くの人々はデスクトップ PC やネットブックで Linux を使用していますが、この分野は Linux が最も参入に苦労している分野です。市場シェアに関する最近のデータによれば、デスクトップ PC 市場で Linux のシェアは約 1.5% ですが、ネットブック市場では約 32% です。この数字は低いと思えるかもしれませんが、私は開発者として、他のどのオペレーティング・システムよりも Linux を扱う場合の方が多いと感じています。

最初は単純な実験的オペレーティング・システムであった Linux は、1994年に XFree86 が導入されたことにより、ウィンドウ・マネージャーによってデスクトップ・オペレーティング・システムを実現できる可能性が示されました。現在、Linux のウィンドウ・マネージャーは数種類あり (これは幸いなことでもあり、不幸なことでもあります)、ユーザーは必要に応じて Linux の設定を調整することができます。また、Linux はプロセッサーの能力 (マルチコアや対称型マルチスレッドなど) に応じて機能を自動調整するため、パフォーマンスを考慮した上で効率的に複数のプロセスをスケジューリングすることができます。

Linux と転職市場

Dice.com と Linux Foundation による最近の調査では、2,000 人を超える回答者の 81% は Linux 技術者の採用が 2012年の優先課題であると回答しています。Linux は産業を推進しているのみならず、習得しておくと転職にも有利なものになっています。

サーバー

サーバー市場 (Web サーバー、メール・サーバー、DNS サーバー、その他のバックエンド機器など) では、Linux が最大の勢力を占めています。最近の調査によれば、何らかの Linux が実行されているサーバーは、サーバー全体の 60% を超えています。また、これまでの Web サービスとは異なる、インターネットを利用した最大規模のサービス (一例を挙げると、Facebook、eBay、Twitter、Amazon など) の多くでは、さまざまな使用モデルと要件で Linux を使用しています。これまでの Web サービス (Web やメールなど) の他に、Linux は非常に多岐にわたる Web サービス (そして、それらのサービスに対する多様な選択肢) を提供しています。

クラスター・コンピューティングと分散コンピューティング

Linux はクラスター・コンピューティング・モデルや分散コンピューティング・モデルに不可欠であるのみならず、多くの新しい使用モデルの中核を担っています。現在急成長している 2 つの重要なモデルがクラウド・コンピューティングとビッグ・データです。

クラウド・コンピューティングは IT をサービスとして提供し、指定されたアプリケーションのニーズに応じてスケーリングされる共有リソースのクラスターを使用します。またクラウドは大規模なインフラストラクチャー内のノードを仮想化によって自動管理します。クラウド環境では、66% が基本プラットフォームとして Linux を使用しています。

また Linux はデータ科学のプラットフォームにもなりつつあります。インターネットでは収集対象となり得るデータ量が増大しており、こうした大量のデータを処理して価値あるパターンを見出す上での新たな問題が生じています。現在「ビッグ・データ」と呼ばれるデータを扱う技術は、従来の方法では扱うことができない巨大なデータを扱うためのスケーラブルな手段として Linux 上で開発された技術です。また、Hadoop や Hadoop のエコシステムは、Linux がオープンであることと、このプラットフォームに熟達した大勢の開発者の存在によってもたらされた成果です。

メインフレーム

有名な編集者が 1991年に、1996年の初めには最後のメインフレームの電源が落とされるだろうと予測しました。それから 20 年以上が過ぎ、メインフレームは相変わらず製造、販売され、その多くで Linux が実行されています。IBM は 2000年にメインフレーム (有名な IBM System z など) での Linux のサポートを開始し、現在は環境にかかわらず共通のユーザー・エクスペリエンスを提供しています。Michael Vizard 氏が最近著した記事には、メインフレームの新たなワークロードの約 25% が Linux で実行されていることが記されています (「参考文献」を参照)。

スーパーコンピューター

スーパーコンピューターの世界では、最速という肩書きを得るための激しい競争が常に行われており、最速マシンの座は Oak Ridge National Laboratory の Jaguar スーパーコンピューター (2009年) から中国の天河一号 (2010年) へ、そして現在では日本の理化学研究所の京 (2011年) へと移り変わっています。2012年には IBM の Sequoia スーパーコンピューターがリリースされる予定であり、その性能は京の 2 倍を超えると見込まれています。これらのスーパーコンピューターの共通点は、どれも Linux を実行していることです。Linux は効率が高いだけではなく、さまざまなハードウェア・プラットフォームに適応して最大限の性能を発揮させることができます。Linux を実行しているスーパーコンピューターが 90% を超えていることを考えれば、これは驚くに当たりません (「参考文献」を参照)。

モバイル機器とタブレット

スーパーコンピューターよりも制約が厳しい民生機器の分野で、モバイル機器とタブレットが急成長しています。これらの機器では Linux カーネルとカスタムの GUI (Graphical User Interface) が組み合わされています。この分野の重要な例が、スマートフォンとタブレット・コンピューターの両方に使用されている Google の Android オペレーティング・システムです。現在、何らかの Linux (主に Android) が実行されているスマートフォンは、スマートフォン全体の 25% を超えており、Android が実行されているタブレット・コンピューターは、タブレット・コンピューター全体の約 40% にも上ります。

これらの機器は ARM ベースのプロセッサー (システム・オン・チップ) を使用してハイパフォーマンスと低消費電力を実現しています。ベースとなるプラットフォームによらず、これらは Linux 機器であり、カーネルやアプリケーションが分岐したものではありません。

Microsoft は最近、Windows on ARM (WOA) タブレットでサポートされるアプリケーションは WOA プラットフォーム用として開発されたアプリケーションのみであることを認めました (つまり古いアプリケーションを WOA タブレットで実行することはできません)。それを Linux と比較してみてください。制約があり、閉じられたアプリケーション・エコシステムとは異なり、Linux ではアプリケーションの移植性が非常に高いのです (「参考文献」を参照)。

組み込み機器

Linux が使用されるコンピューティング分野のうち、最も小型の機器が使用されるのが組み込み機器です。組み込み機器にはさまざまな制約があります (プロセッサーの性能や、メモリーなどのリソース、等々)。Linux は機能をスケールダウンすることができ、市場にある任意の組み込みプロセッサーを使用できるため、さまざまな制約がある組み込み機器のほとんどに理想的です。こうした柔軟性から、テレビ、車載エンターテインメント、ナビゲーション・システム、その他多種多様な機器で、Linux は非常によく使われるプラットフォームとなっています。

高度なカスタマイズが可能な Linux では、低消費電力であることを重要視しています。消費電力に確実にフォーカスするために、Less Watts イニシアチブでは Linux カーネルのリリースごとの消費電力を追跡しています。このプロジェクトは主に Intel プラットフォームに焦点を絞っていますが、他のプロセッサーに対しても参考になります。

Linux は (起動が速く、開発も短期間ですむため) 組み込み機器では極めて標準的に使用されており、機器の成功や失敗を決定付ける場合もあります。最新の興味深い機器として、ARM ベースでクレジットカード・サイズのコンピューターである Raspberry Pi があります。Raspberry Pi では、Linux が実行され、プログラミングを学ぶための機器としての用途を想定しています。価格は 35 US ドルと予想されていますが、まだ購入することはできません (「参考文献」を参照)。

仮想化プラットフォーム

Linux によって革新が進められる分野のうち、最も興味深い分野の 1 つが仮想化です。Linux は、プラットフォームの仮想化や準仮想化、オペレーティング・システムの仮想化、あるいは協調型の仮想化 (cooperative virtualization) のように曖昧な概念であっても、あらゆる種類の仮想化ソリューションの出発点となるオペレーティング・システムです。オペレーティング・システムとしての Linux は、ハイパーバイザー (KVM: Kernel Virtual Machine など) に姿を変えることもでき、いくつもの Research Hypervisor をホストすることもできます。Linux ではさらに効率的な仮想化を実現するために、メモリー・ページの重複を効率的に解除する Kernel SamePage Merging を実装しています。

また Linux では、「ネストされた仮想化」と呼ばれる新しく進化した仮想化の最先端の形も推進されています。名前からもわかるように、ネストによってハイパーバイザーはゲスト・ハイパーバイザーをホストすることができ、そのゲスト・ハイパーバイザーがさらに一連のゲスト仮想マシンをホストすることができます。ちょっと聞くと奇妙な使い方に思えますが、ネストされた仮想化によってクラウド・コンピューティングが変わり、クラウドでホストされるアプリケーションの種類が広がることになるでしょう。現在、Linux KVM はネストされた仮想化をサポートしています。

実験的なプラットフォーム

Linux が使用される分野としては最後となる重要な分野として、Linux 自体の基盤となる実験的なプラットフォームがあります。この実験的なプラットフォームからは、多くの新しい概念が検討されています。UNIX が最初にリリースされてから 20 年後の 1991年、Linux はおもちゃのオペレーティング・システムとして紹介されました。Linux は現在、ファイルシステムの研究、クラスター・コンピューティング、クラウド、仮想化の進化のための実験用プラットフォームとして使用されており、その用途は際限なく広がり、1 つのオペレーティング・システム・カーネルが非常に多くの使用モデルに適用できるようになっています。プラットフォームとしての Linux は、Linux と大量のオープンソース・コンポーネントの両方を使用することにより、さまざまな実験を行えるようにしています。その結果として、HP webOS、Google Chrome OS、Android など、興味深いさまざまな技術が Linux から生まれています。

Linux を使用することでもたらされる興味深い変化の 1 つは、使用するハードウェア・プラットフォームが違うことによる影響が少なくなることです。どんなハードウェア・アーキテクチャーであるかにかかわらず、Linux は同じユーザー・エクスペリエンスを提供します。そのため、クラウドが AMD x86 プロセッサー搭載のサーバーによって実現される場合にも、低消費電力の ARM ベースのプロセッサーを使用してサービスが提供される場合にも、Linux 上で実行されるアプリケーションは物理アーキテクチャーから抽象化されます。こうした抽象化により、利用者は一般的であっても時代遅れの非効率的なアーキテクチャーに束縛されることなく、自分達の要件に基づいてプラットフォームを決定することができます。Linux によって選択肢が豊富になるのです。

また Linux は自己完結の統合開発環境 (Integrated Development Environment: IDE) でもあります。Linux は世界クラスのコンパイラー・ツールチェーン (GNC Compiler Collection) をサポートする他、デバッガーからエディター、バージョン管理システム、ファイル・ツール、シェルやインタープリターに至るまで多種多様なツールをサポートし、開発作業の自動化を支援します。こうした機能から、Linux はソフトウェア開発やソフトウェア研究のための理想的な環境となっています (「参考文献」を参照)。


Linux の多様性

Linux では、ここで説明した多様な使用モデルのサポートをパッケージング・オプションによって実現しています。Linux ディストリビューションはデスクトップ PC 市場やサーバー市場に対応する一方、組み込み市場をターゲットとして特化したディストリビューションがあります (メモリー管理ユニット (Memory Management Unit: MMU) を持たない組み込み機器のための uClinux など)。誰もが特定の使用モデルに合わせて Linux カーネルを選択し、一連のユーザー・アプリケーションをパッケージ化することで、Linux のさまざまなメリットを活用することができます (多種多様なネットワーク・プロトコルやファイルシステムのサポート、構成可能で動的なカーネル、標準化された API (Application Programming Interface) など)。急成長するスマートフォン・プラットフォームが (それぞれの特性に合わせて UI がカスタマイズされた) Linux を実行している理由の 1 つは、そこにあります。


さらに詳しく調べてください

Linux を橋にたとえるならば、最新の工学技術の驚異に他なりません。Linux の分散開発モデルが当時の現状に挑戦した結果、これまでで最も柔軟なソフトウェア製品が生まれ、その使用モデルは小型の組み込み機器から巨大なスーパーコンピューターに至るまで多岐に及んでいます。Linux によって産業が形成され、クラスター・コンピューティング、ファイルシステム、クラウド、そして仮想化などにおける最先端の研究が進められてきました。今後どのようなコンピューティング環境が生まれるにせよ、Linux はその環境で活躍するはずです。

参考文献

学ぶために

  • この記事の著者が developerWorks に寄稿した以下の記事を読み、Linux の内部動作について学んでください。
    • Linux カーネルの徹底調査」(M. Tim Jones 著、2007年6月): Linux カーネルの一般的な構造を調べ、主要なサブシステムとコア・インターフェースについて解説しています。
    • Linux ネットワーク・スタックの徹底調査」(M. Tim Jones 著、2007年6月): Linux ネットワーク・スタックの構造をレイヤーの観点から調べ、そこに含まれる主要な構造を検証しています。
    • Linux SCSI サブシステムの徹底調査」(M. Tim Jones 著、2007年11月): Linux の SCSI サブシステムについて、またこのサブシステムの将来について解説しています。
    • Linux 仮想ファイルシステム・スイッチの徹底調査」(M. Tim Jones 著、2009年8月): 仮想ファイルシステム・スイッチが強力な理由、その主要なインターフェースとプロセスについて学ぶことができます。
    • Linux ハイパーバイザーの徹底調査」(M. Tim Jones 著、2009年5月): ハイパーバイザーの背後にある概念と、Linux をプラットフォームとして使用する具体的なハイパーバイザーとして KVM と Lguest の 2 つについて解説しています。
  • The Surprisingly Juicy Desktop Linux Market Share Report」は、デスクトップ PC 市場で Linux の市場シェアがいかに着実に増加しているかを解説しています。
  • Linux は IBM developerWorks で頻繁に取り上げられています。メインフレームのワークロードについて解説した「Linux Rises on the Mainframe」を読み、Linux のアーキテクチャーについて学んでください。この記事では特に、メインフレームの新たなワークロードの 25% に Linux が使用されていると解説されています。
  • スーパーコンピューターには圧倒的に Linux が使用されています。Linux はスーパーコンピューターの過去 3 年間の第 1 位 (National Center for Computational Science の Jaguar中国の天河一号、理化学研究所の) のすべてに、そして来る第 1 位として期待されている IBM Sequoia にも使用されています。
  • ウィキペディアには、さまざまなオペレーティング・システムの用途別シェアを解説した素晴らしいページがあります。このページはいくつかの情報源を基に、さまざまな使用モデルを分析しています。
  • InformationWeek は最近、WOA では古いアプリケーションを実行できないことを発表しました。これは Linux のメリットを示す一例です。Linux はオープンに設計されているため、アプリケーションのエコシステムを制約しないからです。
  • Linux の新たな興味深い用途として、Raspberry Pi 組み込み機器に Linux が使用されています。この ARM ベースのプラットフォームは GNU/Linux を実行し、価格は 35 US ドルと予想されています。起動が速くアプリケーション開発も短期間ですむことから、組み込み機器には Linux が不可欠です。
  • 現在の転職市場を見ると、Linux は重要なスキルです。Dice.com と Linux Foundation は 2,000 人以上の求人担当マネージャーに対して調査を行い、その 81% は Linux 技術者の採用が 2012年の優先課題だと回答しています。Linux は求められるスキルとなりつつあります。
  • Tom Ryder 氏による優れたブログ、UNIX as IDE は、なぜ UNIX が理想的な環境なのかを多様な側面から解説しています。
  • developerWorks の Linux ゾーンには、Linux 開発者や管理者のためのハウツー記事やチュートリアル、ダウンロード、ディスカッション・フォーラムなどのリソースが豊富に用意されています。
  • developerWorks の Open source ゾーンには、オープンソース・ツールの情報やオープンソース技術の使い方に関する情報が豊富に用意されています。
  • さまざまな IBM 製品や IT 業界のトピックに焦点を絞った developerWorks の Technical events and webcasts で最新情報を入手してください。
  • 無料の developerWorks Live! briefing に参加して、IBM の製品およびツールについての情報や IT 業界の動向についての情報を迅速に把握してください。
  • developerWorks On demand demos をご覧ください。初心者のための製品インストール方法やセットアップのデモから、上級開発者のための高度な機能に至るまで、多様な話題が解説されています。
  • Twitter で Tim をフォローしてください。また、Twitter で developerWorks をフォローするか、developerWorks で Linux に関するツイートのフィードを購読してください。

製品や技術を入手するために

  • 皆さんに最適な方法で IBM 製品を評価してください。製品の試用版をダウンロードする方法、オンラインで製品を試す方法、クラウド環境で製品を使う方法、あるいは SOA Sandbox で数時間を費やし、サービス指向アーキテクチャーの効率的な実装方法を学ぶ方法などがあります。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux, Open source
ArticleID=808867
ArticleTitle=オペレーティング・システムでもあり、汎用プラットフォームでもある Linux についての考察
publish-date=04122012