Bedrock Linux: O kit Lego para construir a distribuição Linux perfeita





Desde o advento do Linux, muitas distribuições surgiram em breve: Slack, RedHat, Debian, SUSE, etc. Surgiu então o problema de escolher uma distribuição, pois cada uma delas tem suas próprias características e vantagens que a tornam especial. RedHat e Debian são as mais estáveis ​​e conservadoras das distribuições, o Ubuntu é focado na usabilidade e tem uma ótima interface de usuário, o Gentoo é livre de escolha e flexibilidade.



Todo usuário do Linux teve momentos em que faltou alguns dos recursos implementados em outras distribuições. Muitas pessoas ao mesmo tempo não gostaram que o Debian mudou para o systemd e criaram uma nova distribuição baseada nele - Devuan. Alguns mudaram para o Gentoo, onde o usuário pode criar um ambiente com dois sistemas init: ambos openrc e systemd.



Distribuições diferentes lidam com esse problema de maneiras diferentes. A instalação de um pacote que não está no repositório regular é resolvida usando contêineres docker ou usando os sistemas de pacotes autocontidos snap e flatpak. Você pode até instalar pacotes RPM em sistemas com gerenciador de pacotes DEB. Gentoo tem suporte para pacotes RPM e DEB. Tudo isso funciona, mas não é bem escalável e não é muito estável.



Os criadores do Bedrock Linux foram além e criaram uma meta-distribuição totalmente desenvolvida. É possível usar não apenas pacotes, mas também componentes de várias distribuições Linux, como peças de Lego. Em um ambiente, você pode criar um sistema a partir de vários sistemas operacionais Linux, por exemplo, instalando pacotes adicionais do Ubuntu além dos componentes básicos do Debian e do Arch. O script de instalação está disponível para as seguintes plataformas.



  • aarch64;
  • armv7hl;
  • armv7l;
  • mips64el;
  • mips64;
  • mips;
  • mipsel;
  • ppc64;
  • ppc64le;
  • ppc;
  • s390;
  • x86_64;
  • x86;


A propósito, por que um script de instalação e não um disco de instalação completo ou uma imagem? O motivo é que o Bedrock Linux não tem sua própria distribuição canônica, em vez disso, há um conjunto de receitas para montar um sistema operacional a partir de um conjunto de ingredientes. Nisto, Bedrock Linux é semelhante a outra meta-distribuição do Gentoo, mas em uma tentativa de abraçar a imensidão, ele foi até os limites da sanidade e possivelmente os ultrapassou.



Instalando Bedrock e comandos básicos



Usando uma distribuição Linux tradicional já instalada com um script de instalação, Bedrock o transforma em um sistema híbrido. Por exemplo, você já tem o Debian instalado, usando o script de instalação, você obtém um ambiente co-localizado com o Ubuntu. Primeiro você precisa rodar como root.



sh ./bedrock-linux-<release>-<arch>.sh --hijack
      
      





O script avisará que estes não são exercícios.



* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                                                               *
* Continuing will:                                              *
* - Move the existing install to a temporary location           *
* - Install Bedrock Linux on the root of the filesystem         *
* - Add the previous install as a new Bedrock Linux stratum     *
*                                                               *
* YOU ARE ABOUT TO REPLACE YOUR EXISTING LINUX INSTALL WITH A   *
* BEDROCK LINUX INSTALL! THIS IS NOT INTENDED TO BE REVERSIBLE! *
*                                                               *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Please type "Not reversible!" without quotes at the prompt to continue:
> Not reversible!
__          __             __
\ \_________\ \____________\ \___
 \  _ \  _\ _  \  _\ __ \ __\   /
  \___/\__/\__/ \_\ \___/\__/\_\_\
          Bedrock Linux 0.7.19 Poki
      
      





É hora de se familiarizar com a tabela de compatibilidade de distribuições Linux. As principais distribuições populares têm um bom grau de suporte, exceto possivelmente o OpenSUSE. Descarga e instalações autônomas não são suportadas para Linux Mint. Além disso, não se esqueça da tabela de compatibilidade entre os componentes . Binários, por exemplo, são bem transferidos de uma distribuição para outra, mas as fontes não.



Se todas as verificações forem bem-sucedidas, o script fará as alterações necessárias no sistema operacional, após o que você precisará reiniciar o computador para que as alterações tenham efeito. Deste ponto em diante, o usuário está no ambiente Bedrock Linux. Agora você pode instalar um SO adicional em um contêiner chamado stratum - algo como um ambiente chroot, no qual buracos especiais são feitos para se comunicar com outros stratas.

No entanto, antes de começar, é aconselhável familiarizar-se com o manual de instruções chamando brl tutorial basics. Os comandos Bedrock mais simples, o propósito de cada um é óbvio.



# brl update
# brl version
# brl ctatus
      
      





Veja a lista de distribuições disponíveis e instale.



# brl fetch --list
# brl fetch alpine
# brl fetch void
      
      







Como as distribuições Bedrock interagem?



Em certas situações, você pode executar comandos de diferentes stratas como se fossem parte do mesmo sistema operacional Linux familiar. Por exemplo, os comandos void e alpine podem ser usados ​​no mesmo pipeline. O primeiro comando define o pacote jq como alpine, o segundo - jo como void. O pipeline lê do segundo e transfere para o primeiro, tudo acontece de forma transparente para o usuário.



$ sudo apk add jq
$ sudo xbps-install -y jo
$ jo "distro=bedrock" | jq ".distro"
      
      





O sistema operacional Debian Linux original, que foi afetado por --hijack, agora também é apenas estrato. Sua existência pode ser adivinhada executando alguns desses comandos.



$ brl which ls	
debian
$ brl which /
debian
      
      





Mais especificamente, a saída desses comandos corresponderá ao conteúdo do arquivo / etc / os-release conforme visto no processo shell atual. Isso é lógico, uma vez que cada estrato vê apenas seu próprio arquivo local, caso contrário, o Debian e o Ubuntu instalados em paralelo tropeçariam no conteúdo do arquivo /etc/apt/sources.list.



No entanto, se todos os arquivos fossem locais, distribuições diferentes não seriam capazes de se comunicar umas com as outras. Para que isso seja possível, são necessários arquivos globais. Esses arquivos existem.



$ brl which /bedrock/etc/bedrock.conf	
global
$ brl which /run	
global
$ brl which /tmp
global

      
      





Para os casos em que os processos de uma distribuição precisam alcançar os arquivos locais de outra, são implementados caminhos cruzados. Por exemplo, para ler o arquivo os-release de um estrato para outro, você precisa acessar os recursos do sistema de arquivos usando o caminho / bedrock / strata /. A própria base do estrato serve apenas para leitura cruzada e gravação de arquivos. Internamente, crossfs é um sistema de arquivos FUSE no qual os arquivos solicitados são sobrescritos instantaneamente para garantir a compatibilidade entre diferentes camadas.



$ brl which /bedrock/strata/bedrock/etc/os-release 
bedrock
$ cat /bedrock/strata/bedrock/etc/os-release
NAME="Bedrock Linux"
ID=bedrock
ID_LIKE=bedrocklinux
VERSION="0.7.19 (Poki)"
VERSION_ID="0.7.19"
PRETTY_NAME="Bedrock Linux 0.7.19 Poki"
HOME_URL="https://bedrocklinux.org"
$ brl which /bedrock/strata/my-alpine/etc/os-release 
my-alpine
      
      





Se você precisa executar um comando interno de um estrato específico, você deve usar o prefixo apropriado.



$ strat void sh -c 'apk --help'
      
      





Atualização do leito rochoso



Bedrock é simples e direto de atualizar Como todas as distribuições Linux, apenas execute brl update como root. Este comando irá atualizar apenas o estrato Bedrock, o resto dos estratos são atualizados com suas próprias ferramentas padrão: por exemplo, yum update ou dnf update para Redhat e CentOS.



Removendo estratos



Nada muito complicado - primeiro a distribuição é desligada e depois a desinstalação.



$ sudo brl disable alpine
$ sudo brl remove alpine
$ sudo remove -d void
      
      





O último comando combina as operações de desativar e remover.



Para que realmente serve o Bedrock Linux?



Neste ponto, muitos leitores provavelmente estão se perguntando: por que você precisa cruzar um ouriço com uma cobra e criar um sistema operacional híbrido, porque uma estação de trabalho Linux em si nem sempre é bastante estável, especialmente com drivers de placa gráfica fechados ou em um Sessão de Wayland . Vamos tentar listar alguns cenários para usar o Bedrock Linux na prática.



  • Você prefere distribuições Linux estáveis, como RedHat e Debian, mas também precisa de suporte para novo hardware: CPU ou uma impressora recém-adquirida. Para obter este suporte, você precisa instalar um kernel mais recente e pacotes de copinhos, hplips. Esta tarefa pode ser resolvida uma vez, mas um sistema estável com pacotes instáveis ​​não é mais o mesmo
  • , . , systemd openrc, runit, Ubuntu.
  • , Linux, . sh bash Debian, /bin/sh /bin/bash. Bedrock Linux stratum Debian Linux.
  • Linux OS. .





All Articles