焦進星
什么是SylixOs?SylixOs是一個應用在嵌入式里的實時操作系統(tǒng),于2006年正式上線,至今已有12年的歷史。另外,我們在2015年,成立了翼輝信息有限公司專門推廣和開發(fā)操作系統(tǒng)。同時我們還有RISC-V開源的CPU指令集架構系統(tǒng)。2013年,我們將此系統(tǒng)進行開源,使用的是開源的GPL協(xié)議。另外系統(tǒng)支持動態(tài)裝載技術,使很多開源軟件不用任何修改,就能移植到我們的這個系統(tǒng)上。
同時也支持第三方圖形庫,如QT、MiniGUI等,也支持眾多的文件系統(tǒng)。這是我們自己研發(fā),并進行開源的系統(tǒng)。我們對該系統(tǒng)進行了十萬次測試,該測試沒有損害任何軟件系統(tǒng)的結構,測試效果非常好。該系統(tǒng)還支持文件系統(tǒng),也具備了豐富的網(wǎng)絡功能。另外一個優(yōu)點,就是該系統(tǒng)可以根據(jù)項目需要,進行一些配置,達到秒級啟動。SylixOs在2006年開始研發(fā),在那時我們完成了該系統(tǒng)的最基本內(nèi)核,只提供一些基本的內(nèi)核功能,如線程調(diào)度、中斷管理、定時器、RMS、信號量等。在2007年我們將SylixOs系統(tǒng)增加了I/O系統(tǒng),來支持標準的設備驅動模型,比如SPI、IIC和TTV終端等。在2008年,因為項目需要,我們給系統(tǒng)添加了網(wǎng)絡與文件系統(tǒng),同時也提供了一些非常實用的工具,如數(shù)據(jù)庫。同時也豐富了內(nèi)核功能,加入了類型管理功能等。在2009年,SylixOs在支持MMU和緩存方面做了重大改進,以便對高端處理器有很好的支持,使更多設備可以支持網(wǎng)絡功能。在2010年我們添加了更多支持功能,使系統(tǒng)支持更加豐富的網(wǎng)絡功能。在2010年,我們接觸了多媒體領域的項目,所以我們向SyLIXOs系統(tǒng)移植了與多媒體相關的開源軟件,包括SDL、FFMPEG等。2011年,SyLIXOs系統(tǒng)有兩個主要飛躍,多核支持(內(nèi)核代碼Gemini)和動態(tài)加載;豐富了文件系統(tǒng)和設備的支持。從2012年開始,SyLIXOs從普通的系統(tǒng)逐步發(fā)展成為大型操作系統(tǒng)。在2013年,我們添加了GDB、調(diào)試應用程序和動態(tài)鏈接庫,增加對QT(跨平臺界面)的支持,使SyLIXOs設備保障和網(wǎng)絡功能越來越完善。在2014年系統(tǒng)化主要在多平臺上發(fā)力,因為在過去很多客戶使用的都是一種處理器。而2014年我們積累了豐富的客戶,每個客戶所使用的處理器并不相同,所以在2014年,我們將操作系統(tǒng)添加了ARM、MIPS、PowerPC和X86的四大處理器體系結構的支持。
2016年,我們成立了公司,同年推出了Sylix操作系統(tǒng)的一整套產(chǎn)品。而在最近這三年中,我們主要將該系統(tǒng)在多平臺中進行支持,比如支持TI的DSP芯片,以及調(diào)電安全系統(tǒng)。在2017年,我們增加了64位CPU的支持,支持AMD64、MIPS64。在今年我們主要增加了開源處理器的支持,同時我們也推出了另一個版本,來支持MCU(單片微型計算機)。我們的系統(tǒng)支持很多第三方中間件,同時我們還將客戶所需的AI技術或區(qū)塊鏈,移植到我們的操作系統(tǒng)上。目前我們的典型用戶,包括航天科工、醫(yī)學、高鐵信號系統(tǒng)和國家電網(wǎng)等。
簡單介紹一下RISC-V。RISC-V是基于精簡指令集的計算原理,所建立的開放指令集架構。RISC-V最大的優(yōu)點是開源的開放性,用戶可以免費使用。另外因為沒有歷史包袱,所以設置起來非常簡潔。RISC-V的指令集有40多條,這也吸引了非常多的工業(yè)界還有學術界甚至是政治界的關注。
SylixOs對RISC-V的支持,主要的工作是要去開發(fā)一個體系結構的相關代碼,這就包括了CPU、FPU的上線切換,以及MMU(內(nèi)存管理單元)的支持,同時還包括多核、動態(tài)裝載和應用調(diào)試的支持等。當SylixOs在RISC-V芯片主板上運行時,第一次運行的效果非常簡陋,只能看到操作界面。當我們添加了多核支持后,SylixOs操作系統(tǒng)就被調(diào)度到不同的CPU核心中,接下來我們增加了內(nèi)核模塊的裝載支持,為了支持應用程序的裝載,我們通過module注冊的內(nèi)核模塊,修改了GCC的源代碼,因為RISC-V官方提供的編譯器內(nèi)建庫,都與位置有關,所以添加了FPIC靜態(tài)庫,這個就是整個應用程序的執(zhí)行過程。
有了支持,接下來主要做C++的支持,因為在C++中有一些存儲對象、本地對象和靜態(tài)對象等,需要在恰當?shù)臅r間去構架,并且靜態(tài)對象的構造要保證安全性,所以必須提供C++的運行,所以SyLIXOS為C++應用程序提供了運行支持。有了C++支持之后,我們開始進行QT的移植。QT我們只進行了少量的改動,就是利用編譯器把QT的源代碼編譯出來。當QT被編譯后,由于我們的硬件沒有顯示器,所以我們沒法看到QT的運行效果,所以我們不得不將LCD屏幕、觸摸屏等設備添加到QEMU SIFIEVU虛擬機上。
最后,我們所做的就是在我們的ID里對應用程序進行調(diào)試和支持。因為我們的操作系統(tǒng),已經(jīng)支持內(nèi)建的調(diào)試服務器,所以主要的工作就是在體系結構里面做支持就可以了。我們?yōu)槭裁磿严到y(tǒng)與RISC-V進行結合?主要的原因就是,我們是開源的實時操作系統(tǒng),而RISC-V是一個開放的且免費的CPU應急架構。我們認為把這兩者結合在一起,可以把我們優(yōu)秀的實時操作系統(tǒng)、軟件推向開源,更好地把系統(tǒng)推向國外的開源社區(qū)。
(根據(jù)演講內(nèi)容整理,未經(jīng)本人審核)