Linux is Linux, nix is just a tool to essentially build a view of the root filesystem in a special way. In the end, it’s not that different than if you do everything from Ansible playbooks, in a Dockerfile, from Puppet/Chef or any other automation technologies.
Heck, if you look closely at Debian/Ubuntu, there’s the whole debconf system that lets you configure packages directly from the package manager, and it generates configuration files based of that. If you install Postfix on Debian, it’s going to ask you how you want to use it and it generates some ready to use configuration files. Then if you install Dovecot, it might just work out of the box using that configuration to know how you set up Postfix and let you fetch your emails over IMAP. It’s not nearly as comprehensive as nix does it, but the concept of a main configuration file is far from new, nix just pushed it to a whole other level.
Building packages also differ wildly between distros. ArchLinux uses simple PKGBUILD files that are essentially just bash scripts. Debian uses debhelper and dh_make, and lets you do some really crazy things with the build system to reduce boilerplate so that all Python packages for example are built exactly the same way and often in just a few lines.
Distros also put files in different places. On Debian, system-wide systemd units are in /lib/systemd, but it’s /usr/lib/systemd on Arch. Distros use different tools: apt, yum, dnf, pacman, pkg, etc. Debian in particular really likes to ship with heavily customized configurations. For example, if you install NGINX on Debian or Ubuntu, you have a /etc/nginx/sites-{available,enabled} and it’s got a helper script to easily enable/disable a site. On Arch, there’s no folders, you get a plain basic default /etc/nginx/nginx.conf. On macOS, I have that config in /usr/local/etc/nginx/nginx.conf. The default location of configuration files is inherently a compile-time property, just so happens that most distros puts it in the same place.
I’ve worked with part-time admins / web developers that completely panic when they SSH into a system that’s not Ubuntu and they don’t know how to do anything.
If you like NixOS, just enjoy and you’ll be fine. Completely different means of achieving the same things, and if anything will make you more aware of potential variations. Nothing preventing you from having VMs with more classical distros to keep up to date with how to admin those. A lot of things still work the same: you can still systemctl restart a service, you’ve still got a bash shell that works exactly the same. You’re just going to manipulate and template nix files instead of directly modifying configuration files, but still ends up generating that file for the software to use.
I use Arch for all my stuff, and Ubuntu at work. Because I use one doesn’t make me not well versed in the others. NixOS have real advantages, and I know some companies that have fleets of NixOS servers.
People usually recommend Linux mint or some Ubuntu version. I recommend neither.
Ubuntu is a proprietary-solution-ridden piece of hot garbage that tries to hinders what you do at any chance. I use it daily for work, unfortunately.
It’s been a few years since I tried mint. It looked good and felt nice for the first few hours, after that I don’t remember what happened, it was maybe lack of configurabilità or lack of support, but I noped out very quickly and I just remember that my thoughts were “never again”.
I never tried it, but it looks like Pop!_OS might be the thing to look out for in this space.
Besides that, know that Linux is different from windows starting from its very philosophy. Keep an open mind, it can be a confusing journey for a beginner (which is why I am holding back about telling you about the many possibilities).
One thing to keep in mind is that some software that you were used to will not be available, and that you might need to look for alternatives. But as far as the things you mentioned go, these are my recommendations:
So, how deep does the “similar to Windows” needs to go? Are you thinking in terms of ease of use, things that works out of the box, something that looks similar to Windows?
In terms of look and feel, I’d recommend something based on KDE. KDE out of the box looks a lot like Windows (in fact, Windows 11 has some stuff that looks like it’s been ripped off KDE) Ubuntu, Debian, Fedora, Manjaro and Mint all have KDE versions you can install. I think Cinnamon also looks a fair bit like Windows. Although I wouldn’t exactly rule out other desktops just yet - maybe you’ll quickly realize hey, that other desktop I tried does look and function pretty neatly for my needs and you won’t feel like you need something that looks like Windows.
In terms of tutorials and being able to look things up online, Ubuntu and Manjaro tends to be the two most popular and therefore most documented. pop_OS! is also fairly popular and they do a good job at making Linux accessible for newcomers, but it’s based on Gnome so the experience will be different.
My personal advice is get VirtualBox, pick a few distros and try them out. You won’t exactly be able to game on them, or if you do, you’ll probably be limited to more lightweight games. But that should be plenty enough to install Discord, OBS, Steam and give a few distros a try. You can expect real world performance to mostly feel more responsive than Windows, and for games you can expect similar or maybe 5-10% lower performance in most cases. So don’t look too much at how fast it runs in a VM - VMs are fantastic piece of technology (and I actually game in one with a VFIO setup, but don’t bother just yet it’s a whole rabbithole), but especially under VirtualBox or VMware you’re not going to get the full performance.
Try a bunch of distros, try a few of the main Desktop Environments (DEs), see what you like, see what you dislike. Gnome on Ubuntu will be very different than Gnome on Fedora. Don’t rule out a distro because the DE, and don’t rule out a DE because of a distro. You can install as many as you want in VirtualBox, so take your time to get a feel of what you like and dislike and go from there. Once you’ve made your choice, you can partition your disk and keep Windows around if you want to have that safety net. Sometimes there’s that one game that just won’t work in Linux, and you can reboot to Windows to play it. I started this way, and found myself rebooting to Windows less and less until I reached a point where I was actively avoiding it and willing to make sacrifices just to avoid it because Linux had become my primary OS. If you have 2-3 distros you want to try, nothing stops you from installing all of them on hardware as well, they’ll happily cohabitate for the most part. Spend a day in Ubuntu, spend another day in Manjaro. Get a feel of which one has less friction for you.
In the end, Linux is Linux. Some distros ships everything you need for gaming out of the box and are easier to set up, but ultimately, Linux is Linux, you can (with some effort) get anything that runs on one distro on another distro. Heck, on ArchLinux land, we have a whole bunch of Ubuntu-patched packages in the AUR to bring in some of Ubuntu’s modifications in.
Speaking of ArchLinux. It’s a pretty good distro, it’s also become a bit of a meme distro. Don’t feel like you have to jump in all the way and get into ArchLinux, Gentoo, VoidLinux, Alpine, etc. You can if you want - honestly, if you really want to dive in deep and learn Linux from the ground up they will get you there, but beware that the learning curve on that will be steep. Those distros are aimed at more advanced users that want to control every aspect of their system in great detail. There’s no shame using a normie distro like Ubuntu or Fedora. Those are made to just kinda work and be reliable, whereas the ArchLinux installer is basically “here’s a command line, install what you want, good luck have fun”.
You don’t have to “commit” to a distro. For some it becomes a bit of a religion, but it’s perfectly normal to hop around distros a bit before you find the one that clicks with you. That’s why there’s so many of them: different goals for different people and different minds. I started with Ubuntu in 2007, ran to Debian around 2010 when they introduced Unity and I didn’t like it, wasn’t a fan of Debian either, ended up breaking it with Debian Sid, went to Fedora for a bit, and back to Ubuntu with a different DE before I felt like I had enough and wanted something I had more control over, and that’s when I switched to Arch and stayed on Arch to this day. Meanwhile my fiancée put Arch on her laptop but increasingly feels like it’s too much maintenance for her and wants a laptop that just kinda works to run Chromium and VSCode. So she might end up just switching to Ubuntu. That’s perfectly fine! The computer should work for you, you shouldn’t work for the computer.
If you end up not liking Linux, that’s fine too! Most of us here swear by it, but maybe Windows just happens to be the best operating system for you, just like for some people that’s macOS.
With that, good luck, hope you enjoy your Linux experience and ask questions. Lemmy is a great place to ask for help, there’s also lots of still very active IRC channels on libera.chat, and there’s some Discord servers too if that’s your thing.
Linux mint is often recommended for new people, and has a interface very similar to windows. In my own experience, it’s very fast to get it up and running.
The traditional init systems suited me just fine, i saw no need to change them. If they were so bad, then they could’ve been fixed or replaced.
The migration to systemd felt forced. Debian surprised everyone with the change. Also systemd’s development is/was backed by corporate Red Hat, their lead developer wasn’t exactly loved either and is now working for Microsoft. Of course Canonical’s Ubuntu adopted it as well. Overall feels like Windows’ svchost.exe, hence people accusing it of vendor lock-in.
It’s not just an init system, it’s way waaay more. It’s supposed to be modular, but good luck keeping only its PID1 in a distro that supports systemd. It breaks the “do one thing right” approach and, in practice, does take away choice which pisses me off.
I had been using Debian since Woody, but that make me change to Gentoo on my desktop which, to me, took the best path: they default to OpenRC but you’re free to use systemd if you want to. That’s choice. For servers i now prefer Slackware and the laptop runs Devuan whenever i boot it up.
To be fair systemd hasn’t shown its ugly face in the Ubuntu VMs i’m forced to use at work.
YMMV. If you’re happy with it, fine. This, of course, is only my opinion.
We’d probably need to qualify this with “bad compared to what”. I can’t complain, as it does its job, and I’ve been able to tweak what I needed to. As I don’t tinker with it every week, I keep a sticky note rolled up on my desktop, or I quickly use ‘cheat systemd’ to remember some key examples.
I was getting really long start up time earlier this year (like 19 mins before the desktop was fully responding) and after trying everything else I tried ditching BTRFS and reverting my /home drive back to ext4. Turns out BTRFS start and checks was killing my boot times. Now, as fast as anything.
The following have been my saviours though in identifying boot times: journalctl -b -p err systemd-analyze blame --user systemd-analyze blame
That is and always was nonsense. Systemd shortens boot times by starting things in parallel. That’s one of its key features.
There are some things to note about that:
Systemd only starts services in parallel when it isn’t told otherwise by Before and/or After settings in the service files. This makes it pretty easy to make systemd slow by misconfiguring it. You can use the systemd-analyze program to see which services held up your boot.
Systemd has a very long default timeout (90 seconds) for starting or stopping a service. It’s appropriate for the big, lumbering servers that systemd was probably designed for, but it might be wise to shorten the timeout on desktops, where a service taking more than 5 seconds to start is almost certainly broken. It’s a setting in /etc/systemd/system.conf.
Is the current SystemD rant derived from years ago (while they’ve improved a lot)?
I’m an early adopter of systemd. I installed it on my Debian desktops pretty much as soon as it was available in Debian, and I later started moving servers to it as well. I had long been jealous of Windows NT’s service manager, and systemd is exactly what I had hoped would come to Linux one day.
Yes, the rant you’re talking about is old, and yes, systemd is better now than it was then, but not in the sense of what the rant was complaining about. The rant was already patent nonsense when it was written, which has given me a very dim view of the anti-systemd crowd.
Besides systemd proper, they also spent a lot of time ranting about the journal system, which redirects syslog entries into a set of binary log files. They complained that this would make logs impossible to read in emergencies. This isn’t even close to being true—any emergency bootable Linux image worth its salt has a copy of journalctl on it—and the binary nature of systemd’s logs has caused me serious problems on exactly zero occasions.
Nice post, and a good overview over why RedHat is doing what it’s doing.
Before reading this I wasn’t really feeling good about redhat and the stuff happening rn but now i’m able to understand the decision making and there’s still hope for me that redhat won’t turn into a shitshow in a couple years haha
Also working with RedHat in the past has been quite nice so it’s good that i don’t feel a slight hate against the company anymore.
Quite hard to solve the problem when everyone is so emotional
I worked for a bank. When they decided to deploy Linux on their infrastructure, they chose RHEL and they have signed a big contract with RedHat for tech support.
Overall, they chose RedHat for the same reason they chose Microsoft before: tech support. They have >10000 engineers, and yet somehow they think they absolutely need tech support… They pay a lot for it. In my building, they even got a Microsoft engineer once a week on-site until Covid. I don’t know for the other people working for this bank, but I asked for Microsoft support only once in 2 years. In the end, their guy sent me back an email telling me “I’ve transmitted your question to the corresponding engineering team” and … diddlysquat.
Now to be fair, for paying customers, RHEL and Microsoft both ensure security updates for a really a long time. Red Hat pays a lot of people to backport security patches from upstream to previous versions. It allows companies like the bank I worked for to keep running completely crappy and obsolete software for an insane amount of time without having to worry too much about security vulnerabilities.
Anyway regarding RedHat contributions, a lot of them are subtle.
A friend of mine works for RedHat. He is a core Python developer and is paid full-time by RedHat to work on Python.
Through this friend, I applied for a position in their company at some point (unfortunately, it didn’t happen ; don’t remember why exactly). The position was in a team dedicated to improve hardware support. They have built an infrastructure to let computer manufacturers (Dell, Lenovo, etc) test the compatibility of their new hardware with Linux/RHEL quickly and automatically.
Part of the technical support they provide to some clients is “making things work”. It may imply fixing bugs or improving drivers and then sending patches upstream.
If I’m not mistaken, they paid Lennart Poettering to work on Systemd and Pulseaudio.
They pay for the development of some infrastructure software like Corosync for instance.
This list is far from exhaustive. I’m sure they have paid for a lot of other things you’re using daily without knowing it.
linux
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.