5 ms·
Thats a part of it. There is also no one canonical linux stack. Different distros do things differently (sometimes drastically so). E.g. systemctl flags and
by deeblering4 6y ago
Thats a part of it.
There is also no one canonical linux stack. Different distros do things differently (sometimes drastically so).
E.g. systemctl flags and argument ordering differs from sysv style /etc/init.d/foo commands (as just one example)
So to learn “GNU/Linux” really you need to learn several distributions and piece together the common components and why different approaches are better suited to different environments.
- MuffinFlavored 6y ago> There is also no one canonical linux stack. Different distros do things differently (sometimes drastically so). Does this fragmentation help or hurt the ecosystem over the long-term? I personally think it's the #1 reason Linux never stole any sizable market share from Mac OS X/Windows. Hardware support just isn't there. Polish just isn't there. Instead I can name multiple init systems, multiple shells, multiple package managers all fighting for space in our "brains" to be remembered and used. :P
- pixl97 6y agoMost hardware systems are binary drivers that manufacturers don't want to open up in the first place. Think nvidia/broadcom
- atoav 6y agoYeah but put yourself into the shows of a hardware manufacturer: if you'd build a Linux driver, which version do you build against? There is no reference implementation that you might use as a "if it works here it should run on every Linux there is". If we really want good hardware support on Linux we have to at least some reference that manufacturers can use to verify it works
- sdfqasdghj 6y agoI'm confused. Drivers are kernel level right? All the distros use the same underlying kernel code (plus patches and binary blobs). But basically if a driver works for RHEL it will work for Ubuntu. Even better once the driver is mainlined in the kernel it will be supported going forward. The problem for hardware manufacturers is that they think their drivers are valuable trade secrets and don't want to mainline them into the kernel...
- AnIdiotOnTheNet 6y agoThe problem isn't distros, but different kernel versions. Linux has no stable driver ABI by design, so unless you open source all your code and get it in the mainline, you have to rewrite it for potentially every single kernel release. Again, this is by design to try and force manufactures to open their driver code. To me, that seems like a lost cause now thanks to the proliferation of binary blobs required for hardware anyway.
- srtjstjsj 6y agoSource for it being by design?
- AnIdiotOnTheNet 6y agohttps://github.com/torvalds/linux/blob/master/Documentation/process/stable-api-nonsense.rst https://github.com/torvalds/linux/blob/master/Documentation/... > So, if you have a Linux kernel driver that is not in the main kernel tree, what are you, a developer, supposed to do? [...] Simple, get your kernel driver into the main kernel tree (remember we are talking about drivers released under a GPL-compatible license here, if your code doesn't fall under this category, good luck, you are on your own here, you leech). In order for a driver to be in-tree, it has to be open. Incidentally, this document is full of the kinds of arrogant and user-hostile arguments that the Linux community is known for, for example: "You think you want a stable kernel interface, but you really do not, and you don't even know it."
- deleted 6y ago[deleted]
- srtjstjsj 6y agoThat's not how is works. Linux devs will write high quality drivers for free for any hardware that provides a spec. The bad manufacturers like Nvidia and Broadcom intentionally block Linux compatibility for drivers they don't write themselves.
- Fnoord 6y ago> I personally think it's the #1 reason Linux never stole any sizable market share from Mac OS X/Windows. I assume you speak about desktop. MacOS never had any huge market share in this space. Its iPhone (and its predecessor, iPod) which allowed Apple to become as big as they currently are. > Does this fragmentation help or hurt the ecosystem over the long-term? Over the long-term it allows for abstraction layers, such as Ansible or Nix, to become status quo.