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提供更多支持。