- Published on
macOS中的扩展
- Authors
- Name
在macOS中,我们经常接触到扩展的概念,一些Application需要访问系统的麦克风,摄像头这些设备,就需要使用系统扩展。我们可以将其发展的分为3个阶段:1. macOS的内核扩展: 早期Mac OS X (2001 - 2009) Kext的引入和广泛使用 安全与限制的引入(2010 - 2015)需要签名,SIP限制对系统内核关键目录(/System/Library/Extensions)的修改,并要求用户手动禁用SIP才能安装未签名的Kext。 2. DriverKit与用户驱动(2016 - 2020) DriverKit(2019, macOS 10.15 Catalina):引入了DriverKit框架,允许开发者编写运行在用户空间的驱动程度。这此扩展无需直接访问内核,降低了系统风险。 3. System Extensions 全面取代Kext: 在Apple Silicon上的限制,Apple Silicon的统一内存架构和硬件优化减少了对某些传统驱动的需求。 从而在这些设备上默认禁用传统Kext。
常见的 System Extensions 包括 Driver Extensions(硬件驱动,如 USB、音频)、Network Extensions(VPN、内容过滤)、Endpoint Security Extensions(防病毒、安全监控)和 File Provider Extensions(云存储、文件系统)。它们存储在 /Library/SystemExtensions/ 或应用程序 bundle 中,可通过 systemextensionsctl list 或系统设置查看。第三方软件如 NordVPN、Malwarebytes 和 Dropbox 是典型示例。