Swift System函式庫現在開源並新增支援Linux

在6月的時候,Apple推出 Swift System函式庫 ,提供符合Swift語言特性的系統呼叫介面,而現在官方宣佈開源System原始碼,還加入提供Linux支援,官方提到,他們的願景是要讓System,最終能夠包含所有Swift支援平台的低階系統介面。

Swift System並非跨平台函式庫,而是一個多平台函式庫,在每個支援的平台,都提供一組獨立的API和行為,以呈現底層作業系統介面。現今大多數作業系統,都支援存在數十年,用C語言開發的系統介面,而在Swift中也可以使用這些API,但官方提到,從C匯入的這些弱型別系統介面,不只容易出錯而且難以處理,API署名沒有寫明使用規則,因此程式語言也無法引導用户正確使用API。

而新的System模組則帶來多語言功能,以改善表達性和消除可能發生錯誤的機會,像是System在FileDescriptor命名空間中,以預設參數定義開放系統呼叫為靜態函式,而開放版本與C版本比較,System模組普遍使用原始可表示的結構和選項集,強類型有助於編譯器在編譯時捕捉錯誤,而且還能自由地與較弱的C類型相互轉換,另外,開放版本使用起來也較C版本更為安全。整體來説,以System模組撰寫的程式碼,閲讀起來以及行為邏輯,更符合Swift的特性。

官方提到,他們近期目標,是要簡化跨平台函式庫和應用程式的建置工作,諸如SwiftNIO和Swift套件管理器,System並沒有消除使用#if os()條件,來實作跨平台抽象的方法,但是改善針對特定平台的部分,使其變得更加安全。System函式庫目前還僅是初期階段,只包含少量的系統呼叫等功能,為了擴大API覆蓋範圍,官方將在Swift套件管理器中採用System函式庫,而這會強化FilePath功能,並對剛宣佈的Windows Swift提供更多支援。