6 puntos por GN⁺ 2026-01-22 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2026-01-22
Comentarios en Hacker News
  • Cuenta su experiencia construyendo Linux From Scratch (LFS) directamente para aprender el funcionamiento interno de un sistema Linux
    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
    • También existe una versión de LFS con systemd, además de Gaming LFS y una versión con sistema de compilación automatizada
    • Yo también lo intenté por ahí de 1999, pero en ese tiempo faltaban explicaciones y todo era más bien de “escribe este comando”
      Ahora sí parece algo que valdría la pena intentar otra vez en una máquina virtual
    • Wayland en realidad es simple. Tiene menos cosas que configurar que systemd
      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
    • Yo también lo hice en la preparatoria (por ahí de 2005), y la experiencia de compilar decenas de proyectos mientras aprendía cómo encaja todo en el sistema fue excelente
      Nunca usé realmente el sistema terminado, pero valió la pena dedicarle varias noches
    • En esa época había que rastrear las dependencias a mano, pero ahora puedes obtener respuestas al instante con cosas como ChatGPT
      Creo que esa mejora en el acceso a la información es una gran razón del crecimiento de Linux
  • Cada vez que veo este proyecto le doy upvote
    De joven, al hacer LFS, aprendí que era posible acceder hasta los niveles más bajos de una computadora
    • Yo también lo hice de adolescente en 1999, y era el momento perfecto: suficientemente inteligente para resolver problemas y con muchísimo tiempo libre
    • Ahora hay muchas más cosas que compilar. Se agregaron LLVM, cmake, meson y otras más, así que el tiempo de compilación se alargó, pero sigue funcionando bien
  • Si alguien dice que quiere entender la esencia de una distribución Linux, siempre le recomiendo LFS
    • Yo también aprendí aquí una buena parte de lo que sé sobre Linux
      Aunque Gentoo o Arch dan un efecto de aprendizaje similar y toman mucho menos tiempo de instalación
    • Siento que gracias a LFS aprendí más sobre sed, gcc CFLAGS y bootstrapping que sobre el propio sistema operativo
  • Comparte una cita del blog “20 Years of Gentoo”
    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
    • Haskell es difícil, pero Slackware y LFS son simples. No me parece una comparación acertada
      LFS tiene mucha documentación, y aunque Slackware ya quedó atrás, el esfuerzo de Patrick fue impresionante
    • Yo también tuve una experiencia parcialmente rota. La pila de red se comportaba distinto según el programa, y desde entonces no lo he vuelto a intentar
  • Por ahí de 2006 compró la edición impresa del libro de LFS
    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
  • Después de más de 25 años usando Linux, dice que hoy construir LFS manualmente le parece una pérdida de tiempo
    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
    • LFS es un proceso de entrenamiento para aprender. El objetivo no es que sea fácil, sino exponer los niveles más bajos del sistema operativo
    • El valor de LFS no está en el sistema terminado, sino en el proceso de comprensión
      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
    • Se pueden implementar funciones parecidas incluso sin RPM. Yo uso AppDir versionado, y NixOS garantiza el estado con directorios hasheados y nix
    • Ante el consejo de “ve solo por el camino fácil”, responde que no hay que desanimar a la gente que quiere intentar algo nuevo
  • El BLFS (Beyond Linux From Scratch) que mencionan varios comentarios puede verse en este enlace
  • En 2014 hizo Cross-Linux From Scratch para compilar una versión para Raspberry Pi
    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
  • Al leer el capítulo de pruebas de glibc
    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
    • Sí, de verdad se siente así
  • LFS/BLFS no es perfecto, pero es un buen ejemplo del conocimiento y la aplicación de Linux
    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