Show HN: GoPOSIX —— 一個原生Go的POSIX使用者空間,與BusyBox相容性達~97%
GoPOSIX是一個用Go編寫的POSIX工具集,單二進位制檔案,透過了BusyBox測試套件中96.6%的測試(591/612)。該專案由AI輔助開發,耗時約3周,展示了Go語言在系統工具領域的潛力。
GoPOSIX是一個完全用Go語言編寫的POSIX使用者空間實現,以單一二進位制檔案提供,旨在與BusyBox高度相容。專案透過了BusyBox測試套件中591項測試(總計612項),相容性達到96.6%。
開發動機源於作者對“工具工程”(Harness Engineering)的實驗需求,以及提升“智慧體開發”(agentic development)技能的願望。作者在2025年學習Go語言後,注意到大語言模型(LLM)在格式化輸出上浪費了大量時間,因此開始在其指令碼和工具中使用JSON輸出。這一系列想法最終催生了用Go實現完整POSIX工具集、並提供JSON輸出和Go SDK的計劃,隨後與BusyBox進行基準測試。
專案藉助DeepSeek-v4-pro模型(享受75%折扣)和pi.dev平臺,在約3周內完成。作者坦言,專案90%的工作由AI完成,他只是負責引導方向。這一事實也表明,POSIX工具本質上是文本轉換器,具有定義良好的契約(“做好一件事”)。
效能方面,GoPOSIX在持續呼叫延遲上為60微秒,遠低於BusyBox的680微秒(透過fork+exec實現);在100MB檔案上執行grep僅需0.16秒,而BusyBox需要0.86秒。但二進位制大小達10MB,是BusyBox(800KB)的12.5倍。冷啟動時間為7毫秒。
作者特別強調,專案的成功離不開BusyBox測試套件的支援,該套件提供了嚴格的驗證基準。此外,還使用了Mvdan Shell和goawk等專案。
GoPOSIX已釋出至GitHub,提供CLI和Docker映象,以及完整的Go SDK文件。目前有8個釋出版本,最新為v1.0.10。專案程式碼中Go佔比77.6%,Shell指令碼21.1%,其餘為Makefile和Dockerfile。
該專案是AI輔助開發的一個典型案例,展示了利用大語言模型快速構建複雜系統工具的可能性。儘管二進位制體積較大,但在效能關鍵場景下,GoPOSIX展示了顯著優勢。