写在前面:
- 本系列笔记主要以《计算机操作系统(汤小丹…)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
- 视频链接:操作系统(汤小丹等第四版)_哔哩哔哩_bilibili
一、何为操作系统
操作系统(Operating System,OS)控制和管理整个计算机系统的硬件和软件资源,它合理地组织调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境,它是配置在计算机硬件上的第一层软件,也就是计算机中最基本的系统软件。
OS是现代计算机系统中最基本和最重要的系统软件,而其它的诸如编译程序、数据库管理系统等系统软件,以及大量的应用软件都直接依赖于操作系统的支持,取得它所提供的服务。
OS不直接解决最终具体应用问题,它完成所有“硬件相关、应用无关”的工作。
二、操作系统的目标
1、方便性
一个未配置OS的计算机系统是极难使用的,用户如果想直接在计算机硬件(也就是裸机,没有任何软件配置的硬件)上运行自己所编写的程序,就必须用机器语言书写程序。但如果在计算机硬件上配置了OS,系统便可以使用编译命令将用户采用高级语言书写的程序翻译成机器代码,或者直接通过OS所提供的各种命令操纵计算机系统,极大地方便了用户。
2、有效性
有效性所包含的第一层含义是提高系统资源的利用率。在早期未配置OS的计算机系统中,诸如处理机、I/O设备等都经常处于空闲状态,各种资源无法得到充分利用,所以在当时,提高系统资源利用率是推动OS发展最主要的动力。
有效性的另一层含义是,提高系统的吞吐量。OS可以通过合理地组织计算机的工作流程,加速程序的运行,缩短程序的运行周期,从而提高了系统的吞吐量。
3、可扩充性
为适应计算机硬件、体系结构以及计算机应用发展的要求,OS必须具有很好的可扩充性。可扩充性的好坏与OS的结构有着十分紧密的联系,由此推动了OS结构的不断发展:从早期的无结构发展成模块化结构,进而又发展成层次化结构,近年来OS已广泛采用了微内核结构。微内核结构能方便地增添新的功能和模块,以及对原有的功能和模块进行修改,具有良好的可扩充性。
4、开放性
世界各国相应地制定了一系列的软、硬件标准,使得不同厂家按照标准生产的软、硬件都能在本国范围内很好地相互兼容,这无疑给用户带来了极大的方便,也给产品的推广、应用铺平了道路。
所谓开放性,是指系统能遵循世界标准规范,特别是遵循开放系统互连OSI国际标准。事实上,凡遵循国际标准所开发的硬件和软件,都能彼此兼容,方便地实现互连。
三、操作系统的作用
1、OS作为用户与计算机硬件系统之间的接口
OS作为用户与计算机硬件系统之间接口的含义是:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统;或者说,用户在OS帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。
用户可通过三种方式使用计算机,即命令方式、系统调用方式和图标—窗口方式来实现与操作系统的通信,并取得它的服务。
2、OS作为计算机系统资源的管理者
在一个计算机系统中,通常都含有多种硬件和软件资源,归纳起来可将这些资源分为四类:处理机、存储器、IO 设备以及文件(数据和程序)。相应地,OS的主要功能也正是对这四类资源进行有效的管理。
处理机管理是用于分配和控制处理机;存储器管理主要负责内存的分配与回收;I/O设备管理是负责I/O设备的分配(回收)与操纵;文件管理是用于实现对文件的存取、共享和保护。
3、OS实现了对计算机资源的抽象
对于一台完全无软件的计算机系统(即裸机),由于它向用户提供的仅是硬件接口(物理接口),因此用户必须对物理接口的实现细节有充分的了解,而且只能通过机器指令操作硬件,这就致使该物理机器难以广泛使用。
为了方便用户使用I/O设备,人们在裸机上覆盖上一层I/O设备管理软件,由它来实现对I/O设备操作的细节,并向上将I/O设备抽象为一组数据结构以及一组I/O操作命令,如read和write命令,这样用户即可利用这些数据结构及操作命令来进行数据输入或输出,而无需关心I/O是如何具体实现的。此时用户所看到的机器是一台比裸机功能更强、使用更方便的机器,换言之,在裸机上铺设的I/O软件隐藏了I/O设备的具体细节,向上提供了一组抽象的I/O设备。