macOS Kernel Extensions are officially deprecated
developer.apple.com
developer.apple.com
The company I worked for and our competitor VMWare both had to create small kexts to enable on-the-fly capture of USB devices. We both accessed USB devices from user-space, but we needed to put small kexts in the kernel to prevent class drivers from being automatically attached to general USB devices. There was really no race-free user-space way of doing this and Apple ignored our messages on their dev forums when we asked for assistance.
I wonder if they’ve added an interface for this? Or maybe promiscuous USB device control just isn’t going to be possible now?
I've since moved back to Windows, but I hope Parallels might make a Windows version. The Windows competitors aren't as good as their Mac versions, and painfully slow compared to Parallels running on my ancient MBP 2012.
I still do all my work on one, fast as the day I bought it.
Probably because importing Mach messaging and VM APIs into the Linux kernel, and recreating IOKit and similar from scratch is a pretty major undertaking; the APSL isn't GPL-compatible, so using the existing XNU code and trying to make it fit into the Linux kernel isn't something that could ever be upstreamed. Aside from the fact that Linux's device model doesn't exactly map to IOKit well.
Then there are invariably plenty of assumptions that userland makes: launchd is probably assumed to have PID 1; all sorts of stuff like that.
Plus of course, there's the question of whether this would be inline with the EULA of Apple's userland…
There's always GNUStep if you want to write Cocoa apps in Objective-C on Linux. Somehow I have a feeling the APIs aren't what's been holding back Linux on the desktop.
Edit: Windows XP, because I still remember its Product Key. Ha. I probably reinstalled XP in my PC as a kid about a hundred times.
See here: https://communities.vmware.com/servlet/JiveServlet/download/...
Are there any details about DriverKit that are available?
I used to be a Mac driver developer ~10 years ago or so. I did one of the first 10G drivers for Macos, and MacOS performance was always terrible compared to Linux or BSD, but I can't imagine that moving it into userspace is going to help anything. MacOS boundary crossing (eg, syscall, ioctl, and Mach traps) performed even worse than their network stack as compared to Linux/BSD.
https://developer.apple.com/videos/play/wwdc2019/702/
https://developer.apple.com/documentation/driverkit?language...
https://developer.apple.com/system-extensions/
Regarding performance, on the other hand Linux/BSD still don't match macOS real time audio capabilities.
Got a source for that? I use a Debian machine for an audio workstation. I moved there from OSX and am using the same DAW and get less latency now. Especially because I can run a real-time kernel...
They don't have to customise their kernel on the newly bought Window/macOS laptop.
You said MacOS got better performance in realtime audio
Just because it's what musicians "get to" use doesn't make it better. It makes it a standard
This is the typical answer, "Linux can do that, just need a special customised build and change a couple of config files and /proc settings on boot".
This is not the same as what a standard kernel for consumer OS is supposed to be out of factory.
Regular people aren't compiling kernels.
If OS X also had tailor made kernel just for lower real time latency it could do even better.
But out of box, it's already better.
That said, the point is moot. 99% of pro audio/MIDI apps/VSTs don't run on Linux, so only experimental nerdy musicians and FOSS zealots would use it for real studio work. You do get the occasional profile on music tech websites e.g. "Techno musician X uses Linux", and somebody always jumps in a forum to say they use some Linux DAW (and usually add a list of ugly hacks, workarounds, and things that don't work), but it's clearly a total outlier situation...
Nobody said Linux can't for some law of nature run music software.
But it's empirically true that it both lacks 99% of music software people want to run, and that it's not used by 99% of musicians...
I haven't done it in a few years but a quick google search says that it's as simple as: apt-get install linux-image-rt-amd64 on Debian.
Hell it's probably easier to load a real-time kernel in Debian than it is to install video card drivers on any other operating system. T
> Regarding performance, on the other hand Linux/BSD still don't match macOS real time audio capabilities.
It's better to say that you were wrong at this point then to try to shift yr statement to a popularity contest instead of the soft-realtime latency contest you, YOU, started with.
The macOS kernel doesn't require any of this, it just works.
No audio professional using Apple hardware needs to learn these workarounds to actually do their work.
You keep repeating this. But no one said this is not the case.
Only change allowed is installing drivers during user friendly tooling that any random user that just got their first laptop today is able to do.
Failure to understand this, is why we are getting Year of Desktop Linux any day soon.
Naturally there are other areas that BSD/Linux do better out-of-the-box, without requiring customized kernels.
(Not at a debian box to look up the start menu item name, and I don’t use the GUI these days...)
At least this is how it has been every single time that I've installed an Nvidia driver on windows.
I stand by my position, it is easier, and trivial to install a real-time kernel in Debian than it is to install an Nvidia driver in Windows.
And if an audio professional can't be bothered to figure this out to make money while a teenaged gamer can figure out an Nvidia driver just to play games then they should maybe consider changing professions because this trivial roadblock will be the least of their technical worries in the audio world.
My point stands, macOS kernel doesn't need to be compiled from scratch to achieve that.
The applications that most professionals involved in music and audio use don't run on Linux. And with most professionals the application and it's stable running is the key concern, the OS just facilitate the application.
Of course, years later I'd be much more hesitant to install a required networking Kernel Extension from an organisation called "Huawei".
When talking about what musicians will use?
> I ... get less latency now. Especially because I can run a real-time kernel...
Where does it say they needed the real-time kernel to match macOS? It says "especially because", not "exclusively because". No data is shared on precisely how suitable it was or wasn't before the kernel tweaks.
Yes, they're on the documentation site. Here's NetworkingDriverKit:
https://developer.apple.com/documentation/networkingdriverki...
With the fancy new userspace networking stack, I wouldn't assume that a DriverKit implementation is necessarily slower. At least compared to the old networking stack.
(It says it's meant to be used "to develop drivers for USB Ethernet adapter", but I don't believe there's anything specifically tying it to USB. DriverKit currently doesn't support PCI access; I don't know if that's coming, but the PCI APIs for kexts are not deprecated, so at minimum you could write a kext just to map the device into userspace.)
I was toying with trying to port the Linux Mellanox ConnectX drivers to macOS to avoid having to pay 2-3x the price for ATTO FastFrame cards. You need a special entitlement from Apple to sign network csrd drivers though.
FWIW I can only get about 60Gbps out of the ATTO FastFrame on macOS versus easily 98Gbps for Mellanox ConnectX on Linux.
% kextstat | grep -v com.apple
Index Refs Address Size Wired Name (Version) UUID <Linked Against>
185 0 0xffffff7f84cc0000 0x5000 0x5000 org.pqrs.driver.Karabiner.VirtualHIDDevice.v061000 (6.10.0) 4D004D1A-ED2F-3780-AD53-A10F286EC759 <51 6 5 3 1>
%If it doesn't get updated, I'll have to start looking at custom mechanical keyboards. Their controllers (some small Arduino variant) allow any random key mapping.
Might be worth noting that Karabiner Elements can be sponsored through GitHub - I would very much encourage anyone who finds it as invaluable as I do, to consider giving what they feel it is worth to them!
The good news is that there appear to be multiple options for taking KE into this new kernel world, and the only cost is dropping support for older versions of macOS. Unfortunate, but not unexpected.
Thankfully PCB was QMK and VIA compatible so nice GUI to flash the firmware with my desired keyboard layout.
Also, I was expecting to see a kext from VMWare, because I use VMWare Fusion, but there wasn't one.
com.vmware.kext.vmnet
com.vmware.kext.vmx86
com.vmware.kext.vmioplug.18.7.0
[1] https://www.obdev.at/products/littlesnitch/index.html [2] https://objective-see.com/products/kextviewr.html
Index Refs Address Size Wired Name (Version) UUID <Linked Against>
109 0 0xffffff7f83eb3000 0x7000 0x7000 net.sf.tuntaposx.tun (1.0) 95DD963D-E23D-3B0F-8DE8-A4D2F6BFA5CC <8 6 5 1>
110 0 0xffffff7f83eba000 0x7000 0x7000 net.sf.tuntaposx.tap (1.0) 23FDB715-3D0D-3A26-ACBA-E3794C231CB7 <8 6 5 1>
111 3 0xffffff7f83ec1000 0xf0000 0xf0000 org.virtualbox.kext.VBoxDrv (6.0.12) 79AB3317-5F6D-3FE0-965C-92E45277AA0D <8 6 5 3 1>
112 0 0xffffff7f83fb1000 0x29000 0x29000 com.intel.kext.intelhaxm (7.5.1) D0CC7B8F-1F62-33B1-BE6B-B5573D2A607B <8 6 5 3 1>
117 0 0xffffff7f84000000 0x8000 0x8000 org.virtualbox.kext.VBoxUSB (6.0.12) B1285DF7-2D17-3497-A948-40825951123A <116 111 54 8 6 5 3 1>
180 0 0xffffff7f84964000 0x5000 0x5000 org.virtualbox.kext.VBoxNetFlt (6.0.12) C1B5DFEA-CB4C-30BD-9A92-C92391F7BDE0 <111 8 6 5 3 1>
184 0 0xffffff7f84a2f000 0x6000 0x6000 com.valvesoftware.SteamInput (4357.73.42) 17B6ECD0-A50A-3D6A-B350-9C70805EE129 <44 6 5 3>
191 0 0xffffff7f85b19000 0x6000 0x6000 org.virtualbox.kext.VBoxNetAdp (6.0.12) F8D3E46F-C4EA-397A-ACB1-EF2BF77C0506 <111 6 5 1>
193 0 0xffffff7f85b2e000 0x6000 0x6000 com.getdropbox.dropbox.kext (1.10.3) F29DD0CB-48D6-311A-9B69-E39CF775493C <8 6 5 2 1>
- Dropbox- Virtualbox
- Tuntap for VPN
- Valve controller support
- Intel haxm for Android Emulator
https://developer.apple.com/documentation/networkingdriverki...
I could imagine this being used for implementing a layer 2 VPN.
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.
System Version: macOS 10.14.6 (18G2022)
kextstat -l | grep -v com.apple | tr -s ' ' | cut -f 7,8 -d ' '
com.logitech.manager.kernel.driver (6.62.1)
com.samsung.portablessd.driver (1.5.02)
com.intel.driver.EnergyDriver (3.7.0)
com.bitgapp.eqMac2Driver (2.0)
com.objective-see.lulu (1.2.3)
com.Cycling74.driver.Soundflower (2)
org.virtualbox.kext.VBoxDrv (6.1.2)
com.intel.kext.intelhaxm (7.5.1)
org.virtualbox.kext.VBoxUSB (6.1.2)
org.virtualbox.kext.VBoxNetFlt (6.1.2)
org.virtualbox.kext.VBoxNetAdp (6.1.2)Maybe it's a driver to mount a Samsung phone as a virtual SSD?
Okay this is bad: I can not imagine NOT having Little Snitch watching over my shoulder.
https://blog.obdev.at/little-snitch-and-possible-deprecation...
>But what happens if Apple will not or cannot provide the required features? NKEs will be deprecated, but not Kernel Extensions in general. We can still implement a Kernel Extension to augment the functionality of the NE framework.
Panic got some special exemptions to be in the Mac App Store previously, but they are not allowed to talk about it in detail. Perhaps LS is going a similar route and it will be revealed when Apple releases the next version of macOS.
As long as I can distribute outside, I'm okay with it. But I, and even the biggest Apple fans in the press, have acknowledged the walls closing in.
$ kextstat | grep -v com.apple
Index Refs Address Size Wired Name (Version) UUID <Linked Against>
140 0 0xffffff7f83ac2000 0x4000 0x4000 com.intel.driver.EnergyDriver (2.0) 7FE9AF4A-A8C2-3099-A956-971DDC86A467 <8 6 5 3>
171 0 0xffffff7f843eb000 0x29000 0x29000 com.intel.kext.intelhaxm (7.5.1) D0CC7B8F-1F62-33B1-BE6B-B5573D2A607B <8 6 5 3 1>
173 0 0xffffff7f84c3b000 0x6000 0x6000 ch.tripmode.TripModeNKE (2.0.2) 1D30A109-766F-3620-B617-EA67C07823A9 <6 5 1>
183 0 0xffffff7f8283f000 0x6000 0x6000 com.getdropbox.dropbox.kext (1.10.3) F29DD0CB-48D6-311A-9B69-E39CF775493C <8 6 5 2 1>
195 0 0xffffff7f84d15000 0x15000 0x15000 com.vmware.kext.vmnet (1501.84.42) 1ED47440-F016-3E97-A701-E889165CCD39 <6 5 3 1>
196 0 0xffffff7f84d2a000 0x13000 0x13000 com.vmware.kext.vmx86 (1501.84.42) 3327B843-5057-3EAA-B149-E1E6FF7B4F91 <8 6 5 3 1>
197 0 0xffffff7f83ced000 0x7000 0x7000 com.vmware.kext.vmioplug.18.7.0 (18.7.0) 53E03BEC-2BFD-3A6D-B092-A2116987781F <61 6 5 3 1>
Edited, with a list of apps:- VMWare Fusion (mostly just for fun things like trying out Linux distros and messing with TempleOS and old versions of Windows, mainly);
- Dropbox (Smart Sync);
- Trip Mode (for certain WiFi networks, namely tethering, enforces a whitelist of things allowed to use the network);
- Intel's Power Gadget thing (can give power usage and clock speed stats from the Intel CPU & Platform; I don't use this much).
This is the key part, as presented during the WWDC 2019 talks, the long term roadmap is to make macOS into a proper mikro-kernel OS.
This is just the start.
https://developer.apple.com/videos/play/wwdc2019/702/
From the transcript:
"MacOS 10.15 Catalina will be the last release to fully support Kernel Extensions without compromises." Specifically, for the capabilities supported by System Extensions and the device families supported by DriverKit, using a Kernel Extension to do that same job is now deprecated and a future release of macOS will not load Kernel Extensions of these kinds. In future releases, we will add more kinds of System Extensions and more device families to DriverKit.
In turn, Kernel Extensions of those kinds will also be deprecated."
Apple-approved developers are still going to be loading whatever crap they want into kernel space, incl AMD or nVidia graphics drivers and the lot. It's not like they can convert XNU into an actual microkernel in less than a decade or two.
This just means that if you're not on the Apple-whitelist then macOS becomes a yet even more close platform for you. Wanted to developed a driver for a PCIe network card? Sorry, no can do!
These changes from Apple have forced this vendor to completely rewrite their product the right way.
I suppose avoiding kernel panics is an improvement but let’s be real: these enterprise vendors have always made shit software and rarely keep up with OS releases or updates. They’re not about to change any time soon.
Android now is requiring hardware memory tagging on ARM, Fortify by default, and Treble requires out-of-process for new drivers exactly because of the same kind of issues.
>A System Extension is part of your app that extends the functionality of the operating system in ways similar to a Kernel Extension but running in user space outside the kernel.
>DriverKit is a new SDK with all new frameworks based on IOKit but updated and modernized, designed for building Driver Extensions in user space outside the kernel.
You can build and test certain types of drivers in Catalina, but they won't be required until the next version of the OS ships.
>In Catalina, you can control USB, Serial, Network Interface, and Human Interface devices.
They will announce support for more kinds of user space drivers over time.
If there is not an available user space option for a particular use case, the existing kernel space option will continue to work.
I definitely do not miss the kernel panics from unplugging an older FTDI based Arduino while it was sending serial data!
The USB consortium has set standards for VID/PID and how USB Device Descriptors work.
I've typically gone a different route and used an ATMega32U2 (or U4) with Dean Camera's LUFA code to create a CDC to custom hardware bridge. Then the baud rate is irrelevant (or you can use it to set modes). I did this because OpenOCD was taking many, many minutes to program a tiny XC95144 CPLD using an FTDI JTAG cable. Yeah, sorry, trying to do it the "cheap way". When I got it working, the ATMega32U2 "serial" solution could do it in 2.3 seconds. Admittedly this was a few years ago, so things have likely improved.
One funny thing I did find doing this; I have not checked recent macOS releases - I should, was that if "Camera" was in the USB Device Descriptor the device would get claimed as a "serially attached camera" and the "serial" port would not show up - doh.
Works fine with the FTDI driver and pre-Mavericks Apple drivers.
(I'd far rather use the Apple driver, which is much better at reliably detecting the device without needing to reinsert it, so this is a bit tiresome...)
But using Linux on a laptop sucks. Especially if your workplace uses Dell exclusively. :(
OpenCore Reference Manual https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/...
OpenCore Vanilla Guide https://khronokernel.github.io/Opencore-Vanilla-Desktop-Guid...
(there's a bit of history there - a company developed it for a commercial product, Google ended up forking the open source parts for the android emulator which eventually resulted in them contributing it back to qemu upstream).
I worry if there is a hypervisor implementation monoculture where everybody is wrapping the same kernel interface, we lose some possibility for a better implementation.
Or if some problem of the future, not VMs, some day requires kernel hacking, but this is artificially locked out. Apple is choosing to not have that innovation happen on their platform. Seems short sighted.
(I mentored the Google Summer of Code project that brought the Android emulator's support for Hypervisor.framework to upstream QEMU).
Depending on the use case, you could still compile a custom version of Darwin, if you absolutely need to.
> more than 60 seconds, so you can’t dynamically page in large files anymore
certain vendors with legacy engines they've ported 10 years into the future are in trouble. But, assuming a 10.17 release, which they've worked out with apple? They'll be fine, mostly.
They say that future OS releases will no longer load deprecated KPIs, but they do not note the VFS KPIs as deprecated in their list.
It let me browse and copy files off. I had a few directories that were password-protected and I wasn't able to access them. There might be a way to do so but they just weren't important enough to me to do more investigation.
https://www.maketecheasier.com/mount-access-ext4-partition-m... is the instructions I followed. I've since removed the components since I don't have any other old Linux drives lurking around. Removal seems to have worked just fine.
* Driver for RTL815X that works with my USB Ethernet adapter from RTL.
The standard Apple driver refused to run at 1G, only at 100Mb. It'll be interesting to see if they update the drivers any time soon.
* Tripmode that controls network I/O (I don't use it)
* Karabiner Elements to handle my custom keyboard
I use the (excellent) Karbiner-Elements to handle my keyboard and it has a kext that sets up a virtual keyboard and virtual pointer as HID devices. So I'm guessing that's going to need to be converted from a kext to something using the HIDDriverKit.
> In macOS 10.15.4, use of deprecated KPIs triggers a notification to the user that the software includes a deprecated API and asks the user to contact the developer for alternatives.
Also, why half a year? Do you think it will take them that much to release 10.15.4?
I'm joking but documentation (and tech support) do seem to be dying things at Apple and elsewhere.
Fully agree on the documentation point, though.
And to do that, you have to start much earlier.
How is that enough time?
Yes, the documentation is scanty in places, and there is some missing functionality at the moment. And the support burden on these companies, once 10.15.4 ships, will be a pain ("It's OK, the software still works, don't worry about that alert message"). But it is incorrect to say that Apple has not given developers time to react.
Certainly but the problem is that such changes should be announced years in advance.
Cocoa, OpenGL, ObjC... all are going to die some day and Apple will probably announce it 1 year before it happens, at the most.
Unless you’re suggesting that Apple will only give 1 year’s notice when they remove deprecated features - in which case, they might only give 0.25 years (at WWDC), which happens quite frequently.
They could remove Perl/Python/Ruby this year, having only deprecated them last year. Historically they're not inclined to do so, but I'd expect those to be left deprecated until some event permitted their removal to be more convenient (like "new architecture added", which would force a global recompile, at which point lots of deprecated things can go away more smoothly — OpenSSL, OpenGL, P/P/R, etc.)
Directly jumping on the provided alternative is basically doing beta testing for Apple. Very often the alternative is not ready yet. For years after it was announced Swift was not production ready. SwiftUI will probably replace Cocoa but again it is not production ready yet (and doesn't work on the majority of Macs).
What if there is no alternative? There are many crossplatform projects that rely on OpenGL and moving to Metal is problematic since it's an Apple only API. No replacement for Carbon either because at some point Apple decided to abandon the port to 64 bits.
How much time should one wait before fully jumping, say, into Swift? Nobody knows. Apple could announce today that it plans to kill ObjC by 2025 and give devs a good picture of what it's going to happen and its commitment to X feature. I suspect the problem is that not even Apple knows when it will finally decide to do that.
There is a lot of uncertainty. How can one decide to start a new macOS project today without knowing how long that investment will last? For example if you invested heavily in OpenCL a couple of years now you'd have to rewrite all that code to Metal. Or moving from ObjC to Swift. Or moving from OpenGL to Metal. Etc. This is a luxury that not everyone can afford and Apple doesn't seem to care.
No wonder Apple is the only big developer working on macOS exclusive products and they are trying to bring over iOS devs via Catalyst.
Each WWDC thereafter, either test your deprecated code for surprise breakage on the new betas (this happens), or remove your deprecated code if the betas remove support for it.
If you aren’t committed to reviewing, testing, and updating your codebase annually (or shutting down products that are no longer a good fit, like iDefrag) then you should probably not develop for Apple platforms.
If you’re concerned that there’s not enough revenue to support this every year, then you should reevaluate your position on subscription revenue models or accept that you’ll operate at a loss re: keeping your platform up-to-date.
I'm treading extremely old ground, but fwiw:
I don't fault Apple for pulling 64 bit Carbon from Leopard. It makes sense—the OS had already been delayed and they had to cut stuff in order to ship.
But I find it totally bizarre that they never shipped 64 bit Carbon. Why wasn't it in Snow Leopard? Heck, Lion even.
Catalina's nixing of 32 bit would be a lot less painful if Carbon apps had some kind of upgrade path.
I don't. Carbon was a >20-year-old codebase which had always ran on a 32-bit system. I wouldn't be surprised at all if they simply determined that there was too much code which would have to be rewritten to run correctly on 64-bit.
20 years is nothing (/grabs your lips and makes them say "NSObject"). Don't talk to me about code quality either, just because something is old doesn't mean it's bad (or good) it just means it's old.
This is especially true for "the last 20 years" in particular (that featured elimination of most American tech workers with more than 20 years experience during the dot-com crash followed by a six year timeout where upon most American universities did not graduate many CS majors and those that did had no real "industry mentoring", just Google searches and blog sites.) IN MOST CASES, THE QUALITY OF THE OLD CODE FROM BEFORE THAT ERA IS GOING TO BE FAR SUPERIOR TO THE CODE PRODUCED DURING THAT PERIOD.
Things are just now (14 years after the new CS majors began to arrive at their desks) starting..and I do mean starting..to get back to normal (the people who infested the industry in the absence of such formally trained talent are still around, many have whipped investors into FOMO, allowing them to live very well and thus be influential and even exploitative of the younger formally trained CS majors, instead of the other way around).
It's been really worrying to see large enterprises that have moved from Windows to macOS and carry their thinking that the need to install a third party AV product (which in turn often acts as a near-unrestricted way into the kernel).
JAMF uses the MDM APIs that Apple provides. It also can't access personal data via those APIs. Your anti-virus may use kernel extensions, in which case it will stop working.
Probably, "die." I'm not sure we'll miss them; that whole market is sketchy, and more obsolete every year as the OS gets more secure on its own.
I would like to know what is the alternative today, not 10 years from now.
1. My parents lost money in the Internet. They treat scam messages ("you've been hacked, we have discriminating stuff against you, give us bitcoins and we don't tell anyone") seriously. They wanted to buy some wonder drug that didn't even exist. Now they contact me in every case that involves money on the Internet, and since several years there were a few other cases where I had to say "don't do it, this is a scam". So I'm effectively performing the role of a human thirdparty AV.
2. My girlfriend has been hit with a clickjacking compaign. She was crushed; I want to lessen the chance of this happening ever again. I've also educated her about it and how it works, so she will probably not do it anymore, but in the scale of whole humanity, the "let's teach them how to defend" is not a good strategy for trying to eliminate some harmful event, there will always be people that will resist learning.
3. I want to help with limiting spreading malware. If I'm using AV, this means that I influence the environment I live in so that everyone sees lower malware spread. This means people like you can wonder what is the point in AV tools, since you probably don't know even 1 person that had been hit with malware attack. Similar to vaccines I guess.
Also, do you mean XProtect? https://eforensicsmag.com/72717-2/
If Apple still made great software and even better hardware then I wouldn't care, but that hasn't been the case for years.
Reasons to stick with them: company purchasing policy.
Can you tell what is a better hardware and/or software for you?
...for now.
and kexts [will] have a userspace alternate.
...which is unlikely to have the same performance and control benefits as running "on the hardware", and I bet they will also gradually lobotomise the APIs in userspace too.
Apple's control-freak attitude is nothing new. This is just another step along their plan to turn desktops and laptops into the same dumbed-down walled-garden platform as mobile devices.
I suspect that even Linux will be adopting a more restrictive (if decentralized and overridable) model for third party binaries sooner than later.
because it’s become increasingly clear that unquestionably running code that can steal or destroy user data and especially code with kernel access is a catastrophically bad idea in an always-connected world
...and over the years I have increasingly become convinced that "security" is simply a convenient and difficult-to-oppose excuse to take away freedoms and push society towards an authoritarian dystopia by spreading such fearmongering paranoia. There's enough sci-fi around to show what that could look like.
... and presumably you'll continue to feel that way right up to the point that a bit of malware steals your banking credentials or encrypts your hard drive and demands a Bitcoin ransom.
You absolutely do not need kexts to steal user data, it's totally orthogonal to user's data security, and I think (correct me if I'm wrong) even in Catalina this XKCD is still relevant: https://xkcd.com/1200/
Did you had any 32-bit software that don't exist as 64-bit versions?
I have at least a dozen off the top of my head. Probably more if I actually checked (which is why I'm not upgrading)
The title as written deserves a (2019) since they announced this to developers last year.
Additionally, they _announced_ the deprecation at WWDC, but that did not take immediate effect. The point of this post is that they are as of right now no longer supported.
So now that Catalina is officially released, they are following up on this.
They are still supported in Catalina and they will be unsupported to varying degrees after Catalina, same as they said last year.
Not currently. Not that I can find.
The macOS port uses the KAUTH listener API, which was indeed deprecated with 10.15.
It sounds like FileProvider would be perfectly suited to the job if it weren't pulled.
I don't want to and can't speak for Microsoft, and I did not make the final decision, but:
* The user space alternatives (NSFileProvider, EndpointSecurity) are not up to the job for various reasons.
* Porting everything to the much more involved VFS KPI would have been a large amount of work, and with a near-100% risk of having the rug pulled out under it yet again.
lol which one of you? i fully sympathize but oof, guess you lost that fight
It could be compared to changes that Chrome plans (or already introduced?) to restrict extensions that filter sites which affect adblockers and you're at mercy of Google what you can block and what you cannot.
Similarly here, you will only be able to hook to interfaces Apple provided, but if you plan to do something that wasn't thought of, or Apple does not approve, tough luck.
This doesn’t change anything w.r.t. running your own software on hardware you bought from them.
They want MacOS to be stable and secure. Disallowing kernel extensions is a step towards that.
8 hackintosh related kexts, out of which one is for the temperature sensors that i can live without.
What worries me is stuff like Paragon NTFS, intel haxm for Android emulation, osxfuse used by pCloud...
Hopefully people will find new ways to support macOS on PC hardware, since Apple doesn't really seem interested in the prosumer desktop market.
I might need to get a new Creative Labs audio thingy because they're not known for updating drivers for old products...
It goes into two steps.
1 - A new user space API for what was previously kernel API gets introduced
2 - There is one OS release where the kernel API gets deprecated
3 - The release thereafter removes the kernel API
Long term roadmap is to make macOS into a proper micro-kernel OS.
I am not going to edit anything.
This means for the moment, I don't have an upgrade path that works for me...
Is there any alts for virtualbox?
I've looked at doing some similar stuff, and I think they'll have to reimplement it as a "VPN", where the VPN is really just a user space process that performs the desired filtering. It'll be interesting to see how the Little Snitch guys approach it.
1. https://developer.apple.com/documentation/networkextension
I mean porting kernel extensions would probably be a big deal, so deprecating them would be the first step.
Guess Apple really wants to keep me locked in an old OS for as long as possible.
- FUSE
- XQuartz
- LittleSnitch
$ kextstat -l | grep -v com.apple | tr -s ' ' | cut -f 7,8 -d ' ' at.obdev.nke.LittleSnitch (5430)
It does use a kernel extention.
How well that will work in practice remains to be seen. But they aren't simply deprecating all kernel extensions.
Far from a comprehensive test, but, yeah, there's probably a reason Parallels defaults to their custom kext.
* VMWare Fusion * Little Snitch * Dropbox
plus one for a firewall I don't run anymore and could get rid of.
Think System Integrity Protection (SIP), the read-only system volume introduced in Catalina, etc.
All good for security and your typical macOS user. That these changes are also frustrating for hackers is just a side-effect they are willing to accept.
Edit: I'm completely, totally, and utterly wrong, don't mind me.
I also could have sworn Tuxera was FUSE based...
Edit: Oh, but it shows up in `sudo kextstat`. Okay, I'm completely wrong then. I was wondering how a FUSE filesystem could have such good performance...
A macOS without Tuxera NTFS and Parallels Desktop is going to be really problematic for me, but presumably Apple will find workarounds for them. I already switched back to Windows a year ago anyway.