@为什么要有操作系统?
- 计算机硬件能够直接识别的语言是机器语言,是由1和0所组成的,其底层是电路的闭合与断开;
- 计算机硬件在出厂时,将硬件提供的功能封装为相对易读的指令集,指令集与硬件是唯一适配的,没有通用性,这极大地制约了计算机的易用性和普及程度;
- 在此背景下,操作系统定义了硬件功能的标准接口,硬件厂商通过自家的驱动程序,对这些标准接口进行具体实现;
- 程序员在为计算机硬件开发应用程序时,无需考虑具体硬件对标准接口的实现细节,而只需要通过统一标准的接口去调用硬件的功能,就能为不同硬件开发相同的应用程序了;
- 只要硬件搭载的是相同的操作系统,就能实现一套应用程序跑在不同的硬件上;
- 因此,操作系统诞生最原始的初衷,就是为了实现“不一样的硬件,一样的代码”,这使得计算机变得易于“操作”了;
- 随着应用程序的日渐丰富和复杂,位于应用和硬件中间层的操作系统,还承担着系统管理、资源调度、应用程序调度等诸多职责;
@系统管理
- 管理文件系统,实现共享、实现安全;
- 管理外部设备,例如电源、磁盘、网络等等;
- 管理用户和权限,使得多个用户可以安全地使用同一台设备,这对服务器尤其重要;
@资源调度
- 由于CPU、内存、外设、磁盘等资源,都是为众多应用程序所共享的,因此操作系统承担着资源调度之责,即:
- CPU执行时间片调度;
- 内存空间调度&#x