News for hackers. Stuff that matters.
Re:The libkern C++ Runtime by tzahola on Wednesday July 11, 2018 @06:08PM (#17510656)
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 ¯\_(ツ)_/¯

Re:The libkern C++ Runtime by mattbauer on Wednesday July 11, 2018 @11:55PM (#17512068)
It'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) 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.

Re:The libkern C++ Runtime by pjmlp on Thursday July 12, 2018 @02:47AM (#17512679)
Yep, 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.
Re:The libkern C++ Runtime by 1over137 on Wednesday July 11, 2018 @08:26PM (#17511315)
You 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.

Re:The libkern C++ Runtime by saagarjha on Wednesday July 11, 2018 @10:42PM (#17511790)
You 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.
Re:The libkern C++ Runtime by X-Istence on Wednesday July 11, 2018 @07:11PM (#17510960)
Certain 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.

Re:The libkern C++ Runtime by w0de0 on Wednesday July 11, 2018 @10:06PM (#17511683)
Exactly 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/1IWrbE8xiau4rU2mtXYji...
Re:The libkern C++ Runtime by mattbauer on Thursday July 12, 2018 @12:08AM (#17512123)
I 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). 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.

Re:The libkern C++ Runtime by wichert on Thursday July 12, 2018 @02:19AM (#17512554)
I 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/

Re:The libkern C++ Runtime by voltagex_ on Thursday July 12, 2018 @02:41AM (#17512654)
I wonder how that works?
Re:The libkern C++ Runtime by pilif on Thursday July 12, 2018 @06:43AM (#17513400)
macOS comes with very good USB support in user-space that works without any drivers.

https://developer.apple.com/documentation/iokit/iousbinterfa...

Re:The libkern C++ Runtime by blattimwind on Thursday July 12, 2018 @04:40AM (#17513055)
libusb or a similar userspace USB construct? You don't need anything privileged to write an USB device driver.
Re:The libkern C++ Runtime by 1over137 on Wednesday July 11, 2018 @08:28PM (#17511323)
How 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!

Re:The libkern C++ Runtime by scruffyherder on Wednesday July 11, 2018 @11:42PM (#17512016)
It'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?

Re:The libkern C++ Runtime by saagarjha on Wednesday July 11, 2018 @10:46PM (#17511809)
The 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.