Which OS has the steep learning curve and is considered hardest?
Gentoo ( I have been using it for 3 years now, until I have to switch to Ubuntu for research sake. I love it's philosophy and I kinda feel even my lifestyle changed after Gentoo. Tried it's successors, redstar, cosmic mod didn't liked much.)
Arch Linux ( when I got into Linux, everyone was like, I use arch btw. So tried it first with gnome, then kde, then i3, then i3 gaps and tui, then used openrc, then used runit. Helped me lot to install Gentoo. But Gentoo transformed me into something else)
Nix OS ( I was hearing about it since 2022. I wanted to try, and now I am gonna install and use it. I'm planning)
My question is, which among these is considered to be hardest and thus by mastering it, one can master linux to atleast some part? (excluding network management, ofsec, netsec, forensics, etc)
If your goal is to learn, there is no better way than retrieving each tool individually and compiling it from the bottom up. LFS is Gentoo ... without all the ease of use built in. More accurately, LFS is a just a set of instructions for where to go to get the code and how to compile everything you need to build a Linux system from the bottom up.
I don't live in the world of LFS or Gentoo, but my foray into LFS gave me a much greater appreciation for the distribution(s) I do use as daily drivers. I greatly appreciate my distribution maintainers.
Arch Linux - if you want to learn how to partition you drive, setup bootloader, manage packages from terminal, setup EFI, and such, probably tasks that will help you for example in cases when windows would override bootlaoder/efi and you want to recover/fix your Linux OS without reinstall, or you broken it and you want to fix it.
Nix OS - if you want to learn how to serialize your OS to an reproducible state with later ways to use Nix packages on other distros if needed. If you break it, you will just revert to older revision or reinstall everything in a matter of minutes (if not seconds) from few files. You will learn way different set of skills than Arch as you will only 'define' what you want your partition and bootloader should look, and NixOS will take care of that almost magically, but you could use Nix packages on top of Arch or any other distro.
Gentoo - if you want to learn how all those packages are build and installed from sources, how to patch and modify them when needed, how much time you gain with distro with prebuild packages if you decide to build everything, but on the other hand how much performance you 'could' gain from optimized builds or how easy is to install anything you want in any way you want. (Didn't use Gentoo myself, as installing stuff from AUR on my desktop Arch is all I need to experience how much time it could take :) So Gentoo would probably not be the hardest but most time consuming, but I could be wrong)
My question is, which among these is considered to be hardest and thus by mastering it, one can master linux to atleast some part?
It does not matter which distribution you use. For example, I am using Arch for over 10 years. Have I gained any new knowledge since then? Sure. But not because I use Arch but because I had to do certain tasks. Or because I was interested in certain things. I even go so far as to say that I got a lot of my Linux knowledge under Mandrake / Mandriva (comparable to Ubuntu) because that was the distribution I used initially.
From my point of view, it is therefore only important that you want to learn something. Whether you use Ubuntu, OpenSuse, Arch or Gentoo for this is basically irrelevant.
Apart from that, I don't think Arch is a difficult distribution to install or use. For example, many of the commands in the official installation guide can be executed without any changes. Or if you want to make it even easier, just use archinstall which has been an official part of the iso file for some time.
As for maintaining Arch, I've been doing exactly two things for years.
Before an update, I check if anything has been released at https://archlinux.org/news/ that affects my installations (this can be automated with tools like informant). It is important to follow these instructions.
In other words, just use the distribution that suits you and learn what you need. Learning things on spec that you may never need is useless in my opinion.
How hard is it? I really want to try Slackware one day but I'm not the most adept at linux yet. Really only have experience with Fedora, Tails, Puppy, and antix so far.
Hard to find people to ask about it, as you said because of the smaller userbase. I did look yesterday though and there are some youtube videos on slackware 15 set up, so I may be ok with those. Still kinda nervous lol.
If you want to know the story of Slackware, this is a really well researched and condensed history. There are daily users that can chime in better than I can, but Slackware was my first exposure to Linux and it's definitely not "dead" like you might see posted around the internet. Like any distro, what you get out of it depends on how how much effort you put in. It's doable, but it will take some work on your part and some patience.
You're in a good position to "master" NixOS, but I don't think it'll help you to achieve your goal of getting better at Linux.
NixOS will help you with declarative systems ("mastering" NixOS will help you working with it's sibling Guix for example), but because so many things are specific to the declarative configuration, it won't help you in many other places (not with you current knowledge, apart from functional progamming I guess).
Is it so? Does it helps with FP paradigm? Meanwhile how you got to know I'm into FP?
Also I tried LFS many a times, but couldn't complete fully. Same with AOSP. Same with porting existing ROMs for Android. I also wished to try Gentoo Android project, even when it's abandoned. But I will try.
Nix, the language you use to configure your system is a functional language (c.f. https://nixos.wiki/wiki/Overview_of_the_Nix_Language), that's why I said it'd help you with FP.
I didn't know you were into functional programming, just lucky wording.
But if you get into the FP side of nix, then there's so much more you can do.
Here are some examples of projects that use nix/FP to help you with something:
Since nix (the language) is primarily used with nix (the tool/build system), most things you'll will be doing are centered around building something.
It will cover most FP paradigms, but writing the apps themselves with a functional language can teach you more than setting up the build system for it.
Haven't tried Nix OS yet, but yeah I can see the similarities in Gentoo and Arch. I think Gentoo with its compilation times is more of a headache (with better(?) rewards?). I think the last time I had to compile on Arch was for a kernel I wanted to try.
On recent hardware compiling everything from source doesn't give that much a of a performance boost. On older hardware (i586/i686 era) this was different. But in my opinion the hassle simply doesn't worth it anymore. My machine has plenty of unused resources and compilers nowadays do a really good job in optimizing the result.
Can't say anything about Nix OS. As far as I know it does some things different when it comes to configuration.
Sorry, but I can't follow. Shouldn't an OS be easy to use so that it gets out of the way so that you have more time for the real work you have to do?
For example I tried out using plain Fedora Server for my NAS but went back to unRAID. I just didn't want to spend all that time figuring out why the samba server isn't visible or why the drives aren't spinning down, etc etc.
I think it depends on the individual user. Many prefer a solution that simply works. But some prefer to look behind the scenes and tweak everything.
When it comes to cars, it's the same. There are people who only want to drive from A to B with their car. I am one of those people. Others, on the other hand, want to repair their car themselves as much as possible. Which I understand in principle, but I prefer to leave that to a workshop.
I've not done Gentoo since about 2006/7 after running as a primary OS for about 2-3 years - It taught me lots about system maintenance. I then move to SUSE and *BSD desktops before coming back to Windows as my OS for daily use (have to for work).
I don't think it really matters what poison you choose, just dig down in to it's inner workings.
As both arch and gentoo has very good documentation, and is very standard Linux as it “always” has been, I don’t see anything hard about them. Nix is a different beast and you need to learn some new approaches.
None of them are hard at all. They require some different skills though. Due to few defaults you have to spent more time with setting it up than for example Ubuntu which made many decisions for you. It's not too bad either way though. All the distros are supposed to be usable and not hard, that's the wrong mindset.
You won't learn much about Linux by using NixOS, as the configuration and skills are not really transferable (yet?). It fills a niche which is useful for development. Its goals are different and I would exclude it from the list.
Arch Linux is very simple and a bit difficult at the same time. As an experienced Linux User or administrator you can easily set it up and get it running like any other distro. The difficulty comes from you having to know what you need and want. This is the actual learning curve. Many packages have sane defaults which do not differ too much from other distributions so you spend most time with customizing it to your needs, but otherwise it is just a rolling release distro which works just fine and is easy to manage once it is all up and running. You have to make many decisions though.
The same is mostly true for Gentoo, but they use other tools and it invites its users to tinker with the software if they want to. You spend most of the time waiting for the compiler hence I personally don't really like working with it. It is a neat idea, but it's getting old really fast.
Personally I stick to Arch for my desktop system, but use RHEL or Debian based OS on any servers I manage. So my real answer is another option: Learn by operating and using a stable established distribution and once you are comfortable with the tools and everything you can branch out and dig your teeths into something else if you feel you need to. This would build more transferable skills especially in a professional setting.
After all if you want to take the difficult approach, rather stick to the learning "distro" Linux from Scratch (it's a guide) which can teach you quite a lot about Linux.