深度探索嵌入式操作系统:从零开始设计、架构和开发

深度探索嵌入式操作系统:从零开始设计、架构和开发
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2015-10
版次: 1
ISBN: 9787111514879
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 527页
字数: 451千字
81人买过
  •   《深度探索嵌入式操作系统:从零开始设计、架构和开发》将是操作系统实践领域和嵌入式操作系统领域的又一里程碑之作。
      作者是计算机领域“鬼才”,独立编写出了多进程、多线程、多CPU、支持虚拟内存的x86_64体系下的操作系统内核,一共6个测试版本,10万余行代码;在此基础之上,作者又开发出了基于ARM平台的嵌入式系统内核。这两个内核都可以完全运行于物理机上。
      本书从硬件和软件两个维度系统、深度阐述嵌入式操作系统的构成、原理和实现方法,真正可以实现教读者从零开始设计、架构和开发一个完整的、可工作的嵌入式操作系统。
      硬件部分分析了所选择的平台及其之上的组件。先宏观地分析了平台的外围组件:实时时钟、定时器、串口、中断控制器、内存芯片、flash芯片、CPU、MMU等,让读者先有个初步的印象,在写代码用到某个组件时再详述其内部编程细节。接着重点分析了CPU和MMU的细节,以及内存芯片,这三个部件是程序运行的基石,所以在写代码之前必须详细了解它们的细节。
      软件部分首先分析和讲解了操作系统内核的功能及其所包含的组件、操作系统的架构设计、构建操作系统的工具,以及C语言的调用约定、基本的数据结构和C数据结构在内存中的镜像;然后详细讲解了如何编写代码完成这些组件:初始化、内存管理、中断管理、设备管理、进程管理、文件系统、系统调用接口、应用程序库。对这些组件的功能、要求、硬件细节、数据结构和功能代码做了完整且详细的讲解。系统调用接口为了顾及读者们已有的知识体系,模拟了类UNIX调用接口,方便读者理解核心原理。
      本书始终保持这样的结构:从硬件平台到架构设计,到数据结构,最后落实到每行代码,无论是针对整个操作系统,还是操作系统中的每一个组件,每一个功能模块都保持着这样的结构,正是因为这样的结构,学完这本书我们每一个人都可以豪迈地说一句:“我是一个真正的操作系统实践者。”
      彭东,中国计算机领域的“鬼才”,自幼患病,从2008年开始直到现在,始终不间断地研究和自学计算机,精通各种编程语言,精通算法与数据结构,精通编译原理,精通操作系统理论并十分了解现有的Linux和Windows操作系统,还精通X86和ARM两大硬件平台体系结构。
      先后独自从零开始开发了LMOS、LMOSEM两大操作系统内核,现在的LMOS已经是多进程、多线程、多CPU、支持虚拟内存的x86_64体系下的全64位操作系统内核,代码量已经有10万多行了,而LMOSEM则是本书中所写的基于ARM平台的嵌入式操作系统。LMOS的早期版本曾在IT168等社区发布,引起了广泛讨论,获得了极高的评价。
    刖吾
    第1章操作系统的功能及为什么
    需要它 1
    1.1从hello world开始 1
    1.2操作系统功能演进 3
    1.3小结 7
    第2章硬件平台 8
    2.1选择平台 8
    2.1.1 mini2440 8
    2.1.2 mini2440平台的信息 9
    2.2必须要关注的硬件 13
    2.2.1原因 14
    2.2.2 RTC 15
    2.2.3定时器 16
    2.2.4串口 17
    2.2.5中断控制器 18
    2.2.6 SDRAM 19
    2.2.7 NOmaSh 23
    2.2.8 Nandflash 24
    2.3小结 26
    第3章处理器 28
    3.1 ARM公司与其处理器 28
    3.2 ARM920T的结构与特性 29
    3.2.1 ARM920T CPU结构 29
    3.2.2 ARM920TCPU特性 32
    3.3 ARM920T存储体系 33
    3.3.1 ARM920T地址空间 33
    3.3.2 ARM920T存储器格式 34
    3.3.3 ARM920T存储地址对齐 -35
    3.4 ARM920T状态 35
    3.4.1 ARM状态 36
    3.4.2 Thumb状态 36
    3.5ARM920T处理器的7种工作模式 37
    3.6寄存器 38
    3.7异常和中断 43
    3.7.1什么是异常和中断 43
    3.7.2异常中断向量 46
    3.8ARM920T指令集 47
    3.8.1 指令及其编码格式 48
    3.8.2分支跳转指令 50
    3.8.3数据处理指令 53
    3.8.4装载和存储指令 63
    3.8.5程序状态寄存器操作指令 73
    3.8.6协处理器操作指令 76
    3.8.7异常中断产生指令 79
    3.9 MMU 80
    3.9.1 MMU概述 80
    3.9.2为什么要有MMU 82
    3.9.3 ARM920T CP15协处理器85
    3.9.4 MMU页表
    3.9.5 MMU页面访问权限的控制 98
    3.9.6 MMU的快表TLB 113
    3.9.7 MMU的编程接口 114
    3.10 Cache115
    3.10.1 ARM920T的Cache 115
    3.10.2 Cache的原理116
    3.10.3 Cache的类型及要注意的
    问题117
    3.10.4 ARM920T Cache的编程接口 l 19
    3.11小结 120
    第4章操作系统内核的设计与构建 122
    4.1 操作系统内核的设计 122
    4.1.1 内核要完成的功能 123
    4.1.2内核的架构 124
    4.1.3分离硬件的相关性 126
    4.1.4我们的选择 127
    4.2开发环境及相关工具 129
    4.2.1 Linux环境 129
    4.2.2文本编辑器 132
    4.2.3 GCC 134
    4.2.4 LD 136
    4.2.5 make “l39
    4.3 LMOSEM的构建系统 142
    4.3.1 LMOSEM的makefile 142
    4.3.2 LMOSEM的链接脚本 147
    4.4开发板的安装 150
    4.5小结 154
    第5章语言间调用约定与基本数据
    结构 156
    5.1寄存器使用约定 156
    5.1.1寄存器别名 157
    5.1.2参数传递与返回值 157
    5.2基本数据结构 159
    5.2.1 C语言的基本数据结构 160
    5.2.2 list h t数据结构 16l
    5.2.3 spinlock_t数据结构 164
    5.2.4 kwlst t数据结构 165
    5.2.5 sem t数据结构 166
    5.3数据结构存在于内存中的形式 l68
    5.4 C与汇编的混用 170
    5.5小结 174
    第6章内核初始化 175
    6.1开始 175
    6.1.1第一行汇编代码 175
    6.1.2第一个C函数 178
    6.2 MMU和中断向量的初始化 181
    6.2.1初始化MMU “181
    6.2.2复制中断向量 -186
    6.3串口初始化 190
    6.3.1串口硬件 190
    6.3.2 内核的printf 196
    6.4机器数据结构 201
    6.4.1设计数据结构 201
    6.4.2确定一些重要数据结构与内核
    的地址 ”203
    6.5初级内存管理初始化 205
    6.5.1设计一些数据结构 -205
    6.5.2初始化mmapdsc_t结构数组 209
    6.5.3建立起内存分配数据结构 212
    6.6中断初始化 215
    6.6.1设计一些数据结构 215
    6.6.2初始中断源描述符 -220
    6.7初始化测试 222
    6.8小结 225
    ?第7章内存管理 226
    7.1 内核功能层入口 226
    7.2 内存管理组件的设计 228
    7.3块级内存管理 229
    7.3.1块级内存管理数据结构视图 229
    7.3.2块级内存管理接口 230
    7.3.3主分配函数 232
    7.3.4分配时查找alcfrelst_t 234
    7.3.5分配时查找和操作
    mm叩dsc_t 236
    7.3.6分配代码写得对吗 239
    7.3.7主释放函数 240
    7.3.8释放时查找alcfrelst 241
    7.3.9释放时查找和操作
    HHnapdscj 242
    7.3.10测试块级内存管理层 246
    7.4页级内存管理 -248
    7.4.1 页级内存管理接口及调用
    流程 248
    7.4.2相关的数据结构 25 1
    7.4.3页级内存管理初始化 254
    7.4.4分配主函数 256
    7.4.5分配时查找mplhead-t 257
    7.4.6分配时新建页级内存池 258
    7.4.7分配时操作mplhead_t 262
    7.4.8分配代码写得对吗 263
    7.4.9释放主函数 265
    7.4.10释放时查找mplhead-t ”266
    7.4.11释放时操作mpmeadj “268
    7.4.12释放时删除页级内存池 269
    7.4.13测试页级内存管理层 271
    7.5字级内存管理 273
    7.5.1字级内存接口及调用流程 274
    7.5.2相关的数据结构 275
    7.5.3分配主函数 276
    ^
    7.5.4分配时查找mplhead』 278
    7.5.5分配时新建字级内存池 279
    7.5.6分配时操作mplhead_t 282
    7.5.7分配代码写得对吗 283
    7.5.8释放主函数 一285
    7.5.9释放时查找mpmead_j 285
    7.5.10释放时操作mplhead_t “287
    7.5.11释放时删除字级内存池 “288
    7.5.12测试字级内存管理层 289
    7.6小结 292
    第8章中断管理 293
    8.1 中断与中断控制器 293
    8.1.1什么是中断 --293
    8.1.2 S3C2440A中断控制器 294
    8.2 中断管理的架构与相关数据
    结构 298
    8.2.1 中断管理的架构 -298
    8.2.2设计数据结构intfltdscj
    和intserdsc-t ”298
    8.3中断处理 -301
    8.3.1 中断辅助例程 301
    8.3.2从中断向量开始 “305
    8.3.3 保存CPU上下文 306
    8.3.4中断主分派例程 3 lO
    8.3.5确定中断源 “314
    8.3.6调用中断处理例程 317
    8.4安装中断回调例程 319
    8.5小结 322
    第9章驱动模型 323
    9.1操作系统内核如何管理设备 ”323
    9.1.1分权而治 323
    9.1.2设备类型 325
    9.1.3驱动程序 327
    ?9.2相关数据结构 。328
    9.2.1驱动 一329
    9.2.2派发例程类型 一329
    9.2.3设备ID “330
    9.2.4设备 “331
    9.2.5 10包 “332
    9.2.6设备表 ”333
    9.3驱动模型的基础设施 335
    9.3.1驱动程序从哪里执行 335
    9.3.2新建与注册设备 340
    9.3.3注册回调函数 ”344
    9.3.4发送IO包 一345
    9.3.5调用驱动程序函数 346
    9.3.6等待服务 ”347
    9.3.7完成服务 ”350
    9.3.8驱动模型辅助函数 352
    9.4 systick驱动程序实例 ~356
    9.4.1 systick硬件 ”356
    9.4.2 systick驱动程序框架 -360
    9.4.3 systick驱动程序实现 ‘362
    9.4.4测试systick驱动程序 368
    9.5 RTC驱动程序实例 -370
    9.5.1 RTC硬件 一370
    9.5.2 RTC驱动程序实现 375
    9.6小结 ”385
    第10章进程 386
    10.1应用程序的运行 386
    10.1.1程序运行需要什么资源 387
    10.1.2任何时刻资源都可用吗 388
    10.1.3提出多道程序模型 389
    10.2相关的数据结构 390
    10.2.1设计进程的数据结构 391
    10.2.2调度进程表 ”392
    10.3 LMOSEM内核的第一个进程 394
    10.3.1进程管理组件的初始化 395
    10.3.2建立空转进程 396
    10.3.3空转进程运行 399
    10.4新建进程 404
    10.4.1分配进程描述符 404
    10.4.2分配内存空间 406
    10.4.3加入进程调度表 408
    10.5进程调度 410
    10.5.1调度算法 ”410
    10.5.2处理进程时间片 411
    10.5.3检查调度状态 414
    10.5.4选择进程 ”415
    10.5.5进程切换 一418
    10.5.6进程等待与唤醒 421
    10.5.7进程测试 “425
    10.6小结 -428
    第11章文件系统 430
    11.1文件系统设计 430
    11.1.1文件系统只是一个设备 430
    11.1.2数据格式与存储块 432
    11.1.3如何组织文件 433
    11.1.4关于我们文件系统的限制 434
    11.2相关的数据结构 434
    11.2.1超级块 435
    11.2.2位图 435
    11.2.3 目录 一437
    11.2.4文件管理头 “438
    11.3文件系统格式化 440
    11.3.1建立超级块 ”440
    11.3.2建立位图 445
    11.3.3建立根目录 448
    11.4文件系统基础操作 452
    11.4.1获取与释放根目录文件 -453
    11.4.2字符串操作 455
    11.4.3分解路径名 457
    11.4.4检查文件是否存在 459
    11.5文件操作 460
    11.5.1新建文件 461
    11.5.2删除文件 463
    11.5.3打开文件 466
    11.5.4读写文件 469
    11.5.5关闭文件 472
    11.5.6驱动整合 473
    11.6文件系统测试 475
    11.6.1格式化测试 475
    11.6.2文件操作测试 479
    11.7小结 482
    第12章系统调用与应用程序库 483
    12.1系统调用机制 483
    12.1.1软中断指令 484
    12.1.2传递系统调用参数 486
    12.1.3 系统调用分发器 488
    12.2时间管理系统调用 489
    12.3进程管理系统调用 492
    12.3.1进程的运行与退出 492
    12.3.2获取进程的ID 494
    12.4内存管理系统调用 496
    12.5设备与文件系统调用 498
    12.5.1设备与文件的打开 498
    12.5.2设备与文件的关闭 506
    12.5.3设备与文件的读写 508
    12.5.4设备与文件的控制 5 12
    12.6应用程序库 514
    12.7测试 520
    12.8小结 526
    后记 528
  • 内容简介:
      《深度探索嵌入式操作系统:从零开始设计、架构和开发》将是操作系统实践领域和嵌入式操作系统领域的又一里程碑之作。
      作者是计算机领域“鬼才”,独立编写出了多进程、多线程、多CPU、支持虚拟内存的x86_64体系下的操作系统内核,一共6个测试版本,10万余行代码;在此基础之上,作者又开发出了基于ARM平台的嵌入式系统内核。这两个内核都可以完全运行于物理机上。
      本书从硬件和软件两个维度系统、深度阐述嵌入式操作系统的构成、原理和实现方法,真正可以实现教读者从零开始设计、架构和开发一个完整的、可工作的嵌入式操作系统。
      硬件部分分析了所选择的平台及其之上的组件。先宏观地分析了平台的外围组件:实时时钟、定时器、串口、中断控制器、内存芯片、flash芯片、CPU、MMU等,让读者先有个初步的印象,在写代码用到某个组件时再详述其内部编程细节。接着重点分析了CPU和MMU的细节,以及内存芯片,这三个部件是程序运行的基石,所以在写代码之前必须详细了解它们的细节。
      软件部分首先分析和讲解了操作系统内核的功能及其所包含的组件、操作系统的架构设计、构建操作系统的工具,以及C语言的调用约定、基本的数据结构和C数据结构在内存中的镜像;然后详细讲解了如何编写代码完成这些组件:初始化、内存管理、中断管理、设备管理、进程管理、文件系统、系统调用接口、应用程序库。对这些组件的功能、要求、硬件细节、数据结构和功能代码做了完整且详细的讲解。系统调用接口为了顾及读者们已有的知识体系,模拟了类UNIX调用接口,方便读者理解核心原理。
      本书始终保持这样的结构:从硬件平台到架构设计,到数据结构,最后落实到每行代码,无论是针对整个操作系统,还是操作系统中的每一个组件,每一个功能模块都保持着这样的结构,正是因为这样的结构,学完这本书我们每一个人都可以豪迈地说一句:“我是一个真正的操作系统实践者。”
  • 作者简介:
      彭东,中国计算机领域的“鬼才”,自幼患病,从2008年开始直到现在,始终不间断地研究和自学计算机,精通各种编程语言,精通算法与数据结构,精通编译原理,精通操作系统理论并十分了解现有的Linux和Windows操作系统,还精通X86和ARM两大硬件平台体系结构。
      先后独自从零开始开发了LMOS、LMOSEM两大操作系统内核,现在的LMOS已经是多进程、多线程、多CPU、支持虚拟内存的x86_64体系下的全64位操作系统内核,代码量已经有10万多行了,而LMOSEM则是本书中所写的基于ARM平台的嵌入式操作系统。LMOS的早期版本曾在IT168等社区发布,引起了广泛讨论,获得了极高的评价。
  • 目录:
    刖吾
    第1章操作系统的功能及为什么
    需要它 1
    1.1从hello world开始 1
    1.2操作系统功能演进 3
    1.3小结 7
    第2章硬件平台 8
    2.1选择平台 8
    2.1.1 mini2440 8
    2.1.2 mini2440平台的信息 9
    2.2必须要关注的硬件 13
    2.2.1原因 14
    2.2.2 RTC 15
    2.2.3定时器 16
    2.2.4串口 17
    2.2.5中断控制器 18
    2.2.6 SDRAM 19
    2.2.7 NOmaSh 23
    2.2.8 Nandflash 24
    2.3小结 26
    第3章处理器 28
    3.1 ARM公司与其处理器 28
    3.2 ARM920T的结构与特性 29
    3.2.1 ARM920T CPU结构 29
    3.2.2 ARM920TCPU特性 32
    3.3 ARM920T存储体系 33
    3.3.1 ARM920T地址空间 33
    3.3.2 ARM920T存储器格式 34
    3.3.3 ARM920T存储地址对齐 -35
    3.4 ARM920T状态 35
    3.4.1 ARM状态 36
    3.4.2 Thumb状态 36
    3.5ARM920T处理器的7种工作模式 37
    3.6寄存器 38
    3.7异常和中断 43
    3.7.1什么是异常和中断 43
    3.7.2异常中断向量 46
    3.8ARM920T指令集 47
    3.8.1 指令及其编码格式 48
    3.8.2分支跳转指令 50
    3.8.3数据处理指令 53
    3.8.4装载和存储指令 63
    3.8.5程序状态寄存器操作指令 73
    3.8.6协处理器操作指令 76
    3.8.7异常中断产生指令 79
    3.9 MMU 80
    3.9.1 MMU概述 80
    3.9.2为什么要有MMU 82
    3.9.3 ARM920T CP15协处理器85
    3.9.4 MMU页表
    3.9.5 MMU页面访问权限的控制 98
    3.9.6 MMU的快表TLB 113
    3.9.7 MMU的编程接口 114
    3.10 Cache115
    3.10.1 ARM920T的Cache 115
    3.10.2 Cache的原理116
    3.10.3 Cache的类型及要注意的
    问题117
    3.10.4 ARM920T Cache的编程接口 l 19
    3.11小结 120
    第4章操作系统内核的设计与构建 122
    4.1 操作系统内核的设计 122
    4.1.1 内核要完成的功能 123
    4.1.2内核的架构 124
    4.1.3分离硬件的相关性 126
    4.1.4我们的选择 127
    4.2开发环境及相关工具 129
    4.2.1 Linux环境 129
    4.2.2文本编辑器 132
    4.2.3 GCC 134
    4.2.4 LD 136
    4.2.5 make “l39
    4.3 LMOSEM的构建系统 142
    4.3.1 LMOSEM的makefile 142
    4.3.2 LMOSEM的链接脚本 147
    4.4开发板的安装 150
    4.5小结 154
    第5章语言间调用约定与基本数据
    结构 156
    5.1寄存器使用约定 156
    5.1.1寄存器别名 157
    5.1.2参数传递与返回值 157
    5.2基本数据结构 159
    5.2.1 C语言的基本数据结构 160
    5.2.2 list h t数据结构 16l
    5.2.3 spinlock_t数据结构 164
    5.2.4 kwlst t数据结构 165
    5.2.5 sem t数据结构 166
    5.3数据结构存在于内存中的形式 l68
    5.4 C与汇编的混用 170
    5.5小结 174
    第6章内核初始化 175
    6.1开始 175
    6.1.1第一行汇编代码 175
    6.1.2第一个C函数 178
    6.2 MMU和中断向量的初始化 181
    6.2.1初始化MMU “181
    6.2.2复制中断向量 -186
    6.3串口初始化 190
    6.3.1串口硬件 190
    6.3.2 内核的printf 196
    6.4机器数据结构 201
    6.4.1设计数据结构 201
    6.4.2确定一些重要数据结构与内核
    的地址 ”203
    6.5初级内存管理初始化 205
    6.5.1设计一些数据结构 -205
    6.5.2初始化mmapdsc_t结构数组 209
    6.5.3建立起内存分配数据结构 212
    6.6中断初始化 215
    6.6.1设计一些数据结构 215
    6.6.2初始中断源描述符 -220
    6.7初始化测试 222
    6.8小结 225
    ?第7章内存管理 226
    7.1 内核功能层入口 226
    7.2 内存管理组件的设计 228
    7.3块级内存管理 229
    7.3.1块级内存管理数据结构视图 229
    7.3.2块级内存管理接口 230
    7.3.3主分配函数 232
    7.3.4分配时查找alcfrelst_t 234
    7.3.5分配时查找和操作
    mm叩dsc_t 236
    7.3.6分配代码写得对吗 239
    7.3.7主释放函数 240
    7.3.8释放时查找alcfrelst 241
    7.3.9释放时查找和操作
    HHnapdscj 242
    7.3.10测试块级内存管理层 246
    7.4页级内存管理 -248
    7.4.1 页级内存管理接口及调用
    流程 248
    7.4.2相关的数据结构 25 1
    7.4.3页级内存管理初始化 254
    7.4.4分配主函数 256
    7.4.5分配时查找mplhead-t 257
    7.4.6分配时新建页级内存池 258
    7.4.7分配时操作mplhead_t 262
    7.4.8分配代码写得对吗 263
    7.4.9释放主函数 265
    7.4.10释放时查找mplhead-t ”266
    7.4.11释放时操作mpmeadj “268
    7.4.12释放时删除页级内存池 269
    7.4.13测试页级内存管理层 271
    7.5字级内存管理 273
    7.5.1字级内存接口及调用流程 274
    7.5.2相关的数据结构 275
    7.5.3分配主函数 276
    ^
    7.5.4分配时查找mplhead』 278
    7.5.5分配时新建字级内存池 279
    7.5.6分配时操作mplhead_t 282
    7.5.7分配代码写得对吗 283
    7.5.8释放主函数 一285
    7.5.9释放时查找mpmead_j 285
    7.5.10释放时操作mplhead_t “287
    7.5.11释放时删除字级内存池 “288
    7.5.12测试字级内存管理层 289
    7.6小结 292
    第8章中断管理 293
    8.1 中断与中断控制器 293
    8.1.1什么是中断 --293
    8.1.2 S3C2440A中断控制器 294
    8.2 中断管理的架构与相关数据
    结构 298
    8.2.1 中断管理的架构 -298
    8.2.2设计数据结构intfltdscj
    和intserdsc-t ”298
    8.3中断处理 -301
    8.3.1 中断辅助例程 301
    8.3.2从中断向量开始 “305
    8.3.3 保存CPU上下文 306
    8.3.4中断主分派例程 3 lO
    8.3.5确定中断源 “314
    8.3.6调用中断处理例程 317
    8.4安装中断回调例程 319
    8.5小结 322
    第9章驱动模型 323
    9.1操作系统内核如何管理设备 ”323
    9.1.1分权而治 323
    9.1.2设备类型 325
    9.1.3驱动程序 327
    ?9.2相关数据结构 。328
    9.2.1驱动 一329
    9.2.2派发例程类型 一329
    9.2.3设备ID “330
    9.2.4设备 “331
    9.2.5 10包 “332
    9.2.6设备表 ”333
    9.3驱动模型的基础设施 335
    9.3.1驱动程序从哪里执行 335
    9.3.2新建与注册设备 340
    9.3.3注册回调函数 ”344
    9.3.4发送IO包 一345
    9.3.5调用驱动程序函数 346
    9.3.6等待服务 ”347
    9.3.7完成服务 ”350
    9.3.8驱动模型辅助函数 352
    9.4 systick驱动程序实例 ~356
    9.4.1 systick硬件 ”356
    9.4.2 systick驱动程序框架 -360
    9.4.3 systick驱动程序实现 ‘362
    9.4.4测试systick驱动程序 368
    9.5 RTC驱动程序实例 -370
    9.5.1 RTC硬件 一370
    9.5.2 RTC驱动程序实现 375
    9.6小结 ”385
    第10章进程 386
    10.1应用程序的运行 386
    10.1.1程序运行需要什么资源 387
    10.1.2任何时刻资源都可用吗 388
    10.1.3提出多道程序模型 389
    10.2相关的数据结构 390
    10.2.1设计进程的数据结构 391
    10.2.2调度进程表 ”392
    10.3 LMOSEM内核的第一个进程 394
    10.3.1进程管理组件的初始化 395
    10.3.2建立空转进程 396
    10.3.3空转进程运行 399
    10.4新建进程 404
    10.4.1分配进程描述符 404
    10.4.2分配内存空间 406
    10.4.3加入进程调度表 408
    10.5进程调度 410
    10.5.1调度算法 ”410
    10.5.2处理进程时间片 411
    10.5.3检查调度状态 414
    10.5.4选择进程 ”415
    10.5.5进程切换 一418
    10.5.6进程等待与唤醒 421
    10.5.7进程测试 “425
    10.6小结 -428
    第11章文件系统 430
    11.1文件系统设计 430
    11.1.1文件系统只是一个设备 430
    11.1.2数据格式与存储块 432
    11.1.3如何组织文件 433
    11.1.4关于我们文件系统的限制 434
    11.2相关的数据结构 434
    11.2.1超级块 435
    11.2.2位图 435
    11.2.3 目录 一437
    11.2.4文件管理头 “438
    11.3文件系统格式化 440
    11.3.1建立超级块 ”440
    11.3.2建立位图 445
    11.3.3建立根目录 448
    11.4文件系统基础操作 452
    11.4.1获取与释放根目录文件 -453
    11.4.2字符串操作 455
    11.4.3分解路径名 457
    11.4.4检查文件是否存在 459
    11.5文件操作 460
    11.5.1新建文件 461
    11.5.2删除文件 463
    11.5.3打开文件 466
    11.5.4读写文件 469
    11.5.5关闭文件 472
    11.5.6驱动整合 473
    11.6文件系统测试 475
    11.6.1格式化测试 475
    11.6.2文件操作测试 479
    11.7小结 482
    第12章系统调用与应用程序库 483
    12.1系统调用机制 483
    12.1.1软中断指令 484
    12.1.2传递系统调用参数 486
    12.1.3 系统调用分发器 488
    12.2时间管理系统调用 489
    12.3进程管理系统调用 492
    12.3.1进程的运行与退出 492
    12.3.2获取进程的ID 494
    12.4内存管理系统调用 496
    12.5设备与文件系统调用 498
    12.5.1设备与文件的打开 498
    12.5.2设备与文件的关闭 506
    12.5.3设备与文件的读写 508
    12.5.4设备与文件的控制 5 12
    12.6应用程序库 514
    12.7测试 520
    12.8小结 526
    后记 528
查看详情
系列丛书 / 更多
深度探索嵌入式操作系统:从零开始设计、架构和开发
深入理解Nginx(第2版):模块开发与架构解析
陶辉 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
Python Linux系统管理与自动化运维
赖明星 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
Linux系统命令及Shell脚本实践指南
王军 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
Python自动化运维:技术与最佳实践
刘天斯 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构
高俊峰 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
Linux运维最佳实践
胥峰、杨俊俊 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
跟老男孩学Linux运维:Web集群实战
老男孩 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度实践KVM:核心技术、管理运维、性能优化与项目实施
肖力、汪爱伟、杨俊俊、赵德禄 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
构建高可用Linux服务器(第3版)
余洪春 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
Puppet权威指南
王冬生 著
深度探索嵌入式操作系统:从零开始设计、架构和开发
Linux系统安全
[印]达金德尔·卡尔西 著;刘海燕 译
深度探索嵌入式操作系统:从零开始设计、架构和开发
Linux/Unix技术丛书:Linux性能优化
贺莲、龚奕利 译
相关图书 / 更多
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度教学研究(第二辑)
郭元祥 主编
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度工作(新):如何有效使用每一点脑力
(美)卡尔·纽波特 后浪
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度阅读训练册5年级B版
深度阅读教学研究中心 编
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度对话茅奖作家(1-11届)
舒晋瑜
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度关系
武志红
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度阅读训练册 3年级b版 小学同步阅读 新华正版
深度阅读教学研究中心
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度阅读训练册2年级B版
深度阅读教学研究中心 编
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度学习在复杂系统健康监测中的应用
吴军;程一伟;邓超;朱海平
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度阅读训练册4年级B版
深度阅读教学研究中心 编
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度学习——模型、算法优化与实战
张洪朋
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度思维
隋继周
深度探索嵌入式操作系统:从零开始设计、架构和开发
深度财务分析报告案例示范
本书编委会