El 即時系統的概念 這不是Linux近幾年才想到的事情,自從有了這個想法 大約20年前開始,確切地說是2005年 作為「即時搶佔」(「-rt」)專案的一部分,為 Linux 核心開發了 PREEMPT_RT 模式。
對於那些不知道的人 PREEMPT_RT,他們應該知道 這是一個補丁 對於Linux內核並將作業系統轉換為即時作業系統 (即時的)。 PREEMPT_RT 的主要目標是減少延遲並確保任務執行的可預測性,這對於需要快速回應的應用程式至關重要。
簡單來說,我們可以說 PREEMPT_RT 允許內核的幾乎所有部分被中斷, 這減少了延遲。與標準核心不同,並非所有部分都可以中斷,這可能會導致響應時間延遲。
自2015年以來該計畫一直受到Linux基金會的監督 到目前為止,PREEMPT_RT 模式的實作都是以外部補丁的形式提供的。基於這些補丁,發行版例如 RHEL、SUSE 和 Ubuntu 已經創建了其產品的即時版本, 金融系統、音訊和視訊處理設備、航空系統、醫藥、機器人、電信和工業應用等領域的需求量很大,在這些領域,保證事件的可預測回應時間至關重要。
En 2019年促銷活動開始 PREEMPT_RT 專案中開發的補丁數量 到主 Linux 核心。 在核心版本 5.3 中,設定檔中包含 PREEMPT_RT 選項以啟用即時模式。
PREEMPT_RT 所需的 printk 位元位於 linux-next 中。這 是 PREEMPT_RT 的最後一個已知障礙。 RT隊列有 還有 UART 8250 的“原子控制台”,但尚未推出 linux-下一個。這表示「舊版控制台」行為,即不從以下位置列印 緊急情況下的原子上下文。 8250 UART 控制器是唯一一款 今天提供“原子控制台”支援。
所有 這項工作即將取得成果由於必要更改的完整整合花費了五年時間並且即將完成,因為預計在版本 6.12 中,核心可以在 PREEMPT_RT 模式下編譯,而無需應用額外的補丁。
據說最後一個障礙 阻止 PREEMPT_RT 啟用的原因是缺少 使用 printk 函數支援非阻塞原子輸出。 這個功能已經有 在 linux-next 分支中採用。 此外,8250 UART 控制器正在等待實作非阻塞原子控制台,如果沒有該控制台,目前會阻止在原子上下文中執行的程式碼將緊急訊息輸出到控制台。
合併 printk 位元後,可以在 X86、ARM64 上啟用 PREEMPT_RT 和 Risc-V。這三個合併的架構多年來需要進行更改。
多年來,讓我處於一個沒有本質變化的位置
會影響他們的隊列。 ARM 和 POWERPC 還剩下一些重要的補丁…
Linux內核開發人員 已宣佈在 linux-nex 分支中整合最新的必要更改t,將用於編譯版本 6.12。這些變更將允許使用 PREEMPT_RT 選項編譯內核,從而引入即時功能。
一旦這些變更被接受 在主分支上,PREEMPT_RT 模式 它將適用於 X86、ARM64 和 RISC-V 架構。 由於必要的補丁尚未完全集成,因此稍後將添加對 ARM 和 POWERPC 架構的支援。
值得一提的是,提議的更改尚未最終確定,如果 PREEMPT_RT 沒有到達 6.12 分支,那麼它可能會在明年的 6.13 版本中整合。
最後, 如果您有興趣了解更多信息,您可以在中查看詳細信息 以下鏈接。