◎ハーバード大学の OS/161
教科書はこちらです。
MIPS CPU を仮想環境(System/161)下で動かして、その上で OS/161 を動作させる方法を取ってます。
既に日本の早稲田の学生が卒論で ARM 上で OS/161 を動かす事を研究してました。とても貴重な試料です。
こちらの大学で使われている教科書は
でコースで作った教材 OS は Weenixで以下からソースコードをゲット出来ます。
athena% mkdir ~/6.828
athena% cd ~/6.828
athena% git clone https://pdos.csail.mit.edu/6.828/2014/jos.git labCloning into lab...
athena% cd lab
Part 1: PC Bootstrap
Part 2: The Boot Loader
Part 3: The Kernel
といきなり、重いものを無理やり口に入れられた感じになります。最初から、大量の参考資料を提示されます。インテル x86 の命令語の勉強が必要ですが、すぐに読む必要は無いことなので、後で・・・
QEMU エミュレータでOSを動かし、GDB で動きをみます。
athena% cd lab
athena% make
+ as kern/entry.S
+ cc kern/init.c
+ cc kern/console.c
+ cc kern/monitor.c
+ cc kern/printf.c
+ cc lib/printfmt.c
+ cc lib/readline.c
+ cc lib/string.c
+ ld obj/kern/kernel
+ as boot/boot.S
+ cc -Os boot/main.c
+ ld boot/bootboot block is 414 bytes (max 510)
+ mk obj/kern/kernel.img
これで最低限のOSを構築。して起動
athena% make qemuBooting from Hard Disk...6828 decimal is XXX octal!entering test_backtrace 5entering test_backtrace 4entering test_backtrace 3entering test_backtrace 2entering test_backtrace 1entering test_backtrace 0leaving test_backtrace 0leaving test_backtrace 1leaving test_backtrace 2leaving test_backtrace 3leaving test_backtrace 4leaving test_backtrace 5Welcome to the JOS kernel monitor!Type 'help' for a list of commands.K>
PCの物理アドレス空間のレイアウト
◎参考
2014年秋 コースビデオ