操作系统(OS)内核

1、操作系统(英语:Operating System,缩写:OS)是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
操作系统(OS)内核_第1张图片
2、“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
3、单内核:是个很大的进程,内部分成若干个模块(或是层次或是其他),但是在运行时,它是个单独的二进制大映像,模块间的通讯不通过消息传递实现,而是通过直接调用其他模块中的函数实现的。
缺点:内核代码高度集成,难以编写正确,所有的模块均在同一个内核空间上运行,一个很小的bug就会使得整个系统崩溃。
优点:在同一个地址空间上实现所有低级操作的系统控制代码的复杂性的效率比在不同地址空间上实现更高些。单核结构正趋向于容易被正确设计,因此发展比微内核更迅速点。
4、微内核:内核只提供最核心的功能,比如任务调度,内存管理等,其他模块被移出内核,运行在不同进程中。在微内核中,即使某一个模块出现问题,只要重启这个模块的进程即可,不会影响到其他模块,稳定性大大增加,甚至可以在系统运行过程中替换现有模块的实现。
优点:由于模块独立的性质,可以做到模块的按需加载
缺点:模块间的相互调用需要通过进程间的通信,通信效率相对较低。
微内核与宏内核架构相反。微内核架构中内核功能尽可能少:只有进程调度、中断处理、内存空间映射、进程通信等功能。而像文件系统、设备驱动这些,则作为一个个独立的服务进程,进程之间通过消息传递来通信。
微内核的优势是降低了不同模块之间的耦合性,同时让系统更容易拓展其他功能。但是这也降低了系统性能。比如一个应用程序需要使用外设:首先通过系统调用进入内核态;内核给设备管理进程发送消息;切换到用户态,设备管理进程处理完后传递消息给内核;切换回内核态,传递消息给应用程序;切换回用户态,应用程序继续执行。中间涉及了4次状态切换,如果是宏内核的话只需要2次。
5、混合内核:混合内核是微内核,在内核空间中具有一些“非必要”代码,以使代码比在用户空间中运行更快,在内核空间中,以减少传统微内核的性能开销,但仍然将内核代码(例如设备驱动程序)作为用户空间中的服务器运行。
优点:可以在模块内运行的驱动程序的开发时间更快,测试不需要重新启动(假设内核不稳定),随需应变能力与花费时间重新编译整个内核,用于新驱动程序或子系统等
6、宏内核:宏内核包含了所有基本的系统服务,这些服务都打包进了内核当中,这也必然造成了内核太大,不便于维护,当内核中的某个服务崩溃上、时,整个内核也会崩溃。用户服务和内核服务被实现在同一空间中,具体来说就是内核可以代表内核进程运行代码,当用户经过系统调用或者中断进入内核态时,内核也可以代表它运行的代码,这样在执行速度上也会更快。
操作系统(OS)内核_第2张图片

操作系统(OS)内核_第3张图片

7、相关产品分析
(1)宏内核;linux
操作系统(OS)内核_第4张图片
linux系统架构
Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核抽象出一层系统调用接口,用于用户的调用访问。
linux内核结构
操作系统(OS)内核_第5张图片

从linux的内核全景图可以看出来,宏内核里各个模块之间互相调用函数,上下贯穿、没有左右边界,结构非常复杂。维护这样的系统结构是很困难的。
(2) RT-Thread:
RT-Thread,全称是 Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统。一个处理器核心在某一时刻只能运行一个任务,由于每次对一个任务的执行时间很短、任务与任务之间通过任务调度器进行非常快速地切换(调度器根据优先级决定此刻该执行的任务)从而达到实时的效果。在 RT-Thread 系统中,任务调度通过线程来实现。
RT-Thread有标准版(MCU)、nano版(极简版)、Smart版(面向MMU)。RT-Thread不仅是一个实时内核,还有丰富的中间组件和软件包,这也是其与RTOS、FreaaRTOS、uc/os的主要区别之一,准确来说,之有RT-Thread nano版属于微内核的范畴,标准版和Smart版归属于混合内核。
操作系统(OS)内核_第6张图片

(3)混合内核:windowsNT内核结构
操作系统(OS)内核_第7张图片

混合内核把常用的组件放在内核态运行。这样既保证了系统的高性能,同时也不会使系统耦合度过高。
从图中可以看出,除了常用的进程、内存管理等,windows把设备驱动程序和图形驱动程序也放在了内核中。
三种内核结构的解释图:
操作系统(OS)内核_第8张图片

二、内核的功能

  1. 支撑功能
    是指内核可以提供给OS的其它众多模块所需要一些基本功能,以便支撑这些模块工作。下面是三种最基本的支撑功能:

(1)中断处理
此功能是内核最基本的功能,是整个操作系统活动的基础。OS中许多重要的活动无不依赖于中断,比如系统调用、IO操作、进程调度、设备驱动等,

(2)时钟管理
比如在时间片轮转调度中,每当时间片用完时,便由时钟管理产生一个中断信号,促使调度程序重新进行调度。还有实时系统的截止时间控制等。

(3)原语操作
原语(Primitive)是由若干条指令组成的,用于完成一定功能的一个过程。
它与一般过程的区别在于:它们是 原子操作。所谓原子操作就是,一个操作中的动作要么全做,要么全不做。也就是,它是一个不可分割的基本单位。因此,原语在执行过程中不允许被中断。

原语的作用: 在内核中有许多原语,比如用于对链表进行操作的原语、用于实现进程同步的原语等。

  1. 管理功能
    (1)进程管理
    进程的调度与分派、创建与撤销等;实现进程同步、进程通信的原语等

(2)存储器管理
如将逻辑地址转换为物理地址、内存的分配与回收等

(3)设备管理
各类设备的驱动程序等

你可能感兴趣的:(linux,操作系统,网络,linux,运维,centos)