Skip to content

6.S081操作系统笔记

· 5 min

一、操作系统简介#

1.1 操作系统的目标#

1.2 操作系统的结构#

操作系统是一个覆盖在所有的硬件资源上的软件。

整个软件中,用户的应用程序成为用户空间程序,而除此之外还有一个特殊的程序叫做Kernel。在操作系统启动时Kernel总是最先被启动,它负责管理所有用户空间程序,同时管理下层的所有硬件资源,在用户空间程序需要时将硬件资源交给用户空间程序。

Kernel中同时运行着大量的服务,例如文件系统、进程管理和内存管理。

用户空间程序要使用这些服务,需要使用Kernel提供给用户的接口,这些接口被称为系统调用(SystemCall)。要使用系统调用,硬件就会运行在内核态。用户并没有直接操作硬件的权限,只有内核可以对硬件进行操作。

操作系统控制硬件,并向上层提供使用接口,就是操作系统的结构。

1.3 Process and Memory#

Process是指进程,拥有独立的用户空间内存和软件硬件资源,kernel用PID标识每一个进程。

常用的syscall

xv6shell使用上述的四个系统调用为用户执行程序,执行一个程序时先调用fork创建一个子shell,并且wait子shell的结束,在子shell中通过exec执行程序。

在shell的实现中,可以看到写时复制的好处。创建子shell之后,其内存空间不会分配实际的物理空间,在之后exec时会将之前的内存空间全部替换,之前的数据全都是没有用的。

1.4 I/O and File description#