一 MAGIC嵌入式操作系统背景 02年大学计算机应用专业毕业,参加实习工作进行UNIX下的应用软件开发,当时就发现自己在大学学习的知识只能达到软件这个行业的基本入门,而且所学的知识支离破碎根本不知道可以用到什么地方,所以大学期间比较迷茫困惑,虽然有想努力学习的想法,可是没有途径去实现。参加实习工作后给我最大的触动就是连最基本的fork函数都不知道,更别提如何把一个项目搭建起来。通过一年的实习对应用程序的开发基本有了一些了解,但是对我最大的吸引就是fork函数是如何实现的。03年考上了研究生,但是踏入学校以后我又发现自己进入了本科学习模式,所学的知识和实际应用又挂不上钩,虽然导师有点软件项目但是只局限于软件应用。而fork函数如何实现的好奇驱使我开始查找资料,通过半年的筛选我最终把学习的起点定位为LINUX内核,通过两年的努力我把LINUX内核代码读了一遍,而这两年的代码阅读对软件的理解有了质的飞跃(因为站在巨人的肩膀上,你才能看的更远)。在学习完LINUX内核代码后,虽然可以相对容易完成操作系统移植、驱动程序开发及应用程序开发,但是这些都是相对LINUX比较外围的应用,而要对内核架构进行修改还是比较困难。因为外围的应用都是遵循内核开发者的思路去应用。 在阅读了 LINUX内核代码后我在操作系统架构方面有了新的架构想法,再加之我有一个不服气,为什么只有国外开发操作系统内核,国内就停留在操作系统移植或者操作系统封装。06年开始我就开始编写MAGIC嵌入式操作系统内核,到今年已经快8年的时间。 二 MAGIC嵌入式操作系统介绍 操作系统内核的开发离不开硬件平台,06年主要流行的平台有ARM、POWERPC、X86、DSP。因为当时ARM资料比详细,所以选中了ARM作为操作系统的开发运行平台。MAGIC操作系统经历了ARM7、ARM9、ARM11三个硬件平台的开发,现在比较稳定运行于ARM11平台。 MAGIC嵌入式操作系统主要组成: 内存管理、进程管理、中断管理、文件系统(fat,ffs)、以太网协议栈、USB协议栈、设备管理、定时器管理、内核调试管理、内核服务器、内核异常管理、消息管理器。 MAGIC嵌入式操作系统次要组成: GUI服务器、LIB库文件、DM900a驱动、USB控制器驱动、LTP显示器驱动、触屏驱动、USB键盘驱动、串口驱动、SD卡控制器驱动、NANDFLASH驱动,USB大容量设备驱动、定时器驱动、备份设备驱动。 MAGIC嵌入式操作系统的特色: MAGIC嵌入式操作系统的最大特点就是内核以服务性内核和超薄性内核的思路进行构建。超薄性内核的优点在于减少内核不可中断发生的关键性代码的数量,这样可以提高系统的实时性。服务性内核的优点在于内核的架构中各模块之间的耦合性更少,即使像传统操作系统中的中断,也归结于服务的概念中,MAGIC嵌入式操作系统中的中断可以对关键资源进行加锁操作,服务性内核的理念也使得MAGIC嵌入式操作系统具有运行于多个芯片实现分布式运行的基因。 MAGIC嵌入式操作系统的不足: MAGIC嵌入式操作系统是一个人编写完成,这样就面临着个人知识面的局限性,比如GUI股务器,虽然能满足基本的嵌入式显示需要,但是离专业的GUI软件还是有很大的差距。同时MAGIC嵌入式操作系统虽然经历了多年的运行调试,但是我相信在系统稳定性方面还有很多的问题和挑战。 三 MAGIC嵌入式操作系统的用途 1)写MAGIC嵌入式操作系统的初衷就是想解决大学软件学习的迷茫困惑。当完 成MAGIC嵌入式操作系统回头看时,发现大学的知识点都有体现。所以很希望和大家分享这个平台让大家不用走我当年读大学的弯路。 2)我一直有个观念:对一个项目的研究,写论文只要懂得60%别人就会认为很不错,但是做项目的话,只有做到98%你的项目才能算合格。所以做项目需要考虑许多细节问题。所以很希望和大家分享这几年一路走过的开发经验和资料。 3)我觉得国内现阶段的操作系统的发展,就像中国足球,10亿人也挑不出10个人踢球,因为大部分都追求短期效益,热衷于系统移植和封装。MAGIC嵌入式操作系统能给大家提供学习平台使用的同时,更希望它能作为大家展示才华的平台。专业人士做专业的事情,如果你对网络比较有研究,你就可以来修改,同时向大家阐明为什么要修改,让大家一起提高。 四 MAGIC嵌入式操作系统的困惑 因为我想给大家展现的是从第一行代码到最终操作系统完成的一个详细讲解,而不是应用程序的开发,所以我对如何实现比较困惑。下边是我的QQ和EMAIL ,如果你有好的建议和方法可以和我联系:)QQ:2280088478 EMAIL :os_guojie@sohu.com
|