猜你喜欢
用“芯”探核 基于龙芯的Linux内核探索解析

用“芯”探核 基于龙芯的Linux内核探索解析

书籍作者:陈华才 ISBN:9787115444929
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9370
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
这是一本基于龙芯平台,结合Linux-5.4.x 版本的内核源代码来解析Linux 内核的书籍。本书首先介绍了有关龙芯处理器和Linux 内核的基础知识,然后重点讲解了内核启动、异常与中断、内存管理、进程管理、显卡驱动、网卡驱动和电源管理这7 大板块的内容。本书甚少涉及代码的细枝末节,而是重点关注代码实现的主干流程,并且创造性地引入了树形视图和链式视图这两种比流程图更好用的代码解析方法。
本书适合Linux 系统相关的开发人员,特别是基于龙芯处理器做内核开发的技术人员学习参考。
作者简介
陈华才
博士,高级工程师。现任江苏航天龙梦信息技术有限公司副总工程师,负责龙芯3号处理器的内核开发。作为Linux内核中MIPS/ 龙芯3 号的Maintainer,向Linux 内核官方提交了大量的代码。陈华才毕业于华中科技大学计算机学院,攻读博士学位期间,先后在中国电力科学院、英特尔开源技术中心实习,参与高可靠冗余系统、Xen 虚拟机监控器和Linux 内核的研发。2012年进入中国科学院计算技术研究所博士后流动站,同时被派往江苏梦兰集团企业博士后工作站从事博士后研究工作,其间获得“江苏省科技创新团队”和“常熟市科技创新创业领军人才”等人才计划资助。
编辑推荐
Linux内核中龙芯3号的Maintainer十年磨一剑
基于MIPS/龙芯架构的Linux-5.x版本内核
立足龙芯而包罗万象
创造性地使用“树形视图”和“链式视图”来解析源代码

胡伟武/龙芯中科技术有限公司董事长
金海/CCF副理事长,华中科技大学教授
作序推荐
目录
第01 章 基础知识
1.1 龙芯处理器简介 002
1.1.1 龙芯3 号功能特征 004
1.1.2 龙芯3 号处理器核 008
1.1.3 龙芯电脑基本结构 015
1.2 Linux 内核简介 018
1.2.1 Linux 内核发展简史 019
1.2.2 Linux 内核的开发模式 021
1.2.3 关于长期维护稳定版 025
1.2.4 龙芯的内核版本选型 025
1.3 如何高效阅读代码 027
1.3.1 找准入口点 028
1.3.2 理清主脉络 029
1.3.3 顾名思义看功能 040
1.3.4 理解补丁文件 042
1.4 如何开发健壮内核 045
1.4.1 内核代码风格 046
1.4.2 合理生成补丁 048
1.4.3 谨慎对待创新 049

第02 章 内核启动解析
2.1 内核源代码目录结构 054
2.2 内核启动过程:主核视角 055
2.2.1 第一入口:kernel_entry 056
2.2.2 第二入口:start_kernel() 063
2.2.3 重要函数:setup_arch() 070
2.2.4 重要函数:trap_init() 083
2.2.5 重要函数:init_IRQ() 087
2.2.6 重要函数:time_init() 092
2.2.7 1 号进程:kernel_init() 096
2.3 内核启动过程:辅核视角 104
2.3.1 第一入口:smp_bootstrap 105
2.3.2 第二入口:start_secondary() 107
2.4 本章小结 110

第03 章 异常与中断解析
3.1 寄存器操作 113
3.2 异常处理解析 114
3.2.1 复位异常和NMI 115
3.2.2 缓存错误异常 116
3.2.3 TLB/XTLB 异常 117
3.2.4 其他通用异常 126
3.3 中断处理解析 137
3.3.1 中断处理的入口 137
3.3.2 中断处理的分派 140
3.4 软中断、小任务与工作队列 151
3.4.1 软中断softirq 151
3.4.2 小任务tasklet 154
3.4.3 工作队列workqueue 156
3.5 本章小结 159

第04 章 内存管理解析
4.1 内存管理相关概念 161
4.1.1 龙芯3 号的高速缓存 161
4.1.2 龙芯3 号的TLB 168
4.1.3 龙芯的虚拟地址空间 170
4.2 物理内存页帧管理 171
4.2.1 物理地址空间 177
4.2.2 伙伴系统算法 183
4.3 内核内存对象管理 201
4.3.1 数据结构与API 202
4.3.2 核心函数解析 209
4.4 分页映射内存管理 217
4.4.1 持久内核映射 221
4.4.2 临时内核映射 226
4.4.3 非连续内存管理 229
4.5 进程地址空间管理 241
4.5.1 数据结构与API 241
4.5.2 内存映射 250
4.5.3 堆区管理 257
4.5.4 缺页异常处理 258
4.6 内存管理其他话题 266
4.6.1 反向映射 267
4.6.2 内存回收 271
4.6.3 巨页机制 274
4.7 本章小结 275

第05 章 进程管理解析
5.1 进程描述符 278
5.1.1 运行状态相关 285
5.1.2 标识调度相关 289
5.1.3 其他重要部分 295
5.2 进程创建 296
5.2.1 复制新进程 296
5.2.2 执行新程序 308
5.3 进程销毁 314
5.3.1 退出程序执行 314
5.3.2 清理进程资源 317
5.4 进程调度 327
5.4.1 基本概念 328
5.4.2 发展历史 330
5.4.3 公平调度策略 334
5.4.4 调度核心解析 347
5.4.5 进程切换解析 360
5.5 其他话题 364
5.5.1 CPU 负载 364
5.5.2 调度域与调度组 370
5.5.3 NUMA 均衡调度 374
5.6 本章小结 380

第06 章 显卡驱动解析
6.1 显卡概述 382
6.1.1 发展简史及有关概念 382
6.1.2 现代显卡的硬件结构 385
6.2 Linux 图形系统架构 388
6.2.1 X-Window 和Wayland 388
6.2.2 直接渲染、间接渲染和显卡驱动 391
6.3 Linux 内核显卡驱动 392
6.3.1 寄存器读写 393
6.3.2 常用数据结构 394
6.3.3 显卡初始化 411
6.3.4 命令流处理 435
6.3.5 存储区域间数据交换 439
6.3.6 GPU 重置(Reset) 443
6.4 本章小结 446

第07 章 网卡驱动解析
7.1 网络子系统概述 448
7.2 Linux 以太网卡驱动 449
7.2.1 常用数据结构 449
7.2.2 网卡初始化 452
7.2.3 网卡的开与关 456
7.2.4 数据发送与接收 457
7.2.5 故障检测与修复(看门狗) 466
7.3 本章小结 468

第08 章 电源管理解析
8.1 电源管理概述 470
8.2 运行时电源管理 473
8.2.1 动态变频 474
8.2.2 自动调核 488
8.3 系统级睡眠管理 507
8.3.1 睡眠到内存(待机) 509
8.3.2 睡眠到磁盘(休眠) 520
8.4 本章小结 527

附录A 并发与同步原语
A.1 内存屏障 529
A.2 每CPU 变量 533
A.3 原子操作 535
A.4 开关抢占 539
A.5 自旋锁 540
A.6 顺序锁 544
A.7 信号量 546
A.8 互斥量 548
A.9 RCU 机制 549
A.10 其他原语 556

附录B Linux 内核大事记
B.1 史前时代 560
B.2 奇偶时代 560
B.3 快速演进时代 562
B.4 极速演进时代 564
后记
参考文献
短评

买了这本书之后,工作上的各种难题迎刃而解,如有神助。技术突飞猛进,领导觉察之后,连连赞扬,提倡向小贵同志学习,又给我申请下个月加薪。我捧着这本给我再生力量的书,心中一片热乎。 接着总经理也来找,并安排了董事长的女儿和我相亲,还要借我钱首付买房,我满怀着对未来的憧憬,在派出所隔壁的咖啡厅和董事长的千金见面,她德音如铃,说道爱学习的男人是她的最爱,是怎样…… 我还没等她问就脱口而出,我只是买了一本“用芯探核”,也没什么。突然董事长千金花容一收,说“原来如此!”拿起手机打了个电话,说失陪了。 当我回到公司,领导就问,我怎么可以去骚扰董事长的女儿,还要挟总经理的钱买房,最后说了一句,公司可以不揭发我,但一定要手写悔过书,让我自己好好考虑,好自为之。

2020-08-06 22:14:12

这本书对研究龙芯和内核非常有参考价值

2020-08-06 21:52:07

很棒的书? !!!值得一看!!

2020-08-06 23:35:22

标签
内核,MIPS,Linux
产品特色