开发操作系统实践 (一)——写给LinDos系统开发的前言

         即使你对操作系统没有任何概念,你也不可能拒绝它,因为离了它你真的寸步难行。从你家里的台式电脑,到你背包里的笔记本电脑,从你办公桌上的传真机到你私家车里的导航仪,乃至你口袋里的智能手机或者平板电脑,甚至最简单的你听歌用的MP3、MP4等等,只要你拥有这些设备,那么你必然在使用着操作系统。你见或不见,OS(Operation System)就在那里;你烦或不烦,它运行地慢慢。

        我的LinDos,顾名思义取自于Linux和DOS。从字面上您可以直观地想象到,它应该是借鉴于以上两个操作系统。是的,我正是在看了介绍Linux核心的书籍以及自己以前所了解的DOS知识的基础上,萌发了写一个小型操作系统的想法的。本人有一部中兴V880的智能手机。这部手机采用的是Android系统。源于对Android系统的喜爱和膜拜,我对我的爱机几乎到了蹂躏的地步——每天都在刷机。从Android2.2到2.3.7到4.0再刷回到2.3.7,每个版本的都在尝试,直到找到适合我的手机的系统。每刷一次,我在心里都会有一个疑问,为什么那么多大神(对手机ROM制作者的尊称,如B大,G大,C大等)可以将其他手机上的Android系统移植到这部手机上来,而且运行的还很好。他们是怎样移植过来的。于是,我搜索了Android的相关资料,才知道Android是基于Linux系统专用于嵌入式设备上的,开源的操作系统。哦,我恍然,怪不得大神们能让各种Android系统听话地运行于不同的手机上,因为它是开源的。有专门的爱好者组成的开发组织在对Android进行修改,使得它能够运行到其他硬件平台上。当然这也是Android系统基于linux的基础上,得益于Linux的开源及可移植性等特点带来的方便性。难怪很多V880的fans会强烈要求中兴公布这部手机的核心代码,因为GNU的原则要求他们必须这样做。

        当然我的LinDos也是开源的,因为我借鉴了Linux,就要服从GNU的开源要求。以后我会将源码逐渐发布在我的博客的LinDos栏目里,包括开发进度及日志笔记等。

        我初步设计了LinDos的系统要求:

         1、最简单的操作系统。换句话说,它是简陋的,可能它连最基本的一些系统功能都没有实现。但是只要它运行了,不依赖于其他任何操作系统,独立引导了计算机硬件,我就认为它是操作系统了。

         2、运行于实模式,最大管理1MB物理内存,16位系统。这一点类似于DOS。

         3、单用户、单任务。

         4、简单实现文件管理及内存管理。文件管理采用类似于FAT12,最大管理32M磁盘的系统。但基础版本只能运行于软盘上。内存管理采用动态内存管理模式。

        5、采用汇编语言及C语言混合编程。

        6、DOS及Linux双重开发环境。编译器分别使用nasm及Gcc编译器。

   

发布了13 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xsff1024/article/details/7303863