Introduction and examples
Last updated
Was this helpful?
Last updated
Was this helpful?
阅读 第一章
观看这个关于 unix 的视频。
关键词:
操作系统
应用程序
进程
xv6
kernel 与 interface
system call
user space and kernel space
shell
xv6 是一个分时操作系统。一次只有一个 process 被执行。没有被执行的 process ,其 CPU 寄存器等相关信息,会被 xv6 保存,等到需要执行的时候,再复原。
fork: 会创建一个副本进程
exit: 结束执行并释放资源
wait: 等待子进程执行完毕
exec: 加载文件,并执行
以 shell 为例子,讲解了上面 4 个 system call 的用法。
xv6 中所有的进程都以 root 方式执行。
文件描述符 file descriptor 的特点:
unix 中万物都被看成是文件
每个文件都有一个数字的索引号作为代号。
每个 process 都有一个表,用于保存 open 过的文件的 fd
同一个文件在不同的 process 的表中的代码,可能不一样。
fork 后,子 process 同样会拷贝父 process 的表。
close 后,fd 被释放。能够被别的文件占用
open 时,总是挑选最小的可用 fd
read: 读取内容
write: 写入内容
file descriptor 是一个非常强大的抽象,因为它屏蔽了所有的具体细节。
管道是一对 fd,一个用于入,一个用于出。
文件系统由文件和文件夹组成。
chdir:改变当前目录
mkdir:创建目录
mknod:创建设备文件