初识操作系统

67 阅读4分钟

1.前言

我们知道,Linux是一款开源操作系统,而在系统学习Linux之前,我们得先了解下操作系统的基本概念,以便我们后续学习有关Linxu的知识。

2.什么是操作系统

操作系统(Operating System),介于硬件资源和应用程序之前的一个系统软件,按照我们平时的使用体验,我们可以把操作系统理解成一个掌控计算机的软件。

为什么一定需要操作系统呢?这里简单讲解下:对于我们自己的pc机,只靠我们能做到什么呢?你会发现,只靠自己,我们对pc机的操作是很有限的,因此,我们需要一个软件,帮我们维护硬件资源和应用程序,方便我们的使用。

3.操作系统的功能

笼统地说,操作系统位于硬件资源之上,管理硬件资源,应用程序之下,为应用程序提供服务,同时管理应用程序。具体点,可以分为以下几点:

1)资源分配和资源回收

计算机必要的资源无非就几个——CPU、内存、硬盘、I/O设备。而这些资源总是有限的,因此我们需要操作系统有效管理这些资源,资源管理最终只有两个问题——资源分配和资源回收。

2)为应用程序提供服务

操作系统将硬件资源的操作封装起来,提供相对同一的接口,即系统接口给开发者使用。

如果没有操作系统,那么应用程序就要直接面对硬件资源,对于开发者来说,上手的过程就会变得非常困难,更重要的是,无法好好保护硬件,一旦发生错误操作,那么很容易伤害硬件。

3)管理应用程序

在操作系统中,每一个应用程序都是一个进程,而管理应用程序就是控制进程的生命周期,进程开始的环境配置和资源分配,进程结束时的资源回收、进程调度等等。

4.操作系统内核的功能

通过以上的讲解,我们可以简单讲解下一个操作系统内核它需要拥有什么功能。

  • 进程调度能力:管理进程、线程,决定哪个线程进程使用CPU。

  • 内存管理能力:内存的分配、调度和回收。、

  • 硬件通信能力:管理硬件,为硬件和进程(应用程序)之间提供通信。

  • 系统调用能力:应用程序想要进行更高的权限,必须要经过系统,调用用户程序和操作系统之间的接口。

5.认识操作系统的角色

  • 管理者:显然的,操作系统需要管理硬件资源和应用程序,可以分为CPU管理、内存管理、外存管理、I/O管理、以及自己的健壮性和安全性维护。(健壮性:也叫做鲁棒性,即很粗鲁地对待操作系统,也可以运行地很好)
  • 魔术师:简单地说,操作系统会让每一个进程都觉得自己独占CPU、独占整个物理内存,实际上,每个进程只在极短的时间内占用CPU,也只使用了一点点的内存。

6.用户程序和操作系统的关系

1)操作系统的角度

计算机启动后启动的第一个软件就是操作系统,随后启动的所有进程都运行在操作系统之上,所有的操作都被操作系统监控,进程结束后也由操作系统回收。

2)进程角度

进程角度,调用操作系统的服务,实现自己的功能。

综上所述:二者之间是互相调用的。

7.冯诺依玛体系结构

我们刚刚已经讲解过操作系统的概念,而应用程序很好理解,就是我们平时用的软件,就是平时在后台,前台跑起来的程序,即进程。那硬件呢?硬件怎么认识呢,或者说我们计算机有什么硬件构成呢?

截至目前位置,我们认识的所有计算机都基本符合冯诺依曼体系,如下图: