品读 Linux 0.11 核心代码 目标:带大家把 Linux 0.11 核心代码与操作系统的设计思想啃下来 首发地址:公众号 无聊的闪客 互动方式:知识星球 『闪客的读者朋友们』 书籍购买:《Linux 源码趣读》 开篇词:闪客新系列!你管这破玩意叫操作系统源码 已发布文章: 开篇词 第一部分:进入内核前的苦力活 第1回 最开始的两行代码 第2回 自己给自己挪个地儿 第3回 做好最最基础的准备工作 第4回 把自己在硬盘里的其他部分也放到内存来 第5回 进入保护模式前的最后一次折腾内存 第6回 先解决段寄存器的历史包袱问题 第7回 六行代码就进入了保护模式 第8回 烦死了又要重新设置一遍 idt 和 gdt 第9回 Intel 内存管理两板斧:分段与分页 第10回 进入 main 函数前的最后一跃! 第一部分总结与回顾 第二部分:大战前期的初始化工作 第11回 整个操作系统就20几行代码 第12回 管理内存前先划分出三个边界值 第13回 主内存初始化 mem_init 第14回 中断初始化 trap_init 第15回 块设备请求项初始化 blk_dev_init 第16回 控制台初始化 tty_init 第17回 时间初始化 time_init 第18回 进程调度初始化 sched_init 第19回 缓冲区初始化 buffer_init 第20回 硬盘初始化 hd_init 第二部分总结与回顾 第三部分:一个新进程的诞生 第21回 新进程诞生全局概述 第22回 从内核态切换到用户态 第23回 如果让你来设计进程调度 第24回 从一次定时器滴答来看进程调度 第25回 通过 fork 看一次系统调用流程 第26回 fork 中进程基本信息的复制 第27回 fork 中进程内存规划的问题 第三部分总结与回顾 第28回 番外篇 - 我居然会认为权威书籍写错了... 第29回 番外篇 - 让我们一起来写本书? 第30回 番外篇 - 写时复制就这么几行代码 第四部分:shell 程序的到来 第31回 | 拿到硬盘信息 第32回 | 加载根文件系统 第33回 | 打开终端设备文件 第34回 | 进程2的创建 第35回 | execve 加载并执行 shell 程序 第36回 | 缺页中断 第37回 | shell 程序跑起来了 第38回 | 操作系统启动完毕 第39回 | 番外篇 - Linux 0.11 内核调试 第40回 | 番外篇 - 为什么你怎么看也看不懂 第四部分总结与回顾 第五部分:从一个命令的执行看操作系统各模块的运作 第41回 | 番外篇 - 跳票是不可能的 第42回 | 用键盘输入一条命令 第43回 | shell 程序读取你的命令 第44回 | 进程的阻塞与唤醒 第45回 | 解析并执行 shell 命令 第46回 | 读硬盘数据全流程 第47回 | 读取硬盘数据的细节 第48回 | 信号 操作系统大完结 我的第一本数出版了 Star History 架构图