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