Vol.24 No.2 (2009/03) コンピュータシステムの基盤ソフトウェア


私のブックマーク

コンピュータシステムの基盤ソフトウェア

工学院大学 情報通信工学科 准教授 山口実靖

1. はじめに

コンピュータシステムは現代社会の必須のインフラとなり,
性能や機能の向上に関する研究が盛んに行われている.
発展の速度が高いのはもちろんのこと,
発表されている既存の研究成果,実装の数も膨大でありこれらを調査するのには膨大な時間が必要となる.
しかし,基盤の技術であるため多くの研究,開発と関連を持ちその理解が要求される局面は少なくない.

本稿ではコンピュータシステムの基盤系の研究の中で
ソフトウェア部の研究の情報が入手できるURLを中心に,
コンピュータシステム系の情報源となるURLを紹介していく.

2. オペーレーティングシステム

最初に,計算機の基盤ソフトウェアである OS に関するページ群を紹介する.
最先端のOS研究の会議として有名なのは ACM SIGOPS の SOSP (Symposium on Operating Systems Principles) と,USENIX の OSDI (Operating Systems Design and Implementation) である.
両会議とも隔年で開催され,SOSP が奇数年開催,OSDI が偶数年開催と交互に開催されている.
また,OSDI に限らず USENIX のサイト全体が OS 系の研究にとって重要なサイトとなっている.
URLは以下の通りである.

また,LinuxなどのオープンソースOS実装を用いてOSに関する研究を行う事例も多いが,
これらのソースコードは量が膨大でかつ,その一つ一つが容易には理解できない.
よって,既存の実装の理解のみで膨大な時間が消費されることも少なくない.
以下にLinuxの実装(ソースコード)の理解に役に立つサイトを紹介する.

Linux カーネルソースコード(バニラカーネル)の入手先

カーネルソースコード理解の助けとなるページ

近年大きな注目を集めているテーマに仮想化がある.
仮想化に関しても多くの実装,研究成果が存在するが,以下に有名な実装の情報源を紹介する.

3. ストレージ,ファイルシステム

次にコンピュータシステムの代表的な構成要素の1個であるストレージの研究のページを紹介する.
ストレージに関する会議としては USENIX の FAST (File and Storage Technologies) と IEEE, NASA Cooperative MSST (Mass Storage Systems and Technologies) がある.

ネットワークストレージ関連の情報源としては,SNIA (Storage Networking Industry Association)というストレージの業界団体のWebサイトやその日本支部のWebサイトがある.

その他,ストレージ関連の最新情報が得られるサイトとして以下のサイトがある.

  • StorageMojo
    http://storagemojo.com/
    (個人サイト.2009年1月現在,頻繁に更新がされている)
  • Data Storage EXPO
    http://www.dse-expo.jp/ (情報サイトでは無いが,ビジネス情報が入手できる催しのサイト)

ファイルシステムに関しても膨大な数の研究成果,実装が発表されている.
各ファイルシステムの情報が入手可能なページのURLを以下に記す.
数があまりに多いため一部の紹介のみとなるが,網羅的な情報を収集したいときは「ファイルシステム実装の横断的情報が入手可能なサイト」が参考になると考えられる.

「ファイルシステム実装の横断的情報が入手可能なサイト」としては以下のサイトがある.

近年は(広域)分散ファイルシステム,ストレージが注目を集めている.
これに関するページへのリンクを以下に記す.

4. ネットワーク, TCP/IP

代表的名なコンピュータネットワークは「インターネットで使用されている TCP/IP over Ethernet」であるが,
これに関しても多くの研究成果が発表されている.
特にTCPの輻輳制御に関する研究成果の数は近年急激に伸びており,それらの把握,それらとの比較は容易でない状況となっている.
TCP輻輳制御に関する研究成果のリンクを下に示す.

数が非常に多いが,New Reno,Vegas,BIC/CUBIC,Compound TCPなどに関する学習が特に重要であると考えられる.
TCP輻輳制御手法は主に Loss-based 手法,Dealy-based 手法と,両者を組み合わせた Hybrid 型 に分けられるが,
New Renoは古典的な Loss-based である TCP の振る舞いの学習のために,
Vegas は 古典的な Delay-based TCP の学習のために,
BIC/CUBIC は近年評価されている(Linuxでは標準として採用されている) TCP の学習のために,
Compound TCP は Windows Vista に採用されている TCP の学習のために重要であると考えられる.

これら TCP 輻輳制御手法の比較として有益なページを以下に示す.

また,以下の日本語個人サイトがTCPの入門に役立つと思われる.

TCPの性能について考察する場合 Sack,RED,ENC,Global Synchronizationなどの技術,現象があり
その理解が必要となるが,
これらの学習に有益と思われるページを以下に示す.

TCP以外のトランスポート層プロトコルとして以下の研究がある.

また,コンピュータシステムの話題とは多少ずれるが,通信,ネットワークに関する国際会議としては以下の会議が有名である.

5. 解析,シミュレーションツール

コンピュータシステムの研究を行うにあたり役に立つツールとページを紹介する.

まず,実機を用いて実験を行う際にネットワークのエミュレータとして Dummynet が役に立つ.

FreeBSD Dummynet

TCP/IP パケット(Ethernetフレーム)のダンプと解析の有益なソフト

計算機上のシミュレーションにより研究を行う場合は,下記の ns2 が有名である.

6. おわりに

我が国が世界1,2の高い科学技術力を誇る技術立国であることに疑いの余地はないと考える.
しかし,情報技術のみに注目した場合欧米の先進国に伍する活躍をしているとは考えにくい.
特にOSなどの基礎技術,基盤技術では大きく後れを取ってしまっている様に思える.

本稿では,コンピュータシステム基盤ソフトウェアの研究や開発に必要,有用となるページやサイトを中心に紹介してきた.
本分野には非常に多くの既存の研究が存在しそれらの調査には多くの時間と労力を要するが,
本稿が我が国に多数いる優秀な研究者達の活躍の助けとなれば幸いである.

付録

付録として著者の専門である iSCSI ストレージに関する研究を行う際に有用となる情報群を紹介しておく.
まず,動作を理解するには,iSCSI,SCSI のプロトコルの仕様の理解が必要となる.
以下に情報源を記す.

また,実環境における検証を行う際に役立つ無料かつオープンソースの iSCSI 実装を紹介する.