个人觉得微内核和模块化是两码事


但是很多人却把他们混为一谈。

微内核的最主要的特征是操作系统组件之间的地址空间隔离,内核提供IPC,内存管理任务调度的基本功能,其他的操作系统组件如文件系统,驱动程序等都在各自独立的地址空间执行。一般来说应用程序调用操作系统的系统调用,或者内核调用其他组件(比如文件系统,驱动程序)的功能都是通过IPC的方式。

如果没有这样的特征,那就不是微内核,如果只是模块化,那么我相信在微内核的概念出现之前,操作系统就是模块化设计的了,毕竟模块化的设计思想早在微内核之前就出现很久了。

基本上所有的操作系统都会有进程调度,内存管理,IO管理,文件系统,驱动程序等等诸如此类的模块。刚好,我总结了一些嵌入式资料放在视频结尾

所以,从这个角度说Linux/Windows NT其实也是单一内核的。当然你要是说Windows NT是混合内核,勉强也可以,但是我认为Windows NT离单一内核更近一点。

而且Windows NT的图形系统是运行在核心态的。而Linux的X Windows反倒是运行在用户态的进程。

如果只是把一个不是特别重要的核心态驱动程序的实现移到用户态运行就是微内核的话,那么我相信Linux都可以做到(当然你还是需要一些运行在核心态的代码做一些数据结构转换或者消息转发以实现对用户态运行的驱动代码的调用)。但是那应该不是微内核。个人觉得微内核和模块化是两码事_第1张图片



我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6

你可能感兴趣的:(单片机,编程,嵌入式,单片机,51单片机)