this post was submitted on 30 Mar 2025
153 points (97.5% liked)

Linux

52907 readers
272 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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?

top 50 comments
sorted by: hot top controversial new old
[–] dosse91@lemmy.trippy.pizza 70 points 1 week ago* (last edited 1 week ago) (11 children)

Generally speaking, Linux needs better binary compatibility.

Currently, if you compile something, it's usually dynamically linked against dozens of libraries that are present on your system, but if you give the executable to someone else with a different distro, they may not have those libraries or their version may be too old or incompatible.

Statically linking programs is often impossible and generally discouraged, making software distribution a nightmare. Flatpak and similar systems made things easier, but it's such a crap solution and basically involves having an entire separate OS installed in parallel, with its own problems like having a version of Mesa that's too old for a new GPU and stuff like that. Applications must be able to be packaged with everything they need with them, there is no reason for dynamic linking to be so important in Linux these days.

I'm not in favor of proprietary software, but better binary compatibility is a necessity for Linux to succeed, and I'm saying this as someone who's been using Linux for over a decade and who refuses to install any proprietary software. Sometimes I find myself using apps and games in Wine even when a native version is available just to avoid the hassle of having to find and probably compile libobsoletecrap-5.so

[–] Sinfaen@beehaw.org 1 points 3 days ago

This.

From the perspective of software preservation, we need this. Sometimes we won't have the source, and just need it to work while also getting security updates.

From the perspective of software delivery: read up on JangaFX's recent article about this topic and the problems they run into delivering software in the present

[–] pr06lefs@lemmy.ml 27 points 1 week ago (3 children)

nix can deal with this kind of problem. Does take disk space if you're going to have radically different deps for different apps. But you can 100% install firefox from 4 years ago and new firefox on the same system and they each have the deps they need.

[–] PopeRigby@beehaw.org 10 points 1 week ago

Someone managed to install Firefox from 2008 on a modern system using Nix. Crazy cool: https://blinry.org/nix-time-travel/

load more comments (2 replies)
[–] MyNameIsRichard@lemmy.ml 11 points 1 week ago (1 children)

You'll never get perfect binary compatibility because different distros use different versions of libraries. Consider Debian and Arch which are at the opposite ends of the scale.

[–] 2xsaiko@discuss.tchncs.de 29 points 1 week ago (4 children)

And yet, ancient Windows binaries will still (mostly) run and macOS allows you to compile for older system version compatibility level to some extent (something glibc alone desperately needs!). This is definitely a solvable problem.

Linus keeps saying “you never break userspace” wrt the kernel, but userspace breaks userspace all the time and all people say is that there’s no other way.

[–] DarkMetatron@feddit.org 9 points 1 week ago (3 children)

It works under Windows because the windows binaries come with all their dependency .dll (and/or they need some ancient visual runtime installed).

This is more or less the Flatpack way, with bundling all dependencies into the package

Just use Linux the Linux way and install your program via the package manager (including Flatpack) and let that handle the dependencies.

I run Linux for over 25 years now and had maybe a handful cases where the Userland did break and that was because I didn't followed what I was told during package upgrade.

The amount of time that I had to get out of .dll-hell on Windows on the other hand. The Linux way is better and way more stable.

load more comments (3 replies)
[–] Giooschi@lemmy.world 7 points 1 week ago (1 children)

Linus got it right, it's just that other userspace fundamental utilities didn't.

load more comments (1 replies)
load more comments (2 replies)
[–] beyond@linkage.ds8.zone 11 points 1 week ago* (last edited 1 week ago) (1 children)

Disagree - making it harder to ship proprietary blob crap "for Linux" is a feature, not a bug.

load more comments (1 replies)
[–] catloaf@lemm.ee 9 points 1 week ago

I don't think static linking is that difficult. But for sure it's discouraged, because I can't easily replace a statically-linked library, in case of vulnerabilities, for example.

You can always bundle the dynamic libs in your package and put the whole thing under /opt, if you don't play well with others.

load more comments (6 replies)
[–] SwingingTheLamp@midwest.social 57 points 1 week ago (2 children)

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.

load more comments (2 replies)
[–] kibiz0r@midwest.social 47 points 1 week ago (1 children)

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.

[–] eneff@discuss.tchncs.de 6 points 1 week ago (2 children)

Wouldn't it make more sense to focus on an open standard like RISC-V instead of ARM?

load more comments (2 replies)
[–] HiddenLayer555@lemmy.ml 41 points 1 week ago* (last edited 1 week ago) (6 children)

Where app data is stored.

~/.local

~/.config

~/.var

~/.appname

Sometimes more than one place for the same program

Pick one and stop cluttering my home directory

[–] FooBarrington@lemmy.world 20 points 1 week ago (2 children)
load more comments (2 replies)
[–] rice@lemmy.org 6 points 1 week ago

Yea I like how a lot have moved to using .config but mozilla just moved out of there and now has a .mozilla folder outside of it.. wtf... It is insanely sad.

I have actually moved my entire "user home folder".. folders out of there just because it is so ugly and unorganized. I now use /home/user/userfolders/.. all my stuff like documents / videos etc in here

[–] itslilith@lemmy.blahaj.zone 5 points 1 week ago* (last edited 1 week ago) (3 children)

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

load more comments (3 replies)
load more comments (3 replies)
[–] Mio@feddit.nu 29 points 1 week ago (2 children)

Configuration gui standard. Usually there is a config file that I am suppose to edit as root and usually done in the terminal.

There should be a general gui tool that read those files and obey another file with the rules. Lets say it is if you enable this feature then you can't have this on at the same time. Or the number has to be between 1 and 5. Not more or less on the number. Basic validation. And run the program with --validation to let itself decide if it looks good or not.

[–] lime@feddit.nu 15 points 1 week ago (1 children)
[–] original_reader@lemm.ee 13 points 1 week ago

I agree. OpenSuse should set the standards in this.

Tbf, they really need a designer to upgrade this visually a bit. It exudes its strong "Sys Admin only" vibes a bit much. In my opinion. 🙂

load more comments (1 replies)
[–] ikidd@lemmy.world 25 points 1 week ago* (last edited 1 week ago) (8 children)

Domain authentication and group policy analogs. Honestly, I think it's the major reason it isn't used as a workstation OS when it's inherently more suited for it than Windows in most office/gov environments. But if IT can't centrally managed it like you can with Windows, it's not going to gain traction.

Linux in server farms is a different beast to IT. They don't have to deal with users on that side, just admins.

[–] lka1988@lemmy.dbzer0.com 6 points 1 week ago (1 children)

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.

load more comments (1 replies)
[–] loonsun@sh.itjust.works 6 points 1 week ago

I'm surprised more user friendly distros don't have this, especially more commercial ones

load more comments (6 replies)
[–] asudox@lemmy.asudox.dev 23 points 1 week ago (2 children)

Flatpak with more improvements to size and sandboxing could be accepted as the standard packaging format in a few years. I think sandboxing is a very important factor as Linux distros become more popular.

load more comments (2 replies)
[–] mactan@lemmy.ml 20 points 1 week ago (1 children)

interoperability > homogeneity

[–] Ferk@lemmy.ml 16 points 1 week ago* (last edited 1 week ago)

interoperability == API standardization == API homogeneity

standardization != monopolization

[–] Mihies@programming.dev 20 points 1 week ago (5 children)

I'd say games. I'd that really takes off, Linux would replace Windows and all other standards will follow.

[–] Overspark@feddit.nl 60 points 1 week ago (2 children)

That already happened though. Tens of thousands of games on Steam can be played by hitting the install and then the play button. Only a few "competitive multiplayer" holdouts with rootkits and an irrational hatred of Linux don't work.

[–] Fecundpossum@lemmy.world 21 points 1 week ago (1 children)

Yep. Two solid years of steady gaming on various Linux distributions. No issues aside from no more pubg, no more valorant. Oh wait, that’s not an issue at all. Fuck their rootkits.

[–] LouSlash@sh.itjust.works 5 points 1 week ago* (last edited 1 week ago)

Two solid years of steady gaming on various Linux distributions.

And in some cases, even better experience than on Windows (f.e. older games compatibility or higher FPS alongside smoother gameplay)

Tbh, about a year ago i checked the price difference between various laptops with Windows preinstalled and without any OS. The difference wasn't actually a flat amount of money, it was like +10% (price of the laptop 500$


~ +50$ for Windows | price of the other laptop 1000$


~ 100$ for Windows).

So because of the actual state of gaming on Linux (and overall experience) i wouldn't pay that 10% to play games with rootkits built-in, but rather spend it on other things

[–] dan@upvote.au 7 points 1 week ago

with rootkits

These are eventually going to be blocked on Windows. Microsoft are making changes to what's allowed to run in the kernel after the Crowdstrike issue last year.

[–] verdigris@lemmy.ml 15 points 1 week ago (1 children)

Have you tried recently? We've been pretty much at parity for years now. Almost every game that doesn't run is because the devs are choosing to make it that way.

load more comments (1 replies)
[–] teawrecks@sopuli.xyz 11 points 1 week ago

It did really take off about 5 years ago.

[–] MemmingenFan923@feddit.org 7 points 1 week ago

Lenovo and HP have recently announced new non-windows gaming handhelds. It is getting better.

load more comments (1 replies)
[–] smiletolerantly@awful.systems 19 points 1 week ago

At this point, package management is the main differentiating factor between distro (families). Personally, I'm vehemently opposed to erasing those differences.

The "just use flatpak!" crowd is kind of correct when we're talking solely about Linux newcomers, but if you are at all comfortable with light troubleshooting if/when something breaks, each package manager has something unique und useful to offer. Pacman and the AUR a a good example, but personally, you can wring nixpkgs Fron my cold dead hands.

And so you will never get people to agree on one "standard" way of packaging, because doing your own thing is kind of the spirit of open source software.

But even more importantly, this should not matter to developers. It's not really their job to package the software, for reasons including that it's just not reasonable to expect them to cater to all package managers. Let distro maintainers take care of that.

[–] enumerator4829@sh.itjust.works 18 points 1 week ago (3 children)

Stability and standardisation within the kernel for kernel modules. There are plenty of commercial products that use proprietary kernel modules that basically only work on a very specific kernel version, preventing upgrades.

Or they could just open source and inline their garbage kernel modules…

load more comments (3 replies)
[–] arsCynic@beehaw.org 14 points 1 week ago

Manuals or notifications written with lay people in mind, not experts.

[–] muusemuuse@lemm.ee 13 points 1 week ago (3 children)

Rewrite the entire kernel exclusively in rust!

-hehehe-

load more comments (3 replies)
[–] irotsoma@lemmy.blahaj.zone 12 points 1 week ago

Not offering a solution here exactly, but as a software engineer and architect, this is not a Linux only problem. This problem exists across all software. There are very few applications that are fully self contained these days because it's too complex to build everything from scratch every time. And a lot of software depends on the way that some poorly documented feature worked at the time that was actually a bug and was eventually fixed and then breaks the applications that depended on it, etc. Also, any time improvements are made in a library application it has potential to break your application, and most developers don't get time to test the every newer version.

The real solution would be better CI/CD build systems that automatically test the applications with newer versions of libraries and report dependencies better. But so many applications are short on automated unit and integration tests because it's tedious and so many companies and younger developers consider it a waste of time/money. So it would only work in well maintained and managed open source types of applications really. But who has time for all that?

Anyway, it's something I've been thinking about a lot at my current job as an architect for a major corporation. I've had to do a lot of side work to get things even part of the way there. And I don't have to deal with multiple OSes and architectures. But I think it's an underserved area of software development and distribution that is just not "fun" enough to get much attention. I'd love to see it at all levels of software.

[–] gandalf_der_12te@discuss.tchncs.de 11 points 1 week ago* (last edited 1 week ago) (4 children)

I'm not sure whether this should be a "standard", but we need a Linux Distribution where the user never has to touch the command line. Such a distro would be beneficial and useful to new users, who don't want to learn about command line commands.

And also we need a good app store where users can download and install software in a reasonably safe and easy way.

[–] elischeva@friendica.world 1 points 2 days ago

@gandalf_der_12te @original_reader

Linux Mint and some Kind of Ubuntu-Flavour are the Goto. Preferably the LTS Vefsions. For Ubuntu its 24.04, for Mint it is 22. So you ever need the commandline only for one short line and only in 2029.

So for the next few years you don't need to touch the commandline.

[–] RawrGuthlaf@lemmy.sdf.org 14 points 1 week ago (2 children)

I really don't understand this. I put a fairly popular Linux distro on my son's computer and never needed to touch the command line. I update it by command line only because I think it's easier.

Sure, you may run into driver scenarios or things like that from time to time, but using supported hardware would never present that issue. And Windows has just as many random "gotchas".

load more comments (2 replies)
[–] me@toot.jack.water.house 8 points 1 week ago (2 children)

I think there are some that are getting pretty close to this. Like SteamOS (although not a traditional DE) and Mint.

load more comments (2 replies)
[–] AugustWest@lemm.ee 6 points 1 week ago* (last edited 1 week ago) (4 children)

Why do people keep saying this? If you don't want to use the command line then don't.

But there is no good reason to say people shouldn't. It's always the best way to get across what needs to be done and have the person execute it.

The fedora laptop I have been using for the past year has never needed the command line.

On my desktop I use arch. I use the command line because I know it and it makes sense.

Its sad people see it as a negative when it is really useful. But as of today you can get by without it.

load more comments (4 replies)
[–] LovableSidekick@lemmy.world 10 points 1 week ago* (last edited 1 week ago)

Small thing about filesystem dialogs. In file open/save dialogs some apps group directories at the top and others mix them in alphabetically with files. My preference is for them to be grouped, but being consistent either way would be nice.

[–] JuxtaposedJaguar@lemmy.ml 7 points 1 week ago* (last edited 1 week ago) (3 children)

Each monitor should have its own framebuffer device rather than only one app controlling all monitors at any time and needing each app to implement its own multi-monitor support. I know fbdev is an inefficient, un-accelerated wrapper of the DRI, but it's so easy to use!

Want to draw something on a particular monitor? Write to its framebuffer file. Want to run multiple apps on multiple screens without needing your DE to launch everything? Give each app write access to a single fbdev. Want multi-seat support without needing multiple GPUs? Same thing.

Right now, each GPU only gets 1 fbdev and it has the resolution of the smallest monitor plugged into that GPU. Its contents are then mirrored to every monitor, even though they all have their own framebuffers on a hardware level.

load more comments (3 replies)
load more comments
view more: next ›