From e9f65060bbb6a11b25ac0337e63c673c59ab7797 Mon Sep 17 00:00:00 2001 From: Yu Chen Date: Mon, 18 Jul 2022 00:05:38 +0800 Subject: [PATCH] add rcore tutorial v3 syscall list --- source/chapter0/2os-interface.rst | 40 +++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/source/chapter0/2os-interface.rst b/source/chapter0/2os-interface.rst index 382b753a..f3443a0b 100644 --- a/source/chapter0/2os-interface.rst +++ b/source/chapter0/2os-interface.rst @@ -55,8 +55,44 @@ :align: center :name: run-app -有了这些系统调用接口,简单的应用程序就不用考虑底层硬件细节,可以在操作系统的服务支持和管理下简洁地完成其应用功能了。在现阶段,也许大家对进程、文件、地址空间等抽象概念还不了解,在接下来的章节会对这些概念有进一步的介绍。值得注意的是,我们设计的最终操作系统可以只用二十几个系统调用功能接口,就可以支持应用需要的上述功能。而且这些调用与最初的 UNIX 的系统调用接口类似,几乎没有变化。尽管UNIX 的系统调用最早是在 1970 年左右设计和实现的,但这些调用中的大多数仍然在今天的系统中广泛使用。 - +有了这些系统调用接口,简单的应用程序就不用考虑底层硬件细节,可以在操作系统的服务支持和管理下简洁地完成其应用功能了。在现阶段,也许大家对进程、文件、地址空间等抽象概念还不了解,在接下来的章节会对这些概念有进一步的介绍。值得注意的是,我们设计的各种操作系统总共只用到三十个左右系统调用功能接口(如下表所示),就可以支持应用需要的上述功能。而且这些调用与最初的 UNIX 的系统调用接口类似,几乎没有变化。尽管UNIX 的系统调用最早是在 1970 年左右设计和实现的,但这些调用中的大多数仍然在今天的系统中广泛使用。 + +.. chyyuu 在线组织表格 https://tableconvert.com/restructuredtext-generator 再用 format current (ctrl-alt-T C)格式化 + +==== ================ ======== ============================== +编号 系统调用 所在章节 功能描述 +==== ================ ======== ============================== +1 exit 2 结束执行 +2 write 2/6 (2)输出字符串/(6)写文件 +3 yield 3 暂时放弃执行 +4 get_time 3 获取当前时间 +5 getpid 5 获取进程id +6 fork 5 创建子进程 +7 exec 5 执行新程序 +8 waitpid 5 等待子进程结束 +9 read 5/6 (5)读取字符串/(6)读文件 +10 open 6 打开/创建文件 +11 close 6 关闭文件 +12 dup 7 复制文件描述符 +13 pipe 7 创建管道 +14 kill 7 发送信号给某进程 +15 sigaction 7 设立信号处理例程 +16 sigprocmask 7 设置要阻止的信号 +17 sigreturn 7 从信号处理例程返回 +18 sleep 8 进程休眠一段时间 +19 thread_create 8 创建线程 +20 gettid 8 获取线程id +21 waittid 8 等待线程结束 +22 mutex_create 8 创建锁 +23 mutex_lock 8 获取锁 +24 mutex_unlock 8 释放锁 +25 semaphore_create 8 创建信号量 +26 semaphore_up 8 减少信号量的计数 +27 semaphore_down 8 增加信号量的计数 +28 condvar_create 8 创建条件变量 +29 condvar_signal 8 唤醒阻塞在条件变量上的线程 +30 condvar_wait 8 阻塞与此条件变量关联的当前线程 +==== ================ ======== ============================== .. chyyuu 可以有两个例子,体现API和ABI