stringtranslate.com

Linux desde cero

Linux From Scratch ( LFS ) es un tipo de instalación de Linux y el nombre de un libro escrito por Gerard Beekmans y, a mayo de 2021, mantenido principalmente por Bruce Dubbs. El libro brinda instrucciones a los lectores sobre cómo construir un sistema Linux desde el código fuente . El libro está disponible de forma gratuita en el sitio Linux From Scratch. [1]

Proyectos bajo el LFS

Linux From Scratch es una forma de instalar un sistema Linux funcional mediante la compilación manual de todos sus componentes. Naturalmente, se trata de un proceso más largo que el de instalar una distribución Linux precompilada . Según el sitio Linux From Scratch , las ventajas de este método son un sistema compacto, flexible y seguro y una mayor comprensión del funcionamiento interno de los sistemas operativos basados ​​en Linux. [5]

Para mantener LFS pequeño y enfocado, se creó el libro Beyond Linux From Scratch (BLFS), que presenta instrucciones sobre cómo desarrollar aún más el sistema Linux básico que se creó en LFS. Presenta y guía al lector a través de las adiciones al sistema, incluido el sistema X Window , entornos de escritorio ( KDE , GNOME , Xfce , LXDE ), software de productividad , navegadores web , lenguajes y herramientas de programación, software multimedia y herramientas de administración de redes y sistemas . Desde la versión 5.0, la versión del libro de BLFS coincide con la versión del libro de LFS. [6]

El libro Cross Linux From Scratch (CLFS) se centra en la compilación cruzada , incluida la compilación para sistemas sin interfaz gráfica o integrados que pueden ejecutar Linux, pero carecen de los recursos necesarios para compilar Linux. CLFS admite una amplia gama de procesadores y aborda técnicas avanzadas que no se incluyen en el libro LFS, como cadenas de herramientas de compilación cruzada, compatibilidad con múltiples bibliotecas ( bibliotecas de 32 y 64 bits una al lado de la otra) y arquitecturas de conjuntos de instrucciones alternativas como Itanium , SPARC , MIPS y Alpha .

El proyecto Linux from Scratch, al igual que BitBake , también admite la compilación cruzada de Linux para sistemas integrados ARM como Raspberry Pi y BeagleBone . [7] [8]

El libro Hardened Linux From Scratch (HLFS) se centra en mejoras de seguridad como parches de kernel reforzados , políticas de control de acceso obligatorias, protección contra la destrucción de la pila y aleatorización del diseño del espacio de direcciones . Además de su propósito principal de crear un sistema operativo centrado en la seguridad , HLFS tenía el objetivo secundario de ser una herramienta de enseñanza de seguridad. No se ha actualizado desde 2011.

Automated Linux From Scratch (ALFS) es un proyecto diseñado para automatizar el proceso de creación de un sistema LFS. Está dirigido a usuarios que han leído los libros LFS y BLFS varias veces y desean reducir la cantidad de trabajo que esto implica. Un objetivo secundario es actuar como una prueba de los libros LFS y BLFS extrayendo y ejecutando instrucciones directamente de las fuentes XML de los libros LFS y BLFS.

Requisitos y procedimiento

Para crear LFS se necesita una partición limpia y un sistema Linux en funcionamiento con un compilador y algunas bibliotecas de software esenciales . En lugar de instalar desde un sistema Linux existente, también se puede utilizar un Live CD para crear un sistema LFS.

El proyecto anteriormente mantenía el Live CD de Linux From Scratch. [9] El Live CD de LFS contiene todos los paquetes fuente (sólo en la versión completa del Live CD), el libro de LFS, herramientas de compilación automatizadas y (excepto en la versión mínima del Live CD) un entorno GUI de Xfce para trabajar. El Live CD oficial de LFS ya no se mantiene y no se puede utilizar para compilar la versión 7 o posterior de LFS. [9] Sin embargo, hay dos compilaciones no oficiales que se pueden utilizar para compilar un kernel y un espacio de usuario de 32 o 64 bits respectivamente para LFS 7.x. [10]

Primero, se debe compilar una cadena de herramientas que consiste en las herramientas utilizadas para compilar LFS, como GCC , glibc , binutils y otras utilidades necesarias. Luego, se debe cambiar el directorio raíz (usando chroot ) a la partición de la cadena de herramientas para comenzar a construir el sistema final. Uno de los primeros paquetes que se compilan es glibc; después de eso, el enlazador de la cadena de herramientas se debe ajustar para enlazar con el glibc recién construido, de modo que todos los demás paquetes que conformarán el sistema terminado también se puedan enlazar con él. Durante la fase chroot , la característica de hash de bash se desactiva y el directorio bin de la cadena de herramientas temporal se mueve al final de PATH. De esta manera, los programas recién compilados aparecen primero en PATH y el nuevo sistema se construye sobre sus propios componentes nuevos.

Lista de paquetes en LFS

[18] Esta es una lista de los paquetes incluidos en la versión 1.1.0 de CLFS. A menos que se indique lo contrario, esta lista es aplicable a todas las arquitecturas compatibles.

Unidad de construcción estándar

Una "unidad de compilación estándar" ("SBU") es un término utilizado durante el arranque inicial del sistema y representa la cantidad de tiempo necesaria para compilar el primer paquete en LFS en una computadora determinada. Su creación fue motivada por el largo tiempo que se requiere para compilar un sistema LFS y el deseo de muchos usuarios de saber cuánto tiempo tomará compilar un archivo tar de código fuente con anticipación.

A partir de la versión 10.1 de Linux From Scratch, el primer paquete que crea el usuario es GNU binutils. Al crearlo, se anima a los usuarios a medir el proceso de creación mediante construcciones de shell y a denominar ese tiempo como la "unidad de creación estándar" del sistema. Una vez que se conoce este número, se expresa una estimación del tiempo necesario para crear los paquetes posteriores en relación con la SBU conocida.

Varios paquetes creados durante la compilación tardan mucho más en compilarse que binutils, entre ellos la biblioteca C de GNU (con una calificación de 4,2 SBU) y la colección de compiladores de GNU (con una calificación de 11 SBU). La unidad debe interpretarse como una aproximación; varios factores influyen en el tiempo real necesario para compilar un paquete.

Recepción

LWN.net revisó LFS en 2004: [19]

Linux From Scratch es un proyecto maravilloso. Debería convertirse en material de lectura obligatoria para todos los cursos de formación sobre Linux y algo que todo entusiasta de Linux debería completar al menos una vez. Esto también crearía otro efecto secundario interesante: la gente que tiende a expresar rápidamente su insatisfacción en las listas de correo y foros de las distribuciones probablemente mostraría mucho más respeto por los desarrolladores. Instalar una distribución ya preparada es una tarea trivial. Construir un conjunto de 4 CD que contengan un sistema operativo estable, seguro y fiable, además de miles de aplicaciones, definitivamente no lo es.

Tux Machines escribió una reseña sobre Linux From Scratch 6.1 en 2005: [20]

Ahora, pasemos a BLFS. Lamentablemente, Beyond Linux From Scratch siempre parece tener un libro detrás. Para mí, no es una instalación real hasta que uno puede iniciar sesión en un administrador de ventanas.

Tux Machines también tiene una segunda [21] y una tercera parte [22] de la revisión.

Véase también

Otras distribuciones de Linux basadas en código fuente:

Referencias

  1. ^ ab "LFS News". www.linuxfromscratch.org . Consultado el 2 de septiembre de 2023 .
  2. ^ Beekmans, Gerard (2023). Linux From Scratch, versión 12.0 (PDF) .
  3. ^ Prefacio: Arquitecturas de destino LFS, Linux desde cero
  4. ^ "Apéndice D. Licencias LFS" . Consultado el 9 de agosto de 2023 .
  5. ^ ¿ Qué es Linux From Scratch?, Página de inicio del proyecto LFS
  6. ^ Gerard Beekmans: Beyond Linux From Scratch, versión 6.3 (agosto de 2008)
  7. ^ "Linux compilado de forma cruzada desde cero - Integrado".
  8. ^ Brendan Horan. "Raspberry Pi práctica". 2013. pág. 105.
  9. ^ ab "Página de inicio del proyecto LFS LiveCD". www.linuxfromscratch.org . Consultado el 25 de mayo de 2018 .
  10. ^ "Índice de /~kb0iic/livecdupd". clfs.org . Consultado el 25 de mayo de 2018 .
  11. ^ "Licencias para páginas de manual". www.kernel.org . Consultado el 25 de mayo de 2018 .
  12. ^ "NCURSES – Licencias" . Consultado el 9 de julio de 2013 .
  13. ^ "La "Licencia Artística" - dev.perl.org". dev.perl.org . Consultado el 25 de mayo de 2018 .
  14. ^ Artístico - archivo en el repositorio git de Perl 5
  15. ^ "Licencias de Perl". dev.perl.org . Consultado el 8 de enero de 2011 .
  16. ^ "Términos de licencia de Tcl/Tk" . Consultado el 8 de enero de 2011 .
  17. ^ "Nueva licencia", GitHub "facebook/zstd"
  18. ^ "LISTA: /lfs/descargas/stable/wget-list" (txt) .
  19. ^ "Aprender con Linux desde cero [LWN.net]". lwn.net . Consultado el 28 de marzo de 2020 .
  20. ^ "Linux From Scratch 6.1 (parte 1?) | Tux Machines". www.tuxmachines.org . Consultado el 28 de marzo de 2020 .
  21. ^ "Linux From Scratch 6.1 - Parte 2 - BLFS | Tux Machines". www.tuxmachines.org . Consultado el 28 de marzo de 2020 .
  22. ^ "Más allá de Beyond Linux desde cero (lfs - parte 3) | Tux Machines". www.tuxmachines.org . Consultado el 28 de marzo de 2020 .

Enlaces externos