CbC による OS の実装

Taiki Taira
August 10,2012

研究目的

故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。 本研究ではそれに沿った構成のOSを実装することを目的とする。 その実装には、本研究室で開発された Continution based C (CbC)を用いる。 code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
Cerium の Task Manager をのせる。 shared library を減らす。

設計

Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。

今週の作業 [~ 2012/08/14]

GDT 1/3

Global Descripter Table --- すべてのプログラムから共通にアクセスするセグメントを定義する

GDT 2/3

GDT 3/3

gdt:
.word   gdt_end - gdt
.long   gdt
.word   0
.quad   0x0000000000000000  /* NULL descriptor */
.quad   0x00af9a000000ffff  /* __KERNEL_CS */
.quad   0x00cf92000000ffff  /* __KERNEL_DS */ 
.quad   0x0080890000000000  /* TS descriptor */
.quad   0x0000000000000000  /* TS continued */ 
gdt_end:
      

ブート前に CS DS まとめて設定。
上記のコードと、新しくGDT を作成するコードを入れてみると、前回表示されたhelloworld は表示された。

……なんていうデバッグは辞めたいので。

debug

gdb だとデバッグするためにはカーネル側からシリアルポートに出力するなにかが必要?
じゃあシリアルポートに出力方法を考えてみるか、GRUB2 になにか機能がないのかアプローチ

今後やること

END