系统调用 - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki

Table of Contents

系统调用入口

系统调用表

编号 系统调用 内核对应函数
0 indir nullsys
1 exit rexit
2 fork fork
3 read read
4 write write
5 open open
6 close close
7 wait wait
8 creat creat
9 link link
10 ulink unlink
11 exec exec
12 chdir chdir
13 time gtime
14 mknod mknod
15 chmod chmod
16 chown chown
17 break sbreak
18 stat stat
19 seek seek
20 getpid getpid
21 mount smount
22 unmount sumount
23 setuid setuid
24 getuid getuid
25 stime stime
26 ptrace ptrace
28 fstat fstat
30 smdate(已经禁用) smdate
31 stty stty
32 gtty gtty
34 nice nice
35 sleep sslep
36 sync sync
37 kill kill
38 switch getswit
41 dup dup
42 pipe pipe
43 times times
44 prof profil
45 tui nosys
46 setgid setgid
47 getgid getgid
48 sig ssig

直接/间接系统调用

直接系统调用 和 间接系统调用 在编译结构上存在一定区别,如图

系统调用的参数传递

  • 系统调用的一些参数,送入R0、R1
    R0、R1被保护入栈,由 u.u_ar0指向
  • 其余参数,送入u.u_arg[]
  • 具体的系统调用 如何进行参数传递,参看具体的系统调用说明
⚠️ **GitHub.com Fallback** ⚠️