《Linux内核完全剖析:基于0.内核》[62M]百度网盘|pdf下载|亲测有效
《Linux内核完全剖析:基于0.内核》[62M]百度网盘|pdf下载|亲测有效

Linux内核完全剖析:基于0.内核 pdf下载

出版社 机械工业出版社自营官方旗舰店
出版年 2021-10
页数 390页
装帧 精装
评分 8.6(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供Linux内核完全剖析:基于0.内核电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

内容简介

  《Linux内核完全剖析:基于0.12内核》对早期Linux内核(v0.12)全部代码文件进行了详细、全面的注释和说明,旨在帮助读者用较短的时间对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux打下坚实的基础。虽然选择的版本较低,但该内核已能够正常编译运行,并且其中已包括了Linux工作原理的精髓。书中首先以Linux源代码版本的变迁为主线,介绍了Linux的历史,同时着重说明了各个内核版本的主要区别和改进,给出了选择0.12版内核源代码作为研究对象的原因。在正式描述内核源代码之前,概要介绍了运行Linux的PC的硬件组成结构、编制内核使用的汇编语言和C语言扩展部分,并且重点说明了80x86处理器在保护模式下运行的编程方法。接着详细介绍了Linux内核源代码目录树组织结构,并依据该结构对所有内核程序和文件进行了注释和详细说明。有关代码注释的章节安排基本上都分为具体研究对象的概述、每个文件的功能介绍、代码内注释、代码中难点及相关资料介绍等部分。为了加深读者对内核工作原理的理解,书中最后一章给出了围绕Linux0.12系统的多个实验,其中涉及的程序均可从《Linux内核完全剖析:基于0.12内核》配套网站(www.oldlinux.org)上下载。
  《Linux内核完全剖析:基于0.12内核》适合Linux爱好者作为学习内核工作原理的自学参考书籍,也适合作为高校计算机专业学生学习操作系统课程的辅助和实践教材,还可供一般技术人员作为开发嵌入式系统的参考书使用。

内页插图

目录



第1章 概述
1.1 Linux的诞生和发展
1.1.1 UNIX操作系统的诞生
1.1.2 MINIX操作系统
1.1.3 GNU计划
1.1.4 POSIX标准
1.1.5 Linux操作系统的诞生
1.1.6 Linux操作系统版本的变迁
1.1.7 Linux名称的由来
1.1.8 早期Linux系统开发的主要贡献者
1.2 内容综述
1.3 本章小结

第2章 微型计算机组成结构
2.1 微型计算机组成原理
2.2 I/O端口寻址和访问控制方式
2.2.1 I/O端口和寻址
2.2.2 接口访问控制
2.3 主存储器、BIOS和CMOS存储器
2.3.1 主存储器
2.3.2 基本输入/输出程序BIOS
2.3.3 CMOS存储器
2.4 控制器和控制卡
2.4.1 中断控制器
2.4.2 DMA控制器
2.4.3 定时/计数器
2.4.4 键盘控制器
2.4.5 串行控制卡
2.4.6 显示控制
2.4.7 软盘和硬盘控制器
2.5 本章小结

第3章 内核编程语言和环境
3.1 as86汇编器
3.1.1 as86汇编语言语法
3.1.2 as86汇编语言程序
3.1.3 as86汇编语言程序的编译和链接
3.1.4 as86和ld86使用方法和选项
3.2 GNUas汇编
3.2.1 编译as汇编语言程序
3.2.2 as汇编语法
3.2.3 指令语句、操作数和寻址
3.2.4 区与重定位
3.2.5 符号
3.2.6 as汇编命令
3.2.7 编写16位代码
3.2.8 AS汇编器命令行选项
3.3 C语言程序
3.3.1 C程序编译和链接
3.3.2 嵌入汇编
3.3.3 圆括号中的组合语句
3.3.4 寄存器变量
3.3.5 内联函数
3.4 C与汇编程序的相互调用
3.4.1 C函数调用机制
3.4.2 在汇编程序中调用C函数
3.4.3 在C程序中调用汇编函数
3.5 Linux0.12目标文件格式
3.5.1 目标文件格式
3.5.2 Linux0.12中的目标文件格式
3.5.3 链接程序输出
3.5.4 链接程序预定义变量
3.5.5 System.map文件
3.6 Make程序和Makefile文件
3.6.1 Makefile文件内容
3.6.2 Makefile文件中的规则
3.6.3 Makeflle文件示例
3.6.4 make处理Makefile文件的方式
3.6.5 Makefile中的变量
3.6.6 让make自动推断命令
3.6.7 隐含规则中的自动变量
3.7 本章小结

第4章 80×86保护模式及其编程
4.1 80×86系统寄存器和系统指令
4.1.1 标志寄存器
4.1.2 内存管理寄存器
4.1.3 控制寄存器
4.1.4 系统指令
4.2 保护模式内存管理
4.2.1 内存寻址
4.2.2 地址变换
4.2.3 保护
4.3 分段机制
4.3.1 段的定义
4.3.2 段描述符表
4.3.3 段选择符
4.3.4 段描述符
4.3.5 代码和数据段描述符类型
4.3.6 系统描述符类型
4.4 分页机制
4.4.1 页表结构
4.4.2 页表项格式
4.4.3 虚拟存储
4.5 保护
4.5.1 段级保护
4.5.2 访问数据段时的特权级检查
4.5.3 代码段之间转移控制时的特权级检查
4.5.4 页级保护
4.5.5 组合页级和段级保护
4.6 中断和异常处理
4.6.1 异常和中断向量
4.6.2 中断源和异常源
4.6.3 异常分类
4.6.4 程序或任务的重新执行
4.6.5 开启和禁止中断
4.6.6 异常和中断的优先级
4.6.7 中断描述符表
……

第5章 Linux内核体系结构
第6章 引导启动程序
第7章 初始化程序
第8章 内核代码
第9章 块设备驱动程序
第10章 字符设备驱动程序
第11章 数学协处理器
第12章 文件系统
第13章 内存管理
第14章 头文件
第15章 库文件
第16章 建造工具
第17章 实验环境设置与使用方法

附录
参考文献

前言/序言

 本书是一本有关Linux操作系统内核基本工作原理的入门读物。
  本书的主要目标
  本书的主要目标是使用尽量少的篇幅,对完整的Linux内核源代码进行解剖,使读者对操作系统的基本功能和实际实现方式获得全方位的理解。
  本书读者应是知晓Linux系统的一般使用方法或具有一定的编程基础,但比较缺乏阅读目前最新内核源代码的基础知识,又急切希望能够进一步理解IJNIX类操作系统内核工作原理和实际代码实现的爱好者。这部分读者的水平应该界于初级与中级水平之间。目前,这部分读者人数在Linux爱好者中所占的比例是很高的,而面向这部分读者以比较易懂和有效的手段讲解内核的书籍资料不多。 现有书籍不足之处 目前已有的描述Linux内核的书籍,均尽量选用最新Linux内核版本(例如Fedora 8使用的2.6.24稳定版等)进行描述,但由于目前Linux内核整个源代码的大小已经非常大(例如2.2.20版就已具有268万行代码!),因此这些书籍仅能对LJnux内核源代码进行选择性或原理性的说明,许多系统实现细节被忽略。因此并不能使读者对实际L,inux内核有清晰而完整的理解。
  Scott Maxwell的《Linux内核源代码分析》基本上是面对Linux中、高级水平的读者,需要较为全面的基础知识才能完全理解。而且可能是由于篇幅所限,该书并没有对所有Linux内核代码进行注释,略去了很多内核实现细节,例如内核中使用的各个头文件(*.h)、生成内核代码映像文件的工具程序、各个make文件的作用和实现等均没有涉及。因此对于处于初、中级水平之间的读者来说阅读该书有些困难。
  John Lions的《莱昂氏LINIX源代码分析》虽然是一本学习UNIX类操作系统内核源代码很好的书,但是由于其采用的是UNIX V6版,其中系统调用等部分代码是用早已废弃的PDP.11系列机的汇编语言编制的,因此在阅读和理解与硬件部分相关的源代码时就会遇到较大的困难。
  A.S.Tanenbaum的《操作系统:设计与实现》是有关操作系统内核实现很好的入门书籍,但该书所叙述的M1NⅨ系统是一种基于消息传递的内核实现机制,与IAnux内核的实现有所区别。因此在学习该书之后,并不能很顺利地即刻着手进一步学习较新的Linux内核源代码实现。
  在使用这些书籍进行学习时会有一种“盲人摸象”的感觉,不容易真正理解Linux内核系统具体实现的整体概念,尤其是对那些Linux系统初学者,或刚学会如何使用Linux系统的人在使用那些书学习内核原理时,内核的整体运作结构并不能清晰地在脑海中形成。这在本人多年的Linux内核学习过程中也深有体会。在1991年10月,Linux的创始人Linus’Forvalds在开发出Linux 0.03版后写的一篇文章中也提到了同样的问题。在这篇题为《IJnux-aFree unix.386Kernel》目的文章中,他说:“开发Linux是为了那些操作系统爱好者和计算机科学系的学生使用、学习和娱乐”。“自由软件基金会的GN2J Hurd系统如果开发出来就已经显得太庞大而不适合学习和理解。”