著者
井上 翔大 大山 恵弘
出版者
情報処理学会
雑誌
研究報告システムソフトウェアと オペレーティング・システム(OS) (ISSN:09196072)
巻号頁・発行日
vol.2010, no.4, pp.1-8, 2010-01-20
参考文献数
13
被引用文献数
2

現在,Java,C#,ML のような高い生産性での安全なプログラミングを支援する現代的なプログラミング言語が様々な目的で利用されている.しかし,OS や組み込み系ソフトウェアなどの低レベルのシステムソフトウェアの分野では,未だに C 言語が広く用いられており,低い生産性や致命的なバグの原因となっている.そこで,本研究では,現代的な関数型言語 OCaml で OS を開発し,低レベルのシステムソフトウェアの記述における関数型言語の有効性を評価する.その OS は極めて小さいが,カーネル空間とユーザ空間の分離,マルチタスク,割り込み処理,初歩的な入出力デバイス管理などのいくつかの基本 OS 機構を備えている.その OS の大部分は OCaml で記述され,残りは C 言語とアセンブリ言語で記述されている.この論文では,その OS の設計と実装について述べるとともに,開発を通じて得た,関数型言語を使用することの利害得失などに関する知見を示す.Modern programming languages such as Java, C#, and ML support secure and high productivity programming, and are currently used on various purposes. Unfortunately, in the field of low-level system software including operating systems and embedded software, the C language is still widely used and causes low productivity and critical bugs. In this work, we develop an operating system in a modern functional language OCaml, and evaluate the effectiveness of functional languages in writing low-level system software. Though the operating system is extremely small, it provides several basic operating system mechanisms including user-kernel separation, multitasking, interrupt handling, and primitive I/O device handling. Most of the operating system is described in OCaml, and the rest is described in C and assembly. This paper decribes the design and implementation of the operating system, and presents several insights we obtained through the development (e.g., pros and cons of using functional languages).
著者
井上 翔大 大山 恵弘
雑誌
研究報告システムソフトウェアと オペレーティング・システム(OS)
巻号頁・発行日
vol.2010-OS-113, no.4, pp.1-8, 2010-01-20

現在,Java,C#,ML のような高い生産性での安全なプログラミングを支援する現代的なプログラミング言語が様々な目的で利用されている.しかし,OS や組み込み系ソフトウェアなどの低レベルのシステムソフトウェアの分野では,未だに C 言語が広く用いられており,低い生産性や致命的なバグの原因となっている.そこで,本研究では,現代的な関数型言語 OCaml で OS を開発し,低レベルのシステムソフトウェアの記述における関数型言語の有効性を評価する.その OS は極めて小さいが,カーネル空間とユーザ空間の分離,マルチタスク,割り込み処理,初歩的な入出力デバイス管理などのいくつかの基本 OS 機構を備えている.その OS の大部分は OCaml で記述され,残りは C 言語とアセンブリ言語で記述されている.この論文では,その OS の設計と実装について述べるとともに,開発を通じて得た,関数型言語を使用することの利害得失などに関する知見を示す.