代码拉取完成,页面将自动刷新
第一点: 代码量适中,统计大约 6000 行左右
xv6 代码统计
github.com/AlDanial/cloc v 1.90 T=0.06 s (1311.7 files/s, 159249.8 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C 46 1023 755 6455 C/C++ Header 22 145 131 842 make 1 36 33 210 Assembly 7 51 117 201 Perl 4 22 23 105 Pascal 1 24 60 50 Bourne Shell 3 7 3 23 Lisp 1 0 0 4 ------------------------------------------------------------------------------- SUM: 85 1308 1122 7890 -------------------------------------------------------------------------------
linux 0.11 代码统计
github.com/AlDanial/cloc v 1.90 T=0.09 s (1163.5 files/s, 161025.8 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C 51 782 1049 6747 C/C++ Header 33 327 260 2154 Assembly 8 165 312 1458 make 8 74 52 460 ------------------------------------------------------------------------------- SUM: 100 1348 1673 10819 -------------------------------------------------------------------------------
minix1 代码统计
github.com/AlDanial/cloc v 1.90 T=0.05 s (451.0 files/s, 133013.8 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C 12 706 1245 3083 Assembly 4 224 386 970 make 2 30 6 149 DOS Batch 2 1 0 139 C/C++ Header 4 25 27 88 ------------------------------------------------------------------------------- SUM: 24 986 1664 4429 -------------------------------------------------------------------------------
第二点:代码比较干净 clean code
第三点:代码比较现代 morden
和真实操作系统对比缺失部分
------------+==================================================
|
| vi cat echo
User Mode | | sh | ls |
| | | | | |
| +---------+-----+-----+
| |
| v
------------|=========== SYSCALL ==============================
| | ^
| | +------------+
| v |
Kernel Mode | [sys_fork/sys_exec] -> [exec/io_wait]
|
| [scheduler]
------------+==================================================
xv6 实现了如下的系统调用, 系统调用是操作系统提供给用户进程编写代码的 API
NO. | SYSCALL | Description |
---|---|---|
1 | fork() | Create a process |
2 | exit() | Terminate the current process |
3 | wait() | Wait for a child process to exit |
4 | kill(pid) | Terminate process pid |
5 | getpid() | Return the current process’s pid |
6 | sleep(n) | Sleep for n clock ticks |
7 | exec(filename, *argv) | Load a file and execute it |
8 | sbrk(n) | Grow process’s memory by n bytes |
9 | open(filename, flags) | Open a file; the flags indicate read/write |
10 | read(fd, buf, n) | Read n bytes from an open file into buf |
11 | write(fd, buf, n) | Write n bytes to an open file |
12 | close(fd) | Release open file fd |
13 | dup(fd) | Duplicate fd |
14 | pipe(p) | Create a pipe and return fd’s in p |
15 | chdir(dirname) | Change the current directory |
16 | mkdir(dirname) | Create a new directory |
17 | mknod(name, major, minor) | Create a device file |
18 | fstat(fd) | Return info about an open file |
19 | link(f1, f2) | Create another name (f2) for the file f1 |
20 | unlink(filename) | Remove a file |
0xFFFFFFFF -> |-------------| - | | ^ | | | | Free Memory | | | Kernel Space |-------------| | Text & Data | | | | 0x80100000 -> |-------------| | | BIOS | v 0x80000000 -> |-------------| - (KERNBASE) | Heap | ^ | | | | | v | | | ... | | | | |-------------| User Space | ... | | ^ | | | | | | User stack | | |-------------| | | | | | User | | | Text & Data | v 0x0 -> |-------------| -
0xFFFFFFFF -> |-------------| | Free Memory | | | |-------------| | Text & Data | 0x80100000 -> |-------------| -------+ | BIOS | | 0x80000000 -> |-------------| ----+ | (KERNBASE) | Heap | | | | | | | | | v | | | | ... | | | | | | | |-------------| <- Top Physical memory |-------------| | | | | | ... | | | | | | | | | | | | ^ | | | | | | | | | | |-------------| <- 4M (0x400000) | User stack | | | | Kernel | <- end (0x1154d0) |-------------| | | | Text & Data | | | | | | | | User | | +-----> |-------------| <- 0x100000 | Text & Data | | | BIOS | 0x0 -> |-------------| +--------> |-------------| <- 0x0 VIRTUAL PHYSICAL
core 1: 2GH/ 10ms t: a b t: 1 2 3 4 ======================= sh x s x s vi s x s s cat s s s x
core 1: 1 2 3 ======================= sh x s x vi s x s cat s s s core 2: 1 2 3 ======================= sh s s s vi x s s cat s x x
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。