深圳大学 计算机与软件学院 高性能所 系统技术组 SKT
2020-12-01
屏显 1-1 编译 my-app.c
1. lqm@lqm-VirtualBox:~/xv6-public-xv6-rev9$ make
2. gcc -fno-pic -static -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 -Werror -fno-omit-frame-
pointer -fno-stack-protector -c -o my-app.o my-app.c
3. ld -m elf_i386 -N -e main -Ttext 0 -o _my-app my-app.o ulib.o usys.o printf.o umalloc.o
4. objdump -S _my-app > my-app.asm
5. objdump -t _my-app | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > my-app.sym
6. ./mkfs fs.img README _cat _echo _forktest _grep _init _kill _ln _ls _mkdir _rm _sh _stressfs _usertests
_wc _zombie _my-app
7. nmeta 59 (boot, super, log blocks 30 inode blocks 26, bitmap blocks 1) blocks 941 total 1000
8. balloc: first 590 blocks have been allocated
9. balloc: write bitmap block at sector 58
10. dd if=/dev/zero of=xv6.img count=10000
11. 记录了 10000+0 的读入
12. 记录了 10000+0 的写出
13. 5120000 bytes (5.1 MB, 4.9 MiB) copied, 0.0628553 s, 81.5 MB/s
14. dd if=bootblock of=xv6.img conv=notrunc
15. 记录了 1+0 的读入
16. 记录了 1+0 的写出
17. 512 bytes copied, 0.000215976 s, 2.4 MB/s
18. dd if=kernel of=xv6.img seek=1 conv=notrunc
19. 记录了 333+1 的读入
20. 记录了 333+1 的写出
21. 170532 bytes (171 kB, 167 KiB) copied, 0.000703954 s, 242 MB/s
22. lqm@lqm-VirtualBox:~/xv6-public-xv6-rev9$ ll _my-app
23. -rwxrwxr-x 1 lqm lqm 12268 3 月 7 19:42 _my-app*
24. lqm@lqm-VirtualBox:~/xv6-public-xv6-rev9$
启动 xv6 系统后,执行 my-app 程序,正确地输出了我们期待的“This is my own app!”
字符串,如图 1-2 所示。
图 1-2 在 xv6 中运行新增的 my-app 程序
1.2. 新增系统调用
如果我们修改了 xv6 的代码,例如增加了调度优先级,那么就需要有设置优先级的系统
调用,并且通过应用程序调用该系统调用进行优先级设置。因此我们需要学习如何增加新的
系统调用,以及如何在应用程序中进行系统调用,后面才能验证 xv6 修改的功能。
评论0
最新资源