SO. MUCH. THIS.

  • Pxtl
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    4
    ·
    edit-2
    9 months ago

    I actually did do operating system development, at least back in school. But comparing Apple to everybody else is insane when Apple controls the full vertical stack of end to end hardware. You may as well compare them to the driver support on Nintendo or Toyota.

    And also there’s the problem that the Android OS is based on Linux which handles the “wierd new hardware” problem by recompiling the kernel, which doesn’t work so well with closed-source binary drivers. And that’s before even getting into the ARM architecture.

    • float@feddit.de
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      9 months ago

      I’m not sure why you’re getting downvoted because your argument is right. Apple has a rather small number of hardware devices to support. That makes long term support a lot easier.

      Edit: I mostly disagree with your previous argument though. Planned obsolescence is alive and thriving. I’ve seen so many PCB layouts where heat sensitive parts were placed right next to heat emitting ones that I cannot believe this is by accident.

    • ky56@aussie.zone
      link
      fedilink
      English
      arrow-up
      3
      ·
      9 months ago

      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.