djyos嵌入式实时操作系统
djyos (都江堰操作系统)的核心概念与现有操作系统都不一样,即使我有丰富的注释,但不看书还是很难看明白的。所以,希望想要了解djyos的朋友们,先看看我的书《都江堰操作系统与嵌入式系统设计》,在“下载”页面共享着的。这本书是我多年经验之集成,融汇了许多软硬件系统架构设计方面的思想,以及设计可移植的和高可靠性嵌入式系统的基本方法,不仅仅是djyos的文档。
djyos的定位:
1、djyos是一个嵌入式实时操作系统,没有考虑在通用计算机/服务器上与windows、linux、unix竞争。
2、在嵌入式领域,djyos要与非实时操作系统如linux、wince竞争,以及实时操作系统如vxworks、qnx等竞争。
3、djyos的目标,是改变中国无(有影响力的)操作系统局面,在不久的将来,世界上流行的操作系统中,有一个来自中国。
FAQ——了解djyos
1.djyos的根本特点
djyos操作系统是以事件为核心进行调度的,这种调度策略使程序员可以按人类认知事物的习惯而不是计算机的习惯来编程。
普通操作系统中,调度是以线程为核心的,事件被作为线程的数据,标榜为“事件触发”的软件模型,也是由线程在一旁候着,待特定事件发生时线程恢复运行并把它作为输入数据加以处理。
以事件为核心的调度,则像设备和内存一样,把线程虚拟机作为处理事件所需要的资源看待,当某事件需要处理时,分配或者创建一个线程虚拟机给该事件,并启动该线程虚拟机处理事件。
2.djyos的目标和定位
1、djyos是一个嵌入式实时操作系统,没有考虑在通用计算机/服务器上与windows、linux、unix竞争。
2、在嵌入式领域,djyos要与非实时操作系统如linux、wince竞争,以及实时操作系统如vxworks、qnx等竞争。
3、djyos的目标,是改变中国无(有影响力的)操作系统局面,在不久的将来,世界上流行的操作系统中,有一个来自中国。
3.djyos与其他操作系统的调度算法差异
1、现有操作系统的进程(线程)是由应用程序创建出来的,应用程序员控制线程从出生到消亡的全过程。而djyos中,应用程序员唯一的工作就是弹出事件。
2、现有操作系统的内核调度器队列中接受调度的是线程(进程),而djyos是事件。
3、现有操作系统的中,事件是作为线程的输入数据(资源)而存在,djyos中,线程是事件的资源。
4、现有操作系统的中是线程(进程)等待事件发生,然后处理它,djyos中,是事件等待空闲线程,然后用线程处理自己。
5、现有操作系统的中,程序员需要掌握线程(进程)技术,而djyos中,程序员根本就不知道线程的存在。
4.djyos与ucosii的比较
djyos与ucosii的比较,其实并不完全科学,因为他们不是一个级别的东西,表现在:
1、ucosii没有driver管理模块,而djyos有完备的泛设备管理模块。
2、ucosii没有完整的内存管理,它只提供djyos很小的一部分内存管理功能。
3、ucosii不支持轮转调度,它要求所有线程必须有不同的优先级。
4、ucosii不支持优先级继承,而djyos可以支持多重优先级继承。
5、ucosii没有完整的中断管理架构,而djyos有完整、科学的中断管理架构。
5.djyos的运行平台
44b0x上成功运行,马上要出s3c2410(ARM9),lpc2136(ARM7),接下来要移植到cortex-m3上(芯片为stm32f103)
6.51上能不能运行
在51上运行是没什么意义的,把51配置成能运行djyos的程度,已经比ARM贵了。
7.PC平台或虚拟机能不能运行
现在不能,暂时也没有计划。
8.djyos的适用范围
所有嵌入式场合,首先将会在工业控制方向寻找突破口。
9.书的出版问题
将出版,但完整的电子版将继续共享,出版社是要冒成本收不回来的险支持djyos发展,希望经济条件许可的朋友们也支持出版社。
10.开源问题
永久开源,但不一定永久免费。只要在作者声明收费前,把目标产品通知我,并开始实质性使用,由作者书面确认的产品,允许永久免费使用本操作系统。实质性使用指的是,能够制造出可以演示功能的样机,以及其他作者认可的情形。
11.djyos的性能指标
djyos不希望用户太过关心这些极限参数。
一个软件是否高效,由系统架构设计决定,而不是由某个片面指标决定的,djyos优势在于:
1、从技术层面协助项目经理组建和管理团队。
2、协助系统工程师建立良好的系统架构。
3、引导程序员编写正确高效的代码。
说注重整体结构而不是个别极限参数,是作为一个系统的设计策略,这并不代表djyos的执行效率低,我的在arm7上慢如牛的flash上执行程序(无 cache),把ticks设为1mS,在fifo只有16字节的uart上,以115200的Baud连续发送数据,运行非常顺畅。为避免引导用户过分关注这些细枝末节的东西,djyos没有宣传这方面的性能。
对上下文切换需要几个周期、中断延时几个微秒这些极限参数,嵌入式实时操作系统都发展多少年了,谁还比谁强多少?纠缠这些单向指标没用,更应该关注djyos的整体性能。