Hello community!
I come to you for advice. Using an m1 macbook air since 2020, I installed popos on my old 2013 macbook pro and I was quite happy with it but… I bought a steamdeck two weeks ago and exploring its desktop mode made me reconsider some choices. Using distros based on different systems, with different commands, desktop environment, etc. gets a little confusing for someone like me, who doesn’t use linux as my main machine. Do you have any advice for me? From what I understand, steamos is debian-based while popos is ubuntu-based: is that the biggest part of how a distribution works, ie commands, etc.? Good ui/ux is important for me so i should maybe use nitrux or deepin, that are debian-based, or is it a bad idea to choose a less common distro for a amateur like me?
Thanks in advance, I’m a bit lost.
This used to be the case until the launch of the Steam Deck, on which SteamOS (3) is actually based on Arch instead. However, SteamOS is a very special distro based on Arch due to ‘immutability’, how it achieves said ‘immutability’, the implications thereof, ‘freezing’ of packages, inability to install packages persistently without some hacking etc. So, SteamOS is not representative of how Arch works in general.
And Ubuntu is based on Debian.
If we take your average (popular) distro, so the likes of Gentoo, NixOS etc are dismissed as they are very unique compared to the others, then arguably the most important differentiators would be: Model for updates, package manager and available packages. One might delve deeper into this and with the advent of stuff like Distrobox this becomes a lot more blurred, but traditionally speaking the aforementioned three things used to be the main differentiators. Beyond those, the end-user has the freedom to do whatever with their system. For example, Pop!_OS comes with GNOME + their own touches by default. However, the desktop mode of SteamOS comes with KDE. But you can install KDE on Pop!_OS and even customize it very closely to how it’s done over at SteamOS. This is not a special quality of Pop!_OS, but of Linux in general.
It’s important to note that both of these are not unique in what they offer in terms of UI/UX. You can recreate 99% of it yourself, simply by installing the appropriate desktop environment; which constitutes most of the UI/UX. Nitrux has KDE as its desktop environment (with a touch of Maui), while deepin uses the Deepin desktop environment. Personally, I wouldn’t recommend any desktop environment beyond Cinnamon, GNOME, KDE and Xfce. Don’t be discouraged by this though, feel free to put Nitrux and deepin on a Live USB to get a feel for them. Regarding good UI/UX, your best bets are probs Kubuntu, Linux Mint, openSUSE and Pop!_OS. Honourable mention would be MX Linux, but I don’t recommend systemd-less distros to newer users.
Sure, Nitrux is based on Debian. But it’s immutable, systemd-less and favors AppImages over Flatpak/Snap. It’s a cool project, but I find it hard to recommend to a newer user. While deepin is less unique by comparison, it’s far from a distro that’s known for its polish. I’d argue it’s mostly just eye-candy instead 😅.
Bullseye! This isn’t a hard rule though. I started venturing into Linux through a somewhat obscure distro as well 😅. But, at the time, I researched for about a week which distro to install and why. Afterwards I spent another week on how I should install it and what should be considered for install. And then I installed it, after which I spent almost two weeks getting the system to a working state. It still wasn’t quite there yet, but after spending a month on it from start to finish I wanted to move on to something else 😅. I kept the install, don’t get me wrong. And it became my daily-driver. After some time I even ‘fell in love with it’. But like, I know that I can be stubborn about things like this and persevere where others might have preferred to hit their heads to the wall instead. So your mileage may vary…
As you’ve correctly assessed, you are indeed lost 😅 . That’s fine, I think almost all of us have been lost at some point in time. Uhmm…, but honestly, I think you’re conflating two very distinct things. Pop!_OS is a general-use distro on which you can do whatever. And most distros that people talk about and engage with are similarly general-use distros. SteamOS, on the other hand, isn’t quite like that. Sure, you may hack your way and achieve some things with it. But it’s false to believe that you can find any distro that qualifies as SteamOS but on your laptop. Before giving you any recommendations, would you be so kind to answer the following:
Thank you for taking the time to explain my muddied understanding of linux and its various distros! You’re completely right about the stuff around packages and updates being the important differentiators, and it’s really hard to grasp without using linux and testing different things. Coming from popos and typing apt-get in steamos, but wait I should use pacman and oh what are those AppImage I keep hearing about: that was really confusing because I didn’t know what knowledge I lacked and how to look it up. reason was and some information about it was just contradictory. I think the steamos thing changing from debian to arch actually confused me a lot too, plus contradictory information and command lines, etc.
From what I gather, and thinking back on my short and past, while appreciated, incursion into the linux world:
Thank you also for the info about nitrux and the others, there is a lot of confusion between prettiness (or eye-candiness ;) ) and actually good ui/ux, and you were on the point.
Glad to hear that I was able to contribute 🙂 ! And thank you for your great reply!
That could definitely be it. No worries, even the community is somewhat polarized on GNOME; with a big chunk of the community favoring it over all the other desktop environments, while another big chunk doesn’t tolerate it at all. However, the reason that everyone has an outspoken opinion on it comes primarily from the fact that a lot of distros come with GNOME by default; with both Ubuntu and Fedora being the big ones (sure; both have flavors/spins with other desktop environments, but their main ISO defaults to GNOME). Regarding recommendations; while any major (independent) distro should technically suffice, I would argue that Kubuntu and openSUSE (contrary to the others; openSUSE actually defaults to KDE) are both excellent choices, with both Fedora’s KDE Spin and Debian (on which you can pick KDE during first install) are very good choices as well if you lean more towards minimalism. While Arch deserves a mention regardless, I don’t think you’re ready (yet).
That’s great to hear!
I won’t be able to be exhaustive on this, so I instead I’ll lean more towards being somewhat oversimplistic for the sake of brevity.
pacman
is the package manager on Arch(-based distros)apt
is the package manager on Debian(-based distros)yum
used to be the package manager on Fedora(-based distros), but has since been replaced bydnf
. You can still install packages usingyum
on these distros, however it’s just an alias fordnf
.These are not the only package managers out there, as almost all independent distros come with their own package manager;
apk
(on Alpine),eopkg
(on Solus),xbps
(on Void) andzypper
(on openSUSE) etc. The tasks of the package manager are varied, but all of them are to be interacted with when installing, upgrading and removing software. As the feature-set is different, so too are their performances. A rolling release distro like Arch will receive a constant stream of updates, thus having access to a package manager that’s very fast is beneficial. Thus we find thatpacman
is very optimized for speed. To perhaps illustrate how much difference this can make, I compared Alpine’sapk
with openSUSE’szypper
. Note that Alpine is one of the most minimalist distros out there, and itsapk
might be the fastest package manager that’s in active use. So here are the results:sudo apk add firefox 0.01s user 0.02s system 0% cpu 8.216 total
sudo zypper install -y firefox 0.02s user 0.06s system 0% cpu 33.727 total
On which the number before
total
reveals how much time it took in seconds. These tests were done in distrobox containers btw*.Speed is not the only important metric, however as ultimately one can not engage with packages without waiting for them to be installed/updated/removed, a lot of the discourse is about how fast the package managers are at installing, updating and removing packages.
“hacking” ಠ_ಠ you mean tinkering.
I realize this is a lost battle at this point, but I hate how the media hijacked “hacking” as a catch all for malicious purposes and crime. Hackers built Unix and the Internet. Hackers hack together solutions with the resources available to serve a purpose or solve a problem. Tinkerers play for hobby and education.
Crackers and script kiddies are responsible for ruining lives and businesses.
/rant
Depends on how the cracks and scripts are used. Tools are just tools.
Typing a command in the terminal is not hacking , just because you made a change to the system doesn’t mean you “hacked it”, it’s basic functionality of Linux; being no different from changing a setting, it’s just using an interactive user interface that’s text based. Additionally, Valve doesn’t put anything to block the changes; They even encourage those whom want to make these changes. There is no problem to solve.
I’m sick of people assuming Terminal = Hacking, it’s a blatantly false stereotype that only serves to scare monger people into thinking the terminal is “1337 Haxers only”.
Script kiddies & Crackers aren’t even hackers; Hackers build their own tools; Script kiddies & Crackers are at most a customer or plagiarist.
Hacking is the practice of extending or exploiting a system to do something it wasn’t originally designed to do.
This could mean modifying source code, injecting mods, exploiting a vulnerability, etc.
Contrary to popular belief this doesn’t automatically make any of the examples ”malicious”, because if you’re using your own property or have permission it’s completely legal.
I thought hacking “originally” just meant figuring things out? …like short for hacking away at figuring out how to do things.
Why did you quote “originally” when you’re using it in a completely different context?
No, not in the context of computer hacking. if that was the definition then there’d be no difference between a “hacker” & a programmer who builds consumer applications. Finding solutions to a problem is just every programmer ever.
I used quotes because I wasn’t sure if that was the real original use. (Also because I don’t pay attention to or know proper grammar rules).
Ah, ok. It’s just that it reads like you’re quoting me.
That is not entirely correct, the definition of hacking you are using is much newer. In the past, hacking was a much more broad term, like those above you were stating.
It is still common in the open source community for people to use the original meaning of hacker. The hackers you are referring to are security hackers or crackers.
Actually the Open Source use of the term is already incapsulated in the
extending
portion of the definition I provided. Along with themodifying source code
example.Additional example : Kernel Hacking; Linux.
You’re a 3rd party extending it beyond it’s original design by modifying the source code to add additional or new functionality under the legal protection of the GPL, regardless if you do or don’t make a PR that gets accepted.
Actually no. The definition provided is far broader as already shown.
The key in the definition is
beyond it's original design
, say for example I take source code from Grub and I extend it by adding additional functionality that allows me to play pacman directly inside it. This modification goes beyond the authors original design and doesn’t just change a pre-existing feature from it’s default setting like running a terminal command does.Anyway, none of this is the point.
The point is that there’s a hard distinction between a Hacker and your Average Terminal User running a command in a shell interface. Shell interfaces like that of ZSH, BASH, etc. only serves as a way for the user to interact with the pre-existing features of the system.