从“一步一步写操作系统”到“一步一步抄操作系统”
来源:互联网 发布:如何查看路由器端口号 编辑:程序博客网 时间:2024/04/29 23:32
前段时间在阅读《一步一步写嵌入式操作系统》,按照书本的内容一步一步写操作系统。
不过在写的过程中比较纠结,因为《一步一步写嵌入式操作系统》一书提供了完整的样例代码,完全按照书中的内容一句一句敲代码视乎比较愚蠢,像小学的时候抄《小学生守则》一样。如果不敲代码,直接将网上下载的样例代码编译运行一遍又没有什么效果,不能深入理解其中原理。
于是产生了一步一步“抄”一个操作系统的想法,基本做法就是按照《一步一步写嵌入式操作系统》一书的内容自己建构汇编和c的代码文件,然后将样例代码中的代码一段一段拷贝进来,拷贝的时候务求理解每段代码的工作方式。这样既可以避免重复劳动,又可以避免走马观花。
其中总结的一个小技巧就是代码拷贝的粒度要把握好,最好以方法为单位粒度。同时方法的名称在拷贝时可以稍作修改,使其它部分的样例代码无法直接使用,必须根据新的方法名作代码修改才能使用。
通过这种方式,很快《一步一步写嵌入式操作系统》书中的样例就不够抄了,于是狠下心开始抄Linux 2.6的内核。基本做法类似,不过Linux更为复杂,需要考虑许多周边的因素,特别是Makefile和Kbuild。最后用了一种取巧的方法,就是通过Linux的make命令对Linux内核进行编译,编译过程中带v=1参数,将详细的编译命令保存在日志文件中供参考。同时编译运行正确后不运行make clean命令,充分利用make命令生成的中间文件。
目前已经完成启动到保护模式的分段编译,感觉效果比较好,比较深入地了解了Linux 2.6内核从启动到保护模式的运行过程。
建议希望深入学习Linux操作系统的同学们使用这种方式进行学习。
我分步编译的代码已经上传到github上了,链接是
https://github.com/DamonDeng/LinuxSBS
有兴趣的同学可以看看
以后有时间和大家分享具体细节。- 从“一步一步写操作系统”到“一步一步抄操作系统”
- 读《一步一步写嵌入式操作系统》
- 一步一步写嵌入式操作系统学习(一)
- 一步一步写嵌入式操作系统之MMU
- 一步一步写嵌入式操作系统 第二章练习。
- Linux From Scratch(一步一步从源代码构建Linux 操作系统)
- 一步一步安装CentOS 5.6操作系统
- 《一步一步嵌入式操作系统》笔记2-环境搭建
- 一步一步写嵌入式操作系统中skyEye-1.2.6的安装问题
- 《一步一步写嵌入式操作系统——ARM编程方法与实践》(第一章、第二章)读书笔记
- 《一步一步写嵌入式操作系统——ARM编程方法与实践》读书笔记(第三章)
- Raspberry Pi 2从裸板到ubuntu14.04,一步一步安装Robot Operating System(机器人操作系统)
- 从安装操作系统开始,一步一步详细的基于spring web项目创建与发布
- 如何一步一步从 QA 到 EP
- 从裸机到操作系统
- 一步一步安装vertica7.0.x(操作系统:CentOS6.x)
- 《一步一步嵌入式操作系统》笔记1-写在前面的话
- 《自己动手写操作系统》第五章 从loader到内核
- 回首中的童年芒鞋
- android 五大布局
- apk 反编译 讲解
- C++拷贝构造函数(深拷贝,浅拷贝)
- 杭电2096 小明A+B
- 从“一步一步写操作系统”到“一步一步抄操作系统”
- 面向对象设计原则之里氏代换原则
- ubuntu 12.04 RoboCup 2D 仿真安装记录
- 面向对象的编程——拷贝构造函数(1)
- 堆与栈
- 多线程总结
- 收到北京大学图形图像研究所彭老师的来电
- 2010-08-22_ximo_也来谈谈VMP2.05的脱壳
- 保持简单----纪念丹尼斯•里奇(Dennis Ritchie)