SylixOs的来龙去脉
2018-11-02焦进星
焦进星
什么是SylixOs?SylixOs是一个应用在嵌入式里的實时操作系统,于2006年正式上线,至今已有12年的历史。另外,我们在2015年,成立了翼辉信息有限公司专门推广和开发操作系统。同时我们还有RISC-V开源的CPU指令集架构系统。2013年,我们将此系统进行开源,使用的是开源的GPL协议。另外系统支持动态装载技术,使很多开源软件不用任何修改,就能移植到我们的这个系统上。
同时也支持第三方图形库,如QT、MiniGUI等,也支持众多的文件系统。这是我们自己研发,并进行开源的系统。我们对该系统进行了十万次测试,该测试没有损害任何软件系统的结构,测试效果非常好。该系统还支持文件系统,也具备了丰富的网络功能。另外一个优点,就是该系统可以根据项目需要,进行一些配置,达到秒级启动。SylixOs在2006年开始研发,在那时我们完成了该系统的最基本内核,只提供一些基本的内核功能,如线程调度、中断管理、定时器、RMS、信号量等。在2007年我们将SylixOs系统增加了I/O系统,来支持标准的设备驱动模型,比如SPI、IIC和TTV终端等。在2008年,因为项目需要,我们给系统添加了网络与文件系统,同时也提供了一些非常实用的工具,如数据库。同时也丰富了内核功能,加入了类型管理功能等。在2009年,SylixOs在支持MMU和缓存方面做了重大改进,以便对高端处理器有很好的支持,使更多设备可以支持网络功能。在2010年我们添加了更多支持功能,使系统支持更加丰富的网络功能。在2010年,我们接触了多媒体领域的项目,所以我们向SyLIXOs系统移植了与多媒体相关的开源软件,包括SDL、FFMPEG等。2011年,SyLIXOs系统有两个主要飞跃,多核支持(内核代码Gemini)和动态加载;丰富了文件系统和设备的支持。从2012年开始,SyLIXOs从普通的系统逐步发展成为大型操作系统。在2013年,我们添加了GDB、调试应用程序和动态链接库,增加对QT(跨平台界面)的支持,使SyLIXOs设备保障和网络功能越来越完善。在2014年系统化主要在多平台上发力,因为在过去很多客户使用的都是一种处理器。而2014年我们积累了丰富的客户,每个客户所使用的处理器并不相同,所以在2014年,我们将操作系统添加了ARM、MIPS、PowerPC和X86的四大处理器体系结构的支持。
2016年,我们成立了公司,同年推出了Sylix操作系统的一整套产品。而在最近这三年中,我们主要将该系统在多平台中进行支持,比如支持TI的DSP芯片,以及调电安全系统。在2017年,我们增加了64位CPU的支持,支持AMD64、MIPS64。在今年我们主要增加了开源处理器的支持,同时我们也推出了另一个版本,来支持MCU(单片微型计算机)。我们的系统支持很多第三方中间件,同时我们还将客户所需的AI技术或区块链,移植到我们的操作系统上。目前我们的典型用户,包括航天科工、医学、高铁信号系统和国家电网等。
简单介绍一下RISC-V。RISC-V是基于精简指令集的计算原理,所建立的开放指令集架构。RISC-V最大的优点是开源的开放性,用户可以免费使用。另外因为没有历史包袱,所以设置起来非常简洁。RISC-V的指令集有40多条,这也吸引了非常多的工业界还有学术界甚至是政治界的关注。
SylixOs对RISC-V的支持,主要的工作是要去开发一个体系结构的相关代码,这就包括了CPU、FPU的上线切换,以及MMU(内存管理单元)的支持,同时还包括多核、动态装载和应用调试的支持等。当SylixOs在RISC-V芯片主板上运行时,第一次运行的效果非常简陋,只能看到操作界面。当我们添加了多核支持后,SylixOs操作系统就被调度到不同的CPU核心中,接下来我们增加了内核模块的装载支持,为了支持应用程序的装载,我们通过module注册的内核模块,修改了GCC的源代码,因为RISC-V官方提供的编译器内建库,都与位置有关,所以添加了FPIC静态库,这个就是整个应用程序的执行过程。
有了支持,接下来主要做C++的支持,因为在C++中有一些存储对象、本地对象和静态对象等,需要在恰当的时间去构架,并且静态对象的构造要保证安全性,所以必须提供C++的运行,所以SyLIXOS为C++应用程序提供了运行支持。有了C++支持之后,我们开始进行QT的移植。QT我们只进行了少量的改动,就是利用编译器把QT的源代码编译出来。当QT被编译后,由于我们的硬件没有显示器,所以我们没法看到QT的运行效果,所以我们不得不将LCD屏幕、触摸屏等设备添加到QEMU SIFIEVU虚拟机上。
最后,我们所做的就是在我们的ID里对应用程序进行调试和支持。因为我们的操作系统,已经支持内建的调试服务器,所以主要的工作就是在体系结构里面做支持就可以了。我们为什么会把系统与RISC-V进行结合?主要的原因就是,我们是开源的实时操作系统,而RISC-V是一个开放的且免费的CPU应急架构。我们认为把这两者结合在一起,可以把我们优秀的实时操作系统、软件推向开源,更好地把系统推向国外的开源社区。
(根据演讲内容整理,未经本人审核)