Linux的操作系统原理详解
///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿///
1.操作系统基本概念
操作系统是一个基本程序的集合,在这个集合中,最重要的程序称为内核(Kernel)。当操作系统启动时,内核被装载到 RAM中。内核为操作系统提供了主要功能,一般把“内核”作为“操作系统”的同义词。
操作系统有两个目标:
.与硬件交互:为硬件平台上的低层可编程部件提供服务
.为用户程序提供执行环境
当用户程序想要使用硬件资源时,需要向操作系统发送请求;内核对这个请求进行评估,如果允许使用该硬件资源,则由内核代表与相关硬件进行交互。为了实现这种机制,操作系统依靠特殊的硬件机制来禁止用户程序直接与硬件交互;CPU至少引入了两种执行模式:用户程序的非特权模式 &内核的特权模式;在 Unix中分别称为用户态(User Model)& 内核态(Kernel Model)。
1.1多用户系统
多用户系统(Multiuser System)是指能够并发且独立地执行分别属于多个用户的应用程序的系统。
并发是多个应用程序能同时处于活动状态并且竞争各种资源,如 CPU,内存,硬盘等。独立是指每个应用程序能够执行自己的任务而不需要考虑其他应用程序的行为。
多用户系统需要具备以下特点:
·用户身份认证机制
·应用程序运行的保护机制:防止不同用户程序之间的干扰
·分配给每个用户的资源的记账机制
上述安全机制的实现与 CPU特权模式相关;Unix是多用户系统
1.2用户与组
在多用户系统中,每个用户在机器上都有私用空间,比如磁盘空间。
操作系统需要保证用户空间的私有部分仅仅对其拥有者是可见的
每个用户在操作系统中都有一个唯一标识,叫做用户标识符(User ID);同时,为了与其他用户有选择地共享资料,每个用户可以是一个或者多个用户组的成员,组由用户组标识符唯一标识(User Group ID)。
每个文件也与一个用户组对应:比如同组用户可以读,其他用户不可读
Unix系统中存在一个 root用户,操作系统不对其进行进行任何限制,root能够访问系统中的任何一个文件,干涉任意一个用户程序。
1.3进程
进程(Process)是操作系统对正在运行程序的一个抽象。一个进程可以看作“程序执行的一个实例”或者“一个运行程序的执行上下文”。
每个进程都有一个地址空间(Address Space):允许进程引用的内存地址集合。
在多用户系统中,多个进程能够并发执行,并且能够竞争系统资源;这种允许进程并发活动的系统被称为多道程序系统或者多处理系统。
进程与程序之间的关系:几个进程能够并发地执行同一个程序,而一个进程能够顺序执行多个程序
在单处理器系统上,在某一个时刻只能有一个进程占