IT業界、40年やってます (老人の独り言) 

現在68歳、IT関連で勉強したい事が盛りだくさんで、目移り状態です(^o^)

初めの一歩 Lab1 演習1

XV6 OS を使った マサチューセッツ工科大学(MIT)の OS のコース2014年秋の6.828で何をやってるか調べてみると

2014年9月3日
LEC 1: Operating systems (handouts: xv6 sourcexv6 book)
準備 PreparationUnix intro
課題 宿題:AssignmentHW: shell
課題:AssignmentLab 1: C, Assembly, Tools, and Bootstrapping

さすが MIT いきなりハードルが高い。

まず準備で Unix の紹介が歴史的な人物が直接 Unix を紹介してる。

次に宿題で シェルプログラム 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の物理アドレス空間のレイアウト
イメージ 1

◎参考
2014年秋 コースビデオ