Home - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki

Table of Contents

导读

  • 本项目是关于Unix V6 on Pdp11/40 的源代码分析,类似于Lions版的源代码分析,但是更为详尽、更为奶爸流
  • 本项目是基于GPL协议,请自由使用于非商业非营利用途。
  • 源代码 参照 Lions 源代码(参考文献),对于其中的错误有部分修正
    由于水平所限,有些部分定有纰漏,请指正。请参看本页最后的"如何参与进来"
  • 阅读索引
    • 代码行表,按照 LIONS源代码行标 生成的函数列表
    • 数据字典,对于 常用的名称(如 user)等,可能会遗漏链接(user出现的实在太多了...)
      可在数据字典中查找常用名称及链接
    • 参考文献,列出了主要的参考文献
    • 遗留问题,遗留下很多问题(源代码实在纠结,请大家理解...),欢迎大家讨论
    • 本页后面有对于运行机制的说明。仅只对源代码涉及到重要/突出的部分进行说明,更详细更结构化的介绍请详细参看 参考文献
  • 关于 源代码分析 的基本说明
    • 源代码分析 假设 阅读者有基础的Unix操作系统常识(参考文献中 尤晋元老师的书 一定要看过)
    • 源代码分析 有一部分依赖于LIONS源代码分析(会标注出来)
      有些观点 与LIONS源代码分析有悖,属个人观点,请权衡选用
    • 对于 重要的函数,源代码分析 均采用 "奶爸流"
      对于比较容易的部分,说明较为简略
    • 对于一些解释不了的现象,以pdp11虚拟机实验结果为准
    • 对于 编译器做的工作(如 系统调用的参数传递过程)不做说明
    • 对于 外设寄存器 不做完全说明,请阅读参考文献 的 外设手册
    • 外设驱动 仅以 RK磁盘 和 tty终端 为例,其余驱动不予分析(道理大同小异...)
    • 有两大块代码并未分析(与系统相关太紧密,代码太诡异,实在是看不懂...)

机制

这张图只标注了部分主要的机制,为了方便理解

关于与感谢

  • 本项目是jeou1988和我(Tachikoma)在大学时代(2009~2010)的作品,详细请参看作者
  • 多年之后(2013)重新审视和整理了本项目,仍然发现非常详尽、质量过关,决定将其开源,并得到导师许可
  • 感谢我们的导师,同济大学的 陈闳中 教授这些年对我们的指导和帮助。本项目的开源有幸得到了陈教授的许可和肯定
  • 感谢Bell实验室、Lions同学、尤晋元老师...

如何参与进来

  • 我们热切欢迎您的参与,哪怕是提交非常非常小的标点失误,或者非常基础非常简单的疑问,或者是颠覆性的建议,都请不要迟疑
  • 开源本项目的是希望能对学习UnixV6的同道有所帮助,同时希望能吸取大家的经验
  • 我们仍然有很多纰漏和未解决的遗留问题,需要您的帮助
  • 如果您发现任何纰漏、疑问、描述不详之处,请果断通过github提交issue
  • 如果您有任何任意小的改进想法或意见,可通过github提交issue,或者直接联系作者
  • 如果您不幸看上了作者,请不要犹豫,可通过github提交issue,或者直接联系作者
⚠️ **GitHub.com Fallback** ⚠️