著者
佐伯 裕治 清水 正明 白沢 智輝 中村 豪 高木 将通 Balazs Gerofi 思 敏 石川 裕 堀 敦史
出版者
一般社団法人情報処理学会
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2013, no.15, pp.1-7, 2013-04-18

メニーコアプロセッサ向けの OS として,Linux カーネルと軽量カーネルが連携して管理するヘテロジニアス構成の OS を開発している.軽量カーネル上においても Linux カーネルのシステムコールを提供するために,軽量カーネルで実現されない Linux システムコールの処理は Linux カーネルに委譲する.引数がデータ領域を示すシステムコールの場合,転送が必要なデータの構造は API 仕様に依存するため,300 種類以上の Linux 互換システムコールに個別に対応したデータ転送を実装する必要がある.本稿では,システムコール処理対象となるデータを同一仮想アドレスへのメモリマップを行う方式により,軽量カーネルに個々のシステムコール処理を実装することなく Linux カーネルに委譲する機構と,その基本評価結果について報告する.We have been developing a heterogeneous OS composed of Linux and lightweight kernels for manycore processor. In order to provide all Linux system calls in the lightweight kernel, those primitives which are not provided by the lightweight kernel are delegated to the Linux kernel. Each system call differs in the number of arguments and argument types, and thus the code transferring arguments and results is implemented in each delegating system call. It is impractical to implement all Linux APIs, i.e., more than 300 system calls. Therefore, we developed a delegation mechanism of system calls without individual implementation to pass the data between the lightweight kernel and Linux using a memory mapping technique. In this technique, a user-level virtual address space in the lightweight kernel is mapped to the same position in a Linux process. We report the result of basic evaluation of system calls on lightweight kernel developed on Intel(R) Xeon PhiTM Coprocessor.