1、搭建操作系统框架,输出hello world
2、汇编篇一:先聊汇编全貌、再玩转寄存器
3、汇编篇二:手绘堆栈图,玩转系统执行流
4、汇编篇三:玩转函数,自构建执行流
5、让你的操作系统内核突破512字节
6、引入Makefile管理项目的编译链接
7、了解硬盘工作原理,编写硬盘驱动
8、为了扩展性,将硬盘作为操作系统启动盘
9、让所有虚拟机支持我们写的操作系统:bochs、gemu、VMware
课前:搭建windows内核双击调试环境
1、让我们的操作系统进入保护模式
2、深刻理解段选择子、段描述符、GDT表、LDT表
3、深刻理解CPL、RPL、DPL
4、单步调试windows内核,实战GDT表
5、用户态切内核态的秘密:中断门、调用门、任务门、陷阱门
6、实战调用门实现应用态切内核态再回应用态
1、编写代码进入保护模式,寻址突破1M瓶颈
2、配置环境,让我们的内核支持C语言开发与调试
3、带你玩转ELF文件、gcc、编译与链接
4、C语言基础与实战技巧
5、带你玩转指针
6、C语言如何开发项目
7、封装操作硬件的10接口
8、实现终端输出模块
9、实现字符串处理库string.h
10、实现可变参数、实现内核打印函数printk实现无限打印
11、C语言接管GDT,为后面更为方便地控制CPU权限做准备对应
的代码分支
1、玩转中断控制芯片,深刻理解硬中断与软中断
2、编码激活中断控制芯片,填充中断向量表,让我们的内核接管中断
3、编码实现键盘中断,为后面实现命令行做准备
4、编码实现时钟中断,为后面实现任务调度做准备
1、知根知底借助BIOS中断检测物理内存,获取内存条信息
2、仿linux实现物理内存管理模块
3、单步调试windows内核,深入理解101012分页
4、单步调试Windows内核,深入理解29912分页
5、仿linux实现虚拟内存管理模块
1、仿linux实现0号进程
2、实现由0号进程创建出1号进程、2号进程..
3、利用时钟中断与仿linux调度算法,实现多任务切换
4、加入任务优先级来控制任务调度频率、先后顺序
5、实现任务阻塞、睡眠、唤醒、退出
6、实现内核态的sleep函数
1、巧妙借助中断回到用户态
2、填充TSS,让系统完整进入用户态
3、构建中断门0x80,搭建系统调用框架
4、编码实现用户态输出函数write
5、编码实现printf,深刻理解系统调用
6、编码实现在用户态退出进程函数_exit
. Linux网络编程篇
1、教你写出稳定可靠的网络通信框架
2、教你手写实现I0多路复用器
. 手写网络协议栈
1、编码获取网卡信息,如Mac地址
2、编码与DHCP服务器通信,租赁IP地址
3、编码实现ARP、IP、TCP、UDP协议
4、编码实现网络数据包拦截、过滤、更改