Notes

Do not read codes but patch binary.

Entries from 2018-08-01 to 1 month

xv6 code reading (5.paging)

xv6

How CPU works for memory access When CPU is ordered to access a value on virtual address, it needs to address a specific page. Accessing same virtual address on two different processes must address mutually distinct physical pages. Given a…

xv6 code reading (4.file system編)

xv6

前回VFS(仮想ファイルシステム)について主に書いたので、今回はFileSystem. xv6はfsとvfsの差が明確に分かれていないが、fsの役割を担っているのは、mkfs.c/bio.c/log.c/fs.c(一部)のあたりか。先ず、FileSystemの構築だが、先ず、defaultで動かせるコマンド…

xv6 code reading(3.vfs編)

xv6

xv6 のsystemcallは次の21種類(因みに、linux2.6で190近くある). // process start extern int sys_exec(void); // operation towards a file(s) extern int sys_chdir(void); extern int sys_close(void); extern int sys_dup(void); extern int sys_fstat(…

xv6 code reading(2.exec編)

xv6

前回shellでexecが実行される部分までみたので次はexecの中(https://github.com/mit-pdos/xv6-public/blob/master/exec.c). 普通はforkを先に説明するべきなのかもしれないけど、後に回す。 前提としてexec自体はsystem callでそのざっくりとした処理の流れ…

xv6 code reading(1.shell編)

xv6

今回(初回)はshellについて。普通はbootloaderから見て行くのかもしれないけど身近なものから。 恐らく、shellについて理解する最短で最良の方法が,こいつhttps://github.com/mit-pdos/xv6-public/blob/master/sh.cをじっくり読むこと。 ざっとみて、新しく…