Linux源码趣读
全新正版 极速发货
¥
91.47
5.8折
¥
158
全新
库存10件
作者闪客
出版社电子工业出版社
ISBN9787121462870
出版时间2023-09
装帧平装
开本16开
定价158元
货号1203084553
上书时间2024-09-05
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
闪客,平时乐于研究计算机底层技术与技术分享。作为“无聊的闪客”微信公众号作者,两年时间积累近10万粉丝,擅长使用通俗易懂的语言讲解复杂的技术原理,他的“破玩意儿”系列、“降妖除魔”系列、“操作系统源码”系列等,都深受读者喜爱。
目录
第1部分 进入内核前的苦力活
第1回 最开始的两行代码 / 2
开机后初始化指向BIOS / 3
读取硬盘启动区(第一扇区) / 4
加载到内存 0x7c00 位置,并跳转到这里 / 5
第2回 从0x7c00 到0x90000 / 8
第3回 做好访问内存的基础准备工作 / 13
这些寄存器是干什么的 / 14
CPU 访问内存的三种途径 / 15
再次回顾一下前三回的内容 / 16
第4回 把全部的操作系统代码从硬盘搬到内存 / 17
把剩下的操作系统代码从硬盘请到内存 / 17
聊聊操作系统的编译过程 / 21
挪来挪去的真讨厌 / 22
扩展阅读:什么是中断 / 23
扩展阅读:什么是软中断 / 38
第5回 将重要的操作系统代码放在零地址处 / 48
第6回 解决段寄存器的历史包袱问题 / 56
保护模式下的物理地址计算方式 / 57
全局描述符表 / 59
第7回 六行代码进入保护模式 / 63
第8回 重新设置中断描述符表与全局描述符表 / 69
第9回 开启分页机制 / 75
第10回 进入main 函数前的最后一跃 / 86
第1部分总结与回顾 / 92
第2部分 “大战”前期的初始化工作
第11回 整个操作系统就二十几行代码 / 98
第12回 管理内存前先划分出三个边界值 / 103
第13回 主内存初始化mem_init / 106
第14回 中断初始化trap_init / 110
第15回 块设备请求项初始化blk_dev_init / 116
第16回 控制台初始化tty_init / 123
第17回 时间初始化time_init / 132
第18回 进程调度初始化sched_init / 138
第19回 缓冲区初始化buffer_init / 147
第20回 硬盘初始化hd_init / 155
第2部分总结与回顾 / 159
第3部分 一个新进程的诞生
第21回 第3部分全局概述 / 172
move_to_user_mode / 173
fork / 174
init / 174
pause / 175
第22回 从内核态切换到用户态 / 176
让进程无法跳出用户态 / 176
内核态与用户态的本质―特权级 / 177
特权级转换的方式 / 178
除了改变特权级还做了哪些事 / 181
第23回 如果让你来设计进程调度 / 184
整体流程设计 / 185
上下文环境 / 186
运行时间信息 / 188
优先级 / 188
进程状态 / 189
第24回 从一次定时器滴答来看进程调度 / 192
第25回 通过fork 看一次系统调用 / 197
第26回 fork 函数中进程基本信息的复制 / 205
……
内容摘要
用读一本小说的心态来阅读本书,你会对整个操作系统的体系结构和逻辑细节有非常清晰的认识,从此爱上并阅读更多的操作系统源码。第1部分:进入内核前的苦力活。覆盖从开机到运行到Linux中的main函数的关键流程解析,帮你清晰认识Intel CPU的体系结构。第2部分:“大战”前期的初始化工作。讲述main中的各种初始化函数,这些函数是操作系统各个模块的交互桥梁,为理解后续操作系统各个模块的运作原理打好基础。第3部分:一个新进程的诞生。讲述从内核态切换至用户态,并建立起第一个用户进程的全部过程。学完这部分,你将会理解一个多进程的操作系统是如何建立和运作的。第4部分:shell程序的到来。主要讨论如何将磁盘中存储的shell程序加载到内存中来,并最终交给CPU去执行。通过这个过程你会看清一个程序从存储到硬盘到最终被执行的全部过程。第5部分:一条shell命令的执行。让我们跟着一条shell命令“走南闯北”,从用户输入给计算机一个字符串开始,一直到该程序的最终执行,这一过程能帮你把前面所学的知识融会贯通,整个操作系统的启动流程与运作原理,将会生动形象地浮现在你的脑海中。
主编推荐
"了解操作系统的体系结构,以及这样的体系是怎样一步步从第一行代码开始,逐步建立起来的。
用读一本小说的心态阅读Linux的源码,用通俗的语言帮你克服对操作系统源码的恐惧。
按照Linux源码的执行顺序,像按照时间线读一本小说一样,本着探索与发现的心态来阅读源码。你会发现,原来阅读源码这么有趣,可以像读小说一样有种“上头”的感觉。
本书在讲解晦涩难懂的技术原理和细节时,配有大量生动形象且准确的图解,会给你带来十足的画面感。
《深入理解Linux网络》作者张彦飞、《码农翻身》作者刘欣等专家力荐"
媒体评论
"作为一个操作系统开发爱好者,我看到这本书的时候是非常激动的,要是早点看到的话,那该有多好啊!本书以生动有趣的方式来对章节进行划分,从内核的起始代码,到运行shell执行命令,向读者剖析了早期Linux是如何一步一步地实现的。本书图文并茂,用大量的图片来分析文中的内容,真是“一图值千字”。本书偏向内容讲解风格,并不会每一行都做解释,主要对比较困难和复杂的地方进行讲解。
希望读者可以认真品读本书,在书中感受到学习操作系统的乐趣,提高自己对底层系统的理解能力,让生活中多一份乐趣!
——胡自成,开源操作系统BookOS作者
剖析Linux源码的书不少,这本书却非常与众不同,给我的感觉就是特别清爽,它不讲繁杂枯燥的理论,而是用一个个场景和相关的代码吸引着我,让我一步步地陷了进去,像看小说一样,恨不得赶紧看完。
——刘欣,畅销书《码农翻身》《半小时漫画计算机》作者
阅读这本书,不禁想到了我学习和使用Linux的经历,怀揣“体系化”的Linux操作系统知识,但处理一个真实问题时却无从下手。本书则是独辟蹊径,以一些“线索”将内核代码抽丝剥茧地串联起来,从通常静态的功能模块划分方式,改为针对典型过程的模块动态协同拆解,图文并茂。本书适合希望加快内核代码学习、提升操作系统内核设计、开发能力的爱好者、初中级工程师。
——杨晓峰,腾讯大数据编译器研发团队负责人
Linux操作系统几乎可以说是现在整个IT行业的技术基石。互联网服务器的运行、Android手机的运行都是跑在Linux之上的。所以每一位IT从业者都有必要了解底层是如何运行的。本书通过Linux 0.11的启动过程进行穿针引线,把操作系统中的核心技术点都介绍到了。书中首先介绍了寄存器是如何开始工作的,操作系统是如何被加载到内存中的,分段与分页是如何工作的,接着还又介绍了键盘中断初始化、硬盘块设备初始化、输出控制台初始化、进程调度初始化。这是一本非常好的学习Linux的图书,欢迎和Linux打交道的所有从业者阅读!
——张彦飞,微信公众号“开发内功修炼”和畅销书《深入理解Linux网络》作者"
— 没有更多了 —
以下为对购买帮助不大的评价