this post was submitted on 11 Sep 2024
61 points (91.8% liked)

Ask Lemmy

26679 readers
1473 users here now

A Fediverse community for open-ended, thought provoking questions


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either [email protected] or [email protected]. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email [email protected]. For other questions check our partnered communities list, or use the search function.


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 1 year ago
MODERATORS
 

Why the Linux ecosystem cannot be considered "standardized", unlike Windows and Mac?

all 29 comments
sorted by: hot top controversial new old
[–] [email protected] 43 points 1 month ago

Because it’s not, in my opinion.

Linux has standards, but virtually none of them are all-encompassing across all the installs. For example: Which distribution? Which desktop manager? Which package manager? Which kernel version?

A Windows install at one location looks and feels — and has the same code and dependencies and is compatible with the same installs and management functions — as any other location, barring specific policy considerations. Same for macOS. Not for Linux.

One can build a Linux standard for their environment, yes; but in my opinion considering Linux itself as “standardized” just isn’t there.

[–] [email protected] 32 points 1 month ago (1 children)

So, at one point there was 14 competing standards. That was too many, so a bunch of nerds got together and made one all encompassing standard. One that had all the best parts of each other standard.

Now we have 15 competing standards.

[–] [email protected] 30 points 1 month ago (1 children)
[–] [email protected] 16 points 1 month ago (2 children)

Thank you. I was too lazy to find it.

[–] [email protected] 16 points 1 month ago (1 children)

Outsourcing your work… Genius!

[–] [email protected] 8 points 1 month ago

That’s just a straight-shooter that’s got management written all over him!

[–] [email protected] 4 points 1 month ago

You can remember it's 927 because 1927 is the year the chinese civil war started

[–] [email protected] 26 points 1 month ago* (last edited 1 month ago)

Because it's too flexible, and assumes everyone has source code to glue it all together. There's endless choices you can make to have a functional system.

  • Before you even compile the kernel, you have to provide a C compiler. That can be GCC or LLVM/clang.
  • Before you even build the kernel, you have to pick a CPU architecture and subsystems to enable.
  • Before you can even boot the kernel in any useful manner, you need to select a partition table format, one or more filesystems to put on the drive, all with varying amounts of features, but are at least mostly all POSIX compliant. Or a ramdisk.
  • Even just starting at the very core of userspace, the C standard library, you have glibc, musl, uClibc. That can only be dealt with at compile time.
  • Then on top of that, for the core utilities, you have the GNU coreutils, uutils, busybox, toybox, the BSD coreutils.
  • Great, we can start booting now. Wait, now there's the choice of init system: systemd, sysvinit, OpenRC, runit, upstart, dinit, and a lot more. Good, we're booted.
  • Now we need a login prompt, which can be agetty, greetd, mingetty, GDM, SDDM, LightDM. You've entered your password: that may or may not trigger a PAM session, which can verify your password from just about anywhere (locally, Kerberos, LDAP), start a D-Bus session, register a session with logind, that can trigger decryption and mounting of a drive, which itself could be local or remote or removable.
  • We're logged in! Now we need a shell. There's bash, dash, zsh, ash with their own small differences, and that's just the POSIX compatible ones. There's also fish, nu, ksh, csh and more.
  • We have a prompt! Now we should probably install some software. Is it gonna be apt, yum/dnf, zipper, pacman, apk, xbps, emerge, port? What's the package names? Depends on the distro!
  • We have a way to install software, now we need network to get it. How's the network configured? ifupdown, systemd-networkd, NetworkManager, Connman, dhclient, dhcpcd, netplan, netctl. If you have WiFi, there's iwd and wpa_supplicant.
  • Lets get a graphical session. Xorg or Wayland based? ALSA, PulseAudio or PipeWire? Window manager or desktop environment?
  • You want to mount a drive. systemd can do that, udev can do that, fstab can do that.

That's just the basics to make it to a desktop. Now there's some stuff to help that a lot, like Flatpak which aims to provide a known base system for apps to target. The portals help get access to resources with varying backends. PipeWire supports pretty much every audio protocol in existence so that's alright. Flatpak is a pretty good standard/ABI to target. For server software we have similar things in the form of Docker and Podman. But all of these solutions are basically "lets just ship the distro with the software".

The only really standard interface is the Linux kernel's public interface. If you're writing a driver, you better be ready to maintain it because stuff moves around a lot internally, the kernel doesn't care not to break out of tree modules. Go makes use of the stable kernel API and skips the libc entirely, so Go binaries are usually fairly portable as long as the kernel is somewhat sane.

The only real standard you can target is POSIX, which is fine if you're writing CLI or server software, but if you want to write GUIs, you just have to make choices. Most Linux stuff runs fine on FreeBSD too, they have Wayland, PipeWire and Mesa there too, so technically at this point you're not even targetting Linux per-se, more like generally POSIX-y systems with software that's just very commonly used and target that.

On Windows and Mac, you have what Microsoft/Apple provides and if you want anything else you bring it yourself. However, technically you can install PulseAudio on those, install an X server (Xming, Xquartz), run most DEs in there, run browsers and quite a bit of Linux-y stuff, natively on Windows and Mac in their respective binary formats.

The thing with FOSS is there isn't a single standard it targets, we just port everything to everything as needed. The closest thing we have to a standard is targeting specific versions of specific distros, usually Debian/Ubuntu or RHEL and derivatives because that's what the enterprise customers that pays for the development tends to run. That's why Davinci Resolve is a pain to run on anything other than Rocky Linux. Thankfully, it's also just software and dependencies, so if you just give it everything it uses from Rocky, it'll work just fine on other distros. And that's why source code is important: you can make everything work with everything with enough time and patience. That's what powers the ecosystem.

[–] [email protected] 18 points 1 month ago

There isn't any one single entity calling the shots like Microsoft or Apple.

[–] [email protected] 12 points 1 month ago

There's only one windows desktop enviroment, window manager, etc. Same for Mac OS.

With Linux damn near everything can change depending on your distro of choice. There's no one "linux" that you install. Linux is just the kernal and everything is piled on top of to make the entire OS.

[–] [email protected] 12 points 1 month ago

Because freedom.

Windows is one OS, with limited ability to customize. Mac is one OS, with limited ability to customize.

Linux, as a core concept, is hundreds of OSes that anyone can customize any of, at will, to meet their requirements. Different versions of Linux diverge because different people/projects want different things.

[–] [email protected] 9 points 1 month ago (1 children)

You could consider Ubuntu, Red Hat Linux and Oracle Linux to be about as standardized as Windows or Mac. These distributions are usually what larger enterprises use for servers and sometimes for software development, IT operations etc. These are about as standardized things get in the linux world.

Now when it comes to using Linux as daily driver there are so many options out there and none of the distributions have really yet hit the mainstream. For my understanding it's been long been battle between Ubuntu and Fedora with their derivatives but with SteamOS using Arch Linux would not be surprised if some sort of Arch based distribution with maximum Proton combatibility would gain popularity.

Arch itself seems too minimal to be considered as "standardized" operating system.

[–] [email protected] 2 points 1 month ago (1 children)

battle between Ubuntu and Fedora with their derivative

Agreed in general. Except that Ubuntu is itself a derivative, of Debian. Technically it's Debian that's the peer of Fedora.

[–] [email protected] 2 points 1 month ago

Mentioned Ubuntu since its backed by Canocial and fairly popular desktop distro. Mentioned Fedora instead of RHEL because RHEL is mostly used for servers and maybe in schools or high security environments.

[–] [email protected] 8 points 1 month ago (1 children)

Same reason "clothes" cannot be considered standardized. Someone will think standard is jeans and T-shirt, for others it's a suit, and for others a dress, some will change clothes regularly, and others will only wear Nike shoes. If you try to define what everyone should wear you'll get people pissed off, and they will still wear what they want.

[–] [email protected] 1 points 1 month ago (1 children)

I guess it depends on how "standard" is defined. Ie, its pretty standard for shirts to have 2 arm holes, one head/neck hole, and one body hole and therefore they work for the vast majority of users.

[–] [email protected] 1 points 1 month ago

Yes, but that's like saying "it's pretty standard for DE to have one minimize button, one maximize button and a close button". I chose clothes because they can't be standardized for the same reason as Linux, i.e. they're modular and people have different tastes on each of the modules, so the full thing can never be standardized even if some of the modules are quite similar among themselves.

[–] [email protected] 5 points 1 month ago

The attraction of Linux is precisely that it isn't one of the two 'standards'. Your working environment doesn't get determined by some product manager in a far-away office, who has a set of target users in mind, which he's given fictional names, biographies and mugshots.

[–] [email protected] 4 points 1 month ago

To me I'd consider Linux not standardized since anything outside the kernel can be swapped out. Want a GUI? There are competing standards, X vs Wayland, with multiple implementations with different feature sets. Want audio? There's ALSA or OSS, then on top of those there is pulse audio, or jack, or pipewire. Multiple desktop environments, which don't just change the look and feel but also how apps need to be written. Heck there are even multiple C/POSIX libraries that can be used.

It certainly can be a strength for flexibility, and distros attempt to create a stable and reliable setup of one set of systems.

[–] [email protected] 4 points 1 month ago

Because linux doesn't have an "ecosystem". You have to either make your existing ecosystem work with linux or center your ecosystem around apps and things that work with linux. I do that and I'd say it's more standardized than both the windows and the mac ones...

[–] [email protected] 4 points 1 month ago

It is standardized. Just tge circles need to be drawn differently. Microsoft DOS was not the only DOS, and they had compatibility issues.

Red Hat Enterprise Linux is one standard. Mac OS Unix. Ubuntu Linux. Microsoft Windows OS. OS/2 Warp OS.

All different, all standardized, often not compatible or interchangeable.

[–] [email protected] 4 points 1 month ago

Bcs nobody is monetising it that hard from the ecosystem-monopoly pov.

And "standardised" prob isn't the best word to use imho.

Linux offers much better backwards & current compatibility that the other two/three just do not. Saying 'it's not supported' does "standardise" things much quicker.

Also there are diffident distros by different people or companies - a bit like saying how Windows & MacOS arent standardised and look/operate differently.
But you can make your own Linux distro or modify it's kernel or window/packet/etc manager all you wish.

Also the point about how Windows and Android keeps changing stupid shit for no reason (un-standardising the UI experience though time) but an average user like my father prob didn't even know when his Debian got upgraded (even between distros he didn't notice that much, now I have him on a rolling distro & it's even more seamless tho others basically do the same).

Oh, and if by 'standardised' you mean the look & feel ... well thats for nerds and power users, people like to optimise stuff for themselves. A bit like car seats where one fixed seat won't fit all.

[–] [email protected] 3 points 1 month ago

There was a the POSIX standard...

[–] [email protected] 3 points 1 month ago

I don't understand the question. There are definitely standards like POSIX that exist.

[–] [email protected] 1 points 1 month ago

It's all about choice. And choice, aka diversity, is great.

It's like not having to eat a banana if you don't like them and having the ability to grow the fruit you would love the most instead. That's also why I've now (in the last 5 or 6 years) mostly switched from Mac to GNU/Linux. This Mac Mac Studio I'm writing on right now is the last Mac I own and I see very little chance for it to be replaced by a newer Mac when time comes to replace it. I like the freedom of choice and to do what the funk I fancy on my computer. Not just what some designer at Cupertino (or some wannabe designer, at Redmond) decided I should be permitted to do.

Also, where is the standard between incompatible different macOS versions or different versions of Windows? Or between incompatible versions of the same apps running on those systems? I'm not saying it's wrong, nor that it's great, just that we should not neglect all those 'standardization issues' that exist in every single system. Marketing should not be blindly trusted — Imho, marketing should never be trusted, and not even listened to but that's just me deeply allergic to bullshit ;)

[–] [email protected] 1 points 1 month ago

Who says it can't? I don't accept your premise.

[–] [email protected] 0 points 1 month ago

It all comes down to

  1. User Interface (linux is just not as easy to use as e.g. MacOS)
  2. Applications/Software (yes there is a flatpack (and others) store but it‘s not nearly as usable as Mac App store/windows store
  3. Installation (Most laptops/desktops don‘t have linux as base Model Option)
  4. Security and setup - in Mac or Windows the UI is a base component you mostly cannot destroy using one line of Terminal code
  5. the most user „friendly“ Part of Windows/mac you don‘t have to use terminal, but for linux you Most likely have to

i love mac, but windows in comparison to linux is still more „user friendly“ sadly