猜你喜欢
精通Linux内核:智能设备开发核心技术

精通Linux内核:智能设备开发核心技术

书籍作者:姜亚华 ISBN:9787111639602
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1832
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
《精通Linux内核:智能设备开发核心技术》共五篇,以从易到难的顺序详细剖析了Linux内核开发的核心技术。“知识储备篇”介绍了Linux的数据结构、中断处理、内核同步和时间计算等内容,这些是理解后续章节的前提。之后通过“内存管理篇”“文件系统篇”“进程管理篇”详细介绍了Linux的三大核心模块。最后的“升华篇”则融合了前面诸多模块展示了Linux内核开发在操作系统、智能设备、驱动、通信、芯片以及人工智能等热点领域的应用。书中的重点、难点均配以图表、代码和实战案例进行展示,有助于提高读者的动手操作能力。
  《精通Linux内核:智能设备开发核心技术》的读者需要熟悉C语言,对Linux内核有一定了解。推荐初学者按照《精通Linux内核:智能设备开发核心技术》的编排顺序阅读,而熟悉Linux内核的读者可以跳过第壹篇,直接从三大核心模块篇进行阅读。
  《精通Linux内核:智能设备开发核心技术》可作为Linux初中级读者系统学习Linux内核开发的指导手册,也可作为从事嵌入式、操作系统、Linux编程、驱动/内核开发,以及智能设备开发等工作工程师的案头指南和进阶工具书。
作者简介
姜亚华,曾负责华为手机的Touch、Sensor的驱动和软件优化(包括Mate、荣耀等系列),以及Intel安卓平台Camera和Sensor的驱动开发(包括Baytrail、Cherrytrail、Cherrytrail CR、Sofia等);现负责DMA、Interrupt、Semaphore等模块的优化和验证(包括Vega、Navi系列和多款APU产品。)。
  一直从事与Linux内核和Linux编程相关的工作,研究内核代码十多年,对多数模块的细节如数家珍。熟悉Linux程序,对Linux常见机制的使用理解透彻。曾在华为终端软件精英赛中获奖,三次获得AMD Spotlight奖励。
前言
2013年11月,我加入Intel,开始创作本书,最初决定在3.10版本的内核基础上写作,转眼间多年已逝,内核版本已经更新到5.x,本书也随之更新至5.05版本。少数讨论也涉及3.10版本的内容,保留它们主要是希望可以让读者看到内核的更新和优化思路。建议读者在阅读本书时,可以下载3.10和5.05两个版本的内核代码作为参考。内容
  本书分为以下五个部分。
  知识储备篇:包括常见的数据结构、时间、中断处理和内核同步等内容,是后面几部分内容的学习基础,希望读者能够从中了解内核的概况,在后续章节中见到相关知识时不会感觉陌生。尤其是2.1关系型数据结构一节,它是理解其他章节数据结构间关系的基础。
  内存管理篇:包括内存寻址、物理内存和线性内存空间的管理以及缺页异常等内容。希望读者能够从中学习到内存映射的原理,理解管理内存的过程,在调用内核提供的函数时能够明白内核为用户做了哪些操作。
  文件系统篇:包括VFS的流程,sysfs、proc和devtmpfs文件系统的实现,ext4文件系统的解析。希望读者能够掌握文件系统的流程、文件操作的实现、sysfs等文件系统的特点以及ext4文件系统的原理。尤其是ext4文件系统,本书列举了大量的实操案例,希望读者可以理解它的精髓。
  进程管理篇:包括进程原理、进程调度、信号处理、进程通信和程序执行等内容,希望读者能够掌握进程间的关系、进程调度的过程、进程通信的原理、信号的处理过程等。理解进程的创建过程尤为重要,它涵盖了进程实现的原理。
  升华篇:包括I/O多路复用、input子系统、V4L2架构、Linux设备驱动模型、Binder通信和驱动的实现等内容。升华篇综合了前几部分的知识,希望读者可以掌握它们的原理,使用起来得心应手。
  从难易程度来讲,这五部分内容是由浅入深的。本书仅罗列了关键或者复杂的代码,从它们包含的代码就可以得知难易程度。知识储备篇偏向工具和基础知识,以原理分析为主。内存管理、文件系统和进程管理篇是重心,代码量最大,这些代码一方面可以帮助读者理清整体的软件架构,另一方面方便读者在学习的时候不会因为手头没有代码而感到无从下手,最重要的是代码才是结论背后的真相,直接给出结论让技术变成了死记硬背的工具岂不无趣。
目录
序一
序二
前言

知识储备篇
第1章 基于Linux内核的操作系统
1.1 处理器、平台和操作系统
1.2 以安卓为例剖析操作系统
1.2.1 安卓的整体架构
1.2.2 Linux内核的核心作用
1.3 内核整体架构
1.3.1 内核代码的目录结构
1.3.2 内核的核心模块及关联
1.4 实例分析
1.4.1 系统响应“点击智能手机触摸屏”的过程
1.4.2 智能手机的传感器游戏
第2章 数据结构的使用
2.1 关系型数据结构
2.1.1 一对一关系
2.1.2 一对多关系
2.1.3 多对多关系
2.2 位操作数据结构
2.3 模块和内核参数传递
2.3.1 内嵌通用数据结构
2.3.2 通用结构的私有变量
2.4 实例分析
2.4.1 模块的封装
2.4.2 火眼金睛:看破数据结构
第3章 时间的衡量和计算
3.1 数据结构
3.2 时钟芯片
3.3 从内核的角度看时间
3.4 周期性和单触发的时钟中断
3.5 时间相关的系统调用
3.5.1 获取时间
3.5.2 给程序定个闹钟
3.6 实例分析
3.6.1 实现智能手机的长按操作
3.6.2 系统的时间并不如你所想
第4章 中断和中断处理
4.1 处理器识别中断
4.2 处理中断
4.2.1 中断处理程序
4.2.2 中断服务例程
4.2.3 中断处理
4.3 中断返回
4.4 系统调用
4.5 软中断
4.5.1 原理
4.5.2 小任务tasklet
4.5.3 定时器
4.6 实例分析
4.6.1 使用中断向无人驾驶系统报告紧急事件
4.6.2 使用watchdog预防无人机坠落
第5章 内核同步
……

内存管理篇
文件系统篇
进程管理篇
升华篇
标签
linux
产品特色