Skip to content

Latest commit

 

History

History
78 lines (44 loc) · 7.7 KB

File metadata and controls

78 lines (44 loc) · 7.7 KB

零、前言

精通 Linux 内核开发考察 Linux 内核、其内部 安排和设计,以及各种核心子系统,帮助您 对这个开放源码奇迹有深刻的理解。 您将看到 Linux 内核是如何由于其伟大的设计而保持如此优雅的,它拥有一种集体智慧,这要归功于它的数十名贡献者。

本书还介绍了所有关键的内核代码、核心数据结构、函数和宏,为您全面了解内核核心服务和机制的实现细节奠定了基础。 您还将看到 Linux 内核是设计良好的软件,这使我们能够深入了解软件设计的一般情况,这些软件设计容易扩展,但从根本上讲是强大和安全的。

这本书涵盖了哪些内容

第 1 章理解进程、地址空间和线程,详细介绍了 Linux 的一个主要抽象,称为进程和整个生态系统,它促进了这种抽象。 我们还将花时间了解地址空间、进程创建和线程。

第 2 章解密进程调度器解释了进程调度,这是任何操作系统的一个重要方面。 在这里,我们将建立对 Linux 采用的不同调度策略的理解,以交付有效的进程执行。

第 3 章信号管理帮助理解信号使用的所有核心方面、它们的表示、数据结构以及用于信号生成和传递的内核例程。

第 4 章内存管理和分配器,向我们介绍了 Linux 内核最关键的一个方面,理解了内存表示和分配的各种细微差别。 我们还将评估内核在以最低成本最大化资源使用方面的效率。

第 5 章文件系统和文件 I/O提供了对典型文件系统、其结构、设计以及是什么使其成为操作系统基本部分的一般性理解。 我们还将使用通用的分层体系结构设计来查看抽象,内核通过 VFS 全面吸收这种设计。

第 6 章进程间通信涉及内核提供的各种 IPC 机制。 我们将探索每种 IPC 机制的各种数据结构之间的布局和关系,并同时研究 SysV 和 POSIX IPC 机制。

第 7 章虚拟内存管理解释了内存管理,详细介绍了虚拟内存管理和页表。 我们将研究虚拟内存子系统的各个方面,如进程虚拟地址空间及其段、内存描述符结构、内存映射和 VMA 对象、页面缓存和页表地址转换。

第 8 章内核同步和锁定使我们能够理解内核提供的各种保护和同步机制,并理解这些机制的优缺点。 我们将尝试并欣赏内核在解决这些不同的同步复杂性时所表现出的坚韧不拔的精神。

第 9 章中断和延迟工作讨论中断,中断是任何操作系统完成必要和优先任务的关键方面。 我们将了解如何在 Linux 中生成、处理和管理中断。 我们还将研究各种底部减半机制。

第 10 章**,**时钟和时间管理揭示了内核如何测量和管理时间。 我们将查看所有与时间相关的关键结构、例程和宏,以帮助我们有效地衡量时间管理。

第 11 章模块管理快速介绍了模块、内核管理模块的基础设施以及涉及的所有核心数据结构。 这有助于我们理解内核是如何灌输动态可扩展性的。

这本书你需要什么?

除了深入了解 Linux 内核及其设计的细微差别外,您还需要先了解 Linux 操作系统的总体情况,并了解开源软件的概念才能开始阅读本书。 然而,这本书并不具有约束力,任何有敏锐眼力获取有关 Linux 系统及其工作原理的详细信息的人都可以读到这本书。

这本书是写给谁的?

  • 这本书是为系统编程爱好者和专业人士准备的,他们希望加深对 Linux 内核及其各种集成组件的理解。
  • 对于从事各种内核相关项目的开发人员来说,这是一本方便的书。
  • 软件工程专业的学生可以用它作为理解 Linux 内核的各个方面及其设计原则的参考指南。

公约

在本书中,您将发现许多区分不同类型信息的文本样式。 下面是这些风格的一些例子,并解释了它们的含义。 文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“在loop()函数中,我们读取到传感器的距离值,然后将其显示在串行端口上。”

代码块设置如下:

/* linux-4.9.10/arch/x86/include/asm/thread_info.h */
struct thread_info {
 unsigned long flags; /* low level flags */
};

新术语重要单词以粗体显示。 您在屏幕上看到的单词(例如,在菜单或对话框中)会出现在文本中,如下所示:“转到”草图“|”“包含库”|“管理库”,您将看到一个对话框。

Warnings or important notes appear like this. Tips and tricks appear like this.

读者反馈

欢迎读者的反馈。 让我们知道你对这本书的看法-你喜欢什么或不喜欢什么。 读者反馈对我们很重要,因为它可以帮助我们开发出真正能让您获得最大收益的图书。 要向我们发送一般反馈,只需发送电子邮件feedback@packtpub.com,并在邮件主题中提及书名。 如果有一个您擅长的主题,并且您有兴趣撰写或投稿一本书,请参阅我们的作者指南,网址为www.Packtpub.com/Authors

客户支持

现在您已经成为 Packt 图书的拥有者,我们有很多东西可以帮助您从购买中获得最大价值。

错误 / 排错 / 勘误表

虽然我们已经竭尽全力确保内容的准确性,但错误还是会发生。 如果您在我们的一本书中发现错误--可能是文本或代码中的错误--如果您能向我们报告,我们将不胜感激。 通过这样做,您可以将其他读者从挫折中解救出来,并帮助我们改进本书的后续版本。 如果您发现任何勘误表,请访问http://www.packtpub.com/submit-errata进行报告,选择您的图书,单击勘误表提交表链接,然后输入勘误表的详细信息。 一旦您的勘误表被核实,您提交的勘误表将被接受,勘误表将被上传到我们的网站或添加到该书目勘误表部分下的任何现有勘误表列表中。 要查看以前提交的勘误表,请转到https://www.packtpub.com/books/content/support并在搜索字段中输入图书名称。 所需信息将显示在勘误表部分下。

海盗行为 / 剽窃 / 著作权侵害 / 非法翻印

在互联网上盗版版权材料是所有媒体持续存在的问题。 在 Packt,我们非常重视版权和许可证的保护。 如果您在互联网上发现任何形式的非法复制我们的作品,请立即提供我们的位置、地址或网站名称,以便我们采取补救措施。 请拨打copyright@packtpub.com与我们联系,并提供疑似盗版材料的链接。 我们感谢您在保护我们的作者方面的帮助,以及我们为您提供有价值内容的能力。

问题 / 不确定 / 异议 / 难题

如果您对本书的任何方面有任何问题,您可以拨打questions@packtpub.com与我们联系,我们将尽最大努力解决问题。