操作系统简述

操作系统基本概念

avatar

操作系统 (operating system, 缩写 OS),是指控制和管理整个计算机系统的硬件和软件资源,合理地组织调度计算机的工作和资源的分配的集合,为用户和底层硬件之间的桥梁。对于程序员来说,操作系统是工作场地,是应用程序控制底层硬件接口的提供者。

操作系统启动

以 Linux 为例,一开始操作系统是存放在 Disk 上面的,然后再由 BIOS(基本I/O处理系统)检测我们计算机操作系统的各种外设,检测完,如果外设正常,再将一个 bootloader 小程序由 Disk 加载到内存中去,bootloader (512个字节) 负责将操作系统加载到内存,最终操作系统开始正常工作。

操作系统启动后,如何与外设和应用程序交互呢?

外设是通过中断和I/O来处理的,至于应用程序,是通过系统调用和异常来提供相应功能。中断,异常,系统调用三者就是操作系统同应用程序和底层硬件之间交互手段,三者具体定义如下:

  • 系统调用(来源于应用程序)
    应用程序主动向操作系统发出服务请求。系统调用会触发”用户态”到”内核态”的一个转换。”用户态”指的是应用程序在运行过程中, cpu 所处的一个特权级状态,权限较低,不能直接访问特殊的机器指令和 I/O ; “内核态”指的是操作系统运行过程中 cpu 所指的一个状态,权限较高,该状态下,操作系统可以执行任何一条指令,包括特权指令,访问 I/O 指令。这种机制使得系统安全性可以得到保证。系统调用付出的代价主要是执行的开销相对普通函数调用较大 (切换堆栈,用户态切换内核态)。
    Windows 应用 WIN32 API
    POSIX-based systems 应用 POSIX API(包括unix,Linux,mac os x的所有版本)
  • 异常(来源于不良的应用程序)
    非法指令或者其他坏的处理状态。(如:内存出错) 操作系统需要保存现场,然后处理异常,接着杀死异常程序或重新执行异常程序。
  • 中断(来源于外设)
    来自不同的硬件设备的计时器和网络中断 。中断向量表中保存有各个外设的中断编号和相应的中断服务例程地址,操作系统收到中断编号,查表,然后转到相应地址执行服务例程,这个时候操作系统需要保存当前处理状态,处理完中断再恢复现场。

操作系统特征

  1. 并发 (Concurrence)

    并发: 一个时间段内,多个程序在运行。
    并行:同一个时间点上,多个程序在运行,需要多核cpu来完成。
    操作系统特征之一就是并发,同时存在多个运行程序,需要通过操作系统来进行调度。

  2. 共享 (Sharing)

    对于硬件资源,内存资源和相关外设等”同时”访问,共同使用,实际上是互斥共享。

  3. 虚拟 (Virtual)

    虚拟是指 把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的事物。用于实现虚拟的技术,称为虚拟技术。在操作系统中利用了多种虚拟技术,分别用来实现虚拟处理器、虚拟内存和虚拟外部设备。

    • 在虚拟处理器技术中,是 通过多道程序设计技术,让多道程序并发执行的方法,来分时使用一个处理器的。此时,虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个中央处理器(CPU) 在专门为它服务。利用多道程序设计技术,把一个物理上的CPU虚拟为多个逻辑上的 CPU,称为虚拟处理器。
    • 类似地,可以通过虚拟存储器技术,将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。我们把用户所感觉到的存储器(实际是不存在的)称为虚拟存储器。
    • 还可以通过虚拟设备技术,将一台物理 I/O 设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的 I/O 设备,这样便可以 使原来仅允许在一段时间内由一个用户访问的设备(即临界资源),变为在一段时间内允许多个用户同时访问的共享设备
      因此,操作系统的虚拟技术可归纳为:时分复用技术,如处理器的分时共享;空分复用技术,如虚拟存储器
  4. 异步 (Asynchronism)

    程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知,但只要运行环境相同,操作系统需要保证程序运行结果也相同。
    异步使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误 (就像对全局变量的访问顺序不当会导致程序出错一样)。

Linux 系统组成

avatar

上图是 Linux 操作系统内核组成图,从中我们可以看到,操作系统主要功能为以下四个,那么后面文章中会一一深入介绍!

  • 进程管理(Processing management)
  • 内存管理(Memory management)
  • 文件系统(File system)
  • 网络通信(Networking)

参考链接

https://www.bilibili.com/video/av6538245/?p=2
https://blog.csdn.net/bigpudding24/article/details/48603301