# Linux 考古项目计划书

2017 年 10 月，[泰晓科技](http://tinylab.org) 发起并成立了“Linux 考古队”，志在共同学习和研究历史版本的 Linux 内核，输出学习笔记并汇总成册。

## 项目概述

### 项目目标

* 完成对早期 Linux kernel 的探索和学习，掌握各个核心模块
* 输出研究学习文档，并汇总成册，PR 到 lad-book 并编译成书
* 输出研究学习成果，录制视频分享知识

### 项目开发环境

* [Cloud Lab](http://tinylab.org/cloud-lab/)
* [Linux 0.11](http://tinylab.org/linux-0.11-lab/)
* [Markdown Lab](http://tinylab.org/markdown-lab/)

### 应交付的成果

* 完整的内容梳理流程图
* 加过 debug 信息的代码
* 详细的结题报告（梳理文档）
* 对应的直播视频分享

### 项目验收机制

实行队长验收制，由各个模块的负责人进行 Check，然后提交 PR 到 PM，PM 核验完毕后合入 lad-book。

### 项目愿景

* 通过此次考古，各个团队争当 Linux Kernel 领域的专家团队
* 做中国开源在线协作领域的先行者，推动者。

## 团队组织

### 组织结构

|    角色   |                                职责                               |  备注 |
| :-----: | :-------------------------------------------------------------: | :-: |
| Manager |             提供项目所需要的核心部件支持，包括核心实验环境。定期审阅项目经理提交的相关报告             |     |
|    PM   | 制定项目计划并依据计划对项目进行监督和跟踪控制。定期发布 Release 并向经理汇报项目进展，对项目中出现的问题及时采取措施 |     |
|    组长   |        研究，组织，协调，汇总学习成果。并定期组织内部电话会议，维护和校订组内输出成果并 PR，保持进度同步       |     |
|    组员   |                         负责各个模块的研究，学习，输出                         |  .  |

### 人员分工

|   姓名  |    角色   |              职责             |                     备注                     |
| :---: | :-----: | :-------------------------: | :----------------------------------------: |
|  吴章金  |   发起人   | 核心实验环境的提供者，项目发起人，开源领域专家，先行者 |                泰晓科技创始人，项目发起者               |
| Keven |   项目经理  |  帮助大家制定计划，辅助各模块负责人把控考古质量和成果 |   多年内核驱动开发经验，目前在知名外企担任 Kernel 开发工程师，项目推动者  |
|  史璞金  | A 组开发组长 |     制定组内考古计划，输出文档，定期组织会议    |   211 高校大四学生，有丰富的社区经验以及强烈的责任感，在校参与多个项目开发   |
|   张灏  | B 组开发组长 |              同上             |        多年嵌入式开发经验，熟悉各种芯片，目前担任驱动开发工程师        |
| Keven | C 组开发组长 |              同上             |                    同上上上                    |
|  李松泽  | D 组开发组长 |              同上             |        多年工作经验，目前在知名国内集成电路公司担任驱动开发工程师       |
|  王举利  | E 组开发组长 |              同上             |         多年驱动开发工作经验，目前在知名外企担任驱动开发工程师        |
|   燕涛  | F 组开发组长 |              同上             | 多年设备驱动开发经验，目前在互联网巨头（BAT 中最厉害的那个）从事虚拟化测试工程师 |
|  方英宁  | G 组开发组长 |              同上             |       多年设备驱动开发经验，目前在国内知名半导体公司从事驱动开发经验      |
|  陈恩召  | H 组开发组长 |              同上             |          近 10 年驱动开发经验,目前从事网路相关开发工作         |

### 小组成员

|                    组长                    | 小组编号 |      研究模块      |           内容描述          | 预设人数 |
| :--------------------------------------: | :--: | :------------: | :---------------------: | :--: |
| [史璞金](https://github.com/lina-not-linus) |   A  |      背景知识      |       C语言、汇编、数据结构       |   5  |
|    [张灏](https://github.com/Axl-zhang)    |   B  |      基础部分      |  内核体系结构(进程相关、堆栈相关、核心调度) |   5  |
|    [Keven](https://github.com/bjwrkj)    |   C  |      基础部分      | 内核体系结构(中断子系统、定时器、时钟、异常) |   5  |
|  [李松泽](https://github.com/lisongze2016)  |   D  |      引导和启动     |         引导、初始化过程        |   5  |
|    [王举利](https://github.com/yiran-ooo)   |   E  |      设备驱动      |        块设备和字符设备驱动       |   5  |
|    [燕涛](https://github.com/DeviosLang)   |   F  |      文件系统      |           文件系统          |   5  |
|  [方英宁](https://github.com/fangyingning)  |   G  |      内存管理      |           内存管理          |   5  |
|    [陈恩召](https://github.com/ripewheat)   |   H  | 库文件，头文件，以及编译规则 |       头文件、库文件、编译规则      |   5  |

### 协作和沟通

#### **线上内部协作**

由于考古队成员来自全国各地，大家都是通过网络来进行沟通和学习。为了更好的进行协作，我们项目采用了 github + gitbook 的在线协作模型。 并采用微信群，邮件群等多样式的沟通工具。

#### **线下沟通**

考古队将不定期举办线下沙龙活动。

## 实施计划

### 工作流程

详情见上述实验环境

### 项目时间计划

|         任务        |   人员  |    开始时间    |    截止时间    | 是否结束 |
| :---------------: | :---: | :--------: | :--------: | :--: |
|       成立考古队       |  泰晓科技 |  2017.10.1 |  2017.10.9 |   是  |
| 创建 lad-book 及项目首页 |  吴章金  | 2017.10.10 | 2017.10.15 |   是  |
|        筛选组长       | Keven | 2017.10.20 |  2017.11.5 |   是  |
|     重新报名并建立小组群    |  各组组长 |  2017.11.4 |  2017.11.5 |   是  |
|      熟悉在线协作流程     |  所有人  |  2017.11.6 | 2017.11.13 |   是  |
|        确定规范       | Keven |  2017.11.9 | 2017.11.16 |   是  |
|   各组长组织各组阶段性输出输出  |  所有人  | 2017.11.16 | 2017.12.16 |   否  |

### 质量保证计划

实行互相 Review 的规则，组长将组内输出内容PR后，由 PM 将 PR 的内容简单审核，然后下发其他组组长进行二次 Review。

### 进度控制计划

将定期同步考古进度，把控每个组的考古计划。

### 清理计划

对于不参与的成员将进行清理，清理规则如下:

* 报名后，长时间没有输出
* 报名后，长时间没有分享

## 赞助

为了更好的推进这次考古活动，期待不能亲自参与的同学能够赞助我们。相关费用将用于设立项目奖，用来激励更多同学参与Linux 0.11 的学习和研究并撰写考古笔记。

赞助方式请通过[泰晓服务中心](https://weidian.com/item.html?itemID=2211579775) 进行。

更多高质量的考古成果需要您的支持！

> lad Team
