搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
打通Linux操作系统和芯片开发
0.00     定价 ¥ 139.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购15本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787121498473
  • 作      者:
    作者:刘盼盼|责编:张月萍
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2025.03
收藏
编辑推荐

芯片与操作系统成为业界当下的热点。然而,业界少有从打通操作系统和芯片开发角度讲解的技术书籍。本书的特色在于挖掘Linux核心技术,剖析难点痛点,打通Linux操作系统与芯片开发链路,为嵌入式系统工程师、芯片设计工程师等从业者拓宽技术视野,助力我国在芯片与操作系统关键领域技术人才的培养。


展开
作者简介

刘盼盼

有十多年项目工作经验,涉及手机、汽车、芯片行业,目前就职于芯片大厂任谷歌开发者社区优秀讲师,腾讯技术训练营导师,某科技公司合伙人,善于挖掘技术背后的本质。


展开
内容介绍

本书共13章,操作系统部分涉及内存管理、进程管理、文件系统、同步管理,以及系统调用。SoC部分涉及SoC启动的过程、设备模型、设备树原理、电源模块、时钟模块、引脚模块、时间模块以及中断模块,这些模块都是芯片运行的基本要求。作者站在一线开发者的角度先剖析了Kernel 6.6的实现原理,然后结合恩智浦i.MX9芯片的SoC硬件原理,由浅入深地讲解了操作系统和SoC的不解之谜。


展开
精彩书评

业内专家

芯片与操作系统成为业界当下的热点。然而,业界少有从打通操作系统和芯片开发角度讲解的技术书籍。本书的特色在于挖掘Linux核心技术,剖析难点痛点,打通Linux操作系统与芯片开发链路,为嵌入式系统工程师、芯片设计工程师等从业者拓宽技术视野,助力我国在芯片与操作系统关键领域技术人才的培养。

——上海交通大学特聘教授、OpenHarmony技术指导委员会主席、华为中央软件院副总裁、华为基础软件首席科学家,陈海波

这是一本少见的将内核(软件)和芯片(硬件)贯穿在一起阐述相关原理及其实现的书籍,是作者的心血之作,对内核开发者和芯片设计者均有裨益。相信可极大助力信创产业的发展。

——飞漫科技创始人,魏永明

作者是我多年未曾谋面的网友,一直致力于Linux系统下的一线研发工作。令人欣喜的是,盼盼凭借他多年的实战经验,深入剖析了从Linux操作系统到SoC芯片驱动的每一个环节,不仅详细阐述了它们的运作原理,更是洞察了背后的深层逻辑。对于那些渴望提升技术实力的技术爱好者来说,这无疑是一个极佳的起点,可成为升职加薪、进军大厂的得力助手!

——RT-Thread创始人,熊谱翔

Linux系统庞大而复杂,一个原因在于缺乏文档。阅读源码当然是本质的方法,但是你从哪个文件开始?函数调用过程如何?你能理清楚这些,其实已经消耗了极多的时间。本书讲解各个模块时,把它的主体调用过程罗列了出来,跟着本书可以快速掌握这些模块的主体框架、使用流程,然后再去阅读源码会事半功倍。

——深圳百问网科技有限公司创办人,韦东山

提前拜读了盼盼的这本书,受益匪浅,该书的突出特点是文字简练、结构清晰、内容翔实,很适合Linux开发者学习使用。

——CLK导师团成员、Linux内核多个项目的作者,宋宝华

操作系统方面的知识是计算机科学中需要掌握的,而Linux内核是人类历史上开放的,也是重要的和应用很多的,因为它已经属于全人类而不是某人某公司某国家。

操作系统是应用与硬件的桥梁。

盼盼是我认识很久的一位非常热衷对操作系统和芯片进行研究的工程师,这本书体现了他积累的丰富的、宝贵的行业实践经验。本书对新一代的系统工程师来说是非常好的入门指南,因为它既有操作系统有关方面的知识,也有硬件芯片实操方面的内容介绍。祝读者朋友们在阅读这本书的过程中收获快乐及能力提升。

——深度数智/鉴释科技创始人,梁宇宁

如果大家想要了解Linux内核如何管理和驱动硬件的工作原理,相信这本书会给您带来很多帮助。作者一直工作在开发一线,书中很多内容都是作者的经验总结,结合软件代码和硬件原理讲解,实践性很强。这本书对不了解硬件的软件工程师来说也是一个很好的知识补充。

——荣耀软件工程技术负责人,赵俊民

作者是我多年的朋友,凭借在国际顶尖科技公司多年的芯片开发和Linux内核经验,他将复杂的芯片架构与操作系统机制以清晰、系统的方式呈现给读者。这本书既适合芯片开发者理解操作系统,也适合Linux内核开发者深入硬件底层。

——八英里电子科技有限公司创始人,王晓辉

我长期阅读作者的“人人极客社区”自媒体,文章软硬结合、图文并茂、深入浅出、条分缕析,受益匪浅,建议阅读此书的读者也去关注他的自媒体,定会收获满满!

——泰晓科技Linux技术社区创始人,吴章金

本书的出版令人兴奋,作者高屋建瓴,同时从芯片和操作系统角度讲解技术,深入浅出地打通二者之间的关系,别具一格,对有志提升底层内功的朋友很有帮助!

——银河雷神特大型自研操作系统作者,谢宝友

 

行业媒体

Linux几乎是近些年中所有重要技术的基石。现代的技术里上到各种流行的互联网应用后台架构,下到各种芯片的开发都依赖Linux内核。本书几乎涵盖了Linux内核中的所有重要模块,既包括内存、进程、文件系统等核心模块,也涵盖了电源、时钟、设备、中断等。对于想系统学习Linux内核工作内部机制的同学来说,本书非常合适。

——自媒体“开发内功修炼”作者,张彦飞

这本书带来一个全新的视角和思路,犹如一座桥梁,连接起了操作系统与芯片开发。操作系统偏“软”,芯片开发偏“硬”,有了前面的操作系统的基础,芯片开发自然水到渠成,不论是启动过程,还是芯片的设备管理。而芯片中和操作系统息息相关的硬件资源,如电源、时钟、引脚、时间模块等,书中也有详细的基础讲解和对应的操作过程。如此一来,便可以打通从芯片系统到硬件开发的所有步骤。

——达尔闻创始人,妮mo

从书名可知,这本书是市面上少有的能够同时讲清Linux操作系统和底层SoC关键原理的图书,硬件芯片是载体,软件系统是灵魂,软硬结合才是真正的嵌入式。作者在国际领先芯片原厂辛勤工作十余年,对芯片内部的各个模块了如指掌,在此基础上,作者充分挖掘了Linux内核实现之于硬件资源的关键应用,并且在实际开发过程中能够做到上下一体,融会贯通,实属难得。强推!

——自媒体“痞子衡嵌入式”作者,痞子衡

很开心读到这本书,市面上写软件的书不少,写硬件的书也很多,但软硬件结合来写的作品较少。本书从Linux内核的内存管理、进程调度、文件系统、系统调用等模块出发,逐层剖析操作系统的复杂机制;同时深入SoC芯片开发的关键环节,包括启动流程、设备模型、电源管理、时钟控制和中断处理等,将软硬件开发的知识体系有机融合在一起。本书内容系统、细节丰富,既适合操作系统开发者深入学习,也为芯片开发工程师提供了一条从硬件原理到驱动实现的清晰路径。无论是工程实践还是学术研究,这本书都能帮助读者理解从代码到硅片背后深藏的技术逻辑,打破软硬件开发的壁垒。

——自媒体“闪客”作者,闪客

嵌入式Linux的知识点很多,且非常繁杂,软硬件知识都要掌握,使很多初学者无从下手。许多同学有心学习,但东学一点、西看一下,忙碌了大半年,连嵌入式的基础都没掌握,究其原因,还是因为没有系统性地学习嵌入式Linux的重点知识。这本书的特点就是整理了嵌入式Linux的精华,让初学者不再走弯路,跟着这本书中的知识点学习,再通过代码实践起来,掌握嵌入式Linux开发将不再那么困难。

——自媒体<strongerHuang>作者,黄工

我有过无数次想写一本Linux图书的冲动,又在无数次冲动之后停止了继续行动。写作是一件烦琐且需要毅力的事,而技术书籍更是需要反复推敲和打磨的,作者花费了大量时间和精力,终于完成了本书的架构以及编写,不仅为Linux底层开发者提供了直接的技术资料,更提供了和资深技术开发者直接对话的窗口,非常值得一读。

——自媒体“嵌入式Linux”作者,韦启发

本书是一本不可多得的技术佳作,深入剖析了Linux内核与SoC模块的开发。无论你是初学者还是资深工程师,这本书都将为你提供实用的知识和技巧,帮助你在嵌入式系统开发中游刃有余。让我们一起探索Linux的无限可能。

——自媒体“良许Linux”作者,良许

操作系统作为用户与计算机硬件之间的桥梁,负责管理计算机的硬件组件,如CPU、内存、硬盘等,确保这些资源被高效合理地使用,本书对操作系统重要的子系统内存管理、进程管理、文件系统、驱动等都做了详细阐述,除此之外,本书还详细讲解了Uboot如何引导操作系统启动。通过本书,大家可以掌握操作系统常用的管理机制,尤其是操作系统与芯片交互的细节,这是一本不可多得的好书。

——自媒体“一口Linux”作者,彭丹

作为高校教师,我认为《打通Linux操作系统和芯片开发》一书极具价值。作者从操作系统核心模块及SoC开发流程关键领域深入讲解,基于实践经验,逻辑严谨、层层递进,案例丰富实用,是理论与实践结合的佳作,值得相关读者研读。

——自媒体“大鱼机器人”作者,张巧龙

这本书从操作系统和SoC,也就是软件和硬件两个角度对现代MPU和Kernel机制做了深度讲解,我个人尤其感兴趣的是SMP负载均衡和驱动模型、设备树部分。本书可谓紧跟技术发展新趋势,娓娓道来、深入浅出,可见作者对MPU+Linux技术栈的研发经验丰富,见解颇深,建议大家来一读。

——自媒体“朱老师硬科技学习”作者,朱有鹏


展开
目录

第1章内存管理

1.1内存管理的机制

1.1.1分段机制

1.1.2分页机制

1.2CPU访问内存的过程

1.2.1PN/PFN/PT/PTE

1.2.2MMU中的TLB和TTW

1.2.3一级页表映射过程

1.2.4为什么使用多级页表

1.3内存架构和内存模型

1.3.1Linux内存模型

1.3.2Linux内存映射

1.4memblock物理内存的初始化

1.4.1early boot memory

1.4.2memblock的数据结构

1.4.3memblock的初始化

1.5memblock物理内存的映射

1.5.1paging_init函数

1.5.2__create_pgd_mapping函数

1.6物理内存的软件划分

1.6.1划分的数据结构

1.6.2划分的初始化

1.7页帧分配器的实现

1.8页帧分配器的快速分配之水位控制

1.8.1水位的初始化

1.8.2水位的判断

1.9页帧分配器的快速分配之伙伴系统

1.9.1相关的数据结构

1.9.2伙伴算法申请页面

1.9.3伙伴算法释放页面

1.10页帧分配器的慢速分配之内存回收

1.10.1数据结构

1.10.2代码流程

1.11页帧分配器的慢速分配之内存碎片规整

1.11.1什么是内存碎片化

1.11.2规整碎片化页面的算法

1.11.3数据结构

1.11.4规整的三种方式

第2章进程管理

2.1内核对进程的描述

2.1.1通过task_struct描述进程

2.1.2如何获取当前进程

2.2用户态进程/线程的创建

2.2.1fork函数

2.2.2vfork函数

2.2.3pthread_create函数

2.2.4三者之间的关系

2.3do_fork函数的实现

2.3.1copy_process函数

2.3.2wake_up_new_task函数

2.4进程的调度

2.4.1进程的分类

2.4.2调度相关的数据结构

2.4.3调度时刻

2.4.4调度算法

2.4.5CFS调度器

2.4.6选择下一个进程

2.4.7进程上下文切换

2.5多核系统的负载均衡

2.5.1多核架构

2.5.2CPU拓扑

2.5.3调度域和调度组

2.5.4何时做负载均衡

2.5.5负载均衡的基本过程

第3章同步管理

3.1原子操作

3.2自旋锁

3.3信号量

3.4互斥锁

3.5RCU

第4章文件系统

4.1磁盘

4.1.1磁盘类型

4.1.2磁盘读写数据所花费的时间

4.2磁盘的分区

4.3磁盘上数据的分布

4.4查看文件系统的文件

4.4.1文件系统对象结构

4.4.2查看分区信息

4.4.3查看超级块

4.4.4查看块组描述符

4.5ext4文件系统

4.5.1磁盘布局

4.5.2ext3布局

4.5.3ext4中的inode

4.5.4ext4文件寻址

4.6查找文件test的过程

4.7虚拟文件系统

4.7.1文件系统类型(file_system_type)

4.7.2超级块(super_block)

4.7.3目录项(dentry)

4.7.4索引节点(inode)

4.7.5文件对象(file)

第5章系统调用

5.1系统调用的定义

5.2系统调用的处理流程

5.2.1用户态的处理

5.2.2内核态的处理

第6章SoC启动

6.1Uboot启动前的工作

6.1.1链接脚本和程序入口

6.1.2镜像容器

6.1.3SPL的启动

6.1.4ATF的启动

6.2Uboot的初始化过程

6.2.1Uboot的启动

6.2.2Uboot驱动的初始化

6.2.3Uboot的交互原理

6.3kernel的初始化过程

6.3.1内核运行的第一行代码

6.3.2head.S的执行过程

6.3.3内核子系统启动的全过程

第7章设备模型

7.1设备模型的基石

7.1.1设备模型是什么

7.1.2设备模型的实现

7.2设备模型的探究

7.2.1总线、设备和驱动模型

7.2.2设备树的出现

7.2.3各级设备的展开

第8章设备树原理

8.1设备树的基本用法

8.1.1设备树的结构

8.1.2设备树的语法

8.2设备树的解析过程

8.3设备树常用of操作函数

8.3.1查找节点的of函数

8.3.2查找父/子节点的of函数

8.3.3提取属性值的of函数

8.3.4其他常用的of函数

第9章电源模块

9.1电源子系统的power domain

9.1.1power domain的硬件实现

目录XVII

9.1.2power domain的软件实现

9.2电源子系统的runtime pm

9.2.1runtime pm在内核中的作用

9.2.2runtime pm的软件流程

9.2.3suspend/resume的过程

第10章时钟模块

10.1时钟控制器的硬件实现

10.1.1Clock Source

10.1.2Clock Root

10.1.3Clock Gate

10.2时钟控制器的驱动实现

10.3时钟子系统的实现

10.3.1时钟子系统之Clock Provider

10.3.2时钟子系统之Clock Consumer

第11章引脚模块

11.1IOMUX控制器的工作原理

11.1.1IOMUX控制器的硬件实现

11.1.2引脚的使用

11.2pinctrl驱动和client device使用过程

11.2.1pinctrl_desc结构体

11.2.2IOMUX控制器驱动初始化

11.2.3client device使用过程

第12章时间模块

12.1定时器和计时器的初始化

12.1.1local timer的初始化

12.1.2system counter的初始化

12.2定时器的应用

12.2.1高分辨率定时器

12.2.2低分辨率定时器

12.2.3sched_timer

第13章中断模块

13.1中断控制器(GIC)硬件原理

13.1.1GIC v3中断类别

13.1.2GIC v3组成

13.1.3中断路由

13.1.4中断处理状态机

13.1.5中断处理流程

13.2中断控制器的驱动实现

13.3中断的映射

13.3.1数据结构

13.3.2中断控制器注册irq_domain

13.3.3外设硬中断和虚拟中断号的映射关系

13.4中断的注册

13.5中断的处理

13.5.1保护现场

13.5.2中断处理

13.5.3恢复现场


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证