闲话
最开始知道这本书是在校内论坛上,有同学通过这本书里的项目拿到大厂的ssp offer,于是就从网上订购了这本较为大部头的书,想要在简历上添加一个足够底层并且有意思的项目经历,从而帮助自己在秋招时赢得一个好的offer。
第一遍阅读时,我兢兢业业地照着书中的代码一行一行地进行抄写,时常因为一行代码抄错而debug好几天甚至通宵debug(相信有人有和我一样的困扰),但到后面的章节实在不堪其扰,一是因为书中只列出了大部分关键代码而其他代码需要自己补全,而另外debug有时候虽然可以从中收获到不少但在一些小的细节上出错反复查找反而有些得不偿失,最后还是没有抄到最后。尽管如此,读者如果本着写个项目进简历的想法,建议还是先看懂书本的代码,然后直接用作者提供的源码来运行即可。根据我的体验来说,抄写的过程基本是纯体力劳动,基本上没有任何思考,如果要提高,多复习一遍书或者改几处代码远比抄来的有效。这里留下本书前言里面作者留下的读者交流qq群:148177180,各个章节对应的代码和工具群文件里面都有。
笔记
本系列笔记的一开始是方便自己复习用,在看完本书后,由于缺乏系统的梳理和复习,在面试被问及的时候会感到很多东西很熟悉却又忘记了,于是经历过几次后我就重看了好几遍这本书,把其中的精华和面试中可以吹牛以及可能容易被问到的地方整理出来了:
- 第0章 一些你可能正感到迷惑的问题
- 第1章 部署工作环境
- 第2章 编写MBR主引导记录,让我们开始掌权
- 第3章 完善MBR
- 第4章 保护模式入门
- 第5章 保护模式进阶,向内核迈进
- 第6章 完善内核
- 第7章 中断
- 第8章 内存管理系统
- 第9章 线程
- 第10章 输入输出系统
- 第11章 用户进程
- 第12章 进一步完善内核
- 第13章 编写硬盘驱动程序
- 第14章 文件系统
- 第15章 系统交互
有的章节写的很粗糙,如果要认真看还是建议阅读原书吧。
项目介绍
另外,还有在项目介绍方面,以下是个人秋招时写进简历的版本,供大家参考:
MyTinyOS---微型操作系统 独立开发
应用技术:汇编语言、C语言、gdb、Makefile
主要工作:
1. 搭建VirtualBox + CentOS + bochs模拟仿真环境,并在实模式下实现MBR、bootloader;
2. 构建GDT,开启A20总线,进入保护模式,启用内存分页机制,实现特权级并载入内核;
3. 实现中断处理机制,完善内存管理系统,逐步实现内核线程、用户进程,锁、输入输出等机制;
4. 进一步完善内核,实现系统调用,创建文件系统、简单的系统交互等;
项目成果:从零开始一步步实现操作系统,最终实现了一个小型的类Linux操作系统。