Linux
Welcome to c/linux!
Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!
Rules:
-
Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.
-
Be respectful: Treat fellow community members with respect and courtesy.
-
Quality over quantity: Share informative and thought-provoking content.
-
No spam or self-promotion: Avoid excessive self-promotion or spamming.
-
No NSFW adult content
-
Follow general lemmy guidelines.
view the rest of the comments
When I was like 10 I wondered why hardware didn’t just have some flash chip with its driver source code written in a standardized way. The idea sounds corny in retrospect, but honestly why isn’t it a thing?
Because the driver is the glue code between the device, and the operating system. What happens when the kernel changes, or needs to change? Then the driver on your devices don't match up with the kernel anymore. A lot of Windows folks think Windows has some sort of stable interface and that's why Windows is backwards compatible. But it's untrue, Windows has inbox drivers, just like Linux has driver's that build with the Kernel. Any driver that reaches inbox status get brought into the Windows source. As the Windows kernel changes, Microsoft engineers update all the inbox drivers to match the new kernel changes. When companies don't get their driver inbox'd, they are responsible for keeping up with the kernel changes. Some devices eventually get left behind.
Because there is no such thing as a universal standard for software.
You're imagining a way for software to talk to each other with something like Esperanto, right? Some universal library interface, a language that can be compiled for every CPU architecture, byte ordering, and operating system.
This would require all hardware vendors to agree on what that interface is, for each type of device. It would require that the API never changes, or else old devices wouldn't work with new OSes; the alternative is that OSes have to support years of different versions of the language. It would prevent bug fixes, unless you add the ability to flash individual chips, which would make many more expensive. It would have to be a higher level interface which would limit both innovation and performance tuning. But the biggest issue is that this universal language would have to understand every operating system to know how to access itself using the OS's paradigm.
Oh believe me, I know all those issues exist. The idea would simply never happen.
Unfortunately, If they did have onboard drivers it would only ever be for an old version of Windows. (Same as the disks and then later discs that used to come with hardware)
And in the case of phone hardware and features such as VoLTE it's intentional so you're locked into their OS.
Yeah, I know my idea is a pipe dream—it would never happen due to greed.