this post was submitted on 20 Aug 2024
34 points (87.0% liked)
Linux
48193 readers
1452 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
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
ElementaryOS places the app menu there
Suspend resume is the main one. Power management may be another. For example USB ports could be turned off, the CPU scheduler could be changed to powersave, network speed reduced, and a lot more These are always different though and 90% fine.
Fedora Atomic Desktops are great here. The goal is a minimal base OS for running Flatpak apps (or container stuff) on. They are a bit too minimal for me poorly, uBlue uses these desktops and adds more packages, most notably hardware support (like asus, nvidia, surface)
Android is extremely different from traditional distros.
It uses A/B-root with 2 immutable system partitions, where the system apps are. That storage space can only be used by the system so uninstalling stuff there doesnt do anything useful, if you dont also install system apps there. Which is not normally possible.
On Android, a minimal system like on GrapheneOS is best. All other editions, Googles own PixelOS included, break the Android security model of sandboxing all apps, which is hillarious. Only GrapheneOS really follows it by also sandboxing the optional Google apps and services.
On traditional Linux distros, the system is just a bunch of packages slammed onto a disk, and a package manager doesnt know how the setup should look like. It only knows that package A also requires packages B, C, X, 1, 2 and there are often package groups like
kde-plasma-desktop
that automatically install packages D, E, F, G for example.Uninstalling an app may remove dependencies, and if the app is not a dependency of others, it works without issues.
This is only system packages. With Flatpaks, Snaps, Appimages or binaries (like the Firefox .tar.gz archive Mozilla officially offers) you can install and uninstall whatever you want.
On "immutable" distros, that use many different variants of reducing the mess of traditional distros, this is different. On Fedora Atomic Desktops, which (maybe apart from NixOS, which is more complicated) use the best method of this composed system, you can
rpm-ostree override remove
a package and it is removed from the "immutable" system. But there are no immutable distros I think, all allow changes by root users.Root on Android is different than on Linux. You can use Linux without root, but distros are not built for that. I am working on making Fedora capable of that, even though my change for flatpaks was rejected poorly.
On Linux by default you are a
wheel
/sudo
user and can run commands with root privileges by just entering your user password. Thus, the barrier for programs to get root access is pretty low, and you should always try to make your system update on its own, and have a user not in thewheel
(most distros) /sudo
(debian) group.You can create custom groups like "the flatpak group is allowed to install apps of this specific format, even though it might normally require root access".
On Fedora Atomic desktops, the system is composed into "images", more like Android. The system is separate from the user stuff (your home directory, user configurations) and you can swap to a different image by "rebasing".
This is way more stable than the oldschool package manager way. For example you can rebase from silverblue (GNOME) to kinoite (KDE Plasma).
For example, X11 allows any app, no matter if in the foreground or not even displaying a window, to log all your keyboard inputs, all the time.
Docker is a tool to use small "containers", which is a set of files that build an operating system. The files are the ones you normally find as the system stuff of an OS, but in a reduced form, and without the kernel (the main hardware interface and controller). Containers run on your system kernel, but in a different "system". If you run apps there, they run in the container and not on your system. This ensures that apps compatible with that container run on all systems, that support running the container manager (podman or docker).
Podman is an alternative to docker that is supposedly more secure.
Containers are used by lazy devs to not need to fiddle with all the different Linux system configuations anymore. They help to get new software more easily and faster updates. Flatpak also uses containers.
But they are also bigger, use more RAM (it is a small extra system!) and are outside of the control of the OS. Updates also work strange, containers are images that are never updated from inside it (like a traditional distro) but as a whole by the container manager.
This means they may be outdated or insecure. There are tools to update containers and to check for CVEs (critical vulnerabilities) in them.
As a desktop user, you should normally not need to use containers. Their UX (user experience) kinda suck and they are not a good way to get apps.
Distrobox is a small exception. It uses podman or docker under the hood, and allows to install containers of other Linux Distros on a different Distro. For example if an app only runs on Ubuntu, you can use it on Fedora anyways.
On Fedora Atomic Desktops, Distrobox helps to install some apps that are not yet flatpaks. But the user experience is still worse, for example system upgrades dont work and you need to replace the container and reinstall the apps when upgrading it.
Using a rolling distro container like Arch, OpenSUSE Tumbleweed, Debian Sid, OpenSUSE Slowroll, helps here. But apart from OpenSUSE Slowroll I wouldnt use them.