Estoy tratando de ejecutar algunos experimentos con Linux y buscar la distribución más pequeña por tamaño de instalación. (RAM, CPU realmente no importa)
Estoy tratando de ejecutar algunos experimentos con Linux y buscar la distribución más pequeña por tamaño de instalación. (RAM, CPU realmente no importa)
Respuestas:
Actualización: ttylinux no se mantiene en este momento! Si todavía está interesado, comience aquí o aquí .
Dependiendo de su plataforma, ttylinux es quizás algo para usted:
Este sistema ttylinux más pequeño tiene un sistema de archivos de 8 MB y se ejecuta en computadoras i486 con 28 MB de RAM, pero proporciona un entorno de línea de comandos completo y está listo para el acceso a Internet.
Comenzó en 2001 y la última versión es del 2015-03-05, por lo que aún se mantiene.
OpenWrt es también uno de los más pequeños.
Si está dispuesto a pasar por un proceso de compilación y reducir las funciones, puede probar buildroot . Creé una instalación de Linux muy básica (esencialmente solo el kernel, utilidades mínimas de Busybox y una aplicación adicional) que encaja en una imagen ISO de 6MB.
La clave aquí es reducir el kernel y la configuración de Busybox ("make linux-nconfig" y "make busybox-menuconfig") al mínimo necesario, y luego habilitar la compresión XZ en el disco RAM del kernel inicial. Reducir todo lo que no necesitaba me permitió reducir toda la imagen ISO a unos 9 MB, y después de habilitar la compresión XZ a 6 MB.
Para el kernel, simplemente verifiqué cada opción en el menú de configuración y la desactivé a menos que la necesitara específicamente. Puede deshabilitar todos los controladores de red para los que no tiene un adaptador de red correspondiente, deshabilitar otro hardware menos común que no prevé usar (tarjetas serie de múltiples puertos, joysticks, dispositivos multifunción ...) y así en. También puede dejar muchos subsistemas en las implementaciones básicas en lugar de otras más sofisticadas (p. Ej., Estados inactivos de CPU ACPI básicos en lugar de estados inactivos de CPU Intel / AMD), lo que puede significar que va a cambiar la eficiencia energética y el soporte de hardware completo para el tamaño del núcleo. También puede deshabilitar subsistemas completos, como soporte de hibernación / suspensión y sistema de sonido si no necesita usarlos.
Podría ahorrar mucho espacio haciendo eso. Por ejemplo, los módulos de soporte KVM (virtualización) y btrfs (que decidí poner fuera del núcleo como módulos cargables en caso de que los necesite en el futuro) ocupan 1.1 MB por sí mismos. Al eliminar esos archivos de módulo, puede bajar a aproximadamente 4.9MB. Puede ser que ocupen menos espacio integrado en el binario del núcleo, pero luego he visto que otros módulos más pequeños tienen un tamaño de 20 a 100 kilobytes, por lo que su kilometraje puede variar.
Busybox es un binario único que se comporta como diferentes binarios dependiendo de cómo se llame desde la línea de comandos, lo que le permite ahorrar espacio. Está incluido en Buildroot por defecto. Puede comportarse como ls, df, dd, cat, nc, bash y muchos otros. Parece un buen reemplazo para casi todo el país de usuarios * nix, a menos que necesite algunas extensiones de utilidad específicas que solo puede encontrar en versiones más completas / tradicionales (por ejemplo, GNU, BSD) de estas utilidades. Busybox es similar al kernel en términos de funciones de deshabilitación: deshabilite todo excepto los binarios (applets AKA) que necesita, y el tamaño se reducirá. El binario Busybox compilado dinámicamente ocupa 512 kilobytes en Buildroot y aproximadamente 2.1 MB en Ubuntu 14.10. La versión más grande de Ubuntu admite mucho más que mi versión Buildroot, y '
Puede probar algunas de las siguientes cosas para reducir aún más el tamaño, pero haga copias de seguridad del directorio de trabajo con frecuencia, ya que puede interrumpir la instalación de Buildroot en la que está trabajando y puede que tenga que reconstruir algunos de los archivos binarios.
Comprima todos los ejecutables (incluido el kernel) con el compresor UPX. Dado que UPX está diseñado específicamente para realizar una compresión ejecutable, esto hace que los ejecutables resultantes sean mucho más pequeños. Pero asegúrese de probar todos los ejecutables después y de que funcionen correctamente.
Usa una libc diferente. Estoy usando uClibc, pero escuché que musl y dietlib son mucho más pequeños y producen ejecutables más pequeños. Esta vez tuve algunos problemas de construcción con musl, pero puede funcionar mejor.
Reemplace algunas o todas las utilidades de userland con asmutils . Estas utilidades implementan algunas de las utilidades comunes * nix en ensamblador puro (en lugar de C u otros lenguajes), lo que teóricamente permite un código mucho más compacto. Algunos de ellos funcionan bien, pero otros solo se pueden usar de formas muy básicas (por ejemplo, "montaje" solo toma parámetros en una secuencia específica y no se implementan opciones de montaje específicas para FS). Por otro lado, son muy pequeños (la mayoría son menos de 1 KB compilados, los más pequeños de unos 139 bytes más o menos). Puede elegir cuáles quiere usar, por lo que puede usar estos reemplazos solo para los comandos en los que desea ahorrar espacio y mantener más versiones ricas en características como applets de Busybox.
Tomsrtbt es un par de megabytes; cabe en un disquete.