4 ms·
The good old times when Apple let devs fiddle with their OS. These APIs are already deemphasized, so I wouldn’t be surprised if they were to deprecate/remove t
by tzahola 8y ago
The good old times when Apple let devs fiddle with their OS.
These APIs are already deemphasized, so I wouldn’t be surprised if they were to deprecate/remove them altogether when they release the ARM version of macOS. They’ll probably do it with the update that introduces UIKit on macOS (as Craig Federighi said on this year’s WWDC) to divert the attention. Sneaky bastards, but their stuff still sucks the least ¯\_(ツ)_/¯
- X-Istence 8y agoCertain devices are still going to need loadable kernel modules to be supported. For example USB to Serial devices, or custom media devices, and more. I really don't expect kernel modules to go away.
- 1over137 8y agoHow many USB<->serial adaptors are there out there? Since 10.9 (IIRC), they've included their own FTDI driver. I sure hope you're right though. It hasn't happened yet thankfully!
- w0de0 8y agoExactly right. Often for devices, but also for software (usually enterprise). Here is a list of kernal extensions compiled by the macadmins community: https://docs.google.com/spreadsheets/d/1IWrbE8xiau4rU2mtXYji9vSPWDqb56luh0OhD5XS0AM/edit#gid=0 https://docs.google.com/spreadsheets/d/1IWrbE8xiau4rU2mtXYji...
- mattbauer 8y agoI think kernel modules will go away at some point. Having no third party Kexts would increase the security of the OS for in use systems. That's a nice way of saying not all third-party Kexts are created equal. I could see an argument where moving existing hardware Kexts to user space is easier because IOKit uses the libkern C++ Runtime. The OO design of IOKit may lend itself very nicely to the driver approach BarrelFish takes (http://www.barrelfish.org http://www.barrelfish.org). The real hard one to move to user space would be third-party filesystems. That's mainly because of dated VFS architecture used in *NIX systems. I could see Apple completely moving away from that at a future point too.
- wichert 8y agoI found Serial[1] a while ago: a decent terminal application that does not require any drivers / kernel modules to support USB-to-serial devices. [1] https://www.decisivetactics.com/products/serial/ https://www.decisivetactics.com/products/serial/
- voltagex_ 8y agoI wonder how that works?
- blattimwind 8y agolibusb or a similar userspace USB construct? You don't need anything privileged to write an USB device driver.
- pilif 8y agomacOS comes with very good USB support in user-space that works without any drivers. https://developer.apple.com/documentation/iokit/iousbinterfaceinterface190?language=objc https://developer.apple.com/documentation/iokit/iousbinterfa...
- 1over137 8y agoYou can still fiddle with macOS. Though it's getting harder, with SIP and whatnot. Still, disturbing that the URL includes "archive". OTOH, they recently open sourced the iOS flip side of what's open on macOS. So who knows.
- saagarjha 8y agoYou can load kernel extensions with SIP enabled: the extension just needs to be “soft-approved” (i.e. you need to be in the developer program and explain why you need a kernel extension to Apple; no stringent requirements like the App Store review process obviously). With SIP disabled you can load extensions that have not gone through this process.
- saagarjha 8y agoThe UIKit on macOS API is supposed to be coming to developers next year. I don’t see ARM Macs or the deprecation of an API like this with no warning happening by then.
- scruffyherder 8y agoIt's what they did with the release of OS X 10.0, when they dumped the Objective C runtime/DriverKit for the C++ runtime/IOKit. I mean, who needs old existing drivers anyways on a new platform?
- mattbauer 8y agoIt's not sneaky just because you're not looking. I have found the CoreOS group to be guarded in their responses to future directions but never sneaky. There have been multiple times where an API/design/etc change in a WWDC session didn't make sense. I would follow up in the labs and be told the reason is because X is happening in the future. Granted I'm not always told. In that case a diff of kernel sources between releases along with some years working in the XNU kernel is enough to figure it out. Sometimes you're just lucky and hint it in the actual session. For example the 2013 WWDC Session titled "What's New in Kext Development" (https://asciiwwdc.com/2013/sessions/707 https://asciiwwdc.com/2013/sessions/707) leaked SIP well before it was officially announced. They key line was: So in the future, we are going to tighten down access to the system hierarchy, the whole hierarchy down from /System and everything in there. Another example of them sharing future plans was user space networking. I forgot what year it was but in the session they noted something about network kernel extensions (NKE) going away and to use Network Extensions instead. NKEs weren't the best but for Apple to send all the effort to recreate the 'same' thing in a new framework was odd. A visit to the labs and you were instantly told of the move to user space networking. One last example. Apple ships in the default OS a number of third party mass storage kernel drivers. Take a look at /Library/Extensions on a new install. This ensure when you try to install that new OS or boot that new OS, you can see you're drives. Apple likely needs to work with those third-parties to make that happen. I understand why it might appear sneaky but I don't think that's the case.
- pjmlp 8y agoYep, there a couple of interviews where Chris Lattner states that Objective-C 2.0 and later improvements where already a long term roadmap to what would eventually become Swift.