this post was submitted on 27 Sep 2023
600 points (95.3% liked)
Technology
59641 readers
2730 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'm playing around with OS development only as a hobby currently. I don't know much about black box insides of macOS however I have used third party drivers as well as looked into how the kext system is structured and it really seems like a master class of software engineering. Having the drivers structured hierarchically under categories/subsystems and with multiple kernel API revisions supported means the kexts work over a wider lifespan.
Also comparing Apple to the rest of industry is not completely unreasonable for one reason. Modern register level documentation is hidden under shitty NDA's and aren't even complete half the time, with the usually poorly written SDK being used as documentation instead. Even better is when parts of the SDK are fucking binaries with no hopes of figuring out where the bug lies. The top dog of course is no SDK whatsoever and instead opting to release a fixed, factory compiled linux kernel release for Android only. I believe this is what Qualcomm mostly do and why those Android releases have a fixed lifespan of 3-5 years. When this is how over half the Android phone SoC market operates, I wonder how half of them make it to market working as well as they do.
Linux on the other hand is just a mess (In more ways than one. I have low opinions of it). That is not a good example of modular driver support. The unwillingness of the Linux community from both userspace applications / libraries and kernelspace to maintain a versioned API system with rigorous testing for compliance and to instead create a moving target is nothing short of a fucking joke. It's no wonder Android can't easily maintain cross-generation support. Then there is the lack of support for running different versions of libraries side by side as necessary.
I run a Linux server for home use as it's still king in this regard and have sometime attempted to use Linux as a desktop. However I eventually come to the same conclusion that it's just too unstable and "patched together". My daily driver is still a mac, no matter how much I want to move away due to Apple's worsening business practices.
Sorry for getting heated. It just really boils me when people defend poor software development practices because it the "industry standard". I disdain manufactured e-waste stemming from rubbish software development practices.