产品 > DJYOS

 

1. 概述

都江堰操作系统(简称djyos)是国内原创的免费开源操作系统,采用类BSD许可证。得名于来自中国、2500多年来持续服务、世界上唯一留存的伟大的水利工程:都江堰。djyos是彻底国产原创的操作系统,它的内核,不仅编码是原创的,就连调度算法也是原创的;除内核外,IO系统、文件系统、图形系统、网络协议栈,也都是原创的。djyos以高可靠性、高实时性著称,它的中断响应速度跟裸跑一致。

2. 事件调度的设计理念

计算机是人的助手,程序员应关心计算机做什么,而不是怎么做。计算机程序是协助人类完成人类的业务的,因此,程序员编程,应该依人类本身的思维习惯,而传统操作的线程调度,迫使程序员模仿计算机的运行过程进行思维,压制了程序员的创造力。
djyos 操作系统是以事件为核心进行调度的,这种调度策略使程序员可以按人类认知事物的习惯而不是计算机的习惯来编程。
普通操作系统中,调度是以线程为核心的,程序员直接面对线程编程,而线程表征的是计算机的运行过程。
djyos的调度对象,是需要计算机处理的事件,秉持“计算机为人类服务”的原则,程序员不应该把精力放在控制计算机运行过程方面,而是直接面对人类需要。

3. 质量与可靠性设计理念

产品设计质量是可靠性的基本保障,传统操作系统对质量的理解,狭义于操作系统本身的质量,认为APP的质量是用户自己的事。
DJYOS认为,操作系统与APP共同构成用户产品,仅仅操作系统可靠是不够的,操作系统应该保障应用程序的质量。特别是RTOS,系统中可能就运行一个APP,该APP出了问题,留着操作系统自己运行,有什么用?比如设计一辆汽车,无论该汽车本身多么可靠耐用,但只要对乘客的安全保护方面差那么一丁点儿,就是一辆破车。设备故障不可避免,操作系统需要为故障条件下的安全可靠提供协助。DJYOS无论是从方案设计上,还是API设计方面,都体现了促进用户编写高质量代码,尤其是对于没有经验的工程师,尽可能地保障他们不给自己和他人留下隐患。

4. 九九加一原则

djyos秉承“九九加一”原则,“能”和“易”的完美结合。在DJYOS支持下,即将更加轻松愉快地完成99%的工作,同时还对于1%的苛刻需求,提供可行的解决办法。例如,在DJYOS下,大多数普通中断,编程比传统操作系统更加简单,而对于响应速度要求非常苛刻的中断,DJYOS的附加中断延迟是0,即跟裸跑是一样的。这就使有些原本不能享用操作系统的场合,也可以使用操作系统。

5. 系统架构

 







  
 
 
 

6. 典型参数

 
 
事件类型数量:16383,受内存量限制
处理中的事件数量:16383,受内存量限制
优先级数量:255个(用户可用:240个)
调度方式:优先级抢占+时间片轮转
实时中断响应时间(最坏情况):1.5uS(lpc1225,cortex-m0内核,主频=40M,flash速度=20M)
最小内核尺寸:flash≈30K,ram≈1K
 
 
 

7. 功能及组件一览

调度系统 事件调度,简单易用
网络协议栈 提供 BSD socket 编程接口
实时内存分配 无碎片,执行时间O(0)级
内存池 支持
信号量 支持
互斥量 支持优先级继承
消息队列 支持
黑匣子 用于追踪设备故障
定时器 支持
国际时区 支持
低功耗控制 超低功耗,简单易用
集成开发环境 基于eclipse自主开发
网络协议栈 零copy,实时高效,支持IP、ICMP、ARP、DHCP、tcp、ftp、webserver等
国际字符集 支持
国际字体 支持
图形系统 实时图形系统,多窗口、优先窗口、图形特效、镜像显示、远程桌面等功能。
IO系统 原创
文件系统 原创
设备文件系统 支持
异常信号 支持
中断系统 实时性等同裸跑,可免编写ISR,提供中断同步功能
内部总线 统一IIC、SPI、CAN等总线标准接口
C库 支持标准C/C++库
看门狗 支持黑匣子模块
应用框架 支持自动生成代码
 

8. 创新的中断系统

 
“九九加一”原则的完美体现。
与裸机一致的中断响应延迟,满足工业控制领域最苛刻的实时性要求。
OS启动加载过程可使用中断,有利于在系统灾难性崩溃后,迅速恢复控制。
提供中断同步和中断事件触发功能,简单易用,高效可靠。
编写ISR程序更加简便。
 

9. 网络协议栈

 
全自主原创,提供BSD socket接口。
高效的缓冲区管理,节省内存消耗,提高传输速度。
高度可伸缩的协议栈,可用于单片机到大型嵌入式系统。
零拷贝技术,实现数据快速传递。
均衡可预测的网络收发性能。
 

10. IO系统

 
融合统一的内核对象系统
文件系统、设备、网络协议栈使用统一的框架。
标准的总线框架djybus,统一管理canbus、iicbus、spibus等。
 

11. 实时图形系统

 
全自主原创。
基于gkernel的双层架构,用户接口和底层实现分离。
支持多鼠标、多键盘、多点触摸、3D鼠标。
可在实时任务中使用。
支持多窗口,多级Z序,窗口缓冲,alpha、透明色等窗口特效。
可在单片机中实现远程桌面。
 

12. 实时内存管理

 
确定的malloc函数执行时间,O(1)级。
支持堆和内存池两种分配方法。
没有碎片。
既适合大型嵌入式系统,又适合内存少且由地址不连续的零碎片段组成的情况。
创新的准静态分配,优化设备运行时配置。
 

13. 超低功耗管理

 
可选的tickless模式,tickless模式与tick模式APP完全兼容。
自动低功耗管理,降低用户编程复杂性。
有多级低功耗模式,便于用户精细化管理能耗,充分发挥电池潜力。
 

14. 看门狗

 
能够看护系统加载和启动过程。
可创建多看门狗,分别应用程序运行的任何关键节点。
充分考虑外来中间件的运行。
与黑匣子模块配合,每次狗叫都记录在案,方便事后分析。
 

15. 黑匣子

 
设备运行时,发生软件或硬件故障不可绝对避免。
类似飞机“黑匣子”,“黑匣子”模块可靠记录异常,辅助处置,协助事后分析定位故障。