OnlyLinux

Construí o sistema OnlyLinux para fins de estudo, pois ele contempla somente o Kernel e o pacote de binários BusyBox!


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


Introdução

Antes de prosseguir, recomendo a leitura desta publicação sobre o Kernel Linux e o Sistema Operacional GNU, além de recomendar a leitura deste outro, sobre o processo de boot de um sistema Linux. Assim alguns termos que usarei nesta publicação ficarão mais claros e você poderá tirar melhor proveito do que for explicado abaixo!

Antes que alguém diga “ah mas ja existe o TinyCore que é funcional e pequeno“, de fato, até fizemos a análise dele aqui no site. Mas são sistemas para nichos diferentes: O TinyCore é minúsculo e funcional para o cotidiano por suportar uma dezena de programas nativos, além de suporte a alguns drivers Wifi, possuir navegador de internet, ter uma interface gráfica, etc. Nisso ele é bastante completo. Mas ao fazer tudo isso, sendo tão pequeno, removeram o suporte a outros drivers de hardware menos populares, temos o problema de que o sistema não inicializa por UEFI, entre outros. Ele é compacto porém lhe falta conteúdo.

Enquanto isso o OnlyLinux é um pouco menos amigável porém excepcionalmente compatível com todos os hardwares atuais e mais antigos que o Ubuntu 20.04 LTS (ou outra versão) igualmente suporta.

1. OnlyLinux

O projeto que desenvolvi chamado OnlyLinux consiste em um sistema simples voltado a estudantes, tal qual o MINIX, utilizando os arquivos extraídos de dentro do Ubuntu 20.04.

O gerenciamento do sistema é feito pelo GRUB, o que o torna maleável á quaisquer modificações por entusiastas. Além disso, o projeto permite que você feche uma .ISO dele para inicializá-lo diretamente em máquina virtual, CD e/ou permite gravá-lo num pendrive; Não importa o método escolhido, ele suporta inicializar por BIOS/CSM ou UEFI!

Em tamanho, ele fica um pouco maior que o TinyCore “Core” de 11 Mb, porém ainda menor que o TinyCore Full de 106 Mb: a .ISO do OnlyLinux tem 60Mb.

Modéstia parte quanto ao projeto, a vantagem aqui é que o Kernel está completo com todo o suporte a drivers de áudio, vídeo e demais periféricos que o Ubuntu 20.04 suporta atualmente. É o mini-sistema mais completo possível com base numa distro igualmente completa.

Após o lançamento do UBuntu 22.04 LTS  você poderá usa-lo de base para o OnlyLinux!

2. Base

A base do OnlyLinux é a seguinte:

  • Gestor de Boot GRUB
  • Gestor de Boot USB syslinux
  • Gestor de Boot CD isolinux.bin
  • Suporte a boot UEFI
  • Kernel Linux
  • Initrd do Ubuntu

E só!

As bases do UEFI, GRUB e binários do SysLinux ocupam aprox. 10 Mb do total.
O kernel e o initrd ocupam aprox. 50 Mb.

3. GNU/Linux?

Não, este sistema não é nem de longe GNU/Linux. – Tampouco os demais como Ubuntu, Debian e etc.

O conteúdo de Initrd contempla os binários do BusyBox que trás o básico essencial para o sistema funcionar.
Portanto é mais plausível chama-lo de “BusyBox/Linux” ou somente Linux.

4. Funcionamento

Como explicado sobre o processo de boot de um sistema Linux, de forma simples e resumida, temos:

  • A placa mãe busca pelo inicializador, no caso o GRUB, no disco rígido escolhido.
  • O GRUB aponta para o kernel Linux, o arquivo vmlinuz em /casper. Todos os drivers de hardware suportados – Intel, AMD, etc – estão ali dentro, compactados em um formato duplo e otimizado para não ocupar espaço.
  • O Kernel começa a inicializar o computador. Quando ele conclui, ele abre o Initrd, dele, inicia o Init e daí o Init, o primeiro processo, termina de inicializar o restante.

No caso do OnlyLinux, o boot termina quando o kernel completa o carregamento e extrai o conteúdo de initrd.
Ele vai entrar diretamente na famigerada tela do “initramfs“, que é o terminal do BusyBox, te dando um “mini” sistema operacional com total acesso ao hardware.

Note que o erro do Initramfs surge somente quando o disco está com algum problema, como falhas no EXT4. Ele é o sistema mais básico de qualquer distro Linux, estando embutido dentro do kernel. No caso do OnlyLinux, a tela de entrada dele é o proprio Initramfs! Portanto se você chegar até ela, estará tudo OK.

5. Recursos

Dentre todos os binários do BusyBox em /bin que estão disponíveis depois de inicializado, destaco:

  • cp
  • cat
  • ls
  • dd
  • diff
  • grep
  • cpio
  • btrfs
  • date
  • mount
  • tail
  • sync
  • pidof
  • kill
  • ip
  • ifconfig
  • gzip
  • fstrim
  • find
  • env
  • df
  • du
  • chmod
  • awk
  • Entre outros…

Dentre todos os binários do BusyBox em /sbin que estão disponíveis depois de inicializado, destaco:

  • blkid
  • dhclient
  • dmraid
  • swapon
  • Entre outros…

6. Informações do Hardware

Como processos de sistema como o “top”, “free”, “pstree” e outros comandos não estão no BusyBox, você precisa ir até a raíz do sistema para ver detalhes. Nesta e nesta publicações detalhei como é o conteúdo de /proc e /sys e mostrei a mágica que podem fazer num sistema bruto, no aspecto de ter total controle do hardware. Aqui, eles serão fundamentais. Entre os comandos disponíveis, temos:

  • Exibir processos do sistema:
    ls /proc
  • Exibir informações do processador:
    ls /proc/cpuinfo
  • Exibir informações da memória RAM:
    ls /proc/meminfo
  • Entre outros, os quais abordei aqui e aqui.

7. Download

Todos os dados do projeto, incluindo .ISO’s prontas e o script para criar uma nova ISO (baseado no Ubuntu 19.04) se encontram aqui.

Para criar uma imagem .ISO bootável a partir dos arquivos, o comando é este:

$ mkisofs -o OnlyLinux.iso -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -J -r OnlyLinux

Basta trocar esses arquivos pelos do Ubuntu de outras versões, o processo é o mesmo.

8. Trocando o Kernel

Você pode mudar o sistema bastando trocar o conteúdo de /casper por um kernel Linux e um initrd diferente!
Esses arquivos você pode extrair de uma .ISO de qualquer sistema Linux, explorando a pasta /casper dos mesmos.
Você pode inicializar um kernel da linha 2.x ou 3x que desejar, basta que seu hardware tenha suporte neles.

Trocando o vmlinuz, você pode inserir um kernel x32 ou outro de sua necessidade.
Já se mudar o initrd, mudará a base do sistema; caso use o initrd do Lubuntu por exemplo, ele vai te apontar para o instalador do Ubuntu Minimal, por ele ser a base daquela distro!

9. Conclusão

Inicializar o OnlyLinux pode lhe dar uma bela noção do que o Torvalds tinha em 1991: Somente seu kernel Linux + binários básicos. Na época dele, ele tinha o sistema operacional GNU (simplesmente o BASH, GCC, NANO, VIM, INIT, etc) que compunham um sistema operacional básico para compilar e operar o computador.

O initramfs aqui no caso nos dá essa visão e te permitirá ver como são as entranhas do sistema operacional de forma simplificada. Um Ubuntu por exemplo te dá acesso ao initramfs também, mas para isso precisará alterar parâmetros de boot.

Ter uma .ISO só para isso facilitará seus estudos em qualquer computador que desejar!

#UrbanCompassPony

2 comentários em “OnlyLinux”

  1. Bom Dia !

    Ref.: Texto neste artigo: “GNU/Linux? Não, este sistema não é nem de longe GNU/Linux. – Tampouco os demais como Ubuntu, Debian e etc.”

    Debian não é GNU/Linux ?

    Uso Linux há 12 anos, mas entendo-me como iniciante. Assim, estou sempre procurando aprender mais.

    Responder

Deixe um comentário