项目组成与执行流
项目组成
lab8
├── Makefile
├── disk0
│ ├── badarg
│ ├── badsegment
│ ├── divzero
│ ├── exit
│ ├── faultread
│ ├── faultreadkernel
│ ├── forktest
│ ├── forktree
│ ├── hello
│ ├── matrix
│ ├── pgdir
│ ├── priority
│ ├── sh
│ ├── sleep
│ ├── sleepkill
│ ├── softint
│ ├── spin
│ ├── testbss
│ ├── waitkill
│ └── yield
├── giveitatry.pyq
├── kern
│ ├── debug
│ │ ├── assert.h
│ │ ├── kdebug.c
│ │ ├── kdebug.h
│ │ ├── kmonitor.c
│ │ ├── kmonitor.h
│ │ ├── panic.c
│ │ └── stab.h
│ ├── driver
│ │ ├── clock.c
│ │ ├── clock.h
│ │ ├── console.c
│ │ ├── console.h
│ │ ├── ide.c
│ │ ├── ide.h
│ │ ├── intr.c
│ │ ├── intr.h
│ │ ├── kbdreg.h
│ │ ├── picirq.c
│ │ ├── picirq.h
│ │ ├── ramdisk.c
│ │ └── ramdisk.h
│ ├── fs
│ │ ├── devs
│ │ │ ├── dev.c
│ │ │ ├── dev.h
│ │ │ ├── dev_disk0.c
│ │ │ ├── dev_stdin.c
│ │ │ └── dev_stdout.c
│ │ ├── file.c
│ │ ├── file.h
│ │ ├── fs.c
│ │ ├── fs.h
│ │ ├── iobuf.c
│ │ ├── iobuf.h
│ │ ├── sfs
│ │ │ ├── bitmap.c
│ │ │ ├── bitmap.h
│ │ │ ├── sfs.c
│ │ │ ├── sfs.h
│ │ │ ├── sfs_fs.c
│ │ │ ├── sfs_inode.c
│ │ │ ├── sfs_io.c
│ │ │ └── sfs_lock.c
│ │ ├── swap
│ │ │ ├── swapfs.c
│ │ │ └── swapfs.h
│ │ ├── sysfile.c
│ │ ├── sysfile.h
│ │ └── vfs
│ │ ├── inode.c
│ │ ├── inode.h
│ │ ├── vfs.c
│ │ ├── vfs.h
│ │ ├── vfsdev.c
│ │ ├── vfsfile.c
│ │ ├── vfslookup.c
│ │ └── vfspath.c
│ ├── init
│ │ ├── entry.S
│ │ └── init.c
│ ├── libs
│ │ ├── readline.c
│ │ ├── stdio.c
│ │ └── string.c
│ ├── mm
│ │ ├── default_pmm.c
│ │ ├── default_pmm.h
│ │ ├── kmalloc.c
│ │ ├── kmalloc.h
│ │ ├── memlayout.h
│ │ ├── mmu.h
│ │ ├── pmm.c
│ │ ├── pmm.h
│ │ ├── swap.c
│ │ ├── swap.h
│ │ ├── swap_fifo.c
│ │ ├── swap_fifo.h
│ │ ├── vmm.c
│ │ └── vmm.h
│ ├── process
│ │ ├── entry.S
│ │ ├── proc.c
│ │ ├── proc.h
│ │ └── switch.S
│ ├── schedule
│ │ ├── default_sched.h
│ │ ├── default_sched_c
│ │ ├── default_sched_stride.c
│ │ ├── sched.c
│ │ └── sched.h
│ ├── sync
│ │ ├── check_sync.c
│ │ ├── monitor.c
│ │ ├── monitor.h
│ │ ├── sem.c
│ │ ├── sem.h
│ │ ├── sync.h
│ │ ├── wait.c
│ │ └── wait.h
│ ├── syscall
│ │ ├── syscall.c
│ │ └── syscall.h
│ └── trap
│ ├── trap.c
│ ├── trap.h
│ └── trapentry.S
├── lab5.md
├── libs
│ ├── atomic.h
│ ├── defs.h
│ ├── dirent.h
│ ├── elf.h
│ ├── error.h
│ ├── hash.c
│ ├── list.h
│ ├── printfmt.c
│ ├── rand.c
│ ├── riscv.h
│ ├── sbi.h
│ ├── skew_heap.h
│ ├── stat.h
│ ├── stdarg.h
│ ├── stdio.h
│ ├── stdlib.h
│ ├── string.c
│ ├── string.h
│ └── unistd.h
├── tools
│ ├── boot.ld
│ ├── function.mk
│ ├── gdbinit
│ ├── grade.sh
│ ├── kernel.ld
│ ├── mksfs.c
│ ├── sign.c
│ ├── user.ld
│ └── vector.c
└── user
├── badarg.c
├── badsegment.c
├── divzero.c
├── exit.c
├── faultread.c
├── faultreadkernel.c
├── forktest.c
├── forktree.c
├── hello.c
├── libs
│ ├── dir.c
│ ├── dir.h
│ ├── file.c
│ ├── file.h
│ ├── initcode.S
│ ├── lock.h
│ ├── panic.c
│ ├── stdio.c
│ ├── syscall.c
│ ├── syscall.h
│ ├── ulib.c
│ ├── ulib.h
│ └── umain.c
├── matrix.c
├── pgdir.c
├── priority.c
├── sh.c
├── sleep.c
├── sleepkill.c
├── softint.c
├── spin.c
├── testbss.c
├── waitkill.c
└── yield.c
21 directories, 176 files
通过文件系统接口
user/libs/file.[ch]|dir.[ch]|syscall.c
:与文件系统操作相关的用户库实行;
kern/syscall.[ch]
:文件中包含文件系统相关的内核态系统调用接口;
kern/fs/sysfile.[ch]|file.[ch]
:通用文件系统接口和实行;
文件系统抽象层-VFS
kern/fs/vfs/*.[ch]
:虚拟文件系统接口与实现
simple FS文件系统
kern/fs/sfs/*.[ch]
:SimpleFS文件系统实现
文件系统的硬盘IO接口
kern/fs/devs/dev.[ch]|dev_disk0.c
:disk0硬盘设备提供给文件系统的I/O访问接口和实现
执行流
结合前面所述自行理解、总结。
最后更新于