linux内核参数详解 linux的内核是什么( 二 )


与宏内核对应 , 接下来说说微内核 , 内核只保留最基本的能力 。比如进程调度、虚拟内存、中断 。多数应用 , 甚至包括驱动程序、文件系统 , 是在用户空间管理的 。
?
4.4 在内核层和在用户层有什么区别?感觉分层其实差不多 。我这里说一个很大的区别 , 比如说驱动程序是需要频繁调用底层能力的 , 如果在内核中 , 性能肯定会好很多 。对于微内核设计 , 驱动在内核外 , 驱动和硬件设备交互就需要频繁做内核态的切换 。
当然微内核也有它的好处 , 比如说微内核体积更小、可移植性更强 。不过我认为 , 随着计算能力、存储技术越来越发达 , 体积小、安装快已经不能算是一个很大的优势了 。现在更重要的是如何有效利用硬件设备的性能 。
之所以这么思考 , 也可能因为我是带着现代的目光回望当时人们对内核的评判 , 事实上 , 当时 Linux 团队也因此争论过很长一段时间 。但是我觉得历史往往是螺旋上升的 , 说不定将来性能发展到了一个新的阶段 , 像微内核的灵活性、可以提供强大的抽象能力这样的特点 , 又重新受到人们的重视 。
还有一种就是混合类型内核 。混合类型的特点就是架构像微内核 , 内核中会有一个最小版本的内核 , 其他功能会在这个能力上搭建 。但是实现的时候 , 是用宏内核的方式实现的 , 就是内核被做成了一个完整的程序 , 大部分功能都包含在内核中 。就是在宏内核之内有抽象出了一个微内核 。
五、Window 设计Windows 和 Linux 的设计有很大程度的相似性 。Windows也有内核 , 它的内核是 C/C++ 写的 。准确地说 , Windows 有两个内核版本 。一个是早期的Windows 9x 内核 , 早期的 Win95, Win98 都是这个内核 。我们今天用的 Windows 7, Windows 10 是另一个内核 , 叫作 Windows NT 。NT 指的是 New Technology 。接下来我们讨论的都是 NT 版本的内核 。
下面我找到一张 Windows 内核架构的图片给你一个直观感受 。
?
Windows 同样支持 Multitask 和 SMP(对称多处理) 。Windows 的内核设计属于混合类型 。你可以看到内核中有一个 Microkernel 模块 。而整个内核实现又像宏内核一样 , 含有的能力非常多 , 是一个完整的整体 。
Windows 下也有自己的可执行文件格式 , 这个格式叫作 Portable Executable(PE) , 也就是可移植执行文件 , 扩展名通常是.exe、.dll、.sys等 。
PE 文件的结构和 ELF 结构有很多相通的地方 , 我找到了一张图片帮助你更直观地理解 。
?
Windows 还有很多独特的能力 , 比如 Hyper-V 虚拟化技术.
六、总结这一讲我们学习了内核的基础知识 , 包括内核的作用、整体架构以及 3 种内核类型(宏内核、微内核和混合类型内核) 。
内核很小(微内核)方便移植 , 因为体积小、安装快;内核大(宏内核) , 方便优化性能 , 毕竟内核更了解计算机中的资源 。
Linux 内核和 Windows 内核有什么区别?
Windows 有两个内核 , 最新的是 NT 内核 , 目前主流的 Windows 产品都是 NT 内核 。NT 内核和 Linux 内核非常相似 , 没有太大的结构化差异 。
从整体设计上来看 , Linux 是宏内核 , NT 内核属于混合型内核 。和微内核不同 , 宏内核和混合类型内核从实现上来看是一个完整的程序 。只不过混合类型内核内部也抽象出了微内核的概念 , 从内核内部看混合型内核的架构更像微内核 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: