El objetivo de la LSB es desarrollar y promover un conjunto de estándares abiertos que aumenten la compatibilidad entre las distribuciones de Linux y permitan que las aplicaciones de software se ejecuten en cualquier sistema compatible, incluso en formato binario . Además, la LSB ayudará a coordinar los esfuerzos para reclutar proveedores de software para que adapten y escriban productos para los sistemas operativos Linux.
La conformidad con LSB podría certificarse para un producto mediante un procedimiento de certificación. [1]
LSB especificó bibliotecas estándar (centradas en el ld-lsb.so), una serie de comandos y utilidades que extienden el estándar POSIX , el diseño de la jerarquía del sistema de archivos , niveles de ejecución , el sistema de impresión, incluyendo spoolers como CUPS y herramientas como Foomatic , y varias extensiones del X Window System . También especificó facilidades de arranque, como $local_fs , $network , que se usaban para indicar dependencias de servicio en scripts de inicialización de estilo System V. [2] Un bloque de comentarios legible por máquina en la parte superior de un script proporcionaba la información necesaria para determinar en qué punto del proceso de inicialización se debía invocar el script; se llamaba encabezado LSB. [3]
El comando lsb_release -aestaba disponible en muchos sistemas para obtener los detalles de la versión LSB, o podía hacerse disponible instalando un paquete apropiado, por ejemplo, el redhat-lsbpaquete en distribuciones con estilo Red-Hat como Fedora , [4] o el lsb-releasepaquete en distribuciones basadas en Debian.
El estándar dejó de actualizarse en 2015 y las distribuciones de Linux actuales no lo cumplen ni lo ofrecen; sin embargo, el lsb_releasecomando a veces todavía está disponible. [ cita requerida ] El 7 de febrero de 2023, un ex mantenedor del LSB escribió: "El proyecto LSB está esencialmente abandonado". [5]
Compatibilidad con versiones anteriores
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 la compatibilidad con versiones anteriores, cada versión posterior fue puramente aditiva. En otras palabras, solo se agregaron interfaces; no se eliminaron interfaces. LSB adoptó una política de desuso de interfaces para darles a los desarrolladores de aplicaciones tiempo suficiente en caso de que se eliminara una interfaz de LSB.
Esto permitió al desarrollador confiar en cada interfaz de LSB durante un tiempo determinado y también planificar los cambios. Las interfaces solo se eliminaron después de haber estado marcadas como "obsoletas" durante al menos tres versiones principales, o aproximadamente once años. [6]
LSB 5.0 fue el primer lanzamiento importante que rompió la compatibilidad con versiones anteriores. [7]
Historial de versiones
1.0: Lanzamiento inicial el 29 de junio de 2001.
1.1: Lanzado el 22 de enero de 2002. Se agregaron especificaciones específicas del hardware ( IA-32 ).
1.2: Lanzada 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: Lanzado en octubre de 2002. Se agregó Itanium .
1.3: Lanzado el 17 de diciembre de 2002. Se agregaron especificaciones específicas de hardware (Itanium, Enterprise System Architecture/390, z/Architecture).
2.0: Lanzado el 31 de agosto de 2004
LSB está modularizado en 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 que sólo está disponible una versión genérica).
2.1: Lanzado el 11 de marzo de 2005.
3.0: Lanzado 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 escritorio misceláneo ( xdg-utils ), se han promovido como submódulos obligatorios.
Bibliotecas GTK+ , Cairo y CUPS actualizadas
Se agregaron tres nuevos conjuntos de pruebas
5.0: Publicada el 2 de junio de 2015. Esta versión se ha presentado como ISO/IEC 23360:2021
Primer lanzamiento importante que rompe la compatibilidad con versiones anteriores (compatible con LSB 3.0 y mayormente compatible con LSB 3.1 y posteriores, con algunas excepciones [10] )
Estrategia de módulo evolucionada; LSB está modularizado en LSB Core, LSB Desktop, LSB Languages, LSB Imaging y LSB Trial Use
Norma ISO/IEC
La versión 3.1 de LSB está registrada como norma internacional oficial ISO / IEC . Sus partes principales son:
ISO/IEC 23360-1:2006 Especificación básica de Linux Standard Base (LSB) 3.1 — Parte 1: Especificación genérica [11]
ISO/IEC 23360-2:2006 Especificación básica de Linux Standard Base (LSB) 3.1 — Parte 2: Especificación para la arquitectura IA-32
ISO/IEC 23360-3:2006 Especificación básica de Linux Standard Base (LSB) 3.1 — Parte 3: Especificación para la arquitectura IA-64
ISO/IEC 23360-4:2006 Especificación básica de Linux Standard Base (LSB) 3.1 — Parte 4: Especificación para la arquitectura AMD64
ISO/IEC 23360-5:2006 Especificación básica de Linux Standard Base (LSB) 3.1 — Parte 5: Especificación para la arquitectura PPC32
ISO/IEC 23360-6:2006 Especificación básica de Linux Standard Base (LSB) 3.1 — Parte 6: Especificación para la arquitectura PPC64
ISO/IEC 23360-7:2006 Especificación básica de Linux Standard Base (LSB) 3.1 — Parte 7: Especificación para la arquitectura S390
ISO/IEC 23360-8:2006 Especificación básica de Linux Standard Base (LSB) 3.1 — Parte 8: Especificación para la arquitectura S390X
También existe la norma ISO/IEC TR 24715:2006, que identifica áreas de conflicto entre la norma ISO/IEC 23360 (la especificación Linux Standard Base 3.1) y la norma internacional ISO/IEC 9945:2003 (POSIX). [12]
La LSB, versión 5.0, también está registrada como estándar internacional oficial ISO / IEC .
ISO/IEC 23360-1-1:2021 Base estándar de Linux (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 la especificación de escritorio
ISO/IEC 23360-1-4:2021 Linux Standard Base (LSB) — Parte 1-4: Especificación de lenguajes
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 básica 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 Linux Standard Base (LSB) — Parte 3-2: Especificación básica 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 básica 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 básica 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 básica 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 básica 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 básica 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
Las normas 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 tener en cuenta los aportes de proyectos, especialmente del proyecto Debian , fuera de la esfera de sus empresas miembro.
Elección del formato del paquete RPM
LSB especificó que los paquetes de software deberían entregarse como un instalador compatible con LSB, [19] o (preferiblemente) entregarse en una forma restringida del formato del Administrador de paquetes RPM . [20]
Esta elección del formato de paquete excluía el uso de otros formatos de paquete existentes que no fueran compatibles con RPM. Para solucionar este problema, el estándar no dictaba qué formato de paquete debía utilizar el sistema para sus propios paquetes, sino que simplemente indicaba que RPM debía ser compatible para permitir que los paquetes de distribuidores externos se instalaran en un sistema compatible.
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 usar paquetes RPM compatibles con LSB externos, el usuario final necesita usar 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 características RPM para bloquear el uso de características 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 el otro carece. En la práctica, no todos los paquetes binarios de Linux eran necesariamente compatibles con LSB, por lo que, si bien la mayoría se podía convertir entre .rpm y .deb, esta operación estaba restringida a un subconjunto de paquetes.
Al utilizar Alien, Debian era compatible con LSB a 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 el 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 de sistemas de archivos (FHS) continuaría, el soporte para LSB se había abandonado. [24] Ubuntu siguió a Debian en noviembre de 2015. [25]
Calidad de los conjuntos de pruebas de cumplimiento
Además, las suites de pruebas de cumplimiento fueron criticadas por tener errores e incompletas; en particular, en 2005 Ulrich Drepper criticó a la LSB por pruebas mal escritas que pueden causar incompatibilidad entre distribuciones certificadas por la LSB cuando algunas implementan un comportamiento incorrecto para que las pruebas con errores funcionen, mientras que otras solicitan y reciben exenciones para cumplir con 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 del comportamiento definido por la implementación. [26]
Para los proveedores que estén considerando 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 aplicación ante el LSB". Linux Foundation . 2008. Archivado desde el original el 15 de julio de 2009. Consultado el 26 de abril de 2010 .
^ "Nombres de instalaciones". Especificación básica del estándar Linux 3.1 . 2005.
^ "Convenciones de comentarios para scripts de inicio". Especificación 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-discuss . 7 de febrero de 2023.
^ "Hoja de ruta de LSB". Linux Foundation . 2008 . Consultado el 26 de abril de 2010 .
^ "Notas de la versión 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 LSB 5.0: Qt 3 eliminado". linuxfoundation.org . Consultado el 3 de junio de 2015 .
^ ISO/IEC 23360-1:2006 - Especificación básica de Linux Standard Base (LSB) 3.1 -- 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 de sistema - Informe técnico sobre los conflictos entre la norma ISO/IEC 9945 (POSIX) y la base estándar Linux (ISO/IEC 23360) . Consultado el 15 de octubre de 2011 .
^ "Normas 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 del estándar Linux 3.1 . 2005.
^ "Capítulo 22. Instalación de software 22.3. Restricciones de scripts de paquetes". Especificación básica estándar de Linux 3.1 . 2005.
^ ab «Debian -- Detalles del paquete lsb en lenny (stable) -- Paquete de soporte para 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). "¿Todavía crees que el LSB tiene algún valor?" . Consultado el 26 de abril de 2010 .
^ "Todo sobre el verificador de aplicaciones de Linux". Linux Foundation . 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:
Más proveedores participan en el creciente esfuerzo de LSB, 1998, debian.org - describe la composición de los equipos (en ese momento) y quiénes participaron, lo que resulta de interés histórico
Cuatro proveedores de Linux acuerdan una implementación de LSB, 2004, slashdot.org
Sí, la LSB tiene valor, 2005, licquia.org – respuesta a Drepper por Jeff Licquia