前言
其实在写这篇文章之前,我是打算继续写Linux网络编程的问题的,但是还是先这个操作系统的文章,我觉得这个操作系统的基础(一些基本概念非常重要)要学好,为啥这样讲呢?在我这几天没有听计算机操作系统的课程之前,我一直对微内核这个概念懵懵懂懂(这里说明一下,我自身是非科班出身的,大学里面就没有接触过这个计算机操作系统的课程,也就学了考计算机二级的基础知识,读者不要笑话我,对于我来说,这确实是真的);我记得上次去参加物联网大会,有介绍增,但我还是没听明白这个微内核是啥,直到这几天,听了这个计算机操作系统的课,我才明白了(下面文章里面我会写出宏内核与微内核的区别);好了,暂时不说那么多,先简单来了解一下操作系统。
什么是操作系统
- 定义 -
操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心。是处于用户与计算机系统硬件之间用于传递信息的系统程序软件。例如:操作系统会在接收到用户输入的信息后,将其传给计算机系统硬件核心进行处理,然后再把计算机系统硬件的处理结果返回给使用者。
- 功能-
- 进程管理: (1)进程控制:创建、暂停、唤醒、撤销。 (2)进程调度:调度策略、优先级。 (3)进程通信:进程间通信。
- 内存管理: (1)内存分配。 (2)内存共享。 (3)内存保护。 (4)虚拟内存。
- 设备管理: (1)设备的分配和调度。 (2)设备无关性操作。 (3)设备传输控制。 (4)设备驱动。
- 文件管理: (1)存储空间管理。 (2)文件的操作。 (3)目录的操作。 (4)文件和目录的存取权限管理。
- 操作系统的发展历程-
1、手工操作(无操作系统)。
2、单道批处理系统。
3、多道分批处理系统。
4、分时操作系统。
5、实时操作系统(比如现在许多新的rtos,Ucos等实时系统)。
操作系统架构
- 微内核-
微内核中只有最基本的调度、内存管理。驱动、文件系统等都是用户态的守护进程去实现的。优点是超级稳定,驱动等的错误只会导致相应进程死掉,不会导致整个系统都崩溃,做驱动开发时,发现错误,只需要kill掉进程,修正后重启进程就行了,比较方便。缺点是效率低;常见的微内核系统Windows、Mac以及近两年出来的许多物联网操作系统。简单来理解,微内核相当于一个信息交换中心,自身可以实现的功能较少,他的主要职责是传递一个请求,一个A模块对其他模块功能的请求。
- 宏内核-
宏内核,简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。优点是效率高。缺点是稳定性差,开发过程中的bug经常会导致整个系统挂掉。常见的宏内核有:Uinx,Linux等。简单来理解,宏内核相当于一个是一个中央集权控制中心,把内存管理,文件管理等功能全部管理。
总结
今天主要是简单的介绍了一下计算机操作系统,后面将更加详细的介绍操作系统里面的其它内容!