it-swarm-es.tech

¿Cuál es la implementación de Linux más pequeña posible?

¿Cuáles son los componentes mínimos para que un sistema operativo Linux sea funcional y que pueda usar como base para expandirme y mejorar a medida que aprendo Linux y mi comprensión y necesidades crecen?

21
slashmais

Si te refieres a aprender Linux como a conocer el código fuente, quizás quieras probar Linux desde cero

26
Tobias Kienzler

Si está buscando aprender, Gentoo es una buena opción: la instalación mínima de Gentoo es un Shell raíz y un administrador de paquetes, y usted construye el resto de su sistema desde allí. Gentoo también se mantiene bastante cerca del flujo ascendente de los paquetes, por lo que no tendrá demasiados problemas si desea descargar y compilar algunos paquetes usted mismo (y de hecho, puede agregarlos al archivo /etc/portage/package.provided después de que estén instalados, ¡y utilícelos como dependencias!)

Si está buscando el sistema Linux más pequeño posible, cree su propio kernel, elimine todos los controladores y características que no planea usar, y luego agregue un initramfs que contenga una compilación de Busybox minimizada de manera similar. El resultado es un sistema Linux totalmente de arranque en un solo ejecutable (al que puede apuntar su gestor de arranque), y que puede caber en menos de 10 MB sin siquiera intentarlo.

9
p-static

rootfs ejecutable único

El sistema mínimo absoluto ejecuta un solo /init programa como he explicado en Aplicación única Linux | Superusuario

Minimal Linux Live

https://github.com/ivandavidov/minimal

Para un sistema interactivo más interesante, este es un pequeño script (principalmente educativo) que:

  • descarga la fuente del kernel y busybox
  • los compila
  • genera un ISO de arranque de 8Mb con ellos

El ISO luego te deja en un Shell mínimo con busybox.

Con QEMU puede iniciar fácilmente el sistema.

Lo modifiqué para permitir su ejecución desde el directorio fuente del kernel: https://github.com/cirosantilli/runlinux

Uso:

git clone https://github.com/ivandavidov/minimal
cd minimal/src
./build_minimal_linux_live.sh
# Wait.
# Install QEMU.
# minimal_linux_live.iso was generated
./qemu64.sh

y quedará dentro de una ventana QEMU con su nuevo sistema mínimo. Increíble.

Dado que es pequeño, esta es una buena opción para leer la fuente y comprender lo que está sucediendo.

Probado en Ubuntu 16.04.

Buildroot

https://buildroot.org/

Gran conjunto de scripts Makefile que administran:

  • Cadena de herramientas de compilación cruzada de GCC
  • compilación del kernel
  • compilación del gestor de arranque
  • generación de rootfs
  • tiene toneladas de recetas de descarga/compilación de paquetes en el árbol de fuentes, incluidas cosas complejas como GTK. Existe un sistema de dependencia.

Ejemplo mínimo:

git clone git://git.buildroot.net/buildroot
cd buildroot
git checkout 2016.05
make qemu_x86_defconfig
# Can't use -jN, use `BR2_JLEVEL=2` instead.
BR2_JLEVEL=2 make
# Wait.
# cat board/qemu/x86_64/readme.txt
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -Net User
# You are now in a Shell with BusyBox utilities.

Incluso tiene recetas para construir X11 desde cero: ¿Cómo instalar X11 en mi propio sistema Linux Buildroot?

Material profesional probado en batalla utilizado por algunas grandes empresas.

Alpine Linux

https://github.com/gliderlabs/docker-Alpine

Distribución integrada con un administrador de paquetes que ofrece binarios precompilados de un sitio web.

Véase también

Archlinux usa un grupo de archivos base para una instalación mínima.

Junto con un grupo base-devel , si va a realizar algún desarrollo del sistema.

8
Stefan

Si realmente desea lo mínimo de lo que es un sistema Linux, puede probar distribuciones para sistemas integrados como enrutadores. Normalmente solo llevan el mínimo absoluto de software y la falta común de una interfaz gráfica de usuario obliga a familiarizarse con la línea de comandos. Un inconveniente es que a menudo esos sistemas rompen las convenciones de las distribuciones regulares de Linux, p. instalan software en lugares poco comunes o utilizan sistemas de inicio simplificados.

Si desea intentarlo, puede intentar, por ejemplo, openwrt en una máquina virtual .

8
fschmitt

¿Cómo es que nadie ha mencionado tomsrtbt ? (Linux en un solo disquete de 1,44 ")

6
Arafangion

Podrías probar Slackware linux. La instalación basada en menús le permitirá instalar un sistema bastante mínimo. Puede omitir fácilmente las páginas man, X11, Tcl, Emacs y eso es solo desde la instalación de nivel superior. Puede sumergirse en la instalación y solo instalar un mínimo de paquetes.

Después de eso, recompilaría el kernel específicamente para la máquina en la que instaló.

Slackware todavía utiliza por defecto el administrador de arranque de Lilo, por lo que terminas sabiendo un poco más de lo que quieres saber sobre los sectores de arranque, qué partición está marcada como arrancable, qué contiene tu initrd, etc., que para las distribuciones arrancadas con Grub.

4
Bruce Ediger

Para mí, Damn Small Linux ¡obtuvo el nombre de "la distribución de Linux más pequeña posible"! Sin embargo, escuché que está un poco descontinuado. También puede ver una lista de distribuciones similares (llamadas "Mini Linux") en esta página wiki .

Si el espacio no es su objetivo, sugeriré Gentoo o Arch Linux , ambos instalan un sistema base. Usted elige qué usar e instalar paquetes a medida que aumentan sus necesidades.

3
phunehehe

Lo que debe hacer es descargar el último kernel de kernel.org, haga un make menuconfig y simplemente examine las opciones y utilícelo como punto de partida para la investigación y la investigación. Aprenderás mucho.

2
LawrenceC

Podrías mirar Puppy Linux . Puede que no sea el más pequeño, pero tiene fama de ser pequeño.

Sin embargo, los distrtos de Linux que están destinados a ser pequeños generalmente tienden a permanecer pequeños. Para aprender Linux, haría un debian en vivo en algún lugar. .Obtendría que las fuentes del núcleo de Debian, las fuentes de bash y las fuentes de grub se compilen e instalen de forma cruzada. Luego, realice una compilación cruzada, instale un editor, apt y gcc. Luego genere una lista de paquetes desde debian live. Instale el código fuente de cada paquete, compile e instale. Luego agregue X y luego el Wm de su elección, entonces tendrá la base de lo que desea hacer.

PD: apt-get source le ofrece la fuente de un paquete debian.

0
HandyGandy