El objetivo de LSB es desarrollar y promover un conjunto de estándares abiertos que aumentarán la compatibilidad entre distribuciones de Linux y permitirán que las aplicaciones de software se ejecuten en cualquier sistema compatible, incluso en formato binario . Además, el LSB ayudará a coordinar esfuerzos para reclutar proveedores de software para portar y escribir productos para sistemas operativos Linux.
El cumplimiento de la LSB puede certificarse para un producto mediante un procedimiento de certificación. [1]
LSB especificó bibliotecas estándar (centradas en ld-lsb.so), una serie de comandos y utilidades que amplían el estándar POSIX , el diseño de la jerarquía del sistema de archivos , los niveles de ejecución , el sistema de impresión, incluidos los spoolers como CUPS y herramientas como Foomatic , y varias extensiones. al sistema X Window . También especificaba funciones de arranque, como $local_fs , $network , que se utilizaban para indicar dependencias de servicios en scripts de inicialización estilo System V. [2] Un bloque de comentarios legible por máquina en la parte superior de un script proporcionó la información necesaria para determinar en qué punto del proceso de inicialización se debe invocar el script; se llamó encabezado LSB. [3]
El comando lsb_release -aestaba disponible en muchos sistemas para obtener los detalles de la versión de LSB, o podría estar disponible instalando un paquete apropiado, por ejemplo el redhat-lsbpaquete en distribuciones con sabor a Red-Hat como Fedora , [4] o el lsb-releasepaquete en distribuciones basadas en Debian. distribuciones.
El estándar dejó de actualizarse en 2015 y las distribuciones actuales de Linux no lo adhieren ni lo ofrecen; sin embargo, en ocasiones el lsb_releasecomando todavía está disponible. [ cita necesaria ] El 7 de febrero de 2023, un ex mantenedor del LSB escribió: "El proyecto LSB está esencialmente abandonado". [5]
Un ejemplo de salida LSB en una terminal (Debian versión 11)
LSB fue diseñado para ser compatible con binarios y produjo una interfaz binaria de aplicación (ABI) estable para proveedores de software independientes . Para lograr compatibilidad con versiones anteriores, cada versión posterior fue puramente aditiva. En otras palabras, sólo se agregaron interfaces; no se eliminaron interfaces. El LSB adoptó una política de desaprobación de la interfaz para dar a los desarrolladores de aplicaciones tiempo suficiente en caso de que se eliminara una interfaz del LSB.
Esto permitió al desarrollador confiar en cada interfaz de LSB durante un tiempo determinado y también planificar los cambios. Las interfaces sólo se eliminaron después de haber sido marcadas como "obsoletas" durante al menos tres versiones principales, o aproximadamente once años. [6]
LSB 5.0 fue la primera versión importante que rompió la compatibilidad con versiones anteriores. [7]
Historial de versiones
1.0: Lanzamiento inicial el 29 de junio de 2001.
1.1: Publicado el 22 de enero de 2002. Se agregaron especificaciones específicas de hardware ( IA-32 ).
1.2: Publicado el 28 de junio de 2002. Se agregaron especificaciones específicas de hardware ( PowerPC de 32 bits ). La certificación comenzó en julio de 2002.
1.2.1: Publicado en octubre de 2002. Se agregó Itanium .
1.3: Publicado el 17 de diciembre de 2002. Se agregaron especificaciones específicas de hardware (Itanium, Enterprise System Architecture/390, z/Architecture).
2.0: Publicado el 31 de agosto de 2004
LSB está modularizado a LSB-Core, LSB-CXX, LSB-Graphics y LSB- I18n (no publicado)
Nuevas especificaciones específicas de hardware (PowerPC de 64 bits , AMD64 )
2.0.1: Lanzada el 21 de octubre de 2004, versión ISO de LSB 2.0, que incluía especificaciones para todas las arquitecturas de hardware (excepto LSB-Graphics, de la cual sólo está disponible una versión genérica).
2.1: Publicado el 11 de marzo de 2005.
3.0: Publicado el 1 de julio de 2005. Entre otros cambios en la biblioteca:
Los módulos de "Uso de prueba" de LSB 4.0, que cubren multimedia ( ALSA ), seguridad (NSS) y diversos escritorios ( xdg-utils ), se han promocionado como submódulos requeridos.
Bibliotecas GTK+ , Cairo y CUPS actualizadas
Se agregaron tres nuevos conjuntos de pruebas
5.0: Publicado el 2 de junio de 2015. Esta versión se presentó como ISO/IEC 23360:2021.
Primera versión importante que rompe la compatibilidad con versiones anteriores (compatible con LSB 3.0 y mayoritariamente compatible con LSB 3.1 y posteriores, con algunas excepciones [10] )
Estrategia de módulo evolucionada; LSB está modularizado para LSB Core, LSB Desktop, LSB Languages, LSB Imaging y LSB Trial Use
Estándar ISO/IEC
El LSB, versión 3.1, está registrado como estándar internacional oficial ISO / IEC . Las partes principales del mismo son:
ISO/IEC 23360-1:2006 Especificación básica 3.1 de Linux Standard Base (LSB) — Parte 1: Especificación genérica [11]
ISO/IEC 23360-2:2006 Especificación central 3.1 de Linux Standard Base (LSB) - Parte 2: Especificación para la arquitectura IA-32
ISO/IEC 23360-3:2006 Especificación central 3.1 de Linux Standard Base (LSB) — Parte 3: Especificación para la arquitectura IA-64
ISO/IEC 23360-4:2006 Especificación central 3.1 de Linux Standard Base (LSB) — Parte 4: Especificación para la arquitectura AMD64
ISO/IEC 23360-5:2006 Especificación central 3.1 de Linux Standard Base (LSB) — Parte 5: Especificación para la arquitectura PPC32
ISO/IEC 23360-6:2006 Especificación central 3.1 de Linux Standard Base (LSB) - Parte 6: Especificación para la arquitectura PPC64
ISO/IEC 23360-7:2006 Especificación central 3.1 de Linux Standard Base (LSB) — Parte 7: Especificación para la arquitectura S390
ISO/IEC 23360-8:2006 Especificación central 3.1 de Linux Standard Base (LSB) — Parte 8: Especificación para la arquitectura S390X
También existe ISO/IEC TR 24715:2006 que identifica áreas de conflicto entre ISO/IEC 23360 (la especificación Linux Standard Base 3.1) y el estándar internacional ISO/IEC 9945:2003 (POSIX). [12]
El LSB, versión 5.0, también está registrado como estándar internacional oficial ISO / IEC .
ISO/IEC 23360-1-1:2021 Linux Standard Base (LSB) - Parte 1-1: Definiciones comunes
ISO/IEC 23360-1-2:2021 Linux Standard Base (LSB) - Parte 1-2: Parte genérica de la especificación principal
ISO/IEC 23360-1-3:2021 Linux Standard Base (LSB) - Parte 1-3: Parte genérica de especificación de escritorio
ISO/IEC 23360-1-4:2021 Linux Standard Base (LSB) - Parte 1-4: Especificación de idiomas
ISO/IEC 23360-1-5:2021 Linux Standard Base (LSB) - Parte 1-5: Especificación de imágenes
ISO/IEC TS 23360-1-6:2021 Linux Standard Base (LSB) - Parte 1-6: Gráficos y especificación Gtk3
ISO/IEC 23360-2-2:2021 Linux Standard Base (LSB) - Parte 2-2: Especificación principal para la arquitectura X86-32
ISO/IEC 23360-2-3:2021 Linux Standard Base (LSB) - Parte 2-3: Especificación de escritorio para la arquitectura X86-32
ISO/IEC 23360-3-2:2021 Base estándar de Linux (LSB): Parte 3-2: Especificación principal para la arquitectura IA64 (Itanium™)
ISO/IEC 23360-3-3:2021 Linux Standard Base (LSB) - Parte 3-3: Especificación de escritorio para la arquitectura IA64 (Itanium TM)
ISO/IEC 23360-4-2:2021 Linux Standard Base (LSB) - Parte 4-2: Especificación central para la arquitectura AMD64 (X86-64)
ISO/IEC 23360-4-3:2021 Linux Standard Base (LSB) - Parte 4-3: Especificación de escritorio para la arquitectura AMD64 (X86-64)
ISO/IEC 23360-5-2:2021 Linux Standard Base (LSB) - Parte 5-2: Especificación principal para la arquitectura PowerPC 32
ISO/IEC 23360-5-3:2021 Linux Standard Base (LSB) - Parte 5-3: Especificación de escritorio para la arquitectura PowerPC 32
ISO/IEC 23360-6-2:2021 Linux Standard Base (LSB) - Parte 6-2: Especificación principal para la arquitectura PowerPC 64
ISO/IEC 23360-6-3:2021 Linux Standard Base (LSB) - Parte 6-3: Especificación de escritorio para la arquitectura PowerPC 64
ISO/IEC 23360-7-2:2021 Linux Standard Base (LSB) - Parte 7-2: Especificación principal para la arquitectura S390
ISO/IEC 23360-7-3:2021 Linux Standard Base (LSB) - Parte 7-3: Especificación de escritorio para la arquitectura S390
ISO/IEC 23360-8-2:2021 Linux Standard Base (LSB) - Parte 8-2: Especificación principal para la arquitectura S390X
ISO/IEC 23360-8-3:2021 Linux Standard Base (LSB) - Parte 8-3: Especificación de escritorio para la arquitectura S390X
ISO/IEC 23360 e ISO/IEC TR 24715 se pueden descargar gratuitamente desde el sitio web de ISO. [13]
La LSB fue criticada [15] [16] [17] [18] por no recibir aportaciones de proyectos, más notablemente el proyecto Debian , fuera de la esfera de sus empresas miembro.
Elección del formato del paquete RPM
LSB especificó que los paquetes de software deben entregarse como un instalador compatible con LSB [19] o (preferiblemente) entregarse en una forma restringida del formato RPM Package Manager . [20]
Esta elección del formato de paquete impidió el uso de otros formatos de paquetes existentes que no sean compatibles con RPM. Para abordar esto, el estándar no dictaba qué formato de paquete debía usar el sistema para sus propios paquetes, simplemente que se debía admitir RPM para permitir que los paquetes de terceros distribuidores se instalaran en un sistema conforme.
Limitaciones de Debian
Debian incluyó soporte opcional para LSB desde el principio, en la versión 1.1 en "woody" (3.0; 19 de julio de 2002), 2.0 en "sarge" (3.1; 6 de junio de 2005), 3.1 en "etch" (4.0; 8 de abril de 2007), 3,2 en "lenny" (5,0; 14 de febrero de 2009) y 4,1 en "wheezy" (7; 4 de mayo de 2013). Para utilizar paquetes RPM externos compatibles con LSB, el usuario final debe utilizar el programa Alien de Debian para transformarlos al formato de paquete nativo y luego instalarlos.
El formato RPM especificado por LSB tenía un subconjunto restringido de funciones RPM: para bloquear el uso de funciones RPM que no se podrían traducir a .deb con Alien u otros programas de conversión de paquetes, y viceversa, ya que cada formato tiene capacidades de las que carece el otro. En la práctica, no todos los paquetes binarios de Linux eran necesariamente compatibles con LSB, por lo que, si bien la mayoría podía convertirse entre .rpm y .deb, esta operación estaba restringida a un subconjunto de paquetes.
Al utilizar Alien, Debian era compatible con LSB para todos los efectos, pero según la descripción de su lsbpaquete, [21] la presencia del paquete "no implica que creamos que Debian cumple totalmente con la Base Estándar de Linux, y no debe interpretarse como una declaración de que Debian es compatible con LSB." [21]
Debian se esforzó por cumplir con la LSB, pero con muchas limitaciones. [22] Sin embargo, este esfuerzo cesó alrededor de julio de 2015 debido a la falta de interés y de mano de obra dentro del proyecto. [23] En septiembre de 2015, el proyecto Debian confirmó que, si bien el soporte para el Estándar de jerarquía del sistema de archivos (FHS) continuaría, el soporte para LSB se había eliminado. [24] Ubuntu siguió a Debian en noviembre de 2015. [25]
Calidad de los conjuntos de pruebas de cumplimiento
Además, los conjuntos de pruebas de cumplimiento fueron criticados por tener errores e incompletos; en particular, en 2005 Ulrich Drepper criticó al LSB por pruebas mal escritas que pueden causar incompatibilidad entre distribuciones certificadas por LSB cuando algunas implementan un comportamiento incorrecto para que las pruebas con errores funcionen, mientras que otras solicitar y recibir exenciones del cumplimiento de las pruebas. [26] También denunció la falta de pruebas de aplicaciones, señalando que probar solo distribuciones nunca puede resolver el problema de las aplicaciones que dependen de un comportamiento definido por la implementación. [26]
Para los proveedores que están considerando las certificaciones LSB en sus esfuerzos de portabilidad, la Fundación Linux patrocinó una herramienta que analizó y brindó orientación sobre símbolos y bibliotecas que van más allá del LSB. [27]
^ "Certificación de una solicitud ante la LSB". Fundación Linux . 2008. Archivado desde el original el 15 de julio de 2009 . Consultado el 26 de abril de 2010 .
^ "Nombres de las instalaciones". Especificación básica básica estándar de Linux 3.1 . 2005.
^ "Convenciones de comentarios para scripts de inicio". Especificación básica básica estándar de Linux 3.1 . 2005.
^ "Paquete redhat-lsb". fedoraproject.org . Archivado desde el original el 1 de septiembre de 2015 . Consultado el 15 de agosto de 2015 .
^ "Re: Archivo de esta lista de correo". lista de correo lsb-discute . 7 de febrero de 2023.
^ "Hoja de ruta de LSB". Fundación Linux . 2008 . Consultado el 26 de abril de 2010 .
^ "Notas de la versión de LSB 5.0". linuxfoundation.org . Archivado desde el original el 8 de julio de 2017 . Consultado el 3 de junio de 2015 .
^ djwm (10 de marzo de 2011). "Java eliminado de Linux Standard Base 4.1". Archivado desde el original el 7 de diciembre de 2013.
^ "Java eliminado de Linux Standard Base 4.1". h-online.com . 10 de marzo de 2011 . Consultado el 15 de agosto de 2015 .
^ "Notas de la versión de LSB 5.0: Qt 3 eliminado". linuxfoundation.org . Consultado el 3 de junio de 2015 .
^ ISO/IEC 23360-1:2006 - Especificación central 3.1 de Linux Standard Base (LSB) - Parte 1: Especificación genérica . Consultado el 15 de octubre de 2011 .
^ ISO/IEC TR 24715:2006 - Tecnología de la información - Lenguajes de programación, sus entornos e interfaces de software del sistema - Informe técnico sobre los conflictos entre ISO/IEC 9945 (POSIX) y la base estándar de Linux (ISO/IEC 23360) . Consultado el 15 de octubre de 2011 .
^ "Estándares ISO disponibles públicamente" . Consultado el 15 de octubre de 2011 .
^ Directorio de productos de productos certificados en linuxbase.org (12 de enero de 2015)
^ "Capítulo 22. Instalación del software 22.1. Introducción". Especificación básica básica estándar de Linux 3.1 . 2005.
^ "Capítulo 22. Instalación de software 22.3. Restricciones de secuencias de comandos del paquete". Especificación básica básica estándar de Linux 3.1 . 2005.
^ ab "Debian - Detalles del paquete lsb en lenny (estable) - Paquete de soporte Linux Standard Base 3.2". Proyecto Debian . 18 de agosto de 2008 . Consultado el 26 de abril de 2010 .
^ "Debian LSB". Proyecto Debian . Consultado el 26 de abril de 2010 .
^ "Discusión sobre Debian LSB ML". Proyecto Debian . Consultado el 12 de septiembre de 2015 .
^ "Debian abandona la base estándar de Linux". LWN.net .
^ "Paquete fuente lsb 9.20150917ubuntu1 en Ubuntu". 19 de noviembre de 2015.
^ ab Drepper, Ulrich (17 de septiembre de 2005). "¿Sigues pensando que el LSB tiene algún valor?" . Consultado el 26 de abril de 2010 .
^ "Todo sobre el comprobador de aplicaciones de Linux". Fundación Linux . 2008 . Consultado el 26 de abril de 2010 .
enlaces externos
Archivo de especificaciones básicas estándar de Linux, linuxfoundation.org
Base estándar de Linux (LSB), wiki.linuxfoundation.org
Proyecto Open Linux VERification (OLVER), linuxtesting.org
buscar paquetes lsb, pkgs.org
lsb, pkgs.org
lsb en Launchpad, launchpad.net - informes de errores
Medios de comunicación:
Otros proveedores participan en el creciente esfuerzo de LSB, 1998, debian.org: describe el desglose de los equipos (en ese momento) y quiénes estaban involucrados, de interés histórico.
Cuatro proveedores de Linux acuerdan una implementación LSB, 2004, slashdot.org
Sí, el LSB tiene valor, 2005, licquia.org – respuesta a Drepper por Jeff Licquia