Apple releases open source modules of Big Sur
opensource.apple.com
opensource.apple.com
https://kernelshaman.blogspot.com/2021/01/building-xnu-for-m...
That's a little sad, is this recent? I'm pretty sure that at least as recently as El Capitan, you didn't loose any obvious functionality by recompiling the kernel.
If you forced employee to publish on a wiki, it would feel far too much like work. Having it on a privately owned public forum gives a sense of personal ownership and development.
It's no fun if you have to go through a multi step technical, managerial, docs team and legal review process where PM makes you include/exclude what they want to turn it into a marketing doc, your manager shuffles your priorities, the docs team makes you dumb it down, blow up the word count and remove external links and convert to .docx that will only be available to registered enterprise customers, and then finally legal tells you you can't write any of this anyway.
> It is not currently possible to build open source XNU for Apple Silicon Macs.
If anyone had a doubt about the closed nature of Apple ARM processors, this should dispel it.
I had a hell of a time a few months ago trying to compile the Security framework from OS X 10.9.5 (I wanted to update the cipher suites!). It needs to link to a bunch of internal, closed Apple code.
I did eventually get something to compile, so there's that. But I had to pull in a bunch of reverse-engineered headers from the Darling project and similar efforts, and whatever it was that xCode finally spit out didn't seem to actually run.
These instructions are a lot better than the ones that I had to follow a few years back - I might try it, just need to find a guinea pig :-)
"Paradoxically enough, moving as quickly as possible is not necessarily desirable. Users tend to get frustrated once they realize how little time their Mac really spends to crush them at low levels. In the interest of promoting harmonious Human - Machine relations, we enforce minimum response times."
https://opensource.apple.com/source/Chess/Chess-408/Sources/...
But frankly, I wouldn't trade it for "You are not expected to understand this".
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/sys/ken...
- The "Checking for Audit Risk" progress bar in TurboTax/etc software, which is shown while comparing about a dozen floating point values, perhaps after a division step. This takes imperceptable time, but the appearance of "doing work" projects value to humans.
- Comfort Noise (very low volume pseudo white noise) played into a VOIP phone to replicate the ambient inductive noise in analog lines. This assures humans that their handset is not broken.
- Engine Noise generated by some (nearly silent) electric vehicles. This has a huge safety component, so it's not frivolous at all!
The scammy part is where they push you into a nearly impossible to cancel subscription with promotional pricing as a way of "saving" vs an expensive one-time payment for one report.
The loading bar UI/UX correctly gives the impression that the report will be thorough. In my experience, they are quite good. So that's just fine.
The loading bar is lying, plain and simple. "Giving the impression" of something that very much isn't true is just a polite way of saying "screwing with your user's perception of reality". Developers often complain that users cannot at all understand computers - these kinds of practices are part of the reason that is the case.
It's not that far conceptually from the tech support scammers that show you errors in your system's Event Log to "give the impression" that you're insecure, and then offer to sell you bogus security products at inflated markup. Same kind of ethics underneath.
The goal of the former (skeuomorphism) is to help users understand; the goal of the latter is to misdirect users, either 1) so they have a better experience (like Apple here) or 2) so they are willing to fork out more money. Users are willing to pay more when they think more work is being done (c.f. TurboTax "finding" the most deductions possible, or a public record website "searching" through "all the databases" for a person).
https://opensource.apple.com/source/Chess/Chess-408/Styles/G...
Wonder what their workplace policy is. It’s pretty much “don’t ask, don’t tell” around here.
But I never saw any on-premises use of illegal drugs, and there were policies around the serving of alcohol.
In my brief stint at Apple, only two things seemed to matter; what you could deliver to your org, and whether your manager liked you (highly correlated with the first).
Edit: I guess there was a third thing, don’t do anything that could screw up the brand at all, but that “mattered” only in that it was table stakes.
These notably don't include much of mac/iOS proprietary user interface components, drivers, or system frameworks - basically everything that makes macOS/iOS remotely interesting. The source code drops are helpful for the creation of other Unix-like operating systems based on the open source macOS kernel (see also the defunct Open/PureDarwin projects), and the released apps are sometimes ported (e.g. the GnuStep project has some older version of Chess.app and others ported over). There's some off and on efforts in the FreeBSD community to port Apple's open source launchd init system [1]. All in all though, there's really not all that much interest in reusing the code from these code drops by the open source community and any efforts seem to lack staying power.
The released source most practical value is most likely derived by researchers investigating macOS/iOS internals and being able to inspect the source code for some of it. As a curiosity it looks like you're able to build and run your own XNU kernel on macOS [2] (what is this, Linux?), but I can't personally attest to the process.
[1]: e.g. https://github.com/freebsd/openlaunchd
[2]: https://kernelshaman.blogspot.com/2018/12/building-xnu-for-m...
Broken promises of liberal freedom.
What kind of promise do you feel you have been given?
Big Sur came out several months ago, so if this release contained GPL code Apple would potentially be in trouble. (But it doesn't, so they're not.)
Interestingly, the new version removed the dependency on the unavailable rootless.h header, making it (probably) buildable out of the box, now.
But I may also be misreading it.
There is also some original work from Apple.
And it wasn't worth the complexity of having different software for each of their OS's, so they just banned all GPLv3 software from the OS.
Apple's use of open source could have totally worked with "copyleft", but only the GPLv2 usage of the word. GPLv3, not so much.
I don't see anything in GPLv3 about people having to be able to build derived works for no cost.
What GPLv3 adds is a requirement that your provide "Installation Information" to allow you to install and run the code once you build it. Installation information is things like keys to sign the code if the platform it is for only runs signed code.
The installation information requirement only applies when the object code was conveyed "as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized)". A "User Product" is "either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling".
GPLv3 object code that is not conveyed as part of a change of possession of a User Product is not subject to the installation information requirement. This requirement was added to GPLv3 specifically to stop what TiVo was doing--shipping GPL code on their boxes that could not be replaced by the user--and it was narrowly drafted to only cover that situation.
- Apple can't include GPLv3 software in iOS because it only runs signed code, and the keys needed to sign system components are kept secret by Apple. From this perspective, the developer agreement is a red herring.
- App Store developers can't include GPLv3 code in their apps, because then Apple would be breaking the terms of GPLv3 by not providing the "Installation Information" as you put it, which would be required for users to freely modify the app. (This "Installation information" being the iOS SDK and a Developer signing key needed to run your own code on your device.) Keep in mind that when Apple distributes your app via the app store, they take on the responsibilities to adhere to the terms of its license as they pertain to "redistribution", since that's exactly what Apple is doing.
> GPLv3 object code that is not conveyed as part of a change of possession of a User Product is not subject to the installation information requirement. This requirement was added to GPLv3 specifically to stop what TiVo was doing--shipping GPL code on their boxes that could not be replaced by the user--and it was narrowly drafted to only cover that situation.
If Apple were to include GPLv3 code directly as part of iOS, they absolutely would be "shipping GPL code on their boxes that could not be replaced by the user"... something that is OK in GPLv2 (so long as you provide the source like they're doing in TFA), but not OK in GPLv3 (because of the tivoization clauses.)
To tie all this to my original point... macOS ends up having to kill all its uses of GPLv3 (even though you can replace it on device and build your own, on macs), because of the shared architecture and engineering with iOS. It's easier to just ban GPLv3 from the entire company really.
At least the name sounds promising.
None of this is licensed such that they can use it directly, but having the source available can speed up the reverse engineering process such that they can rewrite their own version of the code that interacts with the hardware.
This is why open source developers actively avoid reading leaked sources from proprietary projects for example. "open source" code with too restrictive licenses is no different from closed source code.
Source/explanation in their words instead of mine: https://asahilinux.org/copyright/ (See: "Reverse engineering policy")
They might coincidentally be right of course, but their advice, policy and opinion in this legal matters mean as little as yours and mine.
Not sure what you're referring to here?
[1] https://opensource.apple.com/source/IOGraphics/IOGraphics-58...
[2] https://asahilinux.org/copyright/ - See "Referencing Other Open Source Code"
There might be some useful things in there. If they released the code/ patches in an easier to review way. As it is, it's fairly difficult to see if anything
This one was most interesting as a non-C or OS developer:
http://www.nongnu.org/libunwind/
> The API additionally provides the means to manipulate the preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain (non-local goto).
Sounds like fun...
The released the code they wrote for compatibility with other people's file systems, and a filesystem Apple developed in the 80s. They didn't release the code for their own, proprietary (and non-ancient) filesystems. It would be nice if they did, but you can see why they didn't.
This isn't a new page.
Such an approach would be way more complicated if the open source release included version control history. These code drops already always come months after the macOS releases.
There's a serious argument that a source dump without commits is not the "preferred form of the work for making modifications".
Beggars can't be choosers but I'm not begging, I'm evaluating them as a corporate citizen.