Linux Security Module(LSM)とは、カーネル内のセキュリティチェック機構へのフック関数群を定義するフレームワークを提供する機能(運用環境固有のセキュリティカーネルを実装するための機能)です。本機能を用いることで、カーネルのセキュリティチェック機能をユーザーが独自に拡張することが可能です。これにより、ユーザー固有のセキュリティ方針に基づいたシステムの運用を実現できます。
LSMを有効にすると、I/Oポートアクセスの許可などのセキュリティ・チェックポイントで、ユーザーが登録したLSMのコールバック関数が呼び出され、操作の正統性チェックが行われます(図7)。
LSMで定義可能なセキュリティ・チェックポイントは、150項目以上にも上ります。主な項目として、以下のような操作に対するセキュリティ機構を実装可能です。
また、LSMの標準カーネルへの統合に伴い、Linuxケイパビリティ関連のコードがLSM内に統合されました。
カーネル2.6で注目を集めている機能の1つが、User Mode Linux(UML)の統合です(編注)。
編注:UMLの利用方法については、仮想OS「User Mode Linux」活用法を参照。
UMLとは、Linux上のユーザープロセスの1つとして実行するLinuxカーネルです。これを用いると、1つの装置上で複数のLinuxカーネルを動作させることができます(図8)。UMLは、実機上で直接動作しているLinuxカーネル(これをホストと呼ぶ)上のアプリケーションとして動作します。
UMLでは、ptraceシステムコールを巧みに使用することで、システムコールなどカーネルの各機能をユーザー空間上で実現します。具体的には、次のようなことを行っています。
ファイルや各種デバイスへのアクセスは、UML上の仮想化機構を通して行います。UMLには、主に以下のような仮想化機構が搭載されています。
カーネル2.6では、カーネルのコンフィグレーション言語が従来のCML1(Configuration Menu Language 1)から、Kconfigに変更されます。Kconfigは、CML1とは別に新たに書き起こされたコンフィグレーション言語です。
Kconfigの主な特徴は、次のとおりです。
make config
make menuconfig
make xconfig
カーネル2.6では、大規模ファイルシステムサポートやカーネルレベルプリエンプションなど、商用UNIXが持つべき機能が多く含まれるようになります。また、NUMAアーキテクチャへの対応も強化されつつあり、これまで商用OSの独壇場であったハイエンドサーバでの活用も期待されます。これらの強化により、Linuxは名実共に本格的な商用運用が可能なOSの1つとなっていくことは間違いないことでしょう。
また、商用利用時に重要となる障害追跡系機能についても、IBMやSGIなどによって活発に開発が進められています。
注:LKCD/LTT/kprobesの詳細については、以下のURLを参照ください。
LKCD:http://lkcd.sourceforge.net/
LTT:http://www.opersys.com/LTT/
kprobes:http://www-124.ibm.com/linux/projects/kprobes/
これらの機能は残念ながらカーネル2.6には取り込まれませんでしたが、パッチを適用することで利用可能です。
一方、uCLinuxの統合やPOSIX高精度タイマAPI(注)など、組み込み分野での利用において有用な機能が数多く取り入れられていることもカーネル2.6の特徴の1つです。
注:本稿では触れませんでしたが、POSIX高精度タイマAPIがカーネル2.5.63から取り入れられました。
従来、NUMA対応や障害追跡機構など、ハイエンドサーバ向け機能の不備はLinuxカーネルの弱点とされてきました。しかし、Linuxの開発に対する企業パワーの投入によって、これも少しずつ改善される方向にあります。今後、エンタープライズ/組み込みの両分野において、Linuxの活躍の場がより一層広がっていくと期待されます。
Copyright © ITmedia, Inc. All Rights Reserved.