![]()
在科技領域,Linux內核的發展一直備受矚目。經過二十年的不懈努力,實時Linux(PREEMPT_RT)終于被正式納入主線內核,這一里程碑事件標志著Linux在實時操作系統(RTOS)領域邁出了重要一步。
什么是實時操作系統(RTOS)?
實時操作系統是一種專門設計的操作系統,旨在以精確和可靠的方式處理時間關鍵性任務。與Windows或macOS等通用操作系統不同,RTOS旨在在嚴格的時間限制內響應事件和處理數據,這些時間限制通常以毫秒甚至微秒來衡量。正如知名的實時Linux開發者和Google工程師StevenRostedt所說,“實時是最快的最壞情況”。
他的意思在于,RTOS的基本特征是其確定性行為。RTOS保證關鍵任務將在規定的截止時間內完成。許多人誤以為RTOS用于快速處理,實際上并非如此。在RTOS中,速度并非關鍵,可靠性才是。這種可預測性在對時間要求至關重要的應用中非常關鍵,例如工業控制系統、醫療設備和航空電子設備等等。
實時Linux的歷史
實時Linux代碼現已整合進所有Linux發行版中,隨著即將到來的Linux6.12內核,這意味著Linux將很快開始出現在更多關鍵任務設備和工業硬件中。但這一成就的實現卻耗費了相當長的時間。
實時Linux的故事始于1990年代末,當時Linux支持實時應用的需求日益增長。最初的努力集中在創建與Linux內核并行運行的獨立實時內核,這包括堪薩斯大學的KURT、米蘭大學的RTAI和新墨西哥礦業理工學院的RTLinux等學術項目。
2004年,資深Linux內核開發者IngoMolnar開始收集和重塑這些技術的片段,以構建實時搶占補丁集PREEMPT_RT的基礎。這種方法與早期的實時Linux解決方案不同,因為它修改了現有的Linux內核,而不是創建一個獨立的實時內核。到了2006年,它已經獲得了足夠的關注,以至于LinusTorvalds評論道:“用Linux控制激光器是瘋狂的,但這個房間里的每個人都以自己的方式瘋狂。所以如果你想用Linux來控制一個工業焊接激光器,我沒有問題。”
到了2009年,包括ThomasGleixner、PeterZiljstra和Rostedt在內的一小群內核開發者完成了將先前的原型開發整合為一個單一的補丁集。從那時起,許多公司開始使用這個補丁集來構建需要毫秒級精度的硬實時屬性的工業系統。
實時Linux為何耗費如此長的時間?
那么,為什么實時Linux直到現在才完全被內核接受呢?"我們實際上不會推動某件事,除非我們認為它已經準備好了。"Rostedt解釋道,"幾乎每件事在進入主線之前通常都會被重寫至少三次,因為我們對進入主線的內容有很高的標準。"
此外,進入主線的路徑不僅僅是技術挑戰。社群觀念也起到了一定作用。"起初,我們甚至不能提實時。"Rostedt回憶道,"每個人都說,'哦,我們不關心實時。'"
另一個問題是資金。多年來,實時Linux的資金一直不穩定。2015年,Linux基金會成立了實時Linux(RTL)協作項目,以協調圍繞主線化PREEMPT_RT的努力。
完全整合的最后一個障礙是重新設計內核的print_k函數,這是一個可以追溯到1991年的關鍵調試工具。Torvalds對print_k特別保護——他編寫了原始代碼,并且仍然用于調試。然而,print_k也在調用時在Linux程序中引入了硬延遲。這種延遲在實時系統中是不可接受的。
經過大量的工作、激烈的討論和幾個被拒絕的提議,今年早些時候達成了妥協。Torvalds滿意,實時Linux開發者滿意,print_k用戶滿意,最終,實時Linux成為現實。
經過二十年的開發,Linux實時補丁終于被合并到主線內核中。這一里程碑標志著內核開發者多年來努力將確定性、低延遲性能帶給Linux的成果。
隨著實時補丁的合并,Linux內核現在完全可搶占,能夠以微秒級響應事件。這種能力對于需要精確計時的應用至關重要,如工業控制系統、機器人技術和音頻制作。
如今,Linux準備在RTOS世界中成為一個嚴肅的競爭者。這不僅是實時制造商的勝利,也是所有Linux用戶的勝利。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.