【课程介绍】
jk109-操作系统实战45讲(HTML+MP3+PDF完结)作为计算机王国中的实际“掌舵人”,操作系统是一切法则的制定者。它掌管着硬件软件等一切资源,并负责处理多种基本事务(内存管理、资源配置、I/O 设备、网络通信等),既能维护公平正义又能杀伐决断,而我们的课程就是讲解如何实现它。
课程设计 课程中,彭东老师将多年的操作系统开发经验倾囊相授,并带你从系统级的高度分析和解决相关问题,理论结合实践,带你从无到有实现一个自己的操作系统。 实现路径 - 从最小内核 Hello OS 练手,初步了解操作系统如何运行;
- 对比经典操作系统,推陈出新,设计自己的操作系统——Cosmos 内核结构;
- 解决操作系统的硬件、同步以及初始化问题,建立 Cosmos 操作系统的测试环境以及虚拟硬件;
- 利用操作系统实现对计算机的管控,把 Cosmos 操作系统做大做强;
- 拓展视野,储备知识,分享技术前沿内容。
知识体系 下图是彭东老师绘制的简版操作系统知识体系图,上面涉及的所有知识点,都会在后续的课程讲到。尽管看上去只是些简短的词汇,但随着课程的展开,你会发现每一小块,都犹如一片汪洋。 终极目标 - 搞懂操作系统长什么样,如何运作,深入理解和掌握相关知识(理论);
- 实现一个自己的,基于 x86 平台的支持多进程的操作系统内核(实操)。
https://time.geekbang.org/column/intro/100078401
【网盘下载地址SVIP专享通道(电脑版访问)】
【课程目录】
开篇词 (1讲)
开篇词 | 为什么要学写一个操作系统?
尝尝鲜:从一个Hello到另一个Hello (2讲)
01 | 程序的运行过程:从代码到机器运行
02 | 几行汇编几行C:实现一个最简单的内核
心有蓝图:设计 (2讲)
03 | 黑盒之中有什么:内核结构与设计
04 | 震撼的Linux全景图:业界成熟的内核架构长什么样?
程序的基石:硬件 (3讲)
05 | CPU工作模式:执行程序的三种模式
06 | 虚幻与真实:程序中的地址如何转换?
07 | Cache与内存:程序放在哪儿?
基本法:同步原语 (2讲)
08 | 锁:并发操作中,解决数据同步的四种方法
09 | 瞧一瞧Linux:Linux的自旋锁和信号量如何实现?
夺权:启动初始化 (6讲)
10 | 设置工作模式与环境(上):建立计算机
11 | 设置工作模式与环境(中):建造二级引导器
12 | 设置工作模式与环境(下):探查和收集信息
13 | 第一个C函数:如何实现板级初始化?
14 | Linux初始化(上):GRUB与vmlinuz的结构
15 | Linux初始化(下):从_start到第一个进程
土地革命:内存 (8讲)
16 | 划分土地(上):如何划分与组织内存?
17 | 划分土地(中):如何实现内存页面初始化?
18 | 划分土地(下):如何实现内存页的分配与释放?
19 | 土地不能浪费:如何管理内存对象?
20 | 土地需求扩大与保障:如何表示虚拟内存?
21 | 土地需求扩大与保障:如何分配和释放虚拟内存?
22 | 瞧一瞧Linux:伙伴系统如何分配内存?
23 | 瞧一瞧Linux:SLAB如何分配内存?
活动实体:进程 (4讲)
24 | 活动的描述:到底什么是进程?
25 | 多个活动要安排(上):多进程如何调度?
26 | 多个活动要安排(下):如何实现进程的等待与唤醒机制?
27 | 瞧一瞧Linux:Linux如何实现进程与进程调度?
下属部门:设备I/O (4讲)
28 | 部门分类:如何表示设备类型与设备驱动?
29 | 部门建立:如何在内核中注册设备?
30 | 部门响应:设备如何处理内核I/O包?
31 | 瞧一瞧Linux:如何获取所有设备信息?
银行仓库:文件系统 (4讲)
32 | 仓库结构:如何组织文件?
33 | 仓库划分:文件系统的格式化操作
34 | 仓库管理:如何实现文件的六大基本操作?
35 | 瞧一瞧Linux:虚拟文件系统如何管理文件?
通信部:网络 (5讲)
36 | 从URL到网卡:如何全局观察网络数据流动?
37 | 从内核到应用:网络数据在内核中如何流转
38 | 从单排到团战:详解操作系统的宏观网络架构
39 | 瞧一瞧Linux:详解socket实现与网络编程接口
40 | 瞧一瞧Linux:详解socket的接口实现
服务交接:接口 (2讲)
41 | 服务接口:如何搭建沟通桥梁?
42 | 瞧一瞧Linux:如何实现系统API?
番外篇:虚化的世界 (4讲)
43 | 虚拟机内核:KVM是什么?
44 | 容器:如何理解容器的实现机制?
45 | ARM新宠:苹果的M1芯片因何而快?
46 | AArch64体系:ARM最新编程架构模型剖析
特别放送 (4讲)
用户故事 | 成为面向“知识库”的工程师
用户故事 | 操作系统发烧友:看不懂?因为你没动手
用户故事 | 技术人如何做选择,路才越走越宽?
大咖助场|以无法为有法,以无限为有限
结束语 (3讲)
结束语 | 生活可以一地鸡毛,但操作系统却是心中的光
结课测试 |这些操作系统的问题,你都掌握了么?
编辑手记 | 升级认知,迭代自己的操作系统
|