(转)linux学习经验——自己写操作系统
早上翻电脑,发现自己写的操作系统内核已经在硬盘中睡了半年了,记得半年前还信誓旦旦地要把它做成如何如何的样子.....由于工作繁忙的原因,导致无法继续写下去,望各位见谅,为了不让我辛辛苦苦加班加点写了两个多月的代码长眠地下,今天将其发布出来,由于时间倡促和自身能力有限,里面很多借鉴和bug,望见谅。
---------Linux下开发,运行时需安装Linux版本的bochs或virtualbox
---------编译方式,make一下就行了,然后把镜像加载到虚拟机里即可运行
---------代码约有5000行左右
---------里面使用AT&T汇编和C写的,实现了32M内存寻址,保护模式,段页式存储,键盘驱动,显卡驱动等。。。。本来想继续写文件系统的,由于工作繁忙,无法继续望见谅。
---------参考书目 《自己动手写操作系统》、《Linux0.12内核全注释》、《汇编语言程序设计 - Richard Blum版》、《深入理解Linux内核》
--
-----------------------------------------------------------------------------------------------
写在后面的话:
真的没有想到,我的这个帖子能上十大。因为照着镜子怎么看自己也不是能上十大的主儿。我想,我现在最重要的是给自己浇上一盆冷水,让自己清醒清醒,我其实离你们说的大牛甚至大神还差之甚远。
不过为感谢各位,我便分享一下学习经验吧,我希望这个经验对于那些想深入学习C语言,LInux以及内核的人有所帮助:
虽然我现在并不是从事内核方向,却本着探索计算机本质的想法学习的内核,自从写完这个内核以后真的发现对很多东西的理解都更深一层,所以专研内核,对我现在的工作是很有帮助的。我个人强烈建议师弟师妹们尽早地啃一啃操作系统,计算机网络这方面的知识,越早地接触这些底层的东东,了解计算机和程序的本质,就越能在今后的学习和工作中指导我们进步。同学们要知道计算机不仅仅是技术,更多的是一门科学,会写码是基本功,而深入计算机科学才是我们真正的目标。
我啃内核走了很多弯路,下面就捡重要的说吧。刚开始的时候学linux怎么学也不得其法,越学越没信心,后来为了激发自己的学习兴趣开始学起了黑客的东东,偶有一天,网上有人说有本《自己动手写操作系统》这本书非常适合初学者,然后我就买了一本,现在是第二版《Orange's 一个操作系统的实现》,之后就反复地啃,啃了好几遍然后照着敲代码,仍然觉得理解不够,后来就开始自己写,写了1000多行发现自己很多东西还是理解不透,然后就买了《Linux 0.12内核全注释 — 赵炯著》这本书。个人特别喜欢这本书,很透彻地剖析了早期Linux系统的内部结构。这本书我读了三遍以上,然后再回头看《自己动手写操作系统》发现很多东西都明了了。而后为了学习Linux下的C编程和GDB学习了Richard Blum的《汇编程序设计》,觉得更多东西豁然开朗,便开始产生了自己写操作系统的念头了。其实各位已经看到,我写的内核也是久已过时,但是在写的过程中真心学到了很多东西,这才是最重要的。记得两年前,我读《深入理解Linux内核》还是一头雾水,现在在去看,发现自己顺藤摸瓜已经能够比较清晰地理解其中所云了。
最后,祝各位在未来的道路上树立信心,克服困难,成为真正的计算机专业人员。
作者:loverszhaokai
出处:http://www.cnblogs.com/lovers
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。