第三周作业
阅读笔记
SylixOS是一款为嵌入式系统设计的硬实时操作系统(RTOS)。此系统于2006年开始开发工作。设计之初只是为了验证相关操作系统算法,后来经过多年的持续开发与改进, SylixOS已经不只是一个实时操作系统,它已经成为一个可靠稳定,功能全面,易于开发调试的实时嵌入式系统开发平台(SylixOS至今依然保持以开放源代码的形式存在)。
SylixOS的诞生可以摆脱国内一些关键性设备对国外嵌入式操作系统的依赖,为国内的嵌入式信息技术行业提供一个全新的选择。
目前SylixOS已经成功应用于工业控制与通信、武器装备及国家安全、新能源应用等国家基础领域中。
需要说明的是:为了保证SylixOS能够持续开发,并且吸引大批开发人员参与测试,所以SylixOS目前是以公开源代码项目的形式存在。
SylixOS是一款嵌入式硬实时操作系统,同其类似的操作系统,全球比较知名的还有VxWorks(主要应用于航空航天、军事与工业自动化领域)、RTEMS(起源于美国国防部导弹与火箭控制实时系统)、ThreadX(主要应用于航空航天与数码通讯)等。
从全球范围上看,SylixOS作为实时操作系统的后来者,在设计思路上借鉴了众多实时操作系统的设计思想,其中就包括RTEMS、VxWorks、ThreadX等,使得具体性能参数上达到或超过了众多实时操作系统的水平,成为国内实时操作系统的最优秀代表之一。
SylixOS作为抢占式多任务硬实时操作系统,具有如下功能与特点:
1. 兼容IEEE 1003(ISO/IEC 9945)操作系统接口规范
2. 兼容POSIX 1003.1b(ISO/IEC 9945-1)实时编程的标准
3. 优秀的实时性能(任务调度与切换、中断响应算法都是O(1)时间复杂度算法)
4. 支持无限多任务
5. 抢占式调度支持256个优先级
6. 支持协程(windows称为纤程)
7. 支持虚拟进程
8. 支持优先级继承,防止优先级翻转
9. 极其稳定的内核,很多基于SylixOS开发的产品都需要7x24小时不间断运行
10. 内核CPU占用率低
11. 柔性体系(Scalable)
12. 核心代码使用C编写,可移植性好
13. 支持紧耦合同构多处理器(SMP),例如:ARM Cortex-A9 SMPCore
14. 全世界独一无二的硬实时多核调度算法
15. 支持标准I/O、多路I/O复用与异步I/O接口
16. 支持多种新兴异步事件同步化接口,例如:signalfd、timerfd、eventfd等
17. 支持众多标准文件系统:FAT、YAFFS、ROOTFS、PROCFS、NFS、ROMFS
等等
18. 支持文件记录锁,可支持数据库
19. 支持统一的块设备CACHE模型
20. 支持内存管理单元(MMU)
21. 支持第三方GUI图形库,如:Qt、Microwindows、µC/GUI等等
22. 支持动态装载应用程序、动态链接库以及模块
23. 支持扩展系统符号接口
24. 支持标准TCP/IPv4/IPv6双网络协议栈,提供标准的socket操作接口
25. 支持AF_UNIX, AF_PACKET, AF_INET, AF_INET6协议域
26. 内部集成众多网络工具,例如:FTP、TFTP、NAT、PING、TELNET、NFS等等
27. 内部集成shell接口、支持环境变量(与Linux操作习惯基本兼容)
28. 内部集成可重入ISO/ANSI C库(支持80%以上标准函数)
29. 支持众多标准设备抽象,如:TTY、BLOCK、DMA、ATA、GRAPH、RTC、PIPE等。同时支持多种工业设备或总线模型,如:CAN、I2C、SPI、SDIO等
30. 提供高速定时器设备接口,可提供高于主时钟频率的定时服务
31. 支持热插拔设备
32. 支持设备功耗管理
33. 内核、驱动、应用程序支持GDB调试
34. 提供内核行为跟踪器,方便进行应用性能与故障分析
团队任务
团队项目有四个任务,我有兴趣参与用户接口任务或图形化用户接口。对于图形化的编程,一直是我比较感兴趣的内容。用户接口需要包含系统的输入输出模块的设计,需要解决一些实际问题,在之前的其他学科的学习中,我接触过类似的工作。我的编程能力一般,不适合进行复杂的物理引擎的开发,而且我对算法了解比较少,轨迹插补可能不太精准。
团队协作开发
与个人开发相比,团队开发就是为了能更高效地完成任务。团队协作开发需要成员各自的长处,避开各自的不足,这样才能体现出团队协作的意义。团队协作需要合理的安排每个人的工作,成员之间需要必要的交流,各项工作有序的进行。