[转]麻雀操作系统编写教程-简介
麻雀操作系统是一个简易的仿UNIX操作系统,使用C语言与极少部分汇编。
笔者是一个计算机爱好者,出于纯粹的兴趣才开始学习如何编写操作系统,并希望以此为乐!
在学习的过程中,笔者发现国内的教程十分稀少,尤其是在实现方面,仅有于渊的《自己动手写操作系统》完整的再现了系统的编写过程,笔者拿到此书的时候也兴奋不已,曾许下许多宏愿,虽然该书将很多爱好者引进了门,但是上手难度还是太大,绝大部分代码都是使用汇编来完成的。
很多内容笔者都无法进行实验,虽然笔者能够看懂一点汇编,但编写系统是一个长期的过程,长期使用汇编来编写很容易让人感到疲倦和枯燥。
出于持续不断的兴趣,笔者开始寻找其他教程,很快笔者便发现了很多国外的资源,绝大部分都是使用英语,这无形又提高了门槛,对于英文的阅读笔者开始也十分的不习惯。
依然出于持续不断的兴趣,笔者断断续续的坚持了下来,很多教程都看了许多遍,每个章节的实验都要变着花来实现,英语教程的阅读也变得十分顺畅了,这对笔者产生了巨大的鼓励!
笔者相信有许多真正爱好计算机的朋友都在像笔者一样尝试,笔者希望借此教程共同分享一些乐趣,探讨一筐问题,寻觅几路朋友,留下一点足迹!
笔者相信兴趣是最大的动力!
在学习的过程中,笔者阅读了许多老外的教程、资料、论坛等,笔者发现在纯粹的操作系统世界中有那么一帮人,他们或许年轻,或许年老,或许是学生,或许是老师,或许在亚非,又或许在欧美,在世界的任何一个角落以及任何一个时间都有可能坐着一个手捧笔记本电脑的人,正在执着的完善他自己的操作系统,乐在其中,孜孜不倦!
编写操作系统可能是一项枯燥之极的事情,你会不断的问自己为什么有了LINUX等操作系统还要去写一个只有自己才知道的“垃圾”?周围的人会十分不解,甚至有人会嘲笑你!
笔者的回答依然是:“兴趣是最大的动力!”
说了那么多废话,无非是希望那些准备阅读本教程并充满激情的朋友们不要放弃,保持好自己的兴趣是最重要的!
好了,在教程开始前,先让我们看看我所应该感谢的人吧!
以下是一份列表,从未蒙面却受益良多,敬佩并感谢!
于渊《自己动手写操作系统》
领笔者入门的正是该书,虽然没有按书中所写的走下去,但也获益良多从不离手!
http://wiki.osdev.org/Main_Page
http://forum.osdev.org/
第一个是编写操作系统的维基百科,第二个是其论坛,该网站是美国一所大学的师生创立的,集合了世界上无数的“小作坊”操作系统爱好者!在我看来是爱好者的天堂!任何时刻都许多人无私的分享着他们的经验!不要错过,对英语要求不高!
http://www.osdever.net/bkerndev/Docs/title.htm
http://www.jamesmolloy.co.uk/tutorial_html/index.html
这是两个对笔者的学习至关重要的教程!第一个是Bran的内核教程,第二个是James的教程,其中James的教程对Bran的教程进行了完善,成为了一个真正的较为完善的内核教程!
这两个教程均提倡跨过引导部分,使用了Grub,因此没有前期繁琐的汇编,直接进入C的世界,上手极易,另外一个特点便是章节短小精悍,通俗易懂,是绝好的教程!
笔者同时建议英语过得去的朋友直接阅读Bran与James的教程,并上osdev的维基进行学习,会体会到原汁原味的老外的学习精神,十分鼓舞人心!
麻雀操作系统很大部分都是引用以上两位的代码,笔者为什么还要写一个教程呢?
一是权当翻译成中文,让更多的像我一样英语不好的爱好者能够坚持下去或者参考参考;
二是因为笔者对教程也有一些扩充,诸如:SHELL的编写,EXEC,ELF加载器等等,笔者也希望能够再进一步完善这个内核,使之能够真正的称为“操作系统”,哪怕是一只麻雀,虽然小却五脏俱全,还不忘展翅飞翔!
本文写的非常好..转自:http://blog.csdn.net/snowhws/archive/2010/04/08/5458069.aspx