Which areas of Linux would benefit most from further standardization?
-
I don't use any of these, but I'm curious. Could you please write some examples?
It mostly affects people working with ”fun” enterprise hardware or special purpose things.
But to take one example, proprietary drivers for high performance network cards, most likely from Nvidia.
-
The diversity of Linux distributions is one of its strengths, but it can also be challenging for app and game development. Where do we need more standards? For example, package management, graphics APIs, or other aspects of the ecosystem? Would such increased standards encourage broader adoption of the Linux ecosystem by developers?
- find something Lennart built. Eg. systemd
- remove that
- go to 1
-
- find something Lennart built. Eg. systemd
- remove that
- go to 1
Would you mind providing some reasoning so this doesn't come off as unsubstantiated badmouthing?
-
Actual native package management and package distribution
cpio/tar for the one, mqtt/http/smtp/scp/dcc/tftp/uucp/dns for the other
-
ARM support. Every SoC is a new horror.
Armbian does great work, but if you want another distro you’re gonna have to go on a lil adventure.
Wouldn't it make more sense to focus on an open standard like RISC-V instead of ARM?
-
Wouldn't it make more sense to focus on an open standard like RISC-V instead of ARM?
Not really. There are barely any chips out there.
Oct 2021: 200 billion ARM chips
Nov 2023: 1 billion RISC-V chips, hoping to hit 16 billion by 2030
Nov 2024: 300 billion ARM chips
-
interoperability > homogeneity
interoperability == API homogeneity
standardization != monopolization
-
- find something Lennart built. Eg. systemd
- remove that
- go to 1
Systemd is fine. This sounds like an old sysadmin who refuses to learn because "new thing bad" and zero logic to back it up.
-
I've never understood putting arbitrary limits on a worker's laptop. I had always been seeking for ways to hijack them. Once I ended up using a VM,
without limit...Because people are stupid. One of my coworkers (older guy) tends to click on things without thinking. He's been through multiple cyber security training courses, and has even been written up for opening multiple obvious phishing emails.
People like that are why company-owned laptops are locked down with group policy and other security measures.
-
- find something Lennart built. Eg. systemd
- remove that
- go to 1
Yes, I find that dude to be very disagreeable. He's like everything that haters claim Linus Torvalds is - but manifested IRL.
-
I've never understood putting arbitrary limits on a worker's laptop. I had always been seeking for ways to hijack them. Once I ended up using a VM,
without limit...Rule #1 never trust your users
-
Would you mind providing some reasoning so this doesn't come off as unsubstantiated badmouthing?
My experience with systemd has been the opposite. Thanks to systemd, many core tools have consistent names and CLI behaviors.
Before systemd I used sysVinit, upstart and various other tools.
I’m glad systemd alternatives exist as part of a diverse Linux ecosystem but I haven’t had a compelling reason to not use systemd.
-
One that Linux should've had 30 years ago is a standard, fully-featured dynamic library system. Its shared libraries are more akin to static libraries, just linked at runtime by ld.so instead of ld. That means that executables are tied to particular versions of shared libraries, and all of them must be present for the executable to load, leading to the dependecy hell that package managers were developed, in part, to address. The dynamically-loaded libraries that exist are generally non-standard plug-in systems.
A proper dynamic library system (like in Darwin) would allow libraries to declare what API level they're backwards-compatible with, so new versions don't necessarily break old executables. (It would ensure ABI compatibility, of course.) It would also allow processes to start running even if libraries declared by the program as optional weren't present, allowing programs to drop certain features gracefully, so we wouldn't need different executable versions of the same programs with different library support compiled in. If it were standard, compilers could more easily provide integrated language support for the system, too.
Dependency hell was one of the main obstacles to packaging Linux applications for years, until Flatpak, Snap, etc. came along to brute-force away the issue by just piling everything the application needs into a giant blob.
I find the Darwin approach to dynamic linking too restrictive. Sometimes there needs to be a new release which is not backwards compatible or you end up with Windows weirdness. It is also too restrictive on volunteer developers giving their time to open source.
At the same time, containerization where we through every library - and the kitchen sink - at an executable to get it to run does not seem like progress to me. It's like the meme where the dude is standing on a huge horizontal pile of ladders to look over a small wall.
At the moment you can choose to use a distro which follows a particular approach to this problem; one which enthuses its developers, giving some guarantee of long term support. This free market of distros that we have at the moment is ideal in my opinion.
-
Domain authentication and group policy analogs.
An immutable distro would be ideal for this kind of thing. ChromeOS (an immutable distro example) can be centrally managed, but the caveat with ChromeOS in particular is that it's management can only go through Google via their enterprise Google Workspace suite.
But as a concept, this shows that it's doable.
-
The diversity of Linux distributions is one of its strengths, but it can also be challenging for app and game development. Where do we need more standards? For example, package management, graphics APIs, or other aspects of the ecosystem? Would such increased standards encourage broader adoption of the Linux ecosystem by developers?
Where app data is stored.
~/.local
~/.config
~/.var
~/.appname
Pick one and stop cluttering my home directory
-
The diversity of Linux distributions is one of its strengths, but it can also be challenging for app and game development. Where do we need more standards? For example, package management, graphics APIs, or other aspects of the ecosystem? Would such increased standards encourage broader adoption of the Linux ecosystem by developers?
Standardizing package management? Imagine everyone being stuck with .rpm
-
Domain authentication and group policy analogs.
i’ve never understood why there’s not a good option for using one of the plethora of server management tools with prebuilt helpers for workstations to mimic group policy
like the tools we have on linux to handle this are far, far more powerful
-
Where app data is stored.
~/.local
~/.config
~/.var
~/.appname
Pick one and stop cluttering my home directory
it's pretty bad. steam for example has both
~/.steam and
~/.local/share/Steam
for some reason. I'm just happy I moved to an impermanent setup for my PC, so I don't need to worry something I temporarily install is going to clutter my home directory with garbage -
Where app data is stored.
~/.local
~/.config
~/.var
~/.appname
Pick one and stop cluttering my home directory
I have good news and bad news:
A specification already exists. https://specifications.freedesktop.org/basedir-spec/latest/
-
An immutable distro would be ideal for this kind of thing. ChromeOS (an immutable distro example) can be centrally managed, but the caveat with ChromeOS in particular is that it's management can only go through Google via their enterprise Google Workspace suite.
But as a concept, this shows that it's doable.
I don't think anyone was saying it's impossible, just that it needs standardization. I imagine windows is more appealing to companies when it is easier to find admins than if they were to use some specific linux system where only a few people are skilled to manage it.