this post was submitted on 19 Jan 2024
84 points (89.6% liked)

Linux

48746 readers
1146 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

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
84
submitted 11 months ago* (last edited 11 months ago) by [email protected] to c/[email protected]
 

Hey folks! I'm getting a fresh laptop for the first time in about a decade (Framework 16) in a couple of months and am looking forward to doing some low-level tinkering both on the OS and hardware. I'm planning to convert into a "cyberdeck" with quick-release hinges for the screen since I usually use an HMD, built-in breadboard, and other hardware hacking fun.

On the OS, I'm planning to try NixOS as a baremetal hypervisor (KVM/QEMU) and run my "primary" OSes in VMs with hardware passthrough. If perf is horrible, I'll probably switch back to baremetal after a bit. But, I'm not likely going to be gaming on it so, I'm not likely to have much issue.

Once the hypervisor is working in a manner that I like, I should have an easy time backing up, rolling back, swapping out my "desktop" OS. I've been using Linux as my pretty much my only OS for over a decade (I use MacOS as a glorified SSH client for work). Most of my time has been on distros in the Debian or RHEL families (*buntu, Linux Mint, Crunchbang, CentOS, etc) and I pretty much live in the terminal these days.

With all of this said, I am coming to you folks for help. I would like you folks to share distros, desktop environments, window managers that you think I should give a try, or would like to inflict on me and what makes them noteworthy.

I can't guarantee that I'll get through suggestions, as my ADHD has been playing up lately, but I'll give it an attempt. Seriously. If you want me to try Hannah Montana Linux, I'll do it and report back on the experience.

EDIT: Thank you all for your fantastic suggestions. I'm going to start compiling them into a list this weekend.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 21 points 11 months ago (3 children)

Must try distros: Fedora, Mint, Void. But seriously, if you are using Nix to begin with, why use anything else? Nix is as good as it gets. If you really want to do a combo, I would recommend Fedora or Mint using Nix as just the package manager and not the hypervisor. All distros are basically the same nowadays.

Must try desktop environments: Xfce, Cinnamon, Gnome, KDE Plasma

[–] [email protected] 5 points 11 months ago* (last edited 11 months ago)

I've never really Fedora or Void. Will definitely try those.

Of your DEs, I think KDE is the only one that I've not used significantly. I need to fix that. I think MATE deserves a place there too.

ETA: As for why not just Nix or Nix as a package manager? I've become accustomed to being in VMs all of the time and really like the way that doing so impacts how I interact with a system and extra capabilities provided.

[–] dis_honestfamiliar 4 points 11 months ago

Try those but also wanted to say enlightenment. I don't even know if it still exists. If it does, give a try.

[–] Pacmanlives 3 points 11 months ago (1 children)

Why do you say Nix is good as it gets? I am an old graybeard mostly( SuSe, Debian and FreeBSD)

[–] [email protected] 4 points 11 months ago* (last edited 11 months ago)

In short: Nix tracks all installable software and dependencies using a Merkel tree data structure to ensure fully reproducible builds of software. This Merkel tree also provides properties similar to that of a C.O.W. filesystem where you can snapshot and rollback system software build configurations in O(1) time, it just rewrites a fixed number of symbolic links to the root of the desired Merkel tree. In my opinion, it is the most technologically advanced package manager currently in existence.

Every input that goes into building a piece of software on Nix OS (or in the Nix package manager in general) is hashed and placed into a database on the system. These hash IDs become dependencies for everything they are used to build. By tracing the chain of hash IDs you can guarantee that every single bit that goes into the build of the system software is accounted for. If two separate computers with the same ISA are running the same tree of packages verifiable by their hash IDs, you are guaranteed that both computers are running the exact same software. All dynamic libraries, shared libraries, executable files, and even the config files in the package database refer only to other files in the database.

When you use Nix OS, not just the package manager, the C compiler, boot loader, and kernel are themselves build inputs. You can even roll back to a snapshot of a working system from the bootloader menu if you accidentally break your system (as long as the package database is not corrupted).

Finally, the system itself is both built and configured using a declarative programming language. So you install software by declaring that it should exist, and the package manager computes precisely which dependencies must be installed to realize what it is you have declared in the system configuration files. Making a change to what is installed requires simply altering the lines of code in the system configuration file. You can also use these configuration files to easily construct Docker images or Flatpacks.