Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108337
  • 博文数量: 24
  • 博客积分: 1584
  • 博客等级: 上尉
  • 技术积分: 215
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-16 08:59
文章分类
文章存档

2012年(1)

2011年(2)

2010年(21)

分类:

2010-08-26 13:37:16

1.     项目现状 
        DJYOS2004年年中开始开发,开始是我一个人低头潜心开发,于4年半后的20091月正式公开,一共包含一个操作系统他和一本配套的400多页的书。随后进行了一些宣传推广活动,至此已经有近6年时间了。 
    虽然在这近6年的时间里,我用尽了所有业余时间,没有节假日,没日没夜地开发,但DJYOS依旧只能算是一个操作系统的雏形,要形成产品还有很长的路。 
目前我个人拥有DJYOS的全部知识产权,没有产权纠纷。DJYOS的核心算法申请了发明专利,代码申报了版权。 
        DJYOS是一个嵌入式操作系统,无意在PC和服务器中和windowsunixlinux等竞争,主攻移动计算、实时系统和单片机市场。 
    与传统操作系统不同,DJYOS是以事件为调度核心的,调度器决定的是哪一条事件应该被处理,而不是哪一个线程应该执行。DJYOS调度队列由事件组成,而不是由线程组成。 
除事件调度外,DJYOS的中断管理系统、泛设备管理系统、资源系统、内存管理系统等,也非常有特色。 
2.     嵌入式操作系统分类 
    目前,PC正日渐式微,而嵌入式的移动计算正风起云涌。就嵌入式操作系统来说,主要分三大类: 
2.1.   单片机系统 
    单片机系统,单片机上用操作系统由来已久,目前呈快速增长趋势。由于32位单片机成本下降,使8/16位机的成本优势迅速减小,单片机应用复杂程度增加,原来使用8/16为单片机中有相当部分将升级为32位机,同时也产生了对RTOS的需求。 
单片机系统的软件特点: 
1、  一般由一个人或者少数几个几个人密切联系的小团队开发。 
2、  代码规模比较小,研发成员间可以密切交流,软件可以整体合在一起进行编译和链接,甚至连OS也在一起编译。 
3、  硬件上资源很紧张,一般只有几十K的内存、几百Kflash 
4、  实时性要求高,对图形界面的需求不高,或者没有。 
2.2.   复杂实时系统 
这种系统一般有一颗或者多个必将强劲的CPU,实现复杂的实时控制功能,由于强调实时性,在特定的环境中运行,使得其与通用的移动计算系统有很大的差别。 
VxWorks为代表,授权费用非常昂贵,因为这些系统的应用范围很小,而厂家也只有收取昂贵授权费才能生存。 
复杂实时系统的特点: 
1、  有比较大的开发团队,并且可能分成多个小团队,这些小团队甚至可能分布在不同的地域,团队间充分沟通和协调已经比较困难。 
2、  运行特定的程序,一般不允许运行外来的程序,因此无需应对外来的恶意攻击,一般不要求多进程。 
3、  由于团队的分散,项目经理往往要求操作系统提供支持,使得团队间能够独立开发、独立编译各自负责的模块。 
2.3.   通用移动计算系统 
    高性能移动终端,最具代表性的是智能手机,即使一些非智能手机,里面也未必没有操作系统。这类系统的特点是: 
1、  要运行外部程序,必须要求操作系统实现多进程管理。 
2、  对人机界面的用户体验要求极高。 
3、  既对cpu的运算能力要求很高,又有严格的低功耗要求。 
4、  软件的实时性要求不高,但逻辑可能非常复杂。 
2.4.   三类系统各自为政 
    这三类系统,操作系统的特性、开发工具、开发方法,都是完全不一样的。从业者掌握的技能几乎完全不通用,掌握了其中一类的研发技术后,要想研发另一类产品,几乎要从头学起。这限制了人才的流动,客观地也提高了企业的人才招聘和培养的成本。再者,有些企业可能同时有三类产品,但其应用程序的代码却完全不能复用,即使相同的功能,也要重复开发。 
3.     都江堰操作系统的特点和优势 
3.1.   用户设计的操作系统 
    “用户至上”这几个字,在现代商业环境中,我们听得耳根都麻木了。 
    什么是用户呢?电子产品的用户就是普通消费者。嵌入式操作系统的用户,是普通电子产品的开发者。开发者怎么组成的呢?主要有三类:项目经理、系统工程师、软件(硬件)工程师。 
我本人有超过10年的电子产品开发经验,是个不折不扣的嵌入式操作系统的用户,我深知产品设计对操作系统的需求,知道项目经理、系统工程师、程序员分别需要什么样的操作系统。所以说,DJYOS是用户自己量身为自己定做的操作系统,而不是由操作系统工程师“猜测”用户需求而制作的操作系统。DJYOS中,用户至上的原则体现在: 
    对于项目经理,DJYOS着重考虑的是如何使共同开发一个产品的子团队实现独立开发。 
    对于系统工程师,DJYOS着重考虑的是如何配合划分模块和模块间的协作和降解耦合。 
    对于程序员,DJYOS着重考虑帮助他们编写无误的程序。 
    DJYOS的功能模块设置和设计,api的设计,无不体现上述三个原则。 
3.2.   涵盖三类系统的优势 
    DJYOS从设计之初,就同时考虑到了单片机系统、复杂实时系统、高性能移动计算三种应用场合。在三种应用中使用DJYOS,使用相同或相似的开发工具,API设计也相同,也就是说,你只要会开发单片机版本的DJYOS应用程序,就会开发DJYOS手机!同时相容三种应用场合,实际上只要在操作系统架构设计时予以考虑,对整个操作系统的复杂度影响不大,也就是说,无需增加太多的研发成本,但是,这样带来的好处却是巨大的。 
1、  IT产品之争,很大程度是人才之争,三者兼容,会用DJYOS做单片机可发者,就会用DJYOS做手机应用,使得DJYOS的研发人才倍增,使企业人才招聘和培养的成本大大下降,这个优势是目前所有操作系统都不具备的。 
2、  代码资源将大大丰富,三类系统用同一个操作系统,使得其代码可以相互通用。对于有些复合型企业来说,他们可能三类系统都在使用,这使得他们不同部门的人才可以相互流动、而且代码也可以相互通用,解决问题的经验通用,其节省的成本是非常可观的。 
    三者通用,在我们的推广中,更具优势,为什么呢? 
    一个新生的操作系统,直接去撞击高端应用,无异于找死。 
    在高端市场里,对工具链的完整方便性要求很高,对中间件和应用软件资源要求很高,而新生的操作系统在这方面是不占优势的,即使有非常方便的工具,学习推广也需要周期。 
    在低端市场,培育用户群,提高知名度,验证可靠性和可用性,然后逐步向高端渗透,将能起到事半功倍的效果。这方面,我们正面临前所未有的契机,我们知道,操作系统有惯性,企业现有代码的继承和OS的使用习惯,是非常顽固的。而当前快速增长的单片机OS应用,却有相当大的部分是新兴市场,这些企业可能过去就没有使用过OS,正是新生事物渗透的好机会。 
3.3.   事件调度的优势 
    与传统操作系统不同,djyos不是以线程而是以事件为调度核心,这种调度算法使程序员摆脱模拟计算机执行过程编写程序的思维方式,而是按人类认知世界的方式编写应用程序,就如同在嵌入式编程中引入了VC似的。djyos的调度算法使程序员可以摆脱线程和进程的束缚,djyos没有有关线程的api,一个完全不懂线程知识的程序员也可以顺利地在djyos下编写应用程序。 
    为项目经理和系统工程师量身定制的系统架构,为工程师量身定制的API设置,特别利于系统工程师划分项目模块,利于项目经理组建和管理团队,利于工程师编写利于维护的代码。 
3.4.   多核和分布式计算的优势 
    djyos的调度算法是以事件为核心的,应用程序只管为事件编制处理程序,而线程和CPU核则被当做处理事件必须的资源,由操作系统分配给事件,这种算法天生使多核和分布式编程变得更加简单,多核利用率更高。而分布式计算,恰好就是当前风起云涌的云计算的技术基础。 
3.5.   网络应用的优势 
    在网络应用中,会产生许多微小的、可并行处理的任务。传统操作系统中,是用线程池技术来优化的,相对于内核来说,线程池管理器属于应用程序,由程序员对“可并行的、大量发生的任务”做出估计,并按照这种估计来设计和配置线程池管理器,一旦实际情况和预计的不相符,线程池技术就会失效,甚至起副作用。 
DJYOS的事件调度系统,天生具备线程池的功能,无需应用程序的程序员操心。 
3.6.   资源整合的优势 
    DJYOS操作系统内部有一颗内核级别的资源树,几乎整合了所有你想看到的资源,比如:信号量、互斥量、内存池、字体、窗口、显示屏、打开的文件……。这样整合资源的好处是: 
1、  便于构建后台调试系统,而且,DJYOS的系统资源管理本来就为调试系统做了优化。可以很方便地做出类似xp的资源管理器一样的视图,来查看系统中的信号量等核心资源。 
2、  便于多团队协作开发软件,它使得几乎所有资源均可以按名字访问,例如模块A和模块B,需要使用相同的信号量,传统OS中,他们必须一起编译,从而使两个团队不能独立开发;而DJYOS中,却允许他们独立编译独立加载,两团队完全独立。 
3.7.   GUI设计 
    gui是否具有优势,除了跟操作系统的图形支持有关外,更主要的是创意设计的问题,这里介绍下djygui有特色的部分。 
1、  win buffer技术,使界面绘制工作可以做到“发射后不管”。在没有win buffer的情况下,如果用户做了窗口隐藏、移动等操作,在消息循环中就要由应用程序重绘窗口,也就是说,应用程序应该时刻记得自己的窗口中有绘制的所有内容,否则怎么重绘?应用win buffer技术,应用程序发出绘制命令后,就不用管了。应用程序除了在窗口尺寸增大时要重绘外,其他情况都无需编写重绘代码。就像战斗机发射老式空空导弹后,需要由战斗机雷达继续引导它直到击中敌机,而新式空空导弹却可以发射后不管,它会自己跟踪攻击敌机。 
2、  frame buffer和非frame buffer兼容,在富内存系统中,可使用frame buffer,在内存资源非常紧张的系统中,则取消frame buffer。这使得在djyos下做图形界面,从单片机到高性能移动计算有一个统一的方法。也就是说,从单片机工程师到手机开发工程师,直接转行而不需要培训。同样,前述的win buffer技术,任一窗口应用程序都可以独立选择使用还是不使用win buffer 
3、  镜像显示器技术,这个技术不但可以用于远程同步显示和控制,而且调试和维护中亦可大显身手。大家一定知道windows的远程协助吧,应用djygui的镜像显示功能,我们甚至可以在单片机级别的应用中轻松实现远程协助。在产品售后服务中,你是希望用电话不断询问用户产品显示的内容,指挥用户操作呢?还是直接接管产品的显示器和键盘呢? 
4.     我们的机遇 
4.1.   单片机操作系统 
    单片机应用与特定的专业控制,随着单片机系统的日益复杂化,以及硬件能力的迅速发展,大量的单片机系统软件开发环境,正从裸机转向RTOS,这些新兴的需求中,我们要认真考虑人的因素。借用毛泽东的一句话:蒋某人在考虑战略时,只考虑武器装备,是从不考虑人民的因素的。在单片机RTOS中,我们来分析一下人的因素,分析一下单片机软件工程师的特点: 
1、  很多是从硬件转行而来,或者是习惯了裸机环境编程,对操作系统没有多少概念。 
2、  有些是行业背景很深的专家,比如化工专家、医疗专家等,这些不同领域的专家,却未必是计算机领域的专家。 
    让这些不太懂操作系统的专家们去掌握晦涩难懂的线程技术并灵活应用,恐怕要花费不少的人才培养成本,而使用传统的操作系统开发嵌入式产品,不理解这些复杂的概念根本就寸步难行。djyos操作系统不要求程序员操纵线程和进程,程序员只需把需要计算机处理的任务划分为一个个事件类型,并为各种不同类型的事件编写独立的事件处理函数,并且把它登记到系统中就可以了。当事件发生时,发现(检测到)该事件的模块只要告诉操作系统某类型事件发生了,二处理该事件的程序员,也只需要编写事件处理函数,不需要管劳什子的线程。从这个角度,djyos降低了程序员培训要求,客观地为企业节约了人力资源费用,并扩大了人才队伍。 
    DJYOS非常有特色的中断体系,在操作系统运行过程中,从不关闭实时中断,使得从系统架构上保证了实时中断具有无以伦比的响应速度。我们知道,嵌入式设计中,实时性要求非常高的功能,往往是用中断实现的,DJYOS具有极快速中断响应,也就意味着有极高的实时性。 
4.2.   复杂实时系统 
    实时系统往往用于医疗、汽车、锅炉等性命攸关的行业,可靠性要求非常搞,操作系统的可靠性,除了研发和测试外,很重要的一环是广泛使用以验证。遗憾的是,这类系统由于价格昂贵,使用范围非常有限。DJYOS三类系统兼容的特点,使得DJYOS具备广泛验证的条件。
    再者,这种系统比单片机系统复杂得多,可能分成许多子团队独立开发,DJYOS极具特色的同步、中断、泛设备管理资源管理几大系统,在帮助项目经理管理团队,减少团队间的协调工作量,避免不同模块互相耦合封面,具有突出的优势。 
    4.3.   通用移动计算系统 
    PC日渐式微,移动计算方兴未艾,那么,过去国家信息安全的主要矛盾在PC上,而现在或不久的将来,将转移到移动计算操作系统上。所以,无论从信息产业的角度,还是从信息安全的角度,我们都需要有一个自己的操作系统,只要国产操作系统本身表现出生命力,获得国家大力支持的可能性,都是非常大的。 
    DJYOS作为一个新兴的操作系统,很自然地,要先瞄准山寨机市场,然后再图高端。我把手机OS分为三大类,对于山寨机市场来说,3大类的OS,均有其致命弱点。 
目前,手机操作系统主要有3类: 
1、  收费的windows phoneSymbian,在山寨机这样强烈追求低成本的产品中,动辄1美金甚至更高的授权费,无异于从其心头剐肉喝血。 
2、  免费的,主要是linux系列。传统的linux的高昂开发费用、遥遥无期的开发周期,以及极高的技术风险,山寨机根本无法承受,而最新推出的Android呢?它虽然很大程度上解决了上述问题,但为了绕过linux系统糟糕的兼容性这一致命问题,Android使用了全Java的开发方式,软件的授权费用虽然少了,但取而代之的是提高硬件能力的费用。 
3、  专用的,例如Mac OSBlackberry,只用于特定品牌手机,山寨就别想了。 
由于3G的兴起,移动互联时代到来,人们对手机操作系统功能和性能的要求迅速提高。而中国有7亿用户,拥有足够的话语权,只要中国能够推出一个在技术上足以和上述操作系统抗衡,甚至在某些方面优于他们的OS,在政府支持下做运营适当的话,脱颖而出的可能性是存在的。 
    目前中国移动已经在开发自己的操作系统OMS,这将可能置联通和电信于尴尬境地,如果我们有一个三大运营商通用的操作系统,则最低限度能够进入多方博弈,政府、用户、手机厂商都是不愿意看到移动一家独大的。 
    除手机外,移动计算还深入到人们日常生活中的方方面面,信息查询机、数码相框、视频播放器、掌上游戏机等等。这些设备与手机相比,就是增大了屏幕,删去了通话功能,其他方面的需求非常相似。能够在手机上一显身手的操作系统,自然可以用于这些设备。 
4.4.   时代的机遇 
    做操作系统这种核心软件的开发,需要持续的巨大的研发投入,需要有一大批人潜心钻研。而我国现阶段,对于不是在短期利益引诱下努力做开发的,往往不受尊敬反受歧视,现在许多精英们对概念炒作和忽悠式营销趋之若鹜,但对埋头苦干者却不屑一顾,企业发展的核心动力是营销而不是技术。就连技术出身的李一男,离开华为时还苦口婆心地教诲部下:“不要一门心思钻研技术,要抓住机会向管理和市场转变,要想有前途就不能一直搞开发……”。如此种种,似乎都在说明,在中国,无论企业还是个人,潜心研究操作系统是没有前途的。真的是这样吗? 
    话说三十年河东四十年河西,在我国,30年前做销售的,叫投机倒把,是犯罪;20年前是受歧视的销售员;10年前是销售经理,已经受尊敬;现在叫营销,营销成败将决定企业命运。 
    随着中国的发展,人力资源成本的提高,经济需要向高科技创造型转变,做技术的不安心于技术,已经使我们国家的产业深深打上了“中国制造,外国创造”的标签,在劳动力成本持续走高的情况下,“中国制造”的竞争力将急剧下降,亟需朝“中国创造”转型。国家产业政策支持下,这种状况正在迅速改变,精英们逐步认识到真正核心技术的重要性,许多企业家在寻找可以长期支撑企业的核心技术。这说明大环境在朝对我们发展自主操作系统非常有利的方向发展,专注于技术的人和企业将会真正受尊敬,技术将不再是企业宣传的幌子,而是实实在在地成为发展的核心动力。 
    这些变化,为我们发展核心知识产权的DJYOS提供了有利的外部条件。 
5.     发展策略 
5.1.   创新才有出路 
    浮躁、虚伪、腐败、官学勾结、抄袭、急功近利,导致老百姓对整个行业失去信心。麒麟、汉芯等许多纳税人的钱重金支持的项目,收获的却是抄袭和打磨芯片,通过评审即死亡,给行业打上了重重的烙印——骗子,严重影响了这个行业的声誉。 
    业界在失望与无奈之中,更加对真正的国产操作系统充满期待,我们要的不是linux贴牌货,更不是抄袭来的冒牌货。DJYOS完全国产的属性,埋头苦干开发的历史,随着产业环境改变的过程,将为企业树立良好的外部形象,这个形象是万金难买的。 
    我们知道,现在流行的操作系统中,核心技术基本一样,一个内核,加上若干诸如文件系统、图形界面之类的外部模块。而内核,不外乎就是线程加进程管理和调度,这些都在操作系统教科书上,所有OS都差不多,任何一个操作系统的内核,都似乎是任何另外一个OS的仿制品。对于操作系统来说,内核的稳定性非常重要,像所有的软件产品一样,内核是否真正稳定可靠,需要长时间的检验。一个新的操作系统,就算每一行代码都是新写的,如果你只是现有操作系统的仿制品,跟现有操作系统一样,新写一套代码,实现一堆大同小异的api调用,是不可能有前途的,因为你无法说服用户,你的未经长期验证的OS,能比现有的更安全更可靠,所以,这种模仿无论在技术上,还是市场上,都是很难超越的。只有创新,给客户带来实实在在的好处,实现一些现有系统难于实现的特征,满足用户差异化的需求,才有可能在市场上取得突破。DJYOS的事件调度策略,其鲜明的优点和特点,是其取得成功的前提。 
5.2.   从单片机出发 
    选择市场门槛比较低的环节率先击破,然后再伺机发展壮大。 
    单片机32位化的潮流,产生了巨大的操作系统需求,而这些需求中,有许多属于新兴的市场。我们知道,用户使用操作系统是有惯性的,既有历史代码要的因素,亦有人才培养的因素,我们应该选择惯性小的方向突破。单片机常用以工业控制中,这类产品对使用外来代码会非常谨慎,由于这些产品的特异性大,甚至很多是定制产品,直接可用的公共代码资源很少,即使有,也不是应用程序的形式提供,而是库函数的方式提供。这种产品一般只运行一个程序,而这个程序的绝大多数代码,都是产品研发组自己开发的,对运行外来应用程序的需求几乎没有。所以,在工业领域,操作系统只要把常用的公共软件模块如网络模块、gui模块做好了,就基本满足用户需求了。因此,在新兴的单片机操作系统市场中,是几乎没有惯性的。 
    DJYOS提供三种运行模式,si模式是为资源非常匮乏的单片机准备的,dlsp模式是为资源相对丰富的中大型工控系统准备的,mp模式是为移动计算设备准备的。程序员在这三种模式下编写应用程序,差别很小,在单片机应用中推广后,也就培养了大批的mp模式程序员,以及大量的源代码资源。目前,还没有一个操作系统能够做到这点。 
5.3.   大学沃土 
    DJYOS有个长远的打算,先从大学夯实土壤开始,培养会用DJYOS的程序员。 
    在096月份,DJYOS推出了大学计划,鼓励大学生用DJYOS做毕业设计。 
    后来,在一些热心企业的支持下,还为大学计划提供免费的开发板。 
    还在《电子技术应用》杂志的支持下,开展“DJYOS公社”活动,支持民间的DIY爱好者使用DJYOS做业余制作。 
5.4.   最终设想 
    目前我所做的工作,只能算一个“引子”,DJYOS应该建立一个稳定的、强有力的团队进行开发,实现一个完备的图形界面、协议栈、文件系统等,实现一个类似于甚至更胜于wince的开发环境。并由此形成一个产业结构: 
1、  完整的操作系统。 
2、  离线开发环境,通过网口、usb口等进行开发。 
3、  在线开发环境,形成仿真器和IDE结合的完整的开发系统 
4、  中间件,比如图形模块、网络应用模块等。 
5、  应用程序资源,比如移动浏览器等。 
阅读(3027) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~