 |
 |
 |
 |
 |
 |
Linux スラブ・アロケーターの徹底調査 オペレーティング・システムのパフォーマンスの良し悪しは、オペレーティング・システムがどれだけ効率的にリソースを管理できるかによってある程度決まります。かつてはヒープ・メモリー・マネージャーがメモリー管理の標準でしたが、フラグメント化、それにメモリーを再利用しなければならないということがパフォーマンスの弱点になっていました。現在 Linux カーネルで使用されているのは、メモリーをサイズに応じたオブジェクトとして割り当てるという方法です。元々この方法が生まれたのは Solaris でしたが、だいぶ前から組み込みシステムで使用されています。この記事ではそんなスラブ・アロケーターの背後にある概念を探り、スラブ・アロケーターのインターフェースとその使用方法を検討します。 |
|
|
|
2007/05/15 |
|
| |
Linux カーネルの徹底調査 Linux カーネルは大規模で複雑なオペレーティング・システムのコアですが、その大きさのわりには、サブシステムおよび層構造に関してよく整理されています。この記事では Linux カーネルの一般的な構造を調べ、主要なサブシステムとコア・インターフェースを説明します。該当する箇所では、さらに詳しく掘り下げられるように、他の IBM の記事へのリンクも記載しています。 |
|
|
|
2007/06/06 |
|
| |
Linux ネットワーク・スタックの徹底調査 Linux オペレーティング・システムでとりわけ優れた特徴の 1 つとなっているのは、そのネットワーク・スタックです。当初、BSD スタックの派生的なものだったネットワーク・スタックは、今では明確な一連のインターフェースで整然と編成されています。インターフェースには、共通ソケット層インターフェースやデバイス層といったプロトコルに依存しないインターフェースから、それぞれのネットワーク・プロトコルに固有のインターフェースまであります。この記事では、層という観点から Linux ネットワーク・スタックの構造を説明するとともに、そこに含まれる主要な構造をいくつか取り上げます。 |
|
|
|
2007/06/27 |
|
| |
Linux ファイルシステムの徹底調査 ファイルシステムという点では、Linux はまさにスイス・アーミー・ナイフのようなオペレーティング・システムです。Linux がサポートするファイルシステムは、ジャーナリング・ファイルシステムからクラスター・ファイルシステム、さらには暗号化ファイルシステムに至るまで多数に及びます。そんな Linux は、標準ファイルシステムと非標準型ファイルシステムのどちらを使用するのにも素晴らしいプラットフォームであるだけでなく、ファイルシステムの開発プラットフォームとしてもうってつけです。この記事では、仮想ファイルシステム・スイッチとしても知られる Linux カーネルの仮想ファイルシステム (VFS: Virtual File System) の詳細を掘り下げ、複数のファイルシステムを 1 つに束ねる主要な構造体をいくつか紹介します。 |
|
|
|
2007/10/30 |
|
| |
Linux での同期方式の徹底調査 読者のみなさんは Linux の教育を受けるなかで並行性やクリティカル・セクション、そしてロックについて学んだことと思いますが、これらの概念をカーネル内でどのように使っていますか? この記事ではアトミック演算子、スピンロック、リーダー/ライター・ロック、カーネルのセマフォーを含め、2.6 カーネルで使用できる数々のロック機構について概要を説明します。さらに、安全かつ効率的なカーネルのコードを作成する上で、どこにそれぞれの機構を適用するのが最もふさわしいかを探ります。 |
|
|
|
2007/10/31 |
|
| |
Linux SCSI サブシステムの徹底調査 SCSI (Small Computer Systems Interface) は多数のデバイス (主にストレージ関連のデバイス) と通信するためのインターフェースおよびプロトコルを定義する標準の集合で、Linux では SCSI サブシステムを提供し、これらのデバイスとの通信を可能にしています。Linux はディスク、CD-ROM ドライバーなどの上位レベルのドライバーを、Fibre Channel や SAS (Serial Attached SCSI) などの物理インターフェースに結び付ける階層化アーキテクチャーの格好の例です。この記事では、Linux の SCSI サブシステムを紹介し、このサブシステムの将来について検討します。 |
|
|
|
2007/11/14 |
|
| |
リアルタイム Linux アーキテクチャーの徹底調査 Linux は遅いわけでも効率性に欠けるわけでもありませんが、速いだけでは十分でない場合もあります。速さの代わりに必要となるのは、特定の許容範囲内で所定のスケジュールを確実にこなす能力です。この記事を読んで、仮想化ソリューションによく似た初期のアーキテクチャーから標準 2.6 カーネルに現在用意されているオプションに至るまで、多様なリアルタイム Linux の手法とそれぞれがリアルタイムを実現する仕組みを理解してください。 |
|
|
|
2008/04/15 |
|
| |
Linux フラッシュ・ファイルシステムの徹底調査 読者のみなさんは、JFFS (Journaling Flash File System) や YAFFS (Yet Another Flash File System) という言葉は耳にしたことがあると思いますが、ファイルシステムの基礎をフラッシュ・デバイスに置くということが何を意味するのかおわかりでしょうか?この記事では、Linux 向けフラッシュ・ファイルシステムの概要を説明し、基礎となる消耗デバイス (フラッシュ・メモリー) の管理をウェア・レベリングによって行う方法、そして利用できる各種のフラッシュ・ファイルシステムをその基本的設計と併せて紹介します。 |
|
|
|
2008/05/20 |
|
| |
Linux ジャーナリング・ファイルシステムの徹底調査 最近まで、ジャーナリング・ファイルシステムは特異なものであり、主にファイルシステムに関する研究という側面から考えられていました。しかし今では、そのジャーナリング・ファイルシステム (ext3) が Linux のデフォルトとなっています。この記事では、ジャーナリング・ファイルシステムの背後にある概念、そしてこのファイルシステムが電源断やシステムのクラッシュにもかかわらず整合性を維持する方法を説明します。現在使用されているさまざまなジャーナリング・ファイルシステムについて学ぶとともに、次世代のジャーナリング・ファイルシステムを覗いてみてください。 |
|
|
|
2008/06/04 |
|
| |
Linux ローダブル・カーネル・モジュールの徹底調査 バージョン 1.2 のカーネルで導入された Linux ローダブル・カーネル・モジュールは、Linux カーネルで最も重要な革新技術の 1 つで、カーネルはローダブル・カーネル・モジュールによって拡張可能かつ動的になります。この記事を読んで、このローダブル・カーネル・モジュールの背後にある概念を知り、この独立したオブジェクトを動的に Linux カーネルに組み込む方法を学んでください。 |
|
|
|
2008/07/16 |
|
| |
Linux 動的ライブラリーの徹底調査 動的にリンクされる共有ライブラリーは、GNU/Linux の重要な側面です。なぜなら、実行可能プログラムが実行時にこれらのライブラリーを使って動的に外部機能にアクセスすることによって、メモリーの全体的なフットプリントを縮小できるからです (つまり、必要に応じて機能を取り込むという手段です)。この記事では、動的ライブラリーの作成および使用プロセスを調査し、動的ライブラリーを利用する各種ツールの詳細を説明するとともに、これらのライブラリーが内部ではどのように機能しているのかを探ります。 |
|
|
|
2008/08/20 |
|
| |
Linux プロセス管理の徹底調査 Linux でのユーザー空間プロセスの作成と管理には、UNIX と共通する原則が数多くありますが、それと同時に、Linux ならではの独特な最適化もいくつかあります。この記事では、Linux プロセスのライフサイクルに焦点を当て、ユーザー・プロセスの作成、メモリー管理、スケジューリング、そしてユーザー・プロセスの消滅といったカーネル内部での動作について詳しく説明します。 |
|
|
|
2008/12/20 |
|
| |
ext4 の徹底調査 第 4 世代拡張ファイルシステム、ext4 は、その前世代のファイルシステム ext3 との後方互換性を有する次世代のジャーナリング・ファイルシステムです。現時点ではまだ標準になっていませんが、ほとんどの Linux ディストリビューションでは、ext4 が次のデフォルト・ファイルシステムとなる予定です。この記事で ext4 について学び、なぜこれがユーザーお気に入りの新たなファイルシステムになるのかを理解してください。 |
|
|
|
2009/02/17 |
|
| |
Linux ハイパーバイザーの徹底調査 最近 Linux に対して行われた革新のなかで最も重要なものの 1 つとして挙げられるのは、Linux がハイパーバイザー (他のオペレーティング・システムのためのオペレーティング・システム) へ変身したことです。この革新により、Linux をコアに使用した多くのハイパーバイザー・ソリューションが登場しています。この記事では、ハイパーバイザーの背後にある概念と、Linux をプラットフォームとして使用する具体的なハイパーバイザーとして KVM と Lguest の 2 つを探ります。 |
|
|
|
2009/05/31 |
|
| |
Linux 仮想ファイルシステム・スイッチの徹底調査 Linux が持つ柔軟性と拡張性は、まさに柔軟性と拡張性の定義そのものです。仮想ファイルシステム・スイッチ (VFS) を例に取っても、従来のディスクから USB フラッシュ・ドライブ、そしてメモリーやその他のストレージ・デバイスに至るまで、多種多様なデバイスでファイルシステムを作成することができます。さらに、ファイルシステムを別のファイルシステムのコンテキストに組み込むことさえ可能です。この記事を読んで、何が VFS をそれほど強力にしているのかを知り、その主要なインターフェースとプロセスについて学びましょう。 |
|
|
|
2009/08/31 |
|
| |