写点什么

Linux 内核应该怎么学习?给大家推荐五本书籍

作者:Linux爱好者
  • 2022 年 4 月 22 日
  • 本文字数:2182 字

    阅读完需:约 7 分钟

Linux内核应该怎么学习?给大家推荐五本书籍

通过阅读源码来学习操作系统要注意区分共性与平台特性:、


1. 中断响应是共性,8259 中断控制器和 IDT 是 x86 的特性。

2. 虚拟内存管理是共性,x86 的 GDT 和 LDT 是特性的,而且现在的系统也只是走个过场而已。

3. 任务调度与上下文切换是共性,x86 的 TSS 是特性,而且现在的系统(2.2.0 以后)也不用 TSS 做任务切换了,早期的 Linux 使用了 TSS 的,读老代码的时候要注意。

4. IO 是共性,位于 0xB8000 的显示缓冲区是 x86 的特性。

5. 系统初始化是共性,BIOS 把引导扇区加载到 0x7C00 是 x86 的特性。国内好多书对 PC 的系统引导过程(booting)大书特书,是主次不分、本末倒置,你学的是操作系统,不是 boot loader 。


从事十年嵌入式转内核开发(23K到45K),给兄弟们的一些建议

嵌入式进阶从小白到大神学习全攻略(学习路线+课程+学习书籍+练习项目)

腾讯首发Linux内核源码《嵌入式开发进阶笔记》差距差的不止一点点哦腾讯T6-9首发“Linux内核源码嵌入式开发进阶笔记”,差距不止一点点哦

23岁精通所有底层原理,拿到了腾讯60万年薪offer2022年嵌入式开发想进互联网大厂,你技术过硬吗?

一、《深入理解 Linux 内核》 推荐等级:5 颗星

为了透彻理解 Linux 的工作机理,以及为何它在各种系统上能顺畅运行,你需要深入到内核的心脏。cPu 与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得 cPu 不再受限于慢速硬盘。


《深入理解 Linux 内核》第三版将引领你畅游内核中用到的最主要数据结构、算法和编程技巧。如果你的确想了解计算机内部的实现机理,那么作者透过现象探寻本质,提供了颇有价值的深入分析。本书针对具体的 Intel 平台,讨论了其重要特征,逐行剖析了相关的代码片段。但是,本书涵盖的内容不仅仅局限于代码的机理,还解释了 Linux 运作方式的理论支撑。


本书第三版涵盖 Linux2.6,从中可以看到几乎内核每个子系统都有相当大的变化,首当其冲的是内存管理和块设备部分。


本书集中讨论了如下内容:

  • 内存管理,包括文件缓冲、进程交换以及直接内存访问(DMA)

  • 虚拟文件系统层和第二及第三扩展文件系统

  • 进程创建及调度

  • 信号、中断及设备驱动程序的主要接口

  • 定时

  • 内核中的同步

  • 进程间通信(IPC)

  • 程序执行


本书将使你熟悉 Linux 所有的内在工作机理,但本书不仅仅是一种学术演练。你将了解到什么条件会促使 Linux 产生*性能,你还会看到,Linux 在各种环境下如何满足进程调度、文件访问及内存管理期间系统提出的快速响应要求。本书有助于你充分展现 Linux 系统的魅力。

简称 ULK,相比于 LKD 的内容不够深入、覆盖面不广,ULK 要深入全面得多。


二、《Linux 内核设计与实现》 推荐等级:4 颗星


本书基于 Linux2.6.34 内核详细介绍了 Linux 内核系统,覆盖了从核心内核系统的应用到内核设计与实现等各方面的内容。

本书主要内容包括:进程管理、进程调度、时间管理和定时器、系统调用接口、内存寻址、内存管理和页缓存、VFS、内核同步以及调试技术等。


同时本书也涵盖了 Linux2.6 内核中颇具特色的内容,包括 CFS 调度程序、抢占式内核、块 I/O 层以及 I/O 调度程序等。本书采用理论与实践相结合的路线,能够带领读者快速走进 Linux 内核世界,真正开发内核代码。

简称 LKD,内核新人首选必读的书籍


三、《Linux 设备驱动程序》 推荐等级:5 颗星


《Linux 设备驱动程序 第 3 版(影印版)》是经典著作《Linux 设备驱动程序》的第 3 版。如果希望在 Linux 操作系统上支持计算机外部设备,或者在 Linux 上运行新的硬件,或者只是希望一般性地了解 Linux 内核的编程,就一定要阅读本书。本书描述了如何针对各种设备编写驱动程序,而在过去,这些内容仅仅以口头形式交流,或者零星出现在神秘的代码注释中。

简称 LDD,驱动开发者必备。



四、《深入理解 LINUX 网络内幕》 推荐等级:4 颗星


inux 如此的流行正是得益于它的特性丰富并有效的网络协议栈。如果你曾经惊叹于 Linux 能够实现如此复杂的工作,或者你只是想通过现实中的例子学习现代网络,《深入理解 Linux 网络内幕》将会给你指导。

同其他 O'Reilly 的流行书籍一样,《深入理解 Linux 网络内幕》清楚地阐述了网络的基本概念,并指导你如何用 C 语言实现。虽然早先的 TCP/IP 经验是有用的,但初学者通过本书仍然可以学习到协议本身和大量的应用信息。一旦彻底掌握了这些网络工具,你就可以使用本书所附的代码,准确地指出 Linux 内核中最重要的部分如何工作。

网络功能的实现或破坏在不同的时候是由不同的代码块完成的,这正是理解网络和实现它的难点中的一部分。本书的成功之一就是描述这些代码块如何集成,以及众多的函数和数据结构之间的关系。《深入理解 Linux 网络内幕》不仅描述了 Linux 网络的全貌,而且是理解 Linux 网络细节的有效指南。

一本讲解网络子系统实现的书,通过这本书,我们可以了解到 Linux 内核是如何实现复杂的网络功能的。

五、《深入理解 Linux 虚拟内存管理》 推荐等级:5 颗星

电子书推荐:

《Linux 内核完全注释 V3.0 书签版》

《Linux 命令行大全 - 绍茨 (william E.shotts)》

《Linux 命令速查手册》

《Linux 就该这么学》

《Linux 性能优化大师》

《Linux 环境编程:从应用到内核》

《Linux 集群和自动化运维 余洪春》

《Linux 驱动程序开发实例(第 2 版)》

《Linux 高级程序设计(第 3 版)》

《构建高可用 Linux 服务器(第 4 版)》

《深入了解 Linux 内核》


电子书获取地址,点击这里查看详细最新Linux内核源码资料文档+视频资料

发布于: 刚刚阅读数: 2
用户头像

外在压力增加时,就应增强内在的动力。 2020.12.03 加入

擅长底层原理开发技术,分享技术和经验

评论

发布
暂无评论
Linux内核应该怎么学习?给大家推荐五本书籍_Linux_Linux爱好者_InfoQ写作社区