熊譜翔:變化的RT-Thread,不變的初心

前段時間有爆出了某大佬的OS和RT-Thread很像,所以畫了這麼張圖,同時也發在社交媒體上:"Roadmap or history of RT-Thread? No matter what RT-Thread is, it's alway there. Hope RT-Thread is a locomotive, lead us all to the future."

提到RT-Thread的發展路線,其實是被很多社區小夥伴關心的:RT-Thread到底會走向何方?

初心出發

由於個人興趣及項目需求動手寫了一個RTOS,在2006年初發布了RT-Thread的第一個內核版本並開源,一開始純粹以工程師的角度去做,當時有個看似遙遠的目標是能做成一個開放式,嵌入式系統領域的Linux。

然而接下來幾年RT-Thread這個項目進入了一個艱難時期,因爲僅僅只是一個RTOS內核很難得到關注,期間憑藉個人興趣不斷去做不同平臺移植,完善功能。期間也做過一些社區活動,很多時候就是一些愛好者在漢堡王、KFC這類地方AA制聚會交流,記得最慘淡的時候聚會只有兩個人(包括自己)。

長時間的堅持和付出,RT-Thread開始有了些支持者,然後不斷有開發者加入進來貢獻代碼和完善。ARM Cortex M3的出現,讓開源的RT-Thread走上了新的階段,此時的RT-Thread已不再只是一個實時內核了,包括了Shell、文件系統及TCP/IP協議棧等,憑藉低資源佔用、功能豐富吸引了大批的用戶。

正當時

直至2011年,RT-Thread才發佈1.0.0版本,這樣一個穩定版本的發佈花了6年時間。

2015年,RT-Thread 2.0.0發佈,引入了menuconfig,而這次大版本的發佈花了4年時間。

2017年,RT-Thread 3.0.0發佈,定下IoT OS的戰略,花了2年時間。

2018年,RT-Thread 4.0.0發佈,支持更多芯片、開發板、雲等,也逐步向生態走得更遠更廣,僅1年。

而在2019年,則在潛行中仔細思考,沒做大版本發佈,但卻開始走向新的領域。

在RT-Thread發展過程中我們深知“無生態不OS”,一款操作系統是需要開發者使用,需要開發者對它的認可。脫離了生態的操作系統只是一款軟件,一項產品,這和RT-Thread的初衷是相違背。在生態這條路上,在產品層面以開源版本RT-Thread爲主幹開始開枝散葉延伸向更廣闊的領域:

  1. ……OS,其他OS、或衍生OS。RT-Thread在這個過程中也會嘗試向一些合作伙伴許可、授權。因爲RT-Thread遵循Apache License v2.0許可協議,在許可協議合法的範圍內都是可行的,從生態上說也是更好的補充。當然RT-Thread的運營主體,睿賽德科技自有產權軟件包也會對外進行授權。總體的許可協議問題會處理好。

  2. PersimUI OS(暫定名,名字並不重要)是基於RT-Thread上,輔以柿餅UI的面向智能穿戴、智能硬件的系統(方案),目前在海外已有一款使用柿餅UI的手環在售;預計今年會有更多的手錶上市。

    從去年下半年到今年,我們這邊柿餅UI團隊幾乎都投在這個上面,所以外界看起來似乎沒什麼動靜,實則向前推進了一大步,把手錶的UI操控能力優化到頂尖品牌廠商的流暢度上,同時也包括柿餅用的JavaScript執行性能飛速提升。這也是RT-Thread上的另一個分支,在帶屏低功耗智能硬件這個領域走得更深更遠。

  3. MoM,這個是一個縮寫,全稱是Microkernel on MCU。從名字上來說,它和4️⃣有一定關係,只是沒預料到它先於混合微內核商業化、落地。MoM被應用在一些表計類場合,爲MCU提供系統與應用分離的技術,同時還進行了用戶進程間內存隔離<通過MCU中的MPU(Memory Protection Unit,內存保護單元)技術>。爲一些應用場合提供了理想的應用單獨升級,隔離運行的模式,可用於一些行業安全系統上。這份MoM的開發環境也會部署到RT-Thread Studio集成開發環境及QEMU針對Cortex-M3/4/7的軟件模擬執行工具中。

    通過MoM,也可以讓一些高端MCU(例如Cortex-M7/M55,及未來的多核MCU)具備獨立應用開發的功能,開發方便,應用可調試,可獨立升級,同時保留MCU的快速,強實時,低成本的特點。

  4. 混合微內核,RT-Thread Smart,目前是箭上待發,已經有部分社區小夥伴開始拿到在內測中。它主要面向帶MMU的處理器,例如ARM Cortex-A(國產處理器肯定不會缺)。對於RT-Thread Smart,有很多突破,系統服務可根據實際情況放在內核中或用戶態執行,而在整體系統上則採用了微內核的架構,進程間採用IPC/共享內存方式通信、交互。

期望通過RT-Thread已有的生態,來覆蓋MCU …… MPU的場景,而能夠和國際頂尖的操作系統PK。所有這些,都並不是一蹴而就的,需要經歷過:提出想法,小心驗證,實現原型,應用落地,打磨完善等的過程。這個過程經歷的時間週期一般都非常長,中間歷經波折、迭代繁多等等,例如混合微內核是由團隊小夥伴們歷時1年多時間打磨的,從最初的lwP(輕型進程),實現(浮動地址執行)原型,而後又推翻加入MMU,進程地址隔離,然後到逐步加入文件系統服務,網絡協議棧服務,圖形UI服務,以及gdb用戶進程調試,POSIX threads等。後面同樣的會集成到RT-Thread Studio中,讓它真正變成開發,調試,執行一體化的模式。

這一系列的開枝散葉(分支或方案),也和RT-Thread的基因、品質相關:找到真實的需求,以強大的韌性,百折不撓的精神,一定能把事情做成,一定要把事情做成!

新長征

未來是未知的,RT-Thread不變的是開源的初心,會依然以Apache License v2.0、開源的方式發佈RT-Thread v5.0.0新版本,並崇尚社區高於代碼之道,推進更多社區活動,讓RT-Thread應用在更多的場合、領域,開出朵朵數據、信息之花。

在第一幅圖中經歷了這麼多的階段,很多都是我親手扶上去的,站在42歲關口,離知命之年不遠,依然希望能夠有閒餘時間可以coding,可以再帶出一些新的方向,新的有趣並實用的點、線甚至是面。但面向未來,又感覺到再次處於未知的關口上,未來會是什麼?未來的泛IoT場景,還應該有更多更多,端上的思考,雲甚至網絡結構上的思考,世界無窮大,RT-Thread只是其中一粟,無數個RT-Thread,會匯聚成一張大網。期待RT-Thread就像一個火車頭在前方引領,駛向未來……駛向未知……

熊譜翔
2020年7月1日


1.嵌入式工程師心目中的微內核架構~

2.do{}while(0)只執行一次無意義?你可能真的沒理解!

3.BUG 終結者,現場抓獲!|顛覆認知

4.MATLAB 只是冰山一角!海外資深程序員聊被卡脖子……

5.“STM32CubeMonitor” 拍了拍你

6.如何把C++的源代碼改寫成C代碼?

免責聲明:本文系網絡轉載,版權歸原作者所有。如涉及作品版權問題,請與我們聯繫,我們將根據您提供的版權證明材料確認版權並支付稿酬或者刪除內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章