linux内核介绍与分析

来源:互联网 发布:ubuntu 杀死进程 id 编辑:程序博客网 时间:2024/05/22 08:07

内核的概念

内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对他们进行保护。通常把这一部分称为操作系统的内核
程序可以直接地被调入计算机中执行,这样的设计说明了设计者不希望提供任何硬件抽象和操作系统的支持,它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加强调内容载器和调试器,被设计到机器核心当中,或者固化在只读存储器里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了

内核的分类

一. 单内核
这里写图片描述
单内核是个很大的进程。他的内部又能够被分为若干模块(或是层次或其他)。但是在运行的时候,他是个单独的二进制大映象。其模块间的通讯是通过直接调用其他模块中的函数实现的,而不是消息传递。
1.1**主要代表:linux内核  Unix内核**

优点:

单内核结构是非常有吸引力的一种设计,由于在同一个地址空间上实现所有低级操作的系统控制代码的复杂性的效率会比在不同地址空间上实现更高些。单核结构正趋向于容易被正确设计,所以它的发展会比微内核结构更迅速些

缺点:

每一个模块都是单独地服务这些操作,内核代码是高度集成的,而且难以编写正确。因为所有的模块都在同一个内核空间上运行,一个很小的bug都会使整个系统崩溃
二. 微内核
这里写图片描述
微内核(英语:Microkernel,μ-kernel),又称为微核心,是一种内核的设计架构,由一群尽可能将数量最小化的软件程序组成,它们负责提供实现一个操作系统所需要的各种机制与功能。
2.1微内核的代表
第一个微内核实现是卡内基梅隆大学发展的Mach
NEXTSTEP基于Mach2.0,是OS/X的前身,OS/X基于Mach3.0
L4可以看作是Mach的改进,又被称作“第二代微内核”

优点:

1、具有良好的灵活性
2、结构简单清晰
3、程序代码维护方便

缺点:

1、难以进行良好的整体优化
2、进程间通信开销比单内核大许多

三. 混合内核
这里写图片描述
一些微核结构运行在用户空间的代码运行在内核空间,这样让内核的运行效率更高些。这是一种妥协做法,设计者参考了微内核结构的系统运行速度不佳的理论。然而后来的实验证明,纯微内核的系统实际上也可以是高效率的。大多数现代操作系统遵循这种设计范畴,微软视窗就是一个典型的例子。另外还有XNU,运行在苹果Mac OS X上的内核,也是一个混合内核。

四. 外内核
这里写图片描述
约在1994年提出,由麻省理工学院平行与分散操作系统工作小组所发展。以这个概念而实作的其他操作系统内核,也被称为外核心(Exokernel),外内核、外核、或极限核心。
特点:
它的设计理念是让用户程序的设计者来决定硬件接口的设计。外内核本身非常的小,它通常只负责系统保护和系统资源复用相关的服务。

微内核与单内核的比较

这里写图片描述
这里写图片描述

发展

历史告诉我们,两种看似矛盾又各有长处的观点或解决方案总能找到结合点的。Cache的直接映射与关联映射结合产生了组关联映射;RISC和CISC也是各具优点,现代的好的CPU包括了这两种技术,将它们结合了起来。所以相信宏内核与微内核也会最终找到结合点的。

0 0
原创粉丝点击