Skip to content
May the source be with you edited this page Oct 30, 2020 · 6 revisions

《操作系统没那么难》(上)

  • 导读,如何一步步实践操作系统
  • 什么是操作系统
  • 为什么需要操作系统
  • 微内核和宏内核,伤友情的话题
  • 为什么写微内核
  • 准备工作之软件环境搭建
  • 环境准备之硬件环境搭建
  • 第1套代码,没什么比第一次顺利运行更让人开心和鼓舞的了
  • 对第一套代码的解读,初步了解ARM指令和树莓派
  • 不要犹豫,汇编其实很简单
  • C语言的汇编嵌套,以及参数传递的机制
  • 首次解读设备接口:串口
  • ARM CPU的基本知识,首次解读寄存器
  • 第2套代码,鼓起勇气往深水去前进一点:中断
  • 熟悉树莓派的中断
  • 中断处理的基本方法
  • 操作系统的心跳:时钟,赋予它生命
  • 第3套代码,系上安全带:内存和地址
  • 虚拟地址的意义
  • 虚拟地址的实现
  • ARM CPU的运行状态和权限
  • 一次奇妙的时空穿梭:从内核态穿越到用户态
  • 奇妙穿越发生了什么
  • 第4套代码,操作系统的第一个孩子,首个用户态进程
  • 什么是进程
  • 进程的基本要素
  • 进程的是如何创建的
  • 第5套代码,时空旅行的虫洞:系统调用
  • 系统调用的意义
  • 系统调用到底发生了什么
  • 中断和系统调用的相同和不同
  • 第6套代码,操作系统的上帝之手:进程调度
  • 进程的运行状态
  • 时钟中断和进程调度的关系
  • 进程调度的实现方法
  • 第7套代码,微内核操作系统的精华:进程间通信
  • 进程间通信实现方法
  • 进程间数据交换的效率
  • 微内核,通信即服务
  • 第8套代码,生命在繁殖:fork
  • 进程裂变繁殖fork
  • 分道扬镳的父子关系
  • fork的实现方法
  • (待续)
Clone this wiki locally