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
Sometimes more than one place for the same program
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/
good luck winning any of these refusers over https://wiki.archlinux.org/title/XDG_Base_Directory#Hardcoded
Eh, things have gotten better, and there are tools that make these tools respect them.
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 garbageThis would also be nice for atomic distros, application space and system space could be separated in more cases.
Rewrite the entire kernel exclusively in rust!
-hehehe-
There is a separate kernel which is being written entirely in rust from scratch that might interest you. I’m not sure if this is the main one https://github.com/asterinas/asterinas but it is the first one that came up when I searched.
By the tone of your post you might just want to watch the world burn in which case I’d raise an issue in that repo saying “Rewrite in C++ for compatibility with wider variety of CPU archs” ;)
I’m of the opinion that a full rewrite in rust will eventually happen, but they need to be cautious and not risk alienating developers ala windows mobile so right now it’s still done in pieces. I’m also aware that many of the devs who sharpened their teeth on the kernel C code like it as it is, resist all change, and this causes lots of arguments.
Looking at that link, I’m not liking the MPL.
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.
So this is why multi monitor support has been a never ending hot mess?!
Yes and no. It would solve some problems, but because it has no (non-hacky) graphics acceleration, most DEs wouldn’t use it anyway. The biggest benefit would be from not having to use a DE in some circumstances where it’s currently required.
interoperability > homogeneity
interoperability == API standardization == API homogeneity
standardization != monopolization
Standardizing package management? Imagine everyone being stuck with .rpm
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.
Ubuntu Server supports Windows Active Directory. I haven’t used it for anything but authentication (and authentication works flawlessly) and some basic directory/share permissions but theoretically it should support group policy too.
It’d be cool if there was a mainstream FOSS alternative though (there might be, I’ve done literally 0 research), but this works okay-ish in the meantime.
But for management of the actual production servers at work I use a combination of ManageEngine (super great and reasonably priced) and Microsoft’s Entra (doesn’t work well, don’t do it)
I’ve never understood putting arbitrary limits on a company 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
I mean, it sucks, but the stupid shit people will do with company laptops…
I’m surprised more user friendly distros don’t have this, especially more commercial ones
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.
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.
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…
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.
I’m struggling with this now. There’s an out of tree module I want upstreamed, but the author (understandably) doesn’t want to put in the work to upstream, so I did. The upstream folks are reluctant to take it because I didn’t actually write it.
I really don’t know what to do.
I’d say games. I’d that really takes off, Linux would replace Windows and all other standards will follow.
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.
This has always been the key. Amazing to me that not many seem to take it seriously.
- 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.
If the people criticizing him could roll up their sleeves and make better software, then I’d take their criticisms seriously.
Otherwise they’re “just a critic.”
OpenRC works just fine on my PC
Systemd 😈