- Manual paso a paso que guía al usuario para construir directamente un sistema Linux desde el código fuente
- La versión 12.4 se publicó el 1 de septiembre de 2025 e incluye el kernel 6.16.1 más reciente, además de GCC 15.2.0 y Glibc 2.42, entre otros
- Cubre todo el proceso, desde la configuración de una cadena de herramientas cruzada, la instalación de herramientas temporales y hasta completar un sistema arrancable
- Cada capítulo ofrece una separación detallada de lista de paquetes, orden de compilación, procedimientos de prueba y configuración del sistema
- Es un recurso importante para que desarrolladores e ingenieros de sistemas aprendan la estructura interna de Linux y creen distribuciones personalizadas
Descripción general
- Linux From Scratch (LFS) es un proyecto diseñado para que el usuario construya directamente un sistema Linux sin usar una distribución existente
- Explica paso a paso el proceso de compilar y configurar todos los componentes desde el código fuente
- Fue creado por Gerard Beekmans, y Bruce Dubbs está a cargo de la edición y mantenimiento
- La documentación se ofrece en forma de manual en línea basado en HTML, y en cada etapa se indican enlaces detallados y versiones de paquetes
Información de versión
- La versión estable actual es la 12.4, publicada el 1 de septiembre de 2025
- El copyright pertenece a Gerard Beekmans para 1999–2025
- La versión más reciente incluye paquetes principales como Linux 6.16.1, GCC 15.2.0, Glibc 2.42 y Python 3.13.7
Estructura del documento
- El documento está compuesto por 5 partes principales: prefacio, preparación de la compilación, construcción de la cadena de herramientas cruzada, compilación del sistema, configuración de arranque y apéndices
- Prefacio (Preface): explica el público objetivo, los conocimientos necesarios, el cumplimiento de estándares y los motivos de selección de paquetes
- Preparación de la compilación (Preparing for the Build): incluye requisitos del sistema anfitrión, creación de particiones y configuración de variables de entorno
- Construcción de la cadena de herramientas cruzada y herramientas temporales (Building the LFS Cross Toolchain and Temporary Tools): configura compiladores clave como Binutils, GCC y Glibc
- Compilación del sistema LFS (Building the LFS System): instalación y configuración del software principal del sistema
- Hacer arrancable el sistema LFS (Making the LFS System Bootable): compilación del kernel y configuración de GRUB
- Apéndices (Appendices): incluye abreviaturas, dependencias, scripts de arranque y licencias
Componentes principales
- La lista de paquetes incluye más de 100 utilidades y bibliotecas esenciales
- Ejemplos: Coreutils 9.7, Bash 5.3, Perl 5.42.0, Python 3.13.7, OpenSSL 3.5.2, Systemd Udev 257.8
- Para cada paquete se enumeran de forma concreta las etapas de instalación, pruebas y limpieza (cleanup)
- Incluye scripts de arranque basados en SysVinit 3.14 y configuración del cargador de arranque GRUB 2.12
Configuración del sistema y arranque
- El capítulo 9 (System Configuration) cubre red, locales, administración de dispositivos y configuración de entrada
- El capítulo 10 (Making the LFS System Bootable) incluye el proceso de creación de
/etc/fstab, compilación del kernel y configuración de GRUB
- El capítulo 11 (The End) guía sobre el reinicio del sistema y materiales para aprendizaje posterior
Apéndices y licencia
- El apéndice D incluye las versiones 20250827 de los scripts
boot y sysconfig
- El apéndice F especifica dos licencias: Creative Commons y MIT License
- También ofrece materiales de referencia como lista de dependencias, glosario y agradecimientos
Importancia
- LFS es un proyecto educativo y de investigación que permite experimentar directamente los principios de construcción y la arquitectura interna de Linux
- Es utilizado por administradores de sistemas, desarrolladores de distribuciones e investigadores de seguridad como referencia estándar para construir un entorno Linux mínimo
1 comentarios
Comentarios en Hacker News
Empezó en 1999 y lo usó hasta 2001, pero lo dejó porque gestionar dependencias y recompilar era demasiado difícil
En ese entonces la documentación no era tan detallada como ahora, así que había que rastrear muchas cosas por cuenta propia, y también había muchos paquetes poco conocidos
Aun así, recuerda con gusto la época en que se pasó a Slackware, compilaba paquetes como XFree86 y GNOME por su cuenta y hasta contribuía
Si tienes tiempo, lo recomienda totalmente. Cambia por completo tu manera de ver Linux
Ahora sí parece algo que valdría la pena intentar otra vez en una máquina virtual
La verdadera fuerza de LFS/BLFS es que puedes ajustar el sistema según tu propio uso
Yo estoy siguiendo 4000 proyectos con un script de Ruby. Si gem-coop llega a convertirse en una alternativa a rubygems.org comercial, volveré a publicar mi proyecto
Nunca usé realmente el sistema terminado, pero valió la pena dedicarle varias noches
Creo que esa mejora en el acceso a la información es una gran razón del crecimiento de Linux
De joven, al hacer LFS, aprendí que era posible acceder hasta los niveles más bajos de una computadora
Aunque Gentoo o Arch dan un efecto de aprendizaje similar y toman mucho menos tiempo de instalación
Mucha gente dice “en vez de Gentoo me voy por LFS”, pero la mayoría abandona a medio camino o termina odiando para siempre las distribuciones basadas en código fuente
Compara Slackware y LFS con Haskell, diciendo que irse demasiado al extremo acaba siendo improductivo
LFS tiene mucha documentación, y aunque Slackware ya quedó atrás, el esfuerzo de Patrick fue impresionante
Iba recogiendo piezas de PC 386/486 en un almacén de reciclaje de PC en Seattle, las armaba e instalaba Linux
Creció aprendiendo Linux con esas computadoras Frankenstein que iba construyendo
Con un sistema basado en RPM, las funciones transaccionales de dnf permiten ver el historial de instalación y hacer rollback, así que administrarlo es mucho más cómodo
Si sigues el libro una vez y construyes un sistema operativo, luego es mucho más fácil entender las diferencias entre otras distribuciones y se genera una sensación de apropiación del sistema
Como era compilación cruzada para ARMv6, fue muy difícil, pero aprendió muchísimo
Automatizó las compilaciones con Jenkins y armó el sistema con scripts de bash y Makefile
La imagen final pesaba unos 40 MB, y eso por sí solo le dio mucha satisfacción
le quedó muy grabada la frase “nunca te saltes las pruebas”
Como glibc también permite que algunas pruebas fallen, él puso una frase parecida en las pruebas de su propio software
Al ver la advertencia de “si te saltas este paso, el sistema puede quedar roto”, sintió que era como una distribución Linux tipo Dark Souls
Recompilar el kernel es pesado por la enorme cantidad de opciones, pero este tipo de aprendizaje es parte del encanto de Linux
Es una cultura difícil de ver en otros sistemas operativos, especialmente Windows
Se pregunta si existirá una versión de LFS para BSD