深度:关于Linux内核最硬核的文章
来源 :头条号@Linux学习教程,冰凌块儿
前言
本文主要讲解什么是Linux内核,以及通过多张图片展示Linux内核的作用与功能,以便于读者能快速理解什么是Linux内核,能看懂Linux内核。
什么是内核
内核是与计算机硬件接口的易替换软件的最低级别。它负责将所有以“用户模式”运行的应用程序连接到物理硬件,并允许称为服务器的进程使用进程间通信(IPC)彼此获取信息。
内核还要分种类?
是的,没错。
3.1 微内核
3.1.1 Pros
可移植性 安装占用空间小 小内存占用 安全
3.1.2 Cons
通过驱动程序,硬件更加抽象 硬件可能反应较慢,因为驱动程序处于用户模式 进程必须在队列中等待才能获得信息 进程不能在不等待的情况下访问其他进程
3.2 单内核
3.2.1 Pros
更直接地访问程序的硬件 流程之间更容易通信 如果支持您的设备,它应该不需要额外安装就可以工作 进程反应更快,因为没有等待处理器时间的队列
3.2.2 Cons
较大安装体积 较大内存占用 不太安全,因为所有操作都在管理模式下运行
混合的内核
混合内核能够选择在用户模式下运行什么,以及在管理模式下运行什么。通常情况下,设备驱动程序和文件系统I/O将在用户模式下运行,而IPC和服务器调用将保持在管理器模式下。这是两全其美,但通常需要硬件制造商做更多的工作,因为所有驱动程序的责任都由他们来承担。它还可能存在一些与微内核固有的延迟问题。
4.1 Pros
开发人员可以选择什么在用户模式下运行,什么在管理模式下运行 比单片内核更小的安装占用空间 比其他型号更灵活
4.2 Cons
会遭受与微内核相同的进程延迟 设备驱动程序需要由用户管理(通常)
Linux内核文件在哪里
Ubuntu中的内核文件存储在/boot文件夹中,称为vmlinux -version。vmlinuz这个名字来自于unix世界,早在60年代,他们就把内核简单地称为“unix”,所以当内核在90年代首次开发时,Linux就开始把内核称为“Linux”。
Linux内核体系结构
因为Linux内核是单片的,所以它比其他类型的内核占用空间最大,复杂度也最高。这是一个设计特性,在Linux早期引起了相当多的争论,并且仍然带有一些与单内核固有的相同的设计缺陷。
想象一下,如果您可以升级到Windows服务包,而不需要重新启动……
内核模块
如果Windows已经安装了所有可用的驱动程序,而您只需要打开所需的驱动程序怎么办?这本质上就是内核模块为Linux所做的。内核模块,也称为可加载内核模块(LKM),对于保持内核在不消耗所有可用内存的情况下与所有硬件一起工作是必不可少的。
Linux 内核学习经验总结
Many of the key control paths in the kernel are described, step by step;
一步一步地讲述内核控制路径的实现。
The level of detail sometimes makes it hard to get a sense for the big picture, but it does help somebody trying to figure out how a particular function works.
对代码讲解的详细程度有时候很难让读者把握住它的主旨大意,但是确实有助于读者理解一个特定的函数到底是如何工作的。
Indeed, that is perhaps the key feature which differentiates this book. It is very much a “how it works” book, designed to help people understand the code.
事实上,这也正是本书与众不同的地方。更像一个“如何工作”的书,帮助读者理解代码实现。
It presents kernel functions and data structures, steps the reader through them, but does not, for example, emphasize the rules for using them. UTLK is a study guide, not a programming manual.
本书描述了内核函数和数据结构,引导读者穿行于其间,但是,并没有着重强调使用它们的法则。UTLK是一本学习指南,而不是编程手册。
来源网址:(转载请保留)
END
评论