1、先了解了解基础吧,找一本薄一点的,浅一点的书,了解一下什么是linux。有个基本了解即可。不建议马上看《鸟哥的Linux私房菜》,这本书很不错,如果你了解linux基础之后再看,对你可以说是不受益匪浅都不行。没基础看《鸟哥的Linux私房菜》比较痛苦,内容很多。
2、了解之后,在自己电脑上弄个虚拟机,装上linux系统(redhat或ubuntu都行)。专攻《鸟哥的Linux私房菜》。当你把这本书攻下来时,才知道原来命令行并不可怕,自己打着打着就很长啦。
学linux最主要靠实践,不实践,只看书对你没好处的哦。自己在虚拟机上慢慢玩吧,玩多了就知道咋回事啦。不懂的多找资料弄懂,弄懂之后再实践,这才会有收获。
目录(?)[+]本系列文章调试Linux-0.11,大部分都是一些新内容,小部分是对代码的一些印证。另写了一些调试工具,比如readizone,readblock,readinode这些工具对学习linux-0.11 *** 作系统很有帮助。当然还需要stat和hexdump工具的配合。fdiskforlinux-0.11开始到-13/3/15的文章导出的pdf文件下载另写了一些工具源代码分析,比如mkfs.c源代码分析和d
“一个好一点儿的计算机硕士毕业的学生。写一个 *** 作系统的内核绝对是应该办到而且肯定可以办到的事儿。” ------这句话我们可以理解为”一个好的计算机硕士掌握的理论知识足够他搭建起一个简单的 *** 作系统框架“。\x0d\x0a\x0d\x0a我上 *** 作系统课(大二)的第一天就问我的老师,学完了这门课可以自己实现一个 *** 作系统了吗?老师说:”你可以基本掌握 *** 作系统中要处理的主要问题,但是即使实现最简单的五脏俱全的 *** 作系统还需要掌握很多很多东西,而且前提是你已经有很不错的代码能力。“\x0d\x0a\x0d\x0a回到题目上来,我们要实现一个简单的 *** 作系统,最先需要解决的是哪些问题?这个问题我相信翻开任何一本 *** 作系统书都可以得到答案,一般都是 *** 作系统书的前五,六章内容(第一章基本是 *** 作系统概念及发展历史)。\x0d\x0a包括:\x0d\x0a\x0d\x0a进程管理\x0d\x0a存储管理\x0d\x0a文件系统\x0d\x0a输入/输出\x0d\x0a这些大部分是讨论理论类的书,比如我们上课用的书是西电汤子瀛老师的《计算机 *** 作系统》,后来自己为了深入学习买了Andrew S. Tanenbaum的《Modern Operating Systems》。\x0d\x0a\x0d\x0a如果想写个 *** 作系统,除了理论知识外,动手之前最好先看看 *** 作系统源代码,Linux的代码都是开源的,可以先学习学习。不过对于我们这种初学者千万不要看最新的Linux内核代码,因为那是很多人的杰作,可能一辈子都看不完。最好先看看国内同济大学赵炯基于0.11的《Linux完全注释》,即使只看懂30%也至会让自己懂很多之前不知道的东西。\x0d\x0a\x0d\x0a理论类的书很少有提到Bootload问题的,就是加电之后从哪里开始执行的部分。仅仅是这个步骤也需要花不少时间去了解CPU知识,汇编语言知识等,相当不容易。不话说回来,这部分如果能处理好之后会发现组成原理,汇编语言,微机原理的知识被自己运用到了,成就感巨大。这部分内容,可以参看MIT的课程6.828 Operating System Engineering的课程,Google一下就能搜到不少大牛关于这门课的博客。如果英语不太好我记得华中科技大学有一个叫32位 *** 作系统实践的课,资料都放到网上了,看起来很不错。\x0d\x0a\x0d\x0a过了这一关,用《深入理解计算机系统》加上《现代 *** 作系统》看一下虚拟存储器的内容,这两本书这部分说得都很棒。虚拟存储器的概念贯穿所有,如果能弄懂,对很多方面都有很大的帮助,不仅仅是 *** 作系统这块。有了虚拟存储器概念之后对于链接,加载等知识理解就会深刻许多。 不过,这部分内容也需要对硬件部分有所了解,又是一坑。\x0d\x0a\x0d\x0a之后回到进程上来之后,终于可以把工作重心从硬件部分转移过来了。但是我们又将面对进程创建,进程调度,进程通信三大问题,既然是简单实现,就先不考虑线程的事。算法书中会给很多,不过这些算法都是有一定的局限性,比如调度算法,对应的调度算法优劣差异很大,至于如何抉择就看个人需求。不过话说回来, *** 作系统里的”算法“和ACM里的算法在难度上差很多,还是比较容易实现的。\x0d\x0a\x0d\x0a内容太多了,就不完全展开了,后面就看自己“耐力”了,写 *** 作系统是需要坚持很长实践+大量知识积累的。有些问题还涉及到哲学的观点,这里推荐上海交大邹恒明教授的《 *** 作系统之哲学原理》。除了理论方面的书,现在市面上也有直接教如何实现一个 *** 作系统的,比如《Orange'S:一个 *** 作系统的实现》和《30天自制 *** 作系统》(仅有的几本“XX天XX”而不是烂书的书),起步阶段跟着这些书来还是很不错的。\x0d\x0a\x0d\x0a总之,实现最最基本的功能也许可以做到。实现功能强大,鲁棒性强的 *** 作系统极难。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)