前言

其实在写这篇文章之前,我是打算继续写Linux网络编程的问题的,但是还是先这个操作系统的文章,我觉得这个操作系统的基础(一些基本概念非常重要)要学好,为啥这样讲呢?在我这几天没有听计算机操作系统的课程之前,我一直对微内核这个概念懵懵懂懂(这里说明一下,我自身是非科班出身的,大学里面就没有接触过这个计算机操作系统的课程,也就学了考计算机二级的基础知识,读者不要笑话我,对于我来说,这确实是真的);我记得上次去参加物联网大会,有介绍增,但我还是没听明白这个微内核是啥,直到这几天,听了这个计算机操作系统的课,我才明白了(下面文章里面我会写出宏内核与微内核的区别);好了,暂时不说那么多,先简单来了解一下操作系统。





计算机操作系统之操作系统的介绍_计算机操作


什么是操作系统


- 定义 -


操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心。是处于用户与计算机系统硬件之间用于传递信息的系统程序软件。例如:操作系统会在接收到用户输入的信息后,将其传给计算机系统硬件核心进行处理,然后再把计算机系统硬件的处理结果返回给使用者。

计算机操作系统之操作系统的介绍_微内核_02

- 功能-


  • 进程管理:


        (1)进程控制:创建、暂停、唤醒、撤销。

        (2)进程调度:调度策略、优先级。

        (3)进程通信:进程间通信。


  • 内存管理:


        (1)内存分配。

        (2)内存共享。

        (3)内存保护。

        (4)虚拟内存。


  • 设备管理:


        (1)设备的分配和调度。

        (2)设备无关性操作。

        (3)设备传输控制。

        (4)设备驱动。



  • 文件管理:


        (1)存储空间管理。

        (2)文件的操作。

        (3)目录的操作。

        (4)文件和目录的存取权限管理。



- 操作系统的发展历程-


1、手工操作(无操作系统)。


2、单道批处理系统。


3、多道分批处理系统。


4、分时操作系统。


5、实时操作系统(比如现在许多新的rtos,Ucos等实时系统)。




计算机操作系统之操作系统的介绍_计算机操作_03





计算机操作系统之操作系统的介绍_计算机操作



操作系统架构


- 微内核-


微内核中只有最基本的调度、内存管理。驱动、文件系统等都是用户态的守护进程去实现的。​优点是超级稳定,驱动等的错误只会导致相应进程死掉,不会导致整个系统都崩溃,做驱动开发时,发现错误,只需要kill掉进程,修正后重启进程就行了,比较方便​。​缺点是效率低;常见的微内核系统Windows、Mac以及近两年出来的许多物联网操作系统。简单来理解,微内核相当于一个信息交换中心,自身可以实现的功能较少,他的主要职责是传递一个请求,一个A模块对其他模块功能的请求。


- 宏内核-


宏内核,简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。​优点是效率高​。​缺点是稳定性差​,开发过程中的bug经常会导致整个系统挂掉。常见的宏内核有:​Uinx,Linux等。简单来理解,宏内核相当于一个是一个中央集权控制中心,把内存管理,文件管理等功能全部管理。


计算机操作系统之操作系统的介绍_计算机操作_03


总结

今天主要是简单的介绍了一下计算机操作系统,后面将更加详细的介绍操作系统里面的其它内容!



计算机操作系统之操作系统的介绍_计算机操作_06



关注公众号,每周分享至少3篇开源技术干货,文章中如有没看懂的地方可以私聊我,我看到了会立马回复你,


计算机操作系统之操作系统的介绍_微内核_07