新聞發布了一個 名為 «Project Tilck» 的新開發項目, 一名 VMware 員工正在其中開發 一個與 Linux 根本不同但設計為兼容的單片內核 Linux 二進製文件,能夠運行為 Linux 構建的應用程序。
發展歷程 旨在實現最低要求的特性, 避免功能過載、簡單易懂的體系結構、最大限度地簡化代碼、二進製文件體積小、可預測(確定性)行為、確保最小延遲、實現高可靠性以及簡化開發和測試過程。
Tilck 與 Linux 根本不同,因為它不針對多用戶服務器或台式機,根本不是因為那沒有意義:Linux 龐大和復雜並不是因為實施不佳,而是因為數量驚人它具有的功能。 報價及其所需的內在復雜性。 換句話說,Linux 就其所解決的問題而言是偉大的。 Tilck 將提供更少的功能以換取:
更簡單的代碼(到目前為止)
最小的二進制大小
極端確定性的行為
超低延遲
更容易的開發和測試
額外的穩健性
該項目 不適用於多用戶服務器環境 或桌面系統。 在文件系統中,FAT16 和 FAT32 在讀取模式下受支持,ramfs、devfs 和 sysfs 也是如此。 塊設備尚未實現; 一切都在記憶中。
提供VFS是為了抽象FS的操作。 目前開發階段的多線程僅在內核級別可用(尚未在用戶空間提供)。
內核支持搶占式多任務,實現了約100個基本調用。 Linux系統,如fork()、waitpid()、read()、write()、select()和poll(),足以運行BusyBox、Vim、TinyCC、Micropython和Lua等控制台應用程序,以及基於幀緩衝區的圖形應用程序,如游戲 fbDOOM。 為了為 Tilck 創建程序,提供了一組基於 Musl 庫的工具。
有人提到 建議的驅動程序集允許在 QEMU 環境中運行 Tilck 與從 USB 驅動器啟動的傳統系統一樣。 除此之外,還注意到支持 SSE、AVX 和 AVX2 擴展指令集。 它提供自己的交互式引導加載程序,支持 BIOS 和 UEFI 系統,但也可以使用第三方引導加載程序,例如 GRUB2。 當加載到 QEMU 中時,內核可以在具有 3 MB RAM 的環境中運行。
目前, 該項目定位為教育項目,但從長遠來看,Tilck 有可能發展到適合用作需要可預測行為和低延遲的嵌入式系統的內核的水平。
雖然 Tilck 在內部使用線程的概念,但多線程目前並未暴露給用戶空間(當然存在內核線程)。 fork() 和 vfork() 均已正確實現,並且寫時復制用於分叉進程。 waitpid() 系統調用已完全實現(這意味著進程組等)。
該領域的一個有趣特性值得特別提及:儘管缺少用戶空間多線程,但 Tilck 完全支持 TLS。
預計會這樣 打鉤 彌合基於 Linux 內核的解決方案與專用實時操作系統之間的差距, 比如 FreeRTOS 和 Zephyr。 計劃包括將 Tilck 遷移到 ARM 和非內存管理單元 (MMU) 處理器、添加網絡子系統、對塊設備的支持以及其他文件系統(如 ext2)。
代碼是用 C 語言編寫的,並在 BSD 許可證下分發。 目前開發階段,內核僅支持x86架構,但代碼設計時考慮了通用性和實現性,以便將來支持其他架構。
最後,如果你是 有興趣了解更多,您可以查看詳細信息 在下面的鏈接中。