暂无商品咨询信息 [发表商品咨询]
在本书中,你将尝试从零自制操作系统。你会体验到制作操作系统的整个过程,从打开计算机、调用操作系统本身到能够运行各种应用。你会了解到计算机的内部结构,以及操作系统的工作原理 ;在此 之前,它们对于你来说可能一直都是黑箱。 本书内容包括 :个人可以制作操作系统吗、计算机工作原理和 Hello World 、EDK II 和内存映射、 屏幕显示实践和引导加载器、像素绘图和 make 入门、文本显示和控制台类、鼠标输入和 PCI 、中断和 FIFO、内存管理、叠加过程、窗口、定时器和 ACPI、键盘输入、多任务处理、终端、命令、文件系 统、应用、分页、系统调用、窗口应用、图形和事件、多终端、使用应用加载文件、从应用写入文件、 应用的内存管理、日文显示和重定向、应用间通信、额外应用、前方的路,以及配置开发环境、获取 MikanOS 、EDK II 文件说明、C++ 中的模板、iPXE 、ASCII 码表。 本书的目标读者是写过简单程序的人。如果你编写过几百行代码,有相关编程经验,那么应该可以 毫无顾虑地通读本书。但如果你从未编写过程序,那么阅读本书将会很吃力。
第 0章 个人可以制作操作系统吗 1
0.1 如何制作操作系统 2
0.2 到底什么是操作系统 3
0.3 自制操作系统的步骤 6
0.4 享受自制操作系统的乐趣 7
0.5 自制操作系统的全貌 8
第1章 计算机工作原理和HelloWorld 15
1.1 Hello World 16
1.2 如何查找U盘的设备名称 20
1.3 如何使用WSL 20
1.4 使用模拟器 22
1.5 最终做了些什么 23
1.6 还是让我们动手吧 27
1.7 使用UEFI BIOS启动 28
1.8 制作操作系统的工具 29
1.9 C语言版的Hello World程序 30
第 2章 EDK II和内存映射 33
2.1 EDK II简介 34
2.2 EDK II的Hello World程序(osbook_day02a) 35
2.3 主存储器 38
2.4 内存映射 39
2.5 获取内存映射(osbook_day02b) 41
2.6 将内存映射保存到文件中 43
2.7 检查内存映射 46
2.8 指针简介(1):地址和指针 47
2.9 指针和箭头运算符 48
第 3章 屏幕显示实践和引导加载器 53
3.1 QEMU监视器 54
3.2 寄存器 56
3.3 第一个内核(osbook_day03a) 58
3.4 从引导加载器绘制像素(osbook_day03b) 66
3.5 从内核绘制像素(osbook_day03c) 68
3.6 错误处理(osbook_day03d) 70
3.7 指针简介(2):指针与汇编语言 73
第 4章 像素绘图和make入门 77
4.1 make简介(osbook_day04a) 78
4.2 自由绘制像素(osbook_day04b) 81
4.3 利用C++语言特性重写程序(osbook_day04c) 86
4.4 vtable 91
4.5 改进加载器(osbook_day04d) 93
第 5章 文本显示和控制台类 99
5.1 尝试写入字符(osbook_day05a) 100
5.2 拆分编译(osbook_day05b) 103
5.3 增加字体(osbook_day05c) 106
5.4 字符串绘制和sprintf()(osbook_day05d) 108
5.5 控制台类(osbook_day05e) 110
5.6 printk()(osbook_day05f) 114
第 6章 鼠标输入和PCI 117
6.1 鼠标光标(osbook_day06a) 118
6.2 USB Host驱动程序 121
6.3 搜索PCI设备(osbook_day06b) 123
6.4 带轮询的鼠标输入(osbook_day06c) 132
第 7章 中断和FIFO 141
7.1 中断(osbook_day07a) 142
7.2 中断处理程序 143
7.3 中断向量 144
7.4 设置中断描述符 147
7.5 MSI机制 149
7.6 中断总结 150
7.7 加速中断处理程序(osbook_day07b) 151
7.8 FIFO和FILO 152
7.9 实现队列 153
7.10 使用队列加速中断 157
第 8章 内存管理 161
8.1 内存管理概述 162
8.2 UEFI内存映射(osbook_day08a) 162
8.3 移动数据结构(osbook_day08b) 165
8.4 移动栈区域 166
8.5 设置分段 167
8.6 设置分页 174
8.7 内存管理挑战(osbook_day08c) 177
第 9章 叠加过程 185
9.1 叠加过程概述(osbook_day09a) 186
9.2 new运算符 186
9.3 叠加过程的原理 189
9.4 叠加过程的时间测量(osbook_day09b) 205
9.5 加速叠加过程(osbook_day09c) 209
9.6 测量滚动过程时间(osbook_day09d) 219
9.7 更快的滚动过程(osbook_day09e) 221
第 10 章 窗口 227
10.1 再论鼠标(osbook_day10a) 228
10.2 第一个窗口(osbook_day10b) 229
10.3 快速计数器(osbook_day10c) 232
10.4 消除闪烁(osbook_day10d) 234
10.5 后置缓冲区(osbook_day10e) 240
10.6 拖动窗口(osbook_day10f) 241
10.7 仅拖动窗口(osbook_day10g) 246
第 11 章 定时器和ACPI 249
11.1 整理源码(osbook_day11a) 250
11.2 定时器中断(osbook_day11b) 251
11.3 精确定时(osbook_day11c) 253
11.4 多个定时器和超时通知(osbook_day11d) 257
11.5 ACPI PM定时器和RSDP(osbook_day11e) 261
第 12 章 键盘输入 269
12.1 查找FADT(osbook_day12a) 270
12.2 使用ACPI PM定时器(osbook_day12b) 273
12.3 USB键盘驱动程序(osbook_day12c) 275
12.4 修改键(osbook_day12d) 279
12.5 文本框(osbook_day12e) 283
12.6 光标(osbook_day12f) 286
第 13 章 多任务处理(1) 291
13.1 多任务和上下文 292
13.2 处理上下文切换(osbook_day13a) 293
13.3 自动上下文切换(osbook_day13b) 302
13.4 验证多任务处理(osbook_day13c) 306
13.5 更多任务(osbook_day13d) 307
第 14 章 多任务处理(2) 313
14.1 休眠(osbook_day14a) 314
14.2 事件发生时唤醒(osbook_day14b) 319
14.3 性能测量 324
14.4 确定任务的优先级(osbook_day14c) 324
14.5 休眠任务(osbook_day14d) 332
第 15 章 终端 335
15.1 在主线程中绘制窗口(osbook_day15a) 336
15.2 活动窗口(osbook_day15b) 340
15.3 终端窗口(osbook_day15c) 348
15.4 加速绘图(osbook_day15d) 353
第 16 章 命令 359
16.1 终端中的按键操作(osbook_day16a) 360
16.2 echo命令(osbook_day16b) 364
16.3 clear命令(osbook_day16c) 368
16.4 lspci命令(osbook_day16d) 369
16.5 命令历史记录(osbook_day16e) 370
16.6 省电(osbook_day16f) 373
第 17 章 文件系统 375
17.1 文件和文件系统 376
17.2 BIOS参数块 380
17.3 目录条目 381
17.4 读出卷(osbook_day17a) 383
17.5 ls命令(osbook_day17b) 390
第 18 章 应用 395
18.1 文件分配表(osbook_day18a) 396
18.2 第一个应用(osbook_day18b) 402
18.3 C++中的计算器(osbook_day18c) 408
18.4 标准库(osbook_day18d) 414
第 19 章 分页 417
19.1 可执行文件和内存地址 418
19.2 地址转换 419
19.3 加载并运行应用(osbook_day19a) 422
19.4 虚拟地址和四级分页 422
19.5 在后半部分运行应用 425
19.6 加载应用 426
19.7 设置分层分页结构 428
19.8 整理分层分页结构 432
第 20 章 系统调用 437
20.1 应用如何使用操作系统函数(osbook_day20a) 438
20.2 保护操作系统(1)(osbook_day20b) 440
20.3 设置TSS(osbook_day20c) 447
20.4 帮助查找错误(osbook_day20d) 455
20.5 系统调用(osbook_day20e) 459
20.6 注册系统调用的过程 460
20.7 系统调用本体 462
第 21 章 窗口应用 467
21.1 设置IST(osbook_day21a) 468
21.2 字符串显示系统调用(osbook_day21b) 470
21.3 创建系统调用 472
21.4 创建write() 476
21.5 退出系统调用(osbook_day21c) 478
21.6 返回栈指针 482
21.7 代码整理(osbook_day21d) 484
21.8 打开一个窗口(osbook_day21e) 486
21.9 在窗口中写入文本(osbook_day21f) 487
第 22 章 图形和事件(1) 491
22.1 使用exit()(osbook_day22a) 492
22.2 绘制两个点(osbook_day22b) 494
22.3 获取计时器值(osbook_day22c) 498
22.4 窗口绘制的优化(osbook_day22d) 500
22.5 绘制直线(osbook_day22e) 502
22.6 关闭窗口(osbook_day22f) 506
22.7 等待按键输入(osbook_day22g) 508
第 23 章 图形和事件(2) 517
23.1 鼠标输入(osbook_day23a) 518
23.2 绘图软件(osbook_day23b) 523
23.3 计时器命令(osbook_day23c) 527
23.4 动画(osbook_day23d) 532
23.5 打方块游戏(osbook_day23e) 534
第 24 章 多终端 539
24.1 增加终端数量(osbook_day24a) 540
24.2 光标自动闪烁(osbook_day24b) 541
24.3 同时启动多个应用(osbook_day24c) 544
24.4 修复窗口重叠的错误(osbook_day24d) 549
24.5 不需要终端即可启动应用(osbook_day24e) 550
24.6 冻结操作系统的应用(osbook_day24f) 554
24.7 保护操作系统(2)(osbook_day24g) 556
第 25 章 使用应用读取文件 559
25.1 目录支持(osbook_day25a) 560
25.2 读取文件(osbook_day25b) 566
25.3 正则表达式搜索(osbook_day25c) 575
第 26 章 使用应用写入文件 577
26.1 标准输入(osbook_day26a) 578
26.2 文件描述符的抽象化 578
26.3 接收键盘输入 580
26.4 EOF和EOT(osbook_day26b) 583
26.5 写入文件(1)(osbook_day26c) 584
26.6 写入文件(2)(osbook_day26d) 591
第 27 章 应用的内存管理 597
27.1 按需分页(osbook_day27a) 598
27.2 内存映射文件(osbook_day27b) 604
27.3 测量内存使用情况(osbook_day27c) 612
27.4 写入时复制(osbook_day27d) 614
第 28 章 日文显示和重定向 625
28.1 日文和字符编码(osbook_day28a) 626
28.2 日文字体(osbook_day28b) 633
28.3 重定向(osbook_day28c) 638
第 29 章 应用间通信 645
29.1 退出码(osbook_day29a) 646
29.2 管道(osbook_day29b) 649
29.3 解析命令行并启动任务 651
29.4 管道处理的主体PipeDescriptor 652
29.5 启动和关闭终端 655
29.6 终止任务 657
29.7 排序命令(osbook_day29c) 661
29.8 终端错误修复(osbook_day29d) 663
29.9 共享内存 665
第 30 章 额外应用 667
30.1 应用路径程序(osbook_day30a) 668
30.2 more命令(osbook_day30b) 669
30.3 使cat与输入相对应(osbook_day30c) 672
30.4 关闭按钮(osbook_day30d) 674
30.5 文本查看器(osbook_day30e) 679
30.6 图像查看器(osbook_day30f) 682
第 31 章 前方的路 687
附录A 配置开发环境 690
附录B 获取MikanOS 695
附录C EDKII文件说明 698
附录D C++中的模板 701
附录E iPXE 702
附录F ASCII码表 705
致谢 709
基本信息 | |
---|---|
出版社 | 电子工业出版社 |
ISBN | 9787121508752 |
条码 | 9787121508752 |
编者 | (日)内田公太 著 马起园 等 译 |
译者 | |
出版年月 | 2025-08-01 00:00:00.0 |
开本 | 其他 |
装帧 | 平装 |
页数 | 724 |
字数 | |
版次 | 1 |
印次 | 1 |
纸张 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]