top | item 22256047

(no title)

pmjordan | 6 years ago

DriverKit has support for building ethernet drivers:

https://developer.apple.com/documentation/networkingdriverki...

I could imagine this being used for implementing a layer 2 VPN.

discuss

order

tssva|6 years ago

ZeroTier has eliminated the use of the tap kernel extension in releases 1.42+ when used on macOS 10.13+. They aren't using DriverKit but a combination of poorly and undocumented features. They expect to eventually have to develop a DriverKit based implementation. Details at https://www.zerotier.com/how-zerotier-eliminated-kernel-exte...

pmjordan|6 years ago

DriverKit has only been around since 10.15 so currently it's not easy to correctly support a range of versions with everything so massively in flux and Apple's aggressive deprecation schedule. Writing and maintaining macOS system level software (including drivers, etc.) has generally become a pretty big headache since around 10.13, stuff is constantly breaking due to OS changes and regressions.

This obviously always happened to some extent, but the pace of breaking changes and bugs picked up massively around that time - I think a large part of the problem is that Apple's own developers don't actually need to use any of these features themselves, so they are just dumped onto 3rd party developers in a half-arsed state. I'm thinking of kernel extension authorisation (which was super buggy in earlier 10.13.x releases and still has weird quirks), various user consent additions (there are no APIs for directly checking or prompting for many of the permissions, let alone notifications when the user grants or revokes consent), DriverKit, EndpointSecurity, etc.