10+张图来探究Linux内核,以及如何高效学习
点击上方“程序员大白”,选择“星标”公众号
重磅干货,第一时间送达
来源 :头条号@Linux学习教程,冰凌块儿
1. 前言


2. 什么是内核
3. 内核还要分种类?
3.1 微内核

3.1.1 Pros
可移植性 安装占用空间小 小内存占用 安全
3.1.2 Cons
通过驱动程序,硬件更加抽象 硬件可能反应较慢,因为驱动程序处于用户模式 进程必须在队列中等待才能获得信息 进程不能在不等待的情况下访问其他进程
3.2 单内核

3.2.1 Pros
更直接地访问程序的硬件 流程之间更容易通信 如果支持您的设备,它应该不需要额外安装就可以工作 进程反应更快,因为没有等待处理器时间的队列
3.2.2 Cons
较大安装体积 较大内存占用 不太安全,因为所有操作都在管理模式下运行

4. 混合的内核

4.1 Pros
开发人员可以选择什么在用户模式下运行,什么在管理模式下运行 比单片内核更小的安装占用空间 比其他型号更灵活
4.2 Cons
会遭受与微内核相同的进程延迟 设备驱动程序需要由用户管理(通常)
5. Linux内核文件在哪里


config-version。initrd文件用作一个小RAM磁盘,用于提取和执行实际的内核文件。这个系统。map文件用于内核完全加载之前的内存管理,配置文件告诉内核在编译内核映像时要加载哪些选项和模块。
6. Linux内核体系结构

想象一下,如果您可以升级到Windows服务包,而不需要重新启动……
7. 内核模块

load,或者通过编辑/boot/config文件,或者使用modprobe命令动态地加载和卸载模块,轻松定制内核。
8. Linux 内核学习经验总结
“只见树木,不见森林”,不要急于深入到底层代码中去,不要过早研究底层代码。
latency、队列中进程个数及其nice值(使用的是动态优先级)计算出分配给进程的时间片,没理由不看的,这个太重要了,而且也很有意思。
insight打开的源码,确认一下代码大体上确实是按书中所描述的步骤实现的,就当是增加感性认识。由于步骤中掺杂着各种针对不同实现目的安全性、有效性检查,如果不理解就先跳过。这并不妨碍你对函数体功能实现的整体把握。
,你可以再回头去看相应的介绍,当时你不太理解的东西,很可能这个时候就知道了它的设计的目的以及具体的应用。不求甚解只是暂时的。比如说,内核各个子系统之间的交互和引用在代码中的体现就是实现函数穿插调用,比如你在内存管理章节学习了的内存分配和释放的函数,而你是了解内存在先的,在学习驱动或者模块的时候就会碰到这些函数的调用,这样也就比较容易接受,不至于太过茫然;再比如,你了解了系统时间和定时器的管理,再回头看中断和异常中bottom
half的调度实现,你对它的理解就会加深一层。
x86系列就是这么设计的,去看看Intel
V3手册中相应章节介绍,都可以为ULK3中描述的代码实现方式找到注解。还有时间和定时器管理,同样可以在Intel V3
对APIC的介绍中获取足够的信息,操作系统就是依据这些硬件特性来实现软件方法定义的。
V3 Intel? 64 and IA-32 Architectures Software Developer’s Manual
Volume 3 (3A, 3B & 3C): System Programming Guide
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是一本学习指南,而不是编程手册。
来源网址:
推荐阅读
关于程序员大白
程序员大白是一群哈工大,东北大学,西湖大学和上海交通大学的硕士博士运营维护的号,大家乐于分享高质量文章,喜欢总结知识,欢迎关注[程序员大白],大家一起学习进步!
评论


