2014年9月3日
LEC 1: Operating systems (handouts: xv6 source, xv6 book)
準備 Preparation: Unix intro
課題 宿題:Assignment: HW: shell
課題:Assignment: Lab 1: C, Assembly, Tools, and Bootstrapping
LEC 1: Operating systems (handouts: xv6 source, xv6 book)
準備 Preparation: Unix intro
課題 宿題:Assignment: HW: shell
課題:Assignment: Lab 1: C, Assembly, Tools, and Bootstrapping
さすが MIT いきなりハードルが高い。
次に宿題で シェルプログラム the 6.828 shell sh.c の理解と機能追加。
1. コマンド実行が出来るように修正
・・・続く・・・こちらをやってると肝心の OS の説明まで辿りつけないので
先に進む事に。
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年秋 コースビデオ