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

21

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

slashmais
fuente

Respuestas:

9

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 desde allí construye el resto de su sistema. Gentoo también se mantiene bastante cerca de los paquetes ascendentes, por lo que no tendrá demasiados problemas si desea descargar y crear algunos paquetes usted mismo (y, de hecho, puede agregarlos al archivo /etc/portage/package.provided después de que estén instalados, ¡y úselos como dependencias!)

Si está buscando el sistema Linux más pequeño y absoluto posible, cree su propio kernel, eliminando 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 arrancable en un solo ejecutable (al que puede apuntar su gestor de arranque), y que puede caber en menos de 10 MB sin siquiera intentarlo.

p-static
fuente
Su último para - Creo que sería un buen lugar para comenzar. Entonces sabré qué hay y por qué está allí, usándolo como base para crecer.
slashmais
10MB? Probablemente podría hacerlo por debajo de 1 MB
Falmarri
8

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

Junto con un grupo de desarrollo de base , si va a hacer algún desarrollo del sistema.

Stefan
fuente
3
En la dirección correcta, todavía incluye muchos paquetes, pero puedo usar lo que dan y cortar paquetes hasta que las cosas se rompan.
slashmais
La instalación de Arch se ha vuelto mucho más modular que 2010: hablando desde la memoria / sin girar una instalación nueva, la utilidad 'pacstrap' le ofrece la opción de qué grupos usar, incluyendo solo 'base' o posiblemente incluso nada (aunque Creo que base contiene las cosas del sistema). Si quiere ir un paso más allá pero aún tiene una distribución de uso al menos vagamente común, Slackware es probablemente la indicada.
djvs
La instalación de Arch es mucho menos modular que antes, ya que solo admiten oficialmente am64 arch, systemd-only para init, etc. Sin embargo, yo también recomendaría Slackware.
Lucas Ramage
8

Si realmente desea lo mínimo de lo que es un sistema Linux, puede intentar distribuciones para sistemas integrados como enrutadores. Normalmente solo tienen el mínimo absoluto de software y la falta común de una interfaz gráfica de usuario lo 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, por ejemplo, instalan software en lugares poco comunes o usan sistemas init simplificados.

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

fschmitt
fuente
Puedo usar OpenWrt como referencia; Me alegrará si puede señalar otros sitios de este tipo. Ya estoy usando VirtualBox y tienen una guía rápida para instalar OpenWrt.
slashmais
Quizás Debian incrustado: emdebian.org
fschmitt
8

Rootfs ejecutables individuales

El sistema mínimo absoluto se ejecuta un solo /initprograma como he explicado en una sola aplicación Linux | Super usuario

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 8 Mb con ellos

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

Con QEMU puede iniciar fácilmente en el sistema.

Lo he modificado para permitir que se ejecute desde el directorio de origen 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.

Como 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 gestionan:

  • Cadena de herramientas de compilación cruzada GCC
  • compilación del núcleo
  • compilación del gestor de arranque
  • generación de rootfs
  • tiene toneladas de recetas de descarga / compilación de paquetes en el árbol de origen, incluidas cosas complejas como GTK. Hay 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?

Batalla profesional probado cosas utilizadas 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.

Ver también

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
fuente
1
Finalmente fui a la ruta LFS.
Tomó
6

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

Arafangion
fuente
suena bien - enlaces?
slashmais
no te preocupes - lo encontré
slashmais
44
¿Quién todavía tiene una unidad de disquete en estos días? ;)
p-static
1
Estoy mirando uno ahora mismo. Pero solo lo he usado una vez en los años que he tenido la PC.
lamcro
3
@ p-static: estoy usando una caja vieja como servidor de impresión; todavía tiene una unidad de disquete de 8 1/4 pulgadas y lo acabo de probar con disquetes de 20 años, ¡sorprendentemente, los disquetes todavía están bien! con datos no corrompidos en ellos también (código turbo pascal v3 de días de estudiante).
slashmais
4

Puedes probar Slackware linux. La instalación basada en menús le permitirá instalar un sistema mínimo. Puede dejar 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 núcleo específicamente para la máquina en la que instaló.

Slackware sigue siendo 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 de arranque, qué contiene tu initrd, etc., etc.

Bruce Ediger
fuente
3

¡Para mí, Damn Small Linux obtuvo el nombre de "la distribución de Linux más pequeña posible"! Sin embargo, escuché que es algo 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, le sugeriré Gentoo o Arch Linux , ambos instalan un sistema base. Tú eliges qué usar e instalar paquetes a medida que crecen tus necesidades.

phunehehe
fuente
No es espacio: aprender Linux. He examinado la mayoría de ellos, así como LFS, pero LFS te obliga a hacer / agregar cosas con, según parece, no hay suficiente explicación.
slashmais
3
Si quieres aprender, Archlinux es realmente bueno. El Arco Wiki tiene MUCHO de información clara y servicial.
Stefan
parece que he cambiado el objetivo después de disparar, lo siento: o
slashmais
2

Lo que debe hacer es descargar el kernel más reciente de kernel.org, hacer make menuconfigy solo mirar las opciones, y usarlo como punto de partida para la investigación y la investigación. Aprenderás mucho

LawrenceC
fuente
"El tiempo es mi enemigo". - En realidad no, pero definitivamente estaré estudiando tu sugerencia.
slashmais
0

Podrías mirar Puppy Linux . Puede que no sea el más pequeño, pero tiene la reputación 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, me gustaría un Debian en vivo en alguna parte. . Obtendría las fuentes de kernel de Debian, las fuentes de bash y las fuentes de grub de compilación cruzada e instalación. Luego, compile de forma cruzada instale un editor, apt y gcc. Luego, genere una lista de paquetes de Debian Live. Instale la fuente para cada paquete, compile e instale. Luego agregue X, luego la Wm de su elección, luego tendrá la base para lo que desea hacer.

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

HandyGandy
fuente