Bedrock Linux: el kit de Lego para construir la distribución perfecta de Linux





Desde la llegada de Linux, han aparecido muchas distribuciones bastante pronto: Slack, RedHat, Debian, SUSE, etc. Entonces surgió el problema de elegir una distribución, porque cada una de ellas tiene sus propias características y ventajas que la hacen especial. RedHat y Debian son las distribuciones más estables y conservadoras, Ubuntu se centra en la usabilidad y tiene una gran interfaz de usuario, Gentoo es libre de elección y flexibilidad.



Todos los usuarios de Linux han tenido momentos en los que carecían de algunas de las características implementadas en otras distribuciones. A muchas personas en algún momento no les gustó que Debian cambiara a systemd y crearon una nueva distribución basada en él: Devuan. Algunos han cambiado a Gentoo, donde el usuario puede crear un entorno con dos sistemas de inicio: ambos openrc y systemd.



Diferentes distribuciones manejan este problema de manera diferente. La instalación de un paquete que no se encuentra en el repositorio normal se resuelve mediante contenedores acoplables o mediante los sistemas de paquetes autónomos snap y flatpak. Incluso puede instalar paquetes RPM en sistemas con el administrador de paquetes DEB. Gentoo tiene soporte para paquetes RPM y DEB. Todo esto funciona, pero no se escala bien y no es muy estable.



Los creadores de Bedrock Linux fueron más allá y crearon una metadistribución completa. Es posible utilizar no solo paquetes, sino también componentes de varias distribuciones de Linux, como los ladrillos de Lego. En un entorno, puede crear un sistema a partir de varios sistemas operativos Linux, por ejemplo, instalando paquetes Ubuntu adicionales sobre los componentes básicos de Debian y Arch. El script de instalación está disponible para las siguientes plataformas.



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


Por cierto, ¿por qué un script de instalación y no un disco de instalación completo o una imagen? La razón es que Bedrock Linux no tiene su propia distribución canónica, sino que hay un conjunto de recetas para ensamblar un sistema operativo a partir de un conjunto de ingredientes. En esto, Bedrock Linux es similar a otra meta-distribución de Gentoo, pero en un intento por abrazar la inmensidad, ha llegado a los límites de la cordura y posiblemente los ha cruzado.



Instalación de Bedrock y comandos básicos



Usando una distribución de Linux tradicional ya instalada con un script de instalación, Bedrock lo transforma en un sistema híbrido. Por ejemplo, ya tiene Debian instalado, utilizando el script de instalación, obtiene un entorno de ubicación conjunta con Ubuntu. Primero necesitas ejecutar como root.



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





El guión dará una advertencia de que estos no son ejercicios.



* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                                                               *
* 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
      
      





Es hora de familiarizarse con la tabla de compatibilidad de distribuciones de Linux. Las principales distribuciones populares tienen un buen grado de soporte, además de posiblemente OpenSUSE. La descarga y las instalaciones desatendidas no son compatibles con Linux Mint. Además, no te olvides de la tabla de compatibilidad entre componentes . Los binarios, por ejemplo, se transfieren bien de una distribución a otra, pero las fuentes no.



Si todas las comprobaciones son correctas, el script realiza los cambios necesarios en el sistema operativo, después de lo cual debe reiniciar la computadora para que los cambios surtan efecto. A partir de este momento, el usuario se encuentra en el entorno Bedrock Linux. Ahora puede instalar un sistema operativo adicional en un contenedor llamado estrato, algo así como un entorno chroot, en el que se hacen agujeros especiales para comunicarse con otros estratos.

Sin embargo, antes de comenzar, es aconsejable que se familiarice con el manual de instrucciones llamando a brl tutorial basics. Los comandos de Bedrock más simples, el propósito de cada uno es obvio.



# brl update
# brl version
# brl ctatus
      
      





Vea la lista de distribuciones disponibles e instale.



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







¿Cómo interactúan las distribuciones de Bedrock?



En ciertas situaciones, puede ejecutar comandos de diferentes estratos como si fueran parte del mismo sistema operativo Linux familiar. Por ejemplo, los comandos de void y alpine se pueden usar en la misma canalización. El primer comando establece el paquete jq en alpine, el segundo - jo en void. La canalización lee desde el segundo y se transfiere al primero, todo sucede de forma transparente para el usuario.



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





El sistema operativo Debian Linux original, que se vio afectado por --hijack, ahora también es solo estrato. Su existencia se puede adivinar ejecutando algunos de estos comandos.



$ brl which ls	
debian
$ brl which /
debian
      
      





Más específicamente, la salida de estos comandos coincidirá con el contenido del archivo / etc / os-release como se ve en el proceso de shell actual. Esto es lógico, ya que cada estrato ve solo su propio archivo local; de lo contrario, Debian y Ubuntu instalados en paralelo tropezarían con el contenido del archivo /etc/apt/sources.list.



Sin embargo, si todos los archivos fueran locales, las diferentes distribuciones no podrían comunicarse entre sí. Para que esto sea posible, se necesitan archivos globales. Estos archivos existen.



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

      
      





Para aquellos casos en los que los procesos de una distribución necesitan llegar a los archivos locales de otra, se implementan rutas cruzadas. Por ejemplo, para leer el archivo de lanzamiento del sistema operativo de un estrato a otro, debe acceder a los recursos del sistema de archivos utilizando la ruta / bedrock / strata /. El lecho de roca del estrato en sí solo sirve para archivos de lectura y escritura cruzados. Internamente, crossfs es un sistema de archivos FUSE en el que los archivos solicitados se sobrescriben sobre la marcha para garantizar la compatibilidad entre diferentes estratos.



$ 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
      
      





Si necesita ejecutar un comando interno de un estrato específico, debe usar el prefijo apropiado.



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





Actualización de Bedrock



Bedrock es simple y sencillo de actualizar Como todas las distribuciones de Linux, simplemente ejecute brl update como root. Este comando actualizará solo el estrato Bedrock, el resto de los estratos se actualizan con sus propias herramientas estándar: por ejemplo, yum update o dnf update para Redhat y CentOS.



Eliminando estratos



Nada demasiado complicado: primero se apaga la distribución y luego se desinstala.



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





El último comando combina las operaciones de desactivación y eliminación.



¿Para qué es realmente Bedrock Linux?



En este punto, es muy probable que muchos lectores se hagan la pregunta: ¿por qué necesita criar un erizo con una serpiente y crear un sistema operativo híbrido, porque una estación de trabajo Linux en sí no siempre es bastante estable, especialmente con controladores de tarjeta gráfica cerrados, o en un Sesión de Wayland . Intentemos enumerar algunos escenarios para usar Bedrock Linux en la práctica.



  • Prefiere distribuciones de Linux estables como RedHat y Debian, pero también necesita soporte para hardware nuevo: CPU o una impresora recién comprada. Para obtener este soporte, necesita instalar un kernel y los paquetes de cups más recientes, hplips. Esta tarea se puede resolver una vez, pero un sistema estable con paquetes inestables ya no es lo mismo
  • , . , systemd openrc, runit, Ubuntu.
  • , Linux, . sh bash Debian, /bin/sh /bin/bash. Bedrock Linux stratum Debian Linux.
  • Linux OS. .





All Articles