• 0 Posts
  • 24 Comments
Joined 1 year ago
cake
Cake day: June 17th, 2023

help-circle


  • So as far as I understand, you have

    • Outer router (Comcast), which has WiFi enabled
    • Inner router (your own), which has WiFi enabled, and further meshes with other WiFi mesh devices (or is the mesh separate?)
    • A plain switch, for stuff you want cabled and fast

    Is that correct?

    Why not get the WiFi in the Comcast router disabled, and use your inner network exclusively, such that both WiFi and ethernet devices are on the same network?

    That’s what I did with my network, and I even got the ISP to put their modem/router into bridge mode, so it’s completely transparent.













  • Immutable distros were originally very focused on servers, and more recently distros for workstations has stated gaining more interest as the concept has matured.

    With the advent of cloud computing “immutable infrastructure” started becoming more and more popular. This concept started out as someone sitting down and grabbing a normal Linux distribution, and installing all the necessary bits for the server purpose they needed. Then baking that into an image. Now you could launch new copies of that machine whenever you felt like it, and they would behave exactly the same. If any of them started doing something wonky, you just destroyed it and launched a new copy. This was very useful for software developers and operations people who could now more easily reason about how things behaved. And be sure that the difference in behaviour wasn’t because someone forgot to enable a setting, install a tool, or skipped a step in the setup.

    On the software development side, you also simultaneously saw more and more developers make use of functional programming methods, and al’ng with those immutable data structures. Fundamentally, instead of adding an item to a list, you make a new list with all the old and the new items in it. You never change the data after it’s creation. Each “change” is a new copy, with the difference already built in.

    Then containers started becoming popular. Which allowed software developers to build a container image on their local computer, and then ship that image to a server, where the image behaved exactly as it did on their local machine. This also meant that the actual OS became less and less important, as everything needed by the container was already bundled in the container. The containers also worked as “immutable”, since everything you would install or change within the containers would be immediately lost when the container was destroyed, and recreating it would be exactly as when the image was built.

    The advent of containerised workloads, gave rise to a lot of different Linux distributions. Since the containers pretty much only needed the Linux kernel from the OS, it was pretty easy to make a container-centric operating system. And in turn lock down everything else, even completely omitting having a package manager. Stuff like CoreOS, Flatcar, Rancher OS, and many others were immutable linuxes that only catered to containers. I don’t know the exact mechanism for all of these, but at least the original CoreOS and Flatcar make the actual system read only, and on top of that had two man partitions, one of the partitions would be the current system, and the other would be where updates were downloaded. Once an update was downloaded and ready, you just rebooted the machine, and it would be running off the updated partition. Which also meant easy rollback if you got a broken update. You could just boot off the other unupdated partition.

    Containers were however rather ill suited for desktop applications, as there were no good way to provide a GUI. You could serve up a Web page, but native GUI apps were tricky.

    That’s where Flatpak, Snaps and all that came, which essentially brings the container mentality to normal desktop apps. This brought immutability to individual apps, as they brought their own dependencies. And therefore didn’t have to rely on the correct versions of dependencies being available on the machine.

    The logical next step was of course to add immutability to workstation distributions. This is where the popularity of Fedora Silverblue, NixOS, and many others really started taking shape.

    I believe Fedora Silverblue uses ostree to make the system “immutable”. Of course you can still make changes to your system, but the system is built to be completely aware of the state before and the state after, this is what’s called “atomic”. There’s no such thing as a partially installed package. There is only the state before installing something, and the state when the thing is fully installed. You can roll back to any of the previous states, to recover from a broken update or misconfiguration. This also makes trying out new things with no risk. Trying out a new desktop environment, and it broke your system? Just roll back. Accidentally uninstalled a critical package? Just roll back. What to try out a new display manager? Just apply the config and roll back if you don’t like it.

    SteamOS also does the thing with multiple partitions, and even allows you to turn off the immutability. Other distributions aren’t as lenient. There’s no way to turn off the immutability in NixOS or Fedora Silverblue.





  • I kinda don’t want YouTube to show my 8 year old daughter porn ads.

    And sure sex needs to be normalised, and my daughter needs to learn about it soon enough, but porn isn’t just normal sex… It’s often quite extreme and exaggerated, or even semi violent. And I’m not one to kink shame anyone, but I still think young people should start learning about the more “vanilla” kind of sex. Once they are comfortable with their sexuality and their body they can explore on their own.

    Porn can be quite shocking and frightening if it’s a person’s first introduction to the topic of sex.

    But besides that… I don’t have a problem with porn, but I don’t want it pushed on me.


  • The whole point of NixOS is that it’s “immutable” and “declarative”.

    In essence this means that you store the entire system configuration in a bunch of text files in a single directory. So your bootloader configuration, all your installed packages, every system service, every filesystem mounts, and even your partition layout and dotfiles, all of it in a common shared configuration.

    There’s even a concept called flakes, which lock the specific version of everything, so if you copy all your config to another computer (or reinstall), then applying the config will restore every system configuration to exactly that state. So if you like how you configured your machine, and want another machine exactly like it, you just copy all your configuration to the other machine, and run the nixos-rebuild command. Now the two machines are configured exactly identically, all the same package, all the same services, all the same configurations, even all the same versions if you make use of flakes.

    It also means that you can reason about your entire system setup just by looking at those configs. Is that piece of config in the files? Then that’s how your system is configured. If that piece of config isn’t there, then that is not how your system is configured.

    Want to install an application, just add it to the list in your config, and run the nixos-rebuild command. Now you have that installed. Don’t want it anymore? Just remove it from the list, and rerun nixos-rebuild.

    On top of that NixOS stores every generation of your config, so even if you break something, you just restart and pick the previous config generation, and your system starts up exactly as it was before you broke it, and you can go and resolve the issue in the config that broke your system.

    If you’ve ever done any programming, and made use of a dependency management tool that stores a dependency lock file, this is very similar, but for your entire operating system.

    If you’ve ever managed infrastructure via Terraform, then this feels like that, but for your entire system configuration.