Início Tecnologia Reflexões pessoais sobre Linux imutável

Reflexões pessoais sobre Linux imutável

4
0

 

Immutable distributions are slowly spreading across the Linux world—but should you care? Are they hacker-friendly? What does “immutable” mean, anyway?

Immutable means “not subject to or susceptible to change,” according to Merriam-Webster, which isn’t 100% accurate in this context, but it’s close enough, and the name is there, so we’re stuck with it. Immutable distributions are subject to change; it’s just that changing them is a bit different than bog-standard Linux. Will this matter to you? Read on to find out! (Or, if you already know the answers, keep reading to find out how angry you should be in the comments section.)

Immutability is cloud-based thinking: the system has a known state and is always in it. Everything that isn’t part of the main system is containerized and controlled. I’m writing this from a KDE-based distribution called Aurora, part of the Blue Universal project that builds on Fedora’s atomic desktop work. It blames itself for being “lazy developers.”

The advantage for this hypothetical slow dev is that the base system is already built, and you can’t get distracted by messing with it. It works, and it’s unlikely to break. Every installation is essentially identical to every other installation, meaning reproducibility is almost guaranteed. There’s no more fiddling with forums to figure out which library conflicts with which. In an immutable system, they’ve all been selected to play nicely together, and everything else is safely containerized. (Again, an ideal cloud.) If the developers make a mistake during an update, well, just roll back!

50 shades of immunity

Different flavors of immutable Linux differ in how they achieve this, but they all have rollback as a core capability. Each change to the system becomes a new, indivisible image; this is why we talk about atomic upgrades. You create a new system image when you upgrade, but you don’t start using it until you reboot the system. (This has some stability advantages, as you might imagine, although rebooting can make things worse.) The old image is kept on your system should you need it.

MicroOS and its descendants (like Aeon) use a BRTF-based snapshot system to provide rollback. Fedora’s atomic desktops, like SilverBlue, and Fedora-based Universal Blue downstreams like Bazzite or Aurora, use a system called Ostree, which is considerably more complex and interesting. You can do something similar with Nix, of course, but that’s a whole other ball game.

Ostree se cobra como “Git para binários do sistema operacional”. Todas as atualizações, ou cada pacote instaladas, são colocadas em camadas na árvore e podem ser revertidas, se necessário – em massa ou individualmente. Você pode empacotar essa árvore de compromissos e implantá -la em um novo sistema, tornando a elaboração de novas “distros” tão triviais que eles realmente não merecem o nome. Em teoria, você pode instalar tudo via Ostree, mas quanto mais você pega seu sistema da imagem base, menos você tem que “todo sistema é idêntico” resolvendo o problema que os caras imutáveis ​​gostam de falar.

Claro que você fazer Deseja instalar aplicativos e você faz da mesma maneira que pode em um servidor: em contêineres. Que tipo de contêineres pode variar de bom gosto, mas normalmente isso significa aplicações de FlatPak para a GUI. Distribuições imutáveis ​​baseadas em Fedora, como SilverBlue ou Aurora, usam Flatpak, assim como o OpenSuse. (Appimage e Snap também são opções, tecnicamente falando, mas quem gosta de Snaps?) A equipe Blue Universal acrescenta Homebrew para os aplicativos de terminais que não tendem a obter Plakspaks. Admito que fiquei surpreso ao ver o Homebrew quando comecei a usar a Aurora, já que a conhecia como “o gerente de pacotes desaparecido para MacOS”, mas sua inclusão faz todo o sentido quando você pensa sobre isso.

MacOS é o primeiro Unix imutável

MacOS, você vê, é o primeiro Unix imutável. Por mais que na comunidade Linux não gostemos de falar sobre isso, os Macs não são apenas compatíveis com Posix – eles executam o UNIX certificado (™). E a Curputino está se movendo em direção a essa coisa “imutável” há muito tempo, até que a Catalina finalmente selou as pastas do sistema completamente em um volume somente leitura. As atualizações do MacOS também vêm como instantâneos para substituir esse volume do sistema – você certamente poderia chamá -los de “atômico”. Como o volume do sistema está bloqueado, os gerentes de pacotes tradicionais não poderão operar. O Homebrew foi criado para resolver esse problema. Funciona tão bem em um sistema Linux que possui o mesmo bloqueio aplicado às pastas do sistema.

Se o homebrew não é a sua xícara de chá-e parece não ser de todos, já que acho que o Universal Blue é o único distrito para enviar com ele-você pode ir mais duro em contêiner com Docker ou Podman. Em algum lugar no meio, você pode usar algo como distrobox. Se você não ouviu falar, o Distrobox é uma estrutura para implantar sistemas Linux tradicionais dentro de contêineres. Para os desenvolvedores, é ótimo para testes, mesmo que você não esteja baseando -o em cima de uma distribuição imutável. Se você nunca trabalhou na nuvem, tudo isso pode parecer rube-goldberg gobbbly-Gook, (“Linux em uma caixa no meu Linux!?”), Mas depois que você se adaptar, não é tão ruim.

O ano imutável na área de trabalho?

A pergunta é: você quer se adaptar a ela? O pensamento baseado em nuvem é necessário na área de trabalho? Bem, eu diria que depende de quem está usando o desktop. Eu diria absolutamente os usuários do Windows que estão pensando em mudar para o Linux após o Windows 10 EOL para uma distribuição azul universal, e provavelmente aurora, já que o KDE é mais Windows-Y do que o Gnome. A maioria desses usuários de ex-janelas são pessoas que apenas querem usar um computador, não brincar com ele. Se isso o descrever, talvez uma distribuição imutável possa ser do seu gosto.

O MacOS mostrou que muito poucos usuários de desktop notarão se podem acessar as pastas do sistema ou não; Eles estão mais interessados ​​em ter um ambiente estável e reproduzível para trabalhar. Assim, o Linux imutável pode ser o caminho para trazer o Linux Mainstream – certamente o Steam pensa assim, com Steamos. Para o caso de uso deles, é difícil argumentar os benefícios: você precisa de um sistema básico estável para a pilha de cartões que estão jogando no Linux, e o suporte técnico é muito simplificado para um sistema operacional bloqueado no qual você não pode instalar pacotes. A crescente popularidade da Bazzita, a distribuição centrada em jogos da Universal Blue, também fala com isso.

Existem desvantagens nesse tipo de sistema, é claro, e é importante reconhecer isso. Algumas pessoas realmente odeiam a contêinerização, porque Flatpaks e outras opções semelhantes usam mais memória, tanto no disco quanto na RAM. Obviamente, nem tudo está disponível como um Flatpak ou em Homebrew se o sistema usar isso. Se você deseja usar a caixa de ferramentas ou distrobox para obter um conjunto de pacotes específico para distro, bem, é claro que executar um sistema Linux extra em um contêiner terá uma sobrecarga.

De uma perspectiva estética, não é tão elegante quanto um ambiente tradicional Linux, pelo menos a alguns olhos, incluindo os meus. Aqueles de nós que mudaram para o Linux porque queríamos controle absoluto sobre nossos computadores pode não se sentir muito bem com o rótulo “não tocar” rabiscado implicitamente nas pastas do sistema, mesmo que obtemos algo como rpm-ostree para fazer alterações com. Mesmo com um gerenciador de pacotes, existem personalizações e ajustes que você simplesmente não pode criar em um sistema somente leitura. Para aqueles de nós que tratam o Linux como um hobby, isso provavelmente é um não.

Para a “desenvolvedora preguiçosa” Aurora se vende, bem, essa é uma história diferente. Falando em preguiçosos, eu uso Aurora há alguns meses, quase apesar de mim mesmo. Inicialmente, carreguei-o como o último passo em um passeio de distração para ver se conseguia encontrar um bom substituto do Windows 10 para meus pais. (Acho que é isso, para ser sincero.) Ainda está no meu laptop principal simplesmente porque é tão discretamente fora do caminho que não consigo pensar em nenhuma razão para instalar mais nada.

At some point, that might change, and when it does, I might rush and build a Linux build from scratch or experiment with Nixos as I intended. Something like that would allow me to regain the sense of agency I lost to the universal blue development team while running Aurora. (There have been times when I can feel the ghostly hand of an imaginary sysadmin urging me not to mess with my own system.)

After seeing how containerization can work on the desktop, NIX seems more appealing—it can do most of what this article talks about with immutable distors, but without relying on anyone else to configure any facet of the system. What do you think? Are the touted benefits of stability, reproducibility, and security worth the hassle of an immutable distribution? Is the grass greener in Nix land? If you’ve tried one of the immutable Linux distributions out there, we’d love to hear your thoughts in the comments.

source