| 书[0名0]: | Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理([0第0]2版)|3767800 |
| 图书定价: | 89元 |
| 图书作者: | [亲斤]设计团队 |
| 出版社: | [1机1] 械工业出版社 |
| 出版日期: | 2013/5/1 0:00:00 |
| ISBN号: | 9787111421764 |
| 开本: | 16开 |
| 页数: | 455 |
| 版次: | 2-1 |
| 内容简介 |
| 《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理([0第0]2版)》的[0第0]1版广获好[0评0],版[0[0权0]0]被中[0国0]台湾和美[0国0]两家[0大0]型出版社引进,[0第0]2版根据读者的反馈和作者对操作系统的[亲斤]研究成果对[0第0]1版进行了[0大0]幅[0优0]化和重写,使其内容质量更上一层楼。本书在众多关于Linux内核的书中[0独0]树一帜,它在世界范围内[0首0]次提出并阐述了操作系统设计的核心指导思想——主奴 [1机1] 制,这是所有操作系统研究者的一笔宝贵财富。它也是一本能真正引导我们较为容易地、[0极0]为透彻地理解Linux内核的经典之作,也可能是[0当0]前能从本质上指引我们去设计和开发拥有自主[0知0]识产[0[0权0]0]的操作系统的著作。 《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理([0第0]2版)》的[0大0]特点是它的写作方式和内容组织方式与同类书完全不同。它在深刻地分析了传统讲解方[0法0]的利弊之后,破旧立[亲斤],从认[0知0][0学0]的角度开创了一种全[亲斤]的方式。以操作系统的真实运行过程为主线,结合真实的内核源代码、300余幅精确的内核运行时序图和具有点睛之妙的文字说明,对操作系统从开 [1机1] 加电到系统完全准备就绪,及运行用户程序的整个过程进行了系统而完整地分析,深刻地揭示了其间每一个动作的设计意图和实现原理,完美地再现了操作系统设计者的设计思路。阅读本书就如同跟随着操作系统设计者一起去思考,我们[0会0]在阅读的过程中发现Linux内核设计的精妙,[0会0]发现原来处处都“暗藏玄 [1机1] ”,哪怕是一行很短的代码。 《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理([0第0]2版)》在所有细节上都力求完美。为了保证[0知0]识的准确性,操作系统运行过程中的每个动作都经过了严格的考证;为了让我们真正理解Linux内核的原理,它突破传统,以Linux的真实运行过程为主线进行讲解;为了做到真正易于理解,创[亲斤]性地使用了图解的方式,精心绘制了300余幅分辨率600dpi的时序图,图中表现的运行时结构和状态与操作系统实际运行时的真实状态完全吻合;为了提高阅读体验,本书采用了[0[0双0]0]色印刷,以便于我们更清楚地观察每一幅图中的细节。 |
| 目录 |
《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理([0第0]2版)》 前 言 [0第0]1章 从开 [1机1] 加电到执行 main函数之前的过程1 1.1 启动BIOS,准备实模式下的中断向量表和中断服务程序1 1.1.1 BIOS的启动原理2 1.1.2 BIOS 在内存中加载中断向量表和中断服务程序3 1.2 加载操作系统内核程序并为保护模式做准备5 1.2.1 加载部分内核代码——引导程序(bootsect)5 1.2.2 加载[0第0]二部分内核代码——setup7 1.2.3 加载[0第0]三部分内核代码——system模块13 1.3 开始向32位模式转变,为main函数的调用做准备17 1.3.1 关中断并将system移动到内存地址起始位置0x0000017 1.3.2 设置中断描述符表和全局描述符表19 1.3.3 打开A20,实现32位寻址21 1.3.4 为保护模式下执行head.s做准备23 1.3.5 head.s开始执行26 1.4 本章小结44 [0第0]2章 设备环境初始化及激活进程045 2.1 设置根设备、硬盘46 2.2 规划物理内存格局,设置缓冲区、虚拟盘、主内存46 2.3 设置虚拟盘空间并初始化48 2.4 内存管理结构mem_map初始化50 2.5 异常处理类中断服务程序挂接51 2.6 初始化块设备请求项结构57 2.7 与建立人 [1机1] 交互界面相关的外设的中断服务程序挂接59 2.7.1 对串行口进行设置59 2.7.2 对显示器进行设置60 2.7.3 对键盘进行设置61 2.8 开 [1机1] 启动时间设置63 2.9 初始化进程065 2.9.1 初始化进程068 2.9.2 设置时钟中断71 2.9.3 设置系统调用总入口71 2.10 初始化缓冲区管理结构73 2.11 初始化硬盘75 2.12 初始化软盘77 2.13 开启中断78 2.14 进程0由0特[0[0权0]0]级翻转到3特[0[0权0]0]级,成为真正的进程78 2.15 本章小结80 [0第0]3章 进程1的创建及执行81 3.1 进程1的创建81 3.1.1 进程0创建进程181 3.1.2 在task[64]中为进程1申请一个空闲位置并获取进程号87 3.1.3 调用copy_process函数89 3.1.4 设置进程1的分页管理94 3.1.5 进程1共享进程0的文件99 3.1.6 设置进程1在GDT中的表项99 3.1.7 进程1处于就绪态100 3.2 内核次做进程调度103 3.3 轮转到进程1执行107 3.3.1 进程1为安装硬盘文件系统做准备109 3.3.2 进程1格式化虚拟盘并更换根设备为虚拟盘135 3.3.3 进程1在根设备上加载根文件系统138 3.4 本章小结151 [0第0]4章 进程2的创建及执行152 4.1 打开终端设备文件及复制文件句柄152 4.1.1 打开标准输入设备文件152 4.1.2 打开标准输出、标准错误输出设备文件166 4.2 进程1创建进程2并切换到进程2执行169 4.3 加载shell程序178 4.3.1 关闭标准输入设备文件,打开rc文件178 4.3.2 检测shell文件181 4.3.3 为shell程序的执行做准备186 4.3.4 执行shell程序192 4.4 系统实现怠速196 4.4.1 创建update进程196 4.4.2 切换到shell进程执行198 4.4.3 重建shell204 4.5 本章小结205 [0第0]5章 文件操作206 5.1 安装文件系统206 5.1.1 获取外设的[0超0]级块206 5.1.2 确定根文件系统的挂接点209 5.1.3 将[0超0]级块与根文件系统挂接210 5.2 打开文件211 5.2.1 将进程的*filp[20]与file_table[64]挂接212 5.2.2 获取文件i节点213 5.2.3 将文件i节点与file_table[64]挂接223 5.3 读文件224 5.3.1 确定数据块在外设中的位置224 5.3.2 将数据块读入缓冲块228 5.3.3 将缓冲块中的数据复制到进程空间228 5.4 [亲斤]建文件230 5.4.1 查找文件230 5.4.2 [亲斤]建文件i节点231 5.4.3 [亲斤]建文件目录项233 5.5 写文件238 5.5.1 确定文件的写入位置238 5.5.2 申请缓冲块241 5.5.3 将指定的数据从进程空间复制到缓冲块241 5.5.4 数据同步到外设的两种方[0法0]242 5.6 修改文件245 5.6.1 重定位文件的[0当0]前操作指针246 5.6.2 修改文件246 5.7 关闭文件248 5.7.1 [0当0]前进程的filp与file_table[64]脱钩248 5.7.2 文件i节点被释放249 5.8 删除文件250 5.8.1 对文件的删除条件进行检查251 5.8.2 进行具体的删除工作252 5.9 本章小结255 [0第0]6章 用户进程与内存管理256 6.1 线性地址的保护256 6.1.1 进程线性地址空间的格局256 6.1.2 段基址、段限长、GDT、LDT、特[0[0权0]0]级257 6.2 分页260 6.2.1 线性地址映射到物理地址260 6.2.2 进程执行时分页261 6.2.3 进程共享页面267 6.2.4 内核分页270 6.3 一个用户进程从创建到退出的完整过程273 6.3.1 创建str1进程273 6.3.2 str1进程加载的准备工作285 6.3.3 str1进程的运行、加载289 6.3.4 str1进程的退出296 6.4 多个用户进程同时运行299 6.4.1 进程调度299 6.4.2 页写保护303 6.5 本章小结309 [0第0]7章 缓冲区和多进程操作文件310 7.1 缓冲区的作用310 7.2 缓冲区的总体结构311 7.3 b_dev、b_blocknr及request的作用312 7.3.1 保证进程与缓冲块数据交互的正确性312 7.3.2 让数据在缓冲区中停留的时间尽可能长320 7.4 uptodate和dirt的作用325 7.4.1 b_uptodate的作用326 7.4.2 b_dirt的作用331 7.4.3 i_uptodate、i_dirt和s_dirt的作用334 7.5 count、 lock、wait、request的作用336 7.5.1 b_count的作用336 7.5.2 i_count的作用338 7.5.3 b_lock、*b_wait的作用341 7.5.4 i_lock、i_wait、s_lock、*s_wait的作用344 7.5.5 补充request的作用347 7.6 实例1:关于缓冲块的进程等待队列349 7.7 总体来看缓冲块和请求项370 7.8 实例2:多进程操作文件的综合实例373 7.9 本章小结388 [0第0]8章 进程间通信389 8.1 管道 [1机1] 制389 8.1.1 管道的创建过程391 8.1.2 管道的操作396 8.2 信号 [1机1] 制410 8.2.1 信号的使用412 8.2.2 信号对进程执行状态的影响422 8.3 本章小结431 [0第0]9章 操作系统的设计指导思想432 9.1 运行一个简单的程序,看操作系统为程序运行做了哪些工作432 9.2 操作系统的设计指导思想——主奴 [1机1] 制434 9.2.1 主奴 [1机1] 制中的进程及进程创建 [1机1] 制435 9.2.2 操作系统的设计如何体现主奴 [1机1] 制436 9.3 实现主奴 [1机1] 制的三种关键技术438 9.3.1 保护和分页438 9.3.2 特[0[0权0]0]级440 9.3.3 中断441 9.4 建立主奴 [1机1] 制的决定性因素——先 [1机1] 443 9.5 软件和硬件的关系444 9.5.1 非用户进程——进程0、进程1、shell进程444 9.5.2 文件与数据存储445 9.6 父子进程共享页面450 9.7 操作系统的全局中断与进程的局部中断——信号450 9.8 本章小结451 结束语452 “[亲斤]设计团队”简介453 |
| 编辑推荐 |
[0畅0]销书全[亲斤]升级和[0大0]幅[0优0]化,[0第0]1版广获好[0评0],被翻译为繁体中文和英文(美[0国0])。 |
这本书的书名,乍一听就让人感觉一股“技术硬核”的味道扑面而来。我个人一直对底层技术有种近乎偏执的迷恋,而 Linux 内核无疑是这个领域中最具代表性的存在之一。虽然我不是内核开发者,但作为一名 Linux 用户和系统管理员,我对内核的了解程度直接关系到我解决问题的能力和排查故障的效率。我希望这本书能够深入浅出地讲解那些看似高深莫测的内核概念,比如中断处理、系统调用、设备驱动模型等等。尤其是我对中断处理流程一直有些模糊,希望能在这本书中找到清晰的脉络。而且,我一直认为理解一个系统的设计哲学比死记硬背代码更为重要,因此我非常期待书中能够阐述 Linux 内核在设计上的一些关键理念和权衡,例如它如何在性能、灵活性和稳定性之间取得平衡。如果书中能包含一些实际的案例分析,比如某个常见系统问题的内核层面成因,那对我来说就更具启发性了。这本书的厚度也暗示了内容的丰富程度,希望它能成为我案头常备的参考书,在我遇到疑难杂症时,能够为我提供指引。
评分这本书给我一种“沉浸式”学习的期待。我对 Linux 内核的兴趣源于我对计算机底层运作机制的强烈求知欲。我总觉得,要真正理解一个软件系统,尤其是像 Linux 这样一个庞大而复杂的系统,就必须深入到它的核心——内核。我非常好奇书中是如何“设计”和“实现”Linux 内核的,这其中蕴含了多少智慧和妥协。我特别期待书中能够对内核中的一些关键数据结构和算法进行详细的讲解,比如进程控制块(PCB)的构成、页表是如何工作的、以及各种锁机制的实现原理等等。如果书中能够提供一些调试和分析内核的实用技巧,或者介绍一些常用的内核开发工具,那将是锦上添花。我希望这本书能让我感受到 Linux 内核开发的“艺术性”,即如何在有限的资源下,通过精巧的设计和优化的算法,实现高性能和高稳定性。我甚至希望这本书能激发我去尝试修改和贡献一些内核代码的勇气。
评分从书名和出版社来看,这本书似乎是一本“干货”满满的技术书籍。我一直以来都对操作系统内核充满了敬畏和好奇,尤其是 Linux 内核,它作为开源世界的基石,其设计的精妙之处常常让我惊叹。我希望这本书能够填补我在 Linux 内核知识体系上的某些空白。我期待书中能够详细介绍 Linux 内核的引导过程,从 BIOS/UEFI 到 GRUB,再到最终内核的加载和初始化,这是一个非常关键且复杂的流程。同时,我也非常关心内核的内存管理机制,特别是虚拟内存、物理内存的分配与回收,以及TLB(Translation Lookaside Buffer)的作用。如果书中能对这些核心概念进行深入浅出的讲解,并辅以清晰的图示,相信能够极大地帮助我理解操作系统的运作本质。我希望这本书能够让我看到 Linux 内核的设计哲学,以及作者是如何将这些理念转化为实际代码的。
评分这本《包邮 Linux内核设计的艺术》给我最直观的感受就是它致力于将复杂的技术问题“艺术化”地呈现出来。作为一名对操作系统有一定基础了解的开发者,我一直在寻找一本能够系统性梳理 Linux 内核架构,并对其核心实现原理进行深度剖析的书籍。我特别关注书中关于“架构设计”的描述,这通常意味着本书不会止步于对各个子系统的简单介绍,而是会探讨它们是如何被组织起来,形成一个有机整体的。我对书中关于模块化设计、接口抽象以及各组件之间的依赖关系等方面的讲解非常感兴趣。如果书中能够结合实际的内核代码片段进行分析,但又不过分依赖于对具体代码细节的纠缠,而是着重于解释其背后的设计思路和权衡,那将是极好的。我期待通过阅读这本书,能够对 Linux 内核的演进过程、不同版本之间在设计上的取舍有一个更深的理解,从而不仅仅是“知道”内核是什么,更能“理解”它为什么是这样设计的。
评分刚拿到这本书,还没来得及深入阅读,但光是翻阅目录和前几章,就感觉这本书会是一次知识的洗礼。我一直对 Linux 内核的工作原理有着强烈的好奇心,尤其是那些隐藏在命令行之下,默默支撑着整个操作系统的复杂机制。这本书的命名方式——“设计艺术”——就暗示了它不仅仅是枯燥的代码堆砌,而是对 Linux 内核背后思想和架构的深度剖析。我特别期待书中关于进程调度、内存管理和文件系统部分的讲解,这些都是操作系统的核心,理解它们对于深入掌握 Linux 至关重要。我希望书中能够用生动形象的比喻和图示,将那些抽象的概念具象化,让像我这样并非科班出身的开发者也能轻松理解。这本书的“图解”二字也是我选择它的重要原因,往往一张精妙的图胜过千言万语,希望作者能够通过图示,清晰地展现内核的各个模块是如何协同工作的,它们之间的数据流和控制流又是如何传递的。如果这本书能够帮助我构建起对 Linux 内核更宏观、更系统的认识,那么它就值回票价了,甚至比这更有价值。我对它寄予厚望,希望能从中汲取养分,在未来的开发工作中更加得心应手。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有