操作系统实战45讲
00-开篇词-为什么要学写一个操作系统?.html
01-编辑手记-升级认知,迭代自己的操作系统.html
02-01-程序的运行过程:从代码到机器运行.html
03-02-几行汇编几行C:实现一个最简单的内核.html
04-03-黑盒之中有什么:内核结构与设计.html
05-04-震撼的Linux全景图:业界成熟的内核架构长什么样?.html
06-05-CPU工作模式:执行程序的三种模式.html
07-06-虚幻与真实:程序中的地址如何转换?.html
08-07-Cache与内存:程序放在哪儿?.html
09-08-锁:并发操作中,解决数据同步的四种方法.html
10-09-瞧一瞧Linux:Linux的自旋锁和信号量如何实现?.html
11-10-设置工作模式与环境(上):建立计算机.html
12-11-设置工作模式与环境(中):建造二级引导器.html
13-12-设置工作模式与环境(下):探查和收集信息.html
14-13-第一个C函数:如何实现板级初始化?.html
15-14-Linux初始化(上):GRUB与vmlinuz的结构.html
16-15-Linux初始化(下):从_start到第一个进程.html
17-16-划分土地(上):如何划分与组织内存?.html
18-17-划分土地(中):如何实现内存页面初始化?.html
19-18-划分土地(下):如何实现内存页的分配与释放?.html
20-19-土地不能浪费:如何管理内存对象?.html
21-20-土地需求扩大与保障:如何表示虚拟内存?.html
22-21-土地需求扩大与保障:如何分配和释放虚拟内存?.html
23-22-瞧一瞧Linux:伙伴系统如何分配内存?.html
24-23-瞧一瞧Linux:SLAB如何分配内存?.html
25-24-活动的描述:到底什么是进程?.html
26-25-多个活动要安排(上):多进程如何调度?.html
27-26-多个活动要安排(下):如何实现进程的等待与唤醒机制?.html
28-27-瞧一瞧Linux:Linux如何实现进程与进程调度.html
29-28-部门分类:如何表示设备类型与设备驱动?.html
30-29-部门建立:如何在内核中注册设备?.html
31-30-部门响应:设备如何处理内核I-O包?.html
32-31-瞧一瞧Linux:如何获取所有设备信息?.html
33-32-仓库结构:如何组织文件.html
34-33-仓库划分:文件系统的格式化操作.html
35-34-仓库管理:如何实现文件的六大基本操作?.html
36-35-瞧一瞧Linux:虚拟文件系统如何管理文件?.html
37-36-从URL到网卡:如何全局观察网络数据流动?.html
38-37-从内核到应用:网络数据在内核中如何流转.html
39-38-从单排到团战:详解操作系统的宏观网络架构.html
40-39-瞧一瞧Linux:详解socket实现与网络编程接口.html
41-40-瞧一瞧Linux:详解socket的接口实现.html
42-41-服务接口:如何搭建沟通桥梁?.html
43-42-瞧一瞧Linux:如何实现系统API?.html
44-43-虚拟机内核:KVM是什么?.html
45-44-容器:如何理解容器的实现机制?.html
46-45-ARM新宠:苹果的M1芯片因何而快?.html
47-46-AArch64体系:ARM最新编程架构模型剖析.html
48-大咖助场-以无法为有法,以无限为有限.html
49-用户故事-成为面向“知识库”的工程师.html
50-用户故事-操作系统发烧友:看不懂?因为你没动手.html
51-用户故事-技术人如何做选择,路才越走越宽?.html
52-用户故事-用好动态调试,助力课程学习.html
53-用户故事-yiyang:我的上机实验“爬坑指南”.html
54-结束语-生活可以一地鸡毛,但操作系统却是心中的光.html
55-结课测试-这些操作系统的问题,你都掌握了么?.html
56-参考答案-对答案,是再次学习的一个机会.html