Unpopular Opinion Penguin #4: Redux Edition

Hello, and welcome! To another entry of this section called Unpopular Opinion Penguin.

One could say that this is a subset of the main Unpopular Opinion Penguin posts, mostly when I find comments that are, hmm… interesting to take a look at. Today it’s this comment I found. As always, I will comment on each paragraph.

The post in question is translated using Google, so…yeah.  It’s understandable enough to continue.

Without further ado, let’s begin.

Over the hill

Nitrux 1.1.3 was released on 2019-01-26, and it was the fourth release of the newer version of the distribution that we had just released three months prior. The highlight of that series of releases was the introduction of znx and, as a whole, the concept of an immutable operating system that used differential, atomic updates and had a focus on a self-contained, redistributable application format (introductory at least when it comes to Nitrux).

“As a fan of the Image format AppImage course I wanted einma me l the View that uses this format as the system default distro. First of all, that was the only positive thing I was able to discover about Nitrux at the time.”—We also had Mauikit and znx itself; VMetal was still months away from becoming something usable, but ok fair enough.

“Nitrux can only be installed very laboriously within a VM. Just playing around with the live ISO would not have been fair for a serious test. In order to manage the installation of Nitrux, the VM had to be set up with 2 virtual disks. A ‘normal’ Linux was initially installed on the first disk, from where the ‘Deployment’ of the distri so called by Nitrux took place. At the end of the process, you had nitrux on a virtual EFI disk.”—I will forever find it mind-blowing that people couldn’t understand or can’t understand what znx is, what it isn’t, what it does, and what it doesn’t do. This person is talking about if you had a single disk and wanted to install Nitrux, and you couldn’t do that because that’s not how znx worked. When znx initialized a disk, it creates a new partition table and creates new partitions; that means, of course, that a disk that was mounted couldn’t be used (that’s how Linux works, by the way). So you needed to boot to something else to modify the disk; again, that’s how Linux works.

The distribution already included znx. To initialize a disk with znx to deploy an ISO to the drive one wanted to use, one could’ve used the Live session perfectly for that purpose because the Live session is running off the ISO, and the target disk is not mounted. If this sounds familiar, that is because that’s how a traditional (or normal as they put it) Linux distribution is installed. You (usually) boot an external disk and modify an unmounted disk; same thing here.

Again, there was absolutely no need to use two disks in that scenario, as this person says. So this person only needed to boot the ISO and had a single disk.

Where you would’ve had to use two disks was if you didn’t want to erase the single disk you had, so there’s a difference.

“EFI is the next point. Even though Nitrux runs exclusively under EFI, it requires a complete data carrier by itself! But that contradicts the EFI philosophy downright diametrically.”—That’s is correct, and we did explain why we only supported UEFI and EFI (multiple times too.) Certainly, the translation is difficult to understand past that point, but I believe it mentions that znx utilized the entire disk. Again, znx creates a new partition table and new partitions with labels that znx uses to, well, work. The idea with znx ‘managing’ the entire disk is that you, the user, used znx to deploy (read. install) more Linux distributions (read. ISO files) using znx; since each ISO file was a separate distribution by itself, you then didn’t need to create separate root (or root and home, etc.) partitions for each distribution installed. But as I mentioned before, people couldn’t understand this.

Basically, you had a single BTRFS partition called ZNX_DATA where both the ISO files (one ISO = one Linux distribution) and their data were stored (using OverlayFS) instead of multiple partitions for each of the Linux distributions as you would have in a ‘normal’ installation. The user data was also individual to each user and each distribution, and all were stored in single directories; this is known as a frugal installation.

“At its core, Nitrux is a read-only OS. You could say,the installation, mind you) expanded by a persistent memory for your own data and portable programs. However, this means that all tools included in the ISO are frozen in their basic configuration until the next Nitrux version. For example, you cannot add a single add-on to the supplied (de-Googled) Chrome browser. And although Nitrux is based on Ubuntu, no tools from the Synaptic package management can of course be installed. Au f Shutter , my favorite tool in terms of screenshots, so I had to do without, for example. Users and groups is also not available.”—That is correct, one of the points was to have an immutable system (or a read-only root), and persistent user data just like Fedora Silverblue and OpenSUSE Kubic have, they too follow the same approach using different methods, of course. So yes, while the root was immutable by default, you could temporarily add it to the Overlay by editing the ZNX_OVERLAYS boot parameter, albeit you had to make your edit every time you booted so that the changes in the Overlay were loaded.

But that’s beside the point; you could perfectly add more software to your home since the home was added to the Overlay by default. So that claim of not being capable of adding more software, for example, ungoogled-Chromium because the root was read-only, is not true at all. It’s even less true considering that ungoogled-Chromium is an AppImage, but I suppose that was only an example.

Then, yes, you couldn’t install Synaptic because then you’re completely missing the point of what we were doing. First, if you wanted to use Ubuntu, you’d have downloaded their ISO; Ubuntu is found at ubuntu.com, not nxos.org. Second, when dpkg was removed from the ISO (many versions in the future), having it was defeating the purpose of a read-only root, meaning that you, the user, could still break the system should you install a Debian package that caused a failure of any kind. Thirdly, the exact solution to this dilemma was using AppImages, which are completely self-contained and do not affect the read-only root, bringing the idea full-circle.

However, something that was understandable was what about software that isn’t available as an AppImage like Shutter. deb2appimage was something that we sometimes pointed users to; tools like appimage-builder make it easy today to create AppImages to avoid that problem. But that’s a fair point at the time.

I don’t understand the last part of the comment; I’m not sure if they mean a program called Users and groups? I guess so, though we did include the Users KCM.

“You can understand why Nitrux relies entirely on AppImages. Because only this image format for programs fully fulfills the criterion of portability. Snap and Flatpak, on the other hand, are always interlinked with the installed OS. So it is not so important that a program to be retrofitted is of the AppImage type, but rather that it can be installed as a stand-alone package. For example, I was able to integrate the portable version of the Waterfox browser completely with a copied profile including addons and themes.”—Yes, and no. As I mentioned above, AppImages make the idea full-circle; they’re completely decoupled from the target system, which is what we wanted. But the reason why Snap and Flatpak were not available at that point (well, Snap never has been) is that at the time, both relied on systemd, and we did not want to use systemd in the future, point, and case when we moved to OpenRC, only Flatpak, worked because it no longer required systemd.

But, in any case, it is not because both are “interlinked with the installed OS.” (as the translation puts it).

“Nitrux’s own catalog for expansion programs seemed cumbersome to use, confusing and incomplete. Other small nickel issues in dealing with nitrux clouded the overall picture.”—I think that translation didn’t do a good job here, but from I can understand the problem in itself of this person with the distribution, at the time, was that they downloaded Nitrux expecting it to be pretty much Ubuntu with a different theme, and therein lies the absolute main problem. A lot of people did exactly that.

We literally said that over a dozen times, Nitrux is not Ubuntu, is it built from Ubuntu? Yes, does it work like Ubuntu? No.

But it seemed that the more we said it, the more the message was ignored. Later on, when many more drastic changes were made, we then got messages that it wasn’t like Ubuntu any more—yes! that was precisely the point! —And yet, people would still browse nxos.org, expecting to download ‘just another Ubuntu,’ and I have never been able to understand that, not then and certainly not now.

And I’m not saying that being like Ubuntu is bad, not at all. And I understand that many distributions do only that (change the theme of whatever upstream they use), but even if you were to nitpick only that even then we made our themes ourselves, we didn’t fork somebody else’s work.

And that is not to say that, at the time, znx was perfect or that we had documentation even because it wasn’t and we didn’t. But if you, the user, had that mentality of ‘ugh surely it’s just Ubuntu with a theme, nothing more’ of course you’re going to be lost, of course, you’re not going to find Synaptic, of course, it follows a different installation procedure, of course, because it is not Ubuntu.

And far away

Be it as it may, whenever we talked about znx, it always felt like we were exposing people to scavenged ancient alien technology or something. It’s unparalleled simplicity and the scope of what it’s meant to do sounded to some as ‘magical,’ and not in a good way, but as an insult, as if we were lying or something, with what purpose? I don’t know, but that’s what we’ve got.

I mean, I suppose that because it only worked in Nitrux, that led everyone to think that we were just bullshitters; again, with what purpose? I don’t know. Some even called it ‘proprietary software’ (one of the most baffling and absurd comments we’ve got, by the way.) I guess that we came and said all these things when bigger projects like Fedora and OpenSUSE, for example, hadn’t made the jump to this type of system meant to practically everyone that it must be a lie; how come?.

I don’t know.

Maybe it’s that desktop users really aren’t ready for this type of  Linux distribution.

Maybe it’s that a higher amount of complexity must follow the idea of such a system.

I don’t know. All I know is that having used such a system, the least Linux distribution of Linux distributions for over two years is fantastic.