电力电子技术
直播中

王利祥

7年用户 1444经验值
私信 关注

什么是微内核?

       计算机技术在二战后快速发展,构成计算机的主要基本单元从电子管发展到分立晶体管,再到后来的大规模集成电路。随着计算机技术发展,计算机性能越来越强劲,硬件越来越复杂,人们发现很难去直接管理计算机了,于是人们开始设计软件用于管理越来越复杂的计算机系统,这些软件称作系统级软件。从最开始的批处理系统,多道程序系统,分时系统到上世纪60年代开始出现通用操作系统,计算机系统层出不穷,直到上世纪70年代才出现被大家广泛接受广泛使用的通用操作系统。其中最经典的当然是 UNIX系统 了。
        

回帖(1)

苏宇樵

2020-10-29 16:56:40
UNIX系统,1971年诞生于大名鼎鼎的贝尔实验室的一台PDP-11/24机器上,其后经过不断发展与传播,在80年代取得了巨大成功,UNIX被移植到众多的 处理器 架构,并在众多行业得到广泛使用,甚至成为行业标准影响至今。
        UNIX以及类UNIX系统如Linux都是典型的宏内核设计,意思是把所有系统服务都放到内核里,因为系统服务代码之间存在大量数据交换和大量的服务请求,而在同一个代码段内进行函数调用(C语言)或跳转(汇编或者机器码时代)是最直接、最高效的方法,在同一片地址空间也方便数据交换,所以这样的宏内核设计是很自然的。
        但是随着UNIX内核功能的拓展(文件系统、TCP/IP网络协议栈、进程管理、内存管理、驱动程序等),UNIX内核代码也相应增加了很多,进而在可维护性、稳定性、安全性方面面临一些挑战。为了试图解决这些挑战,人们开始尝试使用 微内核 的思想来设计系统内核。
什么是微内核?
        微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。内核只提供最基础的服务,比如多进程调度、多进程通信(IPC)等。其中进程通信是作为连接应用与用户态系统服务的桥梁。
        宏内核系统相关的服务基本都是放于内核态内核中,例如文件系统、设备驱动、虚拟内存管理、网络协议栈等;而微内核则把更多的系统服务(例如文件系统、POSIX服务、网络协议栈甚至外设驱动)放到用户态应用,形成一个个服务,等待其他应用的请求。而后来,为了在宏内核与微内核之间扬长避短,也发展出了中间的混合内核的形态,部分服务也会放置于内核中。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分