今年6月,苹果工程师推出了Swift System,一个为其用于底层系统调用接口的新库。而现在,苹果开源Swift系统,并增加了Linux支持。

Swift系统背后的想法是为所有支持Swift平台的底层系统接口提供一站式解决方案。那么让我们来看看它的新功能:

保留导入的C接口

我们现在使用的大多数操作系统都支持使用C语言编写的某种类型的系统接口,并且数十年来一直保持不变。这些API可以直接从Swift中使用,但是从C导入的此类弱类型系统接口容易出错并且难以管理。

例如,在类似UNIX的操作系统(例如Linux和Apple的OS)中,弱类型函数有几个缺点,它们无法利用Swift所具有的表现力和类型安全性。

引入常态Swift接口

Swift System模块引入了几种语言功能,以提高表达能力并减少机会错误。例如System,使用FileDescriptor命名空间中的默认参数将开放系统调用定义为静态函数:

在将此版本与C中的原始版本进行比较时,您可以发现明显的差异,例如:

  • System使用原始的可表示结构和选项集。这样的强类型有助于在编译时识别错误,并且更容易在较弱的C类型之间进行转换。
  • 使用标准语言机制会引发错误,并且不会遗漏任何错误。
  • FilePath是一个受管理的,以null终止的字节袋,它符合ExpressibleByStringLiteral–比使用UnsafePointer<CChar>更加安全。

重要的是要注意,System它不是跨平台的,而是多平台的库。它在每个受支持的平台上提供一组单独的API和行为,这些API和行为紧密反映了底层OS接口。

 

发表回复