linux源码趣读总结

发布时间 2023-12-01 20:50:04作者: dchg

总结 linux源码趣读

花了半个月左右,看完了闪客的 linux 源码趣读。感觉之前上的操作系统原理课程只能给你一个模糊的印象,啊,有这个概念来着,有这个算法来着。比起从理论到实践的文字游戏,我还是更喜欢从实践讲理论的脚踏实地。从阅读 linux-0.11 源码,了解操作系统的构成。
所谓的总结就是放到能够随时索引的地方。

盲总结

在进入 c 语言之前,用汇编进行了从实模式到 32位保护模式的转换。操做系统的构成是与理论息息相关的。我们需要在构建操作系统的同时不足操做系统原理知识,需要一些额外的参考书。
还有一些内存管理。
对于 linux 内核来说,一个 main 函数就是全部了。
分为几部分

  • 初始化,是下面所有操做系统模块的基石。内存管理。
  • fork 与进程管理
  • shell、文件系统、文件从硬盘导入内存的过程、缓冲区。第三部分比较过程化,把几个系统的使用过程汇总在一起了。

linux-0.11 不涉及图形化界面的操做系统代码,这部分我们可以通过《30天自制操做系统》了解并且实践。
很多系统调用函数都是用汇编写的,能否用别的语言呢?
文章中提到的几个问题,能否通过自己的语言和代码实现和解决。

明总结

博客框架总结,目录

  • 汇编
    • 加载启动区,
    • 载入代码,
    • GDT,
    • 转换实模式到保护模式,
    • 分段与分页,
    • 跳转到 main
  • 初始化
    • 内存规划,
    • 内存位图等初始化,
    • 中断初始化,
    • 块请求初始化,
    • tty 初始化,
    • 计时器 cmos 初始化,
    • 进程调度初始化,
    • 缓冲区初始化,
    • 硬盘初始化
  • 进程
    • 从内核态到用户态
    • 进程调度设计
    • 定时器滴答时的进程调度过程
    • fork、系统调用
    • fork 中的进程信息复制
    • fork 中的进程内存规划
    • 写时复制的原理
  • shell
    • 硬盘信息
    • 根文件系统
    • 打开终端设备文件
    • 进程2
    • execve 系统调用
    • 缺页中断
    • 跑通 linux-0.11
  • shell 命令的执行
    • 键盘输入
    • shell 读取
    • 输入处理途中进程的阻塞与唤醒
    • 解析执行 shell 命令
    • 读取硬盘数据
    • 信号
      查看一下 linux-0.11 的源码,把源码加上注释成为自己的源码。
      感觉一篇篇看好无聊。不如开始着手写

操作系统编写计划

参考资料

  1. 30天自制操作系统
  2. linux-0.11
  3. xv6

命名:
dchgos

首先根据《30天自制操作系统》一步步做,完成一个 demo。
同时参考 linux-0.11、xv6、linux 更高版本的相应模块的实现,学习,优化 demo。
每天写项目进度报告。