由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高99元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
正版 Linux 内核完全剖析 基于0.12内核 15周年版 赵炯 操作系统 计算机软件 x86处理器 企鹅书 97
¥ ×1
|
| |
| 商品名称: | Linux 内核完全剖析——基于0.12内核(15周年版) |
| 作 者: | 赵炯
|
| 市 场 价: | 299.00
|
| ISBN 号: | 9787111744191
|
| 出版日期: |
|
| 页 数: | 948
|
| 开 本: |
|
| 出 版 社: | 机械工业出版社 |
|
第 1 章 概述·············································1 1.1 Linux 的诞生和发展··························1 1.1.1 UNIX 操作系统的诞生 ······················1 1.1.2 MINIX 操作系统 ·······························1 1.1.3 GNU 计划 ········································2 1.1.4 POSIX 标准 ······································2 1.1.5 Linux 操作系统的诞生 ·······················3 1.1.6 Linux 操作系统版本的变迁 ················4 1.1.7 Linux 名称的由来 ·····························6 1.1.8 早期Linux 系统开发的主要贡献者 ········7 1.2 内容综述············································8 1.3 本章小结··········································12 第 2 章 微型计算机组成结构····················13 2.1 微型计算机组成原理·······················13 2.2 I/O 端口寻址和访问控制方式·········15 2.2.1 I/O 端口和寻址 ·······························15 2.2.2 接口访问控制 ·································17 2.3 主存储器、BIOS 和 CMOS存储器·································17 2.3.1 主存储器 ·······································17 2.3.2 基本输入/输出程序 BIOS ·················18 2.3.3 CMOS 存储器 ································19 2.4 控制器和控制卡·······························19 2.4.1 中断控制器 ····································19 2.4.2 DMA 控制器 ··································20 2.4.3 定时/计数器 ···································21 2.4.4 键盘控制器 ····································21 2.4.5 串行控制卡 ····································22 2.4.6 显示控制 ·······································24 2.4.7 软盘和硬盘控制器 ··························25 2.5 本章小结··········································28 第 3 章 内核编程语言和环境····················29 3.1 as86 汇编器······································29 3.1.1 as86 汇编语言语法 ··························30 3.1.2 as86 汇编语言程序 ··························31 3.1.3 as86 汇编语言程序的编译和链接 ·········33 3.1.4 as86 和 ld86 使用方法和选项 ············34 3.2 GNU as 汇编·····································35 3.2.1 编译 as 汇编语言程序 ······················36 3.2.2 as 汇编语法 ····································37 3.2.3 指令语句、操作数和寻址 ················38 3.2.4 区与重定位 ····································41 3.2.5 符号 ··············································43 3.2.6 as 汇编命令 ····································44 3.2.7 编写 16 位代码 ·······························46 3.2.8 AS 汇编器命令行选项 ·····················46 3.3 C 语言程序·······································46 3.3.1 C 程序编译和链接 ···························46 3.3.2 嵌入汇编 ········································47 3.3.3 圆括号中的组合语句 ·······················51 3.3.4 寄存器变量 ····································52 3.3.5 内联函数 ········································52 3.4 C 与汇编程序的相互调用················54 3.4.1 C 函数调用机制 ······························54 3.4.2 在汇编程序中调用 C 函数 ················59 3.4.3 在 C 程序中调用汇编函数 ················61 3.5 Linux 0.12 目标文件格式·················63 3.5.1 目标文件格式 ·································63 3.5.2 Linux 0.12 中的目标文件格式 ···········66 3.5.3 链接程序输出 ·································68 3.5.4 链接程序预定义变量 ·······················69 3.5.5 System.map 文件 ·····························70 3.6 Make 程序和 Makefile 文件·············72 3.6.1 Makefile 文件内容 ···························72 3.6.2 Makefile 文件中的规则 ····················73 3.6.3 Makefile 文件示例 ···························73 3.6.4 make 处理 Makefile 文件的方式 ········75 3.6.5 Makefile 中的变量 ···························76 3.6.6 让 make 自动推断命令 ····················76 3.6.7 隐含规则中的自动变量 ···················77 3.7 本章小结··········································78 第 4 章 80x86 保护模式及其编程············79 4.1 80x86 系统寄存器和系统指令····································79 4.1.1 标志寄存器 ····································79 4.1.2 内存管理寄存器 ·····························80 4.1.3 控制寄存器 ····································81 4.1.4 系统指令 ·······································84 4.2 保护模式内存管理···························85 4.2.1 内存寻址 ·······································85 4.2.2 地址变换 ·······································86 4.2.3 保护 ··············································88 4.3 分段机制··········································89 4.3.1 段的定义 ·······································89 4.3.2 段描述符表 ····································91 4.3.3 段选择符 ·······································93 4.3.4 段描述符 ·······································95 4.3.5 代码和数据段描述符类型 ················98 4.3.6 系统描述符类型 ·····························99 4.4 分页机制········································100 4.4.1 页表结构 ·····································102 4.4.2 页表项格式 ··································103 4.4.3 虚拟存储 ·····································104 4.5 保护··············································104 4.5.1 段级保护 ·····································105 4.5.2 访问数据段时的特权级检查 ···········107 4.5.3 代码段之间转移控制时的特权级检查······························108 4.5.4 页级保护 ····································· 113 4.5.5 组合页级和段级保护 ····················· 115 4.6 中断和异常处理····························· 115 4.6.1 异常和中断向量 ··························· 115 4.6.2 中断源和异常源 ··························· 116 4.6.3 异常分类 ····································· 117 4.6.4 程序或任务的重新执行 ················· 117 4.6.5 开启和禁止中断 ··························· 118 4.6.6 异常和中断的优先级 ····················· 118 4.6.7 中断描述符表 ······························· 119 4.6.8 IDT 描述符 ···································119 4.6.9 异常与中断处理 ····························120 4.6.10 中断处理任务 ·····························123 4.6.11 错误码 ·······································123 4.7 任务管理·········································124 4.7.1 任务的结构和状态 ························125 4.7.2 任务的执行 ··································126 4.7.3 任务管理数据结构 ························126 4.7.4 任务切换 ······································129 4.7.5 任务链 ·········································131 4 .7.6 任务地址空间 ·······························132 4.8 保护模式编程初始化·····················133 4.8.1 进入保护模式时的初始化操作 ········134 4.8.2 模式切换 ······································135 4.9 一个简单的多任务内核实例 ·········137 4.9.1 多任务程序结构和工作原理 ···········137 4.9.2 引导启动程序 boot.s ······················140 4.9.3 多任务内核程序 head.s ··················142 第 5 章 Linux 内核体系结构 ···················147 5.1 Linux 内核模式······························147 5.2 Linux 内核系统体系结构···············148 5.3 Linux 内核对内存的管理和使用··································150 5.3.1 物理内存 ······································150 5.3.2 内存地址空间概念 ························150 5.3.3 内存分段机制 ·······························151 5.3.4 内存分页管理 ·······························154 5.3.5 CPU 多任务和保护方式 ·················157 5.3.6 虚拟地址、线性地址和物理地址之间的关系 ····························157 5.3.7 用户申请内存的动态分配 ··············161 5.4 中断机制·········································162 5.4.1 中断操作原理 ·······························162 5.4.2 80x86 微机的中断子系统 ···············163 5 .4.3 中断向量表 ··································164 5.4.4 Linux 内核的中断处理······················ 164 5.4.5 标志寄存器的中断标志 ··················166 5.5 Linux 的系统调用 ··························166 5.5.1 系统调用接口 ·······························166 5.5.2 系统调用处理过程 ························167 5.5.3 Linux 系统调用的参数传递方式································168 5.6 系统时间和定时·····························168 5.6.1 系统时间 ·····································168 5.6.2 系统定时 ·····································169 5.7 Linux 进程控制······························170 5.7.1 任务数据结构 ·······························170 5.7.2 进程运行状态 ·······························175 5.7.3 进程初始化 ··································176 5.7.4 创建新进程 ··································177 5.7.5 进程调度 ·····································178 5.7.6 终止进程 ·····································179 5.8 Linux 系统中堆栈的使用方法····································179 5.8.1 初始化阶段 ··································180 5.8.2 任务的堆栈 ··································181 5.8.3 任务内核态堆栈与用户态堆栈之间的切换 ···························183 5.9 Linux 0.12 采用的文件系统···········184 5.10 Linux 内核源代码的目录结构··································184 5.10.1 内核主目录 linux ·························185 5.10.2 引导启动程序目录 boot ················185 5.10.3 文件系统目录 fs ··························186 5.10.4 头文件主目录 include ··················187 5.10.5 内核初始化程序目录 init ··············188 5.10.6 内核程序主目录 kernel ·················188 5.10.7 内核库函数目录 lib ·····················191 5.10.8 内存管理程序目录 mm ················191 5.10.9 编译内核工具程序目录 tools ········192 5.11 内核系统与应用程序的关系······························192 5.12 linux/Makefile 文件······················193 5.12.1 功能描述 ····································193 5.12.2 代码注释 ····································194 5.13 本章小结 ······································198 第 6 章 引导启动程序 ·····························199 6.1 总体功能········································199 6.2 bootsect.S 程序·······························201 6.2.1 功能描述 ·····································201 6.2.2 代码注释 ······································202 6.2.3 其他信息 ······································213 6.3 setup.S 程序····································214 6.3.1 功能描述 ······································214 6.3.2 代码注释 ······································216 6.3.3 其他信息 ······································232 6.4 head.s 程序······································242 6.4.1 功能描述 ······································242 6.4.2 代码注释 ······································243 6.4.3 其他信息 ······································251 6.5 本章小结·········································253 第 7 章 初始化程序··································255 7.1 main.c 程序·····································255 7.1.1 功能描述 ······································255 7.1.2 代码注释 ······································258 7.1.3 其他信息 ······································265 7.2 环境初始化工作·····························267 7.3 本章小结·········································269 第 8 章 内核代码 ·····································271 8.1 总体功能·········································271 8.1.1 中断处理程序 ·······························271 8.1.2 系统调用处理相关程序 ··················272 8.1.3 其他通用类程序 ····························273 8.2 asm.s 程序·······································273 8.2.1 功能描述 ······································273 8.2.2 代码注释 ······································275 8.2.3 Intel 保留中断向量的定义 ··············279 8.3 traps.c 程序·····································279 8.3.1 功能描述 ······································279 8.3.2 代码注释 ······································279 8.4 sys_call.s 程序 ································284 8.4.1 功能描述 ······································284 8.4.2 代码注释 ······································286 8.4.3 其他信息 ······································294 8.5 mktime.c 程序·································296 8.5.1 功能描述 ······································296 8.5.2 代码注释 ······································297 8.5.3 闰年的计算方法 ····························298 8.6 sched.c 程序····································298 8.6.1 功能描述 ······································298 8.6.2 代码注释 ·····································300 8.6.3 其他信息 ·····································312 8.7 signal.c 程序···································317 8.7.1 功能描述 ·····································317 8.7.2 代码注释 ·····································325 8.7.3 进程信号说明 ·······························331 8.8 exit.c 程序·······································332 8.8.1 功能描述 ·····································332 8.8.2 代码注释 ·····································333 8.9 fork.c 程序······································345 8.9.1 功能描述 ·····································345 8.9.2 代码注释 ·····································346 8.9.3 任务状态段信息 ···························351 8.10 sys.c 程序 ·····································352 8.10.1 功能描述 ················&mid 亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心! 亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~ 非常抱歉,您前期未参加预订活动, 抱歉,您暂无任性付资格 |
