底层视角:从硬件模型到内核启动 很多开发者写代码多年,却对程序在机器上的真实运行轨迹缺乏直观认知。这门课的核心价值,在于强制读者跳出高级语言的抽象层,重新建立「计算机是如何工作的」这一底层心智模型。课程并未直接堆砌枯燥的理论知识,而是遵循「自底向上」的工程逻辑,先通过 X86 汇编基础与反汇编简单 C 程序,拆解指令执行细节;继而利用 mykernel 模…
很多开发者写代码多年,却对程序在机器上的真实运行轨迹缺乏直观认知。这门课的核心价值,在于强制读者跳出高级语言的抽象层,重新建立「计算机是如何工作的」这一底层心智模型。课程并未直接堆砌枯燥的理论知识,而是遵循「自底向上」的工程逻辑,先通过 X86 汇编基础与反汇编简单 C 程序,拆解指令执行细节;继而利用 mykernel 模拟硬件平台,演示函数调用堆栈的压栈与弹栈过程。这种从指令级到系统级的渐进式推导,是理解操作系统内核工作原理的必要前置训练。只有厘清了用户态与内核态的边界、中断机制如何切换上下文,后续的 Linux 源码分析才具备坚实的根基。
本资料最显著的工程特色,在于其高度可复用的实践路径。课程引导读者在 mykernel 基础上逐步构造出 Mini-Linux(MenuOS),这一过程并非简单的代码阅读,而是通过跟踪调试 Linux 内核的启动过程,直观呈现内核初始化、内存管理初始化及进程调度器启动的全生命周期。随后,课程深入剖析系统调用的三层架构:从库函数 API 到 C 代码嵌入汇编触发中断,再到内核态处理函数的落地。这种「构造—跟踪—拆解」的闭环训练,使得抽象的系统调用机制变得具象可感。读者将亲手实现从用户空间请求到内核空间响应的完整链路,掌握内核态异常处理、进程切换等核心机制的实现细节。
本课程适合具备一定 C 语言基础、希望深入理解操作系统原理的后端开发者或计算机专业学生。它填补了高层应用开发与底层系统实现之间的知识断层。建议学习时,务必按顺序完成各章节配套的实验与作业,尤其是 mykernel 模拟平台的搭建与 MenuOS 的构造环节,这些是检验是否真正理解内核启动流程的关键标尺。学完后,读者能够独立分析 Linux 内核启动代码,理解系统调用的完整执行路径,并能在此基础上进行简单的内核模块开发或性能调优。资料中的测试题与作业设计紧密围绕核心概念,建议边看讲解边动手复现代码,而非被动观看视频,以确保将知识转化为可落地的工程能力。
1, 计算机是如何工作的? 1, 存储程序计算机工作模型 2, X86汇编基础 3, 反汇编一个简单的C程序分析其汇编指令执行过程 name.txt 作业.docx 测试题 2, 操作系统是如何工作的? 1, 计算机是如何工作的?(续)——函数调用堆栈 2, 利用mykernel实验模拟计算机硬件平台 3, 在mykernel基础上构造一个简单的操作系统内核 name.txt 作业.docx 测试题 3, 构造一个简单的Linux系统MenuOS 1, Linux内核源代码简介 2, 构造一个简单的Linux系统 3, 跟踪调试Linux内核的启动过程 作业.docx 测试题 4, 扒开系统调用的三层皮(上) 1, 用户态、内核态和中断 2, 系统调用概述 3, 使用库函数API和C代码中嵌入汇编代码触发同一个系统调用 name.txt 作业.doc 测试题 5, 扒开系统调用的三层皮(下
1, 计算机是如何工作的? 1, 存储程序计算机工作模型 2, X86汇编基础 3, 反汇编一个简单的C程序分析其汇编指令执行过程 name.txt 作业.docx 测试题 2, 操作系统是如何工作的? 1, 计算机是如何工作的?(续)——函数调用堆栈 2, 利用mykernel实验模拟计算机硬件平台 3, 在mykernel基础上构造一个简单的操作系统内核 name.txt 作业.docx 测试题 3, 构造一个简单的Linux系统MenuOS 1, Linux内核源代码简介 2, 构造一个简单的Linux系统 3, 跟踪调试Linux内核的启动过程 作业.docx 测试题 4, 扒开系统调用的三层皮(上) 1, 用户态、内核态和中断 2, 系统调用概述 3, 使用库函数API和C代码中嵌入汇编代码触发同一个系统调用 name.txt 作业.doc 测试题 5, 扒开系统调用的三层皮(下) 1, 给MenuOS增加time和time-asm命令 2, 使用gdb跟踪系统调用内核函数sys_time 3, 系统调用在内核代码中的处理过程 name.txt 作业.docx 测试题 6, 进程的描述和进程的创建 1, 进程的描述 2, 进程的创建 name.txt 作业.docx 测试题 7, 可执行程序的装载 1, 预处理、编译、链接和目标文件的格式 2, 可执行程序、共享库和动态链接 3, 可执行程序的装载 name.txt 作业.docx 测试题 8, 进程的切换和系统的一般执行过程 1, 进程切换的关键代码switch_to分析 2, Linux系统的一般执行过程 3, Linux系统架构和执行过程概览 name.txt 作业.docx 测试题