You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
4.6 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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