操作系统基本概念
主要目标:
与硬件部分交互,为包含在硬件平台上的所有底层可编程部件提供服务。
为运行在计算机系统上的应用程序提供执行环境。
多用户系统 (multiuser system)
能并发和独立执行分别属于两个或多个用户的若干应用程序的计算机。
并发concurrently意味着几个应用程序能同时处于活动状态并竞争各种资源,如CPU,内存,硬盘等。
独立independently意味着每个应用程序能执行自己的任务,而无需考虑其他用户的应用程序在干什么。
用户和组
所有的用户由一个唯一的数字来标识,这个数字叫用户标识符UID。为了和其他用户有选择的共享资料,每个用户是一个或多个用户组的一名成员,组由唯一的用户组标识符user group ID标识。任何类Unix操作系统都有一个特殊的用户,叫做root,即超级用户superuser。
进程 process
程序执行时的一个实例,或者一个运行程序的执行上下文。一个进程在地址空间中执行一个单独的指令序列。地址空间是允许进程引用的内存地址集合。现在操作系统允许具有多个执行流的进程,也就是说,在相同的地址空间可执行多个指令序列。
多用户系统必须实施一种执行环境,进程能并发活动,并能竞争系统资源。允许进程并发活动的系统称为多道程序系统或多处理系统。区分程序和进程是非常重要的,几个进程能并发的执行同一个程序,而同一个进程能顺序地执行几个程序。
单处理器系统中,存在调度程序 scheduler,决定哪个进程能执行。多用户系统中的进程必须是抢占式的preemptable;操作系统记录下每个进程占有的CPU时间,并周期性的激活调度程序。
内存体系结构
微内核提供最基本的服务,进程调度,进程间通信,存储管理和I/O设备管理。Linux内核提供了模块module。模块是个目标文件,其代码可以在运行时链接到内核或从内核解除链接。这种目标代码通常由一组函数组成,用来实现文件系统,驱动程序或其他内核上层功能。使用模块的主要优点:模块化方法,平台无关性,节省内存使用,无性能损失。
Unix文件系统概述
文件:以字节序列组成的信息载体
硬链接:目录中的文件名是一个硬链接。
软链接:包含有另一个文件的路径名。
Unix内核概述
进程是动态的实体,在系统内通常只有有限的生存期。创建、撤销以及同步现有进程的任务都委托给内核中的一组例程来完成。
内核本身不是一个进程,而是进程的管理者。
内核线程kernel thread,赋予特殊权限的进程。以内核态运行在内核地址空间。不与用户交互。通常在系统启动时创建,一直活动到系统关闭。
可重入内核
所有Unix内核都是可重入的,意味着内核态可以同时执行多个进程。提供可重入的一种方式是编写函数,只能修改局部变量,而不能改变全局数据结构。
进程地址空间
每个进程运行在私有的地址空间,在用户态下运行的进程涉及私有栈,数据区和代码区。在内核态下运行时,有私有的数据区和代码区,使用另外的私有栈。