研究概要 |
本研究の目的は,デバイス・ドライバの開発を支援するドメイン特化言語(domain-specific language)を実現することにある.デバイス・ドライバは,OSカーネルと密接に連携して動作するプログラムであり,さまざまな暗黙の約束事を守ったプログラムを作成しなければならない.ここでいう暗黙の約束事とは,lock/unlockのようにペアとなる関数の呼び出しなどを指す.今年度は,これらの暗黙の約束事の調査を行い,それらの約束事を記述するための形式的な言語の設計を行った.具体的にはLinuxカーネルで用いられているデバイス・ドライバの調査を行い,こうした暗黙の約束ごとの抽出を行った.その結果,これらの約束事は,1)関数定義の義務,2)関数の呼び出し順序の指定,3)状況に依存した関数呼び出しの義務・禁止の3つに分類できることがわかった.この調査結果に基づき,デバイス・ドライバが守るべき約束事を記述するための一種の言語の設計を行った.この言語は,関す呼び出しの義務,関数の呼び出し順序の指定,状況に応じた関数呼び出しの義務・禁止を記述することができる.この言語の記述力を検証するため,Linux用のRAMディスクのデバイス・ドライバを対象に,そのドライバが守るべき約束事の定義を行った.800行のデバイス・ドライバに対し,約50行程度で約束事の記述ができた.今後,マウス・ドライバなどのより現実的なドライバに対して,記述力の検証を行う.また,デバイス・ドライバ記述専用の言語の設計を行い,その言語で記述したデバイス・ドライバが暗黙の約束事を守っているかどうかを検査できるようにしたい.
|