一直在使用windows,很想知道双击桌面上的一个应用程序图标,到这个应用程序完全跑起来,这中间到底发生了什么。于是就开始学习windows内核,学了一段时间之后,又着手去学习linux内核,包括linux内核驱动程序的编写,个人感觉是写linux的驱动比写windows的驱动要简单一些,呵呵,纯属个人感觉。一不小心就扯远了。在学习了一段时间的操作系统理论和一些操作系统底层的相关知识后,渐渐的我不再满足于仅仅只会使用操作系统以及“懂”操作系统理论,我要从0编写一个操作系统内 核,让自己的计算机上跑着自己写的操作系统内核,那无疑是一件很令人自豪的事情,而且自己也会更加了解操作系统底层的运行机制,同时也让自己学到的理论有用武之地。抱着这个想法,我开始着手编写自己的内核。到现在已经过去了一年多的时间,当然中间因为一 些学业上的缘故,在编写代码的过程中也是断断续续,现在来看至少有一个内核的样子了,内存管理、进程管理、文件系统、系统调用等等都已实现。本打算以后花更多的时间来完善这个内核,但是我转念一想,应该会有很多人都有一个操作系统梦,至少程序员都有这样的梦吧(纯属个人猜测,呵呵)。于是打算以后把更多的时间花在写这个系列的博客上,一来是总结自己在这一年学到的知识,二来是给一些想写自己的内核的人一些帮助或者说一些提示,帮助他们少走弯路,因为我当初 是走了不少弯路的。
操作系统是硬件和应用程序之间的桥梁,既要管理着各种硬件(CPU,内存,硬盘,显卡、声卡等),也要为上层应用程序提供服务。举个例子,linux的内核架构是这样的