ENGINEERING DETAIL

WAYFINDER OS 工程細節

這一層是給想核對做法的人看的:自製到哪裡為止、授權界線怎麼畫、72 小時的能源帳怎麼算、規模估算從哪裡來。所有數字都是規劃值,不是實測結果。

想先了解 WAYFINDER OS 在做什麼、為什麼做,請看 系統介紹。

WHAT WE BUILD

自製的邊界,
先說清楚。

目標是「WAYFINDER OS 位址空間內零第三方程式碼」。這是設計與驗收要求,尚非已完成的稽核結果。

OS 映像、核心與使用者程式所納入的程式碼,以團隊自行實作為原則;平台韌體、開發工具與獨立晶片韌體分開列管。記憶體配置、連結結果與實際載入內容都需要核對。

開發工具
GCC / Clang、binutils、GDB、OpenOCD、git 可作開發用途。編譯器可能產生執行期函式呼叫,因此還要檢查 libgcc、compiler-rt、啟動物件與連結映像,不能僅憑使用裸機編譯選項就宣稱零第三方碼。
平台韌體
DDR 初始化與 BL31 依實際平台確認來源、可取得性與授權。BL31 可在 EL3 持續提供執行期服務,不能一概視為開機後消失的程式,也不能一概視為閉源。
獨立晶片韌體
EG915U、Genio 配套 Wi-Fi/BT、nRF54L15 等晶片上的韌體列為外部模組依賴。它們不等於主 OS 程式碼,但版本、介面與更新方式仍需記錄。

技術邊界參考:GCC 執行期函式說明 ↗︎、Trusted Firmware-A 設計文件 ↗︎。

ENERGY BUDGET

72 小時的能源帳。

規劃假設,非實測
72 小時的能源帳,怎麼核對?

以規劃假設 1S 5000 mAh、標稱 3.7 V 計算,名目能量約 18.5 Wh;若可用能量為 16.7 Wh,72 小時平均功率預算約為 232 mW。電芯、轉換效率與截止電壓尚待確認。

若「20% 工作、2% 滿載」是互不重疊的時間比例,其餘 78% 待命:工作與滿載能量依目前功耗區間,約落在 11.52–20.16 Wh。區間上緣已超過 16.7 Wh;因此 72 小時不能只靠壓低待命功耗保證。

只有先假設工作與滿載合計耗能 16.1 Wh,剩餘 0.6 Wh 分配給 56.16 小時待命,才得到約 10.7 mW 的待命上限。此算法尚未另計重複冷開機與其他未納入損耗。

接下來要量測各狀態能量、每次冷開機耗能、喚醒頻率及斷電前資料保存成本,重新建立整機能源模型。20% 在這裡指工作時間假設,不是開發進度或募資比例。

自製 OS 是本專案選擇的路線;秒級啟動並非自製 OS 獨有。Bootlin 的 Linux 啟動優化資料 ↗︎已有相關案例,不能據此推論 CORE 的任何系統已可達到同樣速度。

SCALE ESTIMATE

規模與記憶體的初估。

規模與記憶體:目前有哪些估算?

團隊初估總規模為 12–16 萬行,分項合計約 14 萬行。這是規劃量級,不是已完成程式碼。

程式碼規模粗估;不表示功能已存在
模組估算行數
核心:啟動、MMU、GIC、排程、IPC、VFS15,000
SoC 驅動25,000
libc12,000
繪圖與 UI40,000
檔案系統7,000
周邊、電源與 AT 代理20,000
應用層15,000
常駐核韌體6,000

映像 5–10 MB、執行 RAM 小於 64 MB,暫作資源預算;需隨顯示解析度、雙緩衝、字型、驅動與應用工作集重新估算。

40–70 人月、學生團隊 60–140 人月亦屬未校準的初估,不能直接由行數推出。下一步以工作分解、可投入時數與實際除錯紀錄校準。

LICENSING

授權與「自己重寫」的界線。

GPL 與「自己重寫」的界線

U-Boot 整體採 GPLv2 或後續版本,但個別檔案可能有不同授權或例外,須逐檔確認。引用或改寫程式碼是否形成衍生作品,不能僅以改名、改語言或「自己打一次」判斷。

GPL 的來源碼提供義務與受涵蓋程式的散布有關,不是只要閱讀或私下修改就必須向全世界公開整套 OS。採用任何參考碼前,先保留來源、授權與使用方式紀錄,再確認具體發布條件。

參考:U-Boot 專案授權說明 ↗︎、GNU GPL 常見問題 ↗︎。