El Linux Standard Base ( LSB ) es un proyecto conjunto de varias distribuciones de Linux bajo la estructura organizativa de la Fundación Linux para estandarizar la estructura del sistema de software, incluyendo el estándar de jerarquía del sistema de archivos utilizado en el núcleo de Linux . El LSB se basa en la especificación POSIX , la Especificación Única de UNIX (SUS) y varios otros estándares abiertos, pero los amplía en ciertas áreas.
Según la LSB:
El objetivo del LSB es desarrollar y promover un conjunto de estándares abiertos que aumentarán la compatibilidad entre las distribuciones de Linux y permitirán que las aplicaciones de software se ejecuten en cualquier sistema compatible, incluso en forma binaria . Además, LSB ayudará a coordinar los esfuerzos para reclutar proveedores de software para portar y escribir productos para sistemas operativos Linux.
El cumplimiento de LSB puede certificarse para un producto mediante un procedimiento de certificación. [1]
El LSB especifica, por ejemplo: bibliotecas estándar (centradas alrededor de 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 del sistema X Window .
LSB también especifica facilidades de arranque, como $ local_fs , $ network , que se utilizan para indicar dependencias de servicio en scripts de inicialización de estilo System V. Un bloque de comentarios legible por máquina en la parte superior de un script proporciona la información necesaria para determinar en qué punto del proceso de inicialización debe invocarse el script. Se llama encabezado LSB . [2]
El comando lsb_release -a
está disponible en muchos sistemas para obtener los detalles de la versión LSB, o puede estar disponible instalando un paquete apropiado, por ejemplo, el redhat-lsb
paquete en distribuciones con sabor a Red-Hat como Fedora , [3] o el lsb-release
paquete en Debian. distribuciones.
Compatibilidad con versiones anteriores
El LSB está diseñado para ser compatible con binarios y producir una interfaz binaria de aplicación (ABI) estable para proveedores de software independientes . Para lograr la compatibilidad con versiones anteriores, cada versión posterior es puramente aditiva. En otras palabras, las interfaces solo se agregan, no se eliminan. El LSB adoptó una política de obsolescencia de la interfaz para dar a los desarrolladores de aplicaciones tiempo suficiente en caso de que se elimine una interfaz del LSB.
Esto permite al desarrollador confiar en cada interfaz en el LSB durante un tiempo conocido y también planificar los cambios, sin sorprenderse. Las interfaces solo se eliminan después de haber sido marcadas como "obsoletas" durante al menos tres versiones principales, o aproximadamente once años. [4]
LSB 5.0 es la primera versión importante que rompe la compatibilidad con versiones anteriores. [5]
Historial de versiones
- 1.0: Versión 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 lanzado)
- Nuevas especificaciones específicas de hardware (PowerPC de 64 bits , AMD64 )
- Sincronizado con Single UNIX Specification (SUS) versión 3
- 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 las cuales solo 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:
- Biblioteca GNU C versión 2.3.4
- C ++ ABI se cambia a la utilizada por gcc 3.4
- La especificación principal se actualiza a ISO POSIX (2003)
- Corrección técnica 1: 2005
- 3.1: Publicado el 31 de octubre de 2005. Esta versión se ha presentado como ISO / IEC 23360.
- 3.2: Publicado el 28 de enero de 2008. Esta versión se ha presentado como ISO / IEC 23360.
- 4.0: publicada el 11 de noviembre de 2008. Esta versión contiene las siguientes características:
- Biblioteca GNU C versión 2.4
- Compatibilidad binaria con LSB 3.x
- SDK más fácil de usar
- Soporte para versiones más recientes de bibliotecas gráficas GTK y Cairo
- Java (módulo opcional)
- Formas más sencillas de crear paquetes RPM compatibles con LSB
- API de cifrado (a través de la biblioteca de servicios de seguridad de red ) (módulo opcional)
- 4.1: Publicado el 16 de febrero de 2011: [6]
- 5.0: lanzado el 2 de junio de 2015
- Primera versión importante que rompe la compatibilidad con versiones anteriores (compatible con LSB 3.0, y en su mayoría compatible con LSB 3.1 y posteriores, con algunas excepciones [8] )
- Incorpora los cambios realizados en FHS 3.0
- La biblioteca Qt 3 ha sido eliminada
- Estrategia de módulo evolucionada; LSB está modularizado a LSB Core, LSB Desktop, LSB Languages, LSB Imaging y LSB Trial Use
Norma ISO
El LSB, versión 3.1, está registrado como estándar ISO oficial . [9] Las partes principales son:
- ISO / IEC 23360-1: 2006 Especificación básica de la base estándar de Linux (LSB) 3.1 - Parte 1: Especificación genérica
- ISO / IEC 23360-2: 2006 Especificación básica de la base estándar de Linux (LSB) 3.1 - Parte 2: Especificación para la arquitectura IA-32
- ISO / IEC 23360-3: 2006 Especificación básica de la base estándar de Linux (LSB) 3.1 - Parte 3: Especificación para la arquitectura IA-64
- ISO / IEC 23360-4: 2006 Especificación del núcleo de la base estándar de Linux (LSB) 3.1 - Parte 4: Especificación para la arquitectura AMD64
- ISO / IEC 23360-5: 2006 Especificación básica de la base estándar de Linux (LSB) 3.1 - Parte 5: Especificación para la arquitectura PPC32
- ISO / IEC 23360-6: 2006 Especificación básica de la base estándar de Linux (LSB) 3.1 - Parte 6: Especificación para la arquitectura PPC64
- ISO / IEC 23360-7: 2006 Especificación básica de la base estándar de Linux (LSB) 3.1 - Parte 7: Especificación para la arquitectura S390
- ISO / IEC 23360-8: 2006 Especificación básica de la base estándar de Linux (LSB) 3.1 - 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 del estándar Linux Base 3.1) y el estándar internacional ISO / IEC 9945: 2003 (POSIX). [10]
ISO / IEC 23360 e ISO / IEC TR 24715 se pueden descargar gratuitamente del sitio web de ISO. [11]
Recepción
Si bien el LSB es un estándar y no tiene competidor, solo lo siguen unas pocas distribuciones de Linux . Por ejemplo, solo 21 lanzamientos de distribución (versiones) están certificados para LSB versión 4.0, en particular Red Flag Linux Desktop 6.0, Red Hat Enterprise Linux 6.0, SUSE Linux Enterprise 11 y Ubuntu 9.04 (Jaunty Jackalope) ; [12] incluso menos están certificados para la versión 4.1.
El LSB ha sido criticado [13] [14] [15] [16] por no recibir aportes de proyectos, más notablemente el proyecto Debian , fuera del ámbito de sus empresas miembro.
Elección del formato de paquete RPM
El LSB especifica que los paquetes de software deben entregarse como un instalador compatible con LSB, [17] o (preferiblemente) entregarse en una forma restringida del formato RPM Package Manager . [18]
Esta elección de formato de paquete excluye el uso de muchos otros formatos de paquete existentes que no son compatibles con RPM. Para abordar esto, el estándar no dicta qué formato de paquete debe usar el sistema para sus propios paquetes, solo que RPM debe ser compatible para permitir que los paquetes de distribuidores de terceros se instalen en un sistema conforme.
Limitaciones en Debian
Debian ha incluido 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; abril 8, 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 ajenos a 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 tiene un subconjunto restringido de funciones RPM, para bloquear el uso de funciones RPM que serían intraducibles 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 son necesariamente compatibles con LSB, por lo que aunque la mayoría se puede convertir entre .rpm y .deb, esta operación está restringida a un subconjunto de paquetes.
Al usar Alien, Debian es compatible con LSB a todos los efectos, pero de acuerdo con la descripción de su paquete lsb , [19] la presencia del paquete "no implica que creemos que Debian cumple completamente con la base estándar de Linux, y no debe interpretarse como una declaración de que Debian es compatible con LSB ". [19]
Debian se esforzó por cumplir con LSB, pero con muchas limitaciones. [20] Sin embargo, este esfuerzo cesó alrededor de julio de 2015 debido a la falta de interés y mano de obra dentro del proyecto. [21] En septiembre de 2015, el proyecto Debian confirmó que aunque continuaría el soporte para el Estándar de jerarquía del sistema de archivos (FHS), el soporte para LSB se había eliminado. [22] Ubuntu siguió a Debian en noviembre de 2015. [23]
Suites de pruebas de calidad de cumplimiento
Además, los conjuntos de pruebas de cumplimiento han sido 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 hacer que las pruebas con errores funcionen, mientras que otros solicitan y reciben exenciones para cumplir con las pruebas. [24] También denunció la falta de pruebas de aplicaciones, señalando que probar solo distribuciones nunca puede resolver el problema de las aplicaciones que se basan en el comportamiento definido por la implementación. [24]
Para los proveedores que consideran las certificaciones LSB en sus esfuerzos de portabilidad, la Fundación Linux patrocina una herramienta que analiza y proporciona orientación sobre símbolos y bibliotecas que van más allá del LSB. [25]
Ver también
- Estándar de compatibilidad binaria de Intel (iBCS)
- POSIX (interfaz de sistema operativo portátil)
Referencias
- ^ "Certificación de una aplicación a 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 del núcleo básico estándar de Linux 3.1 . 2005.
- ^ "Paquete redhat-lsb" . fedoraproject.org . Consultado el 15 de agosto de 2015 .
- ^ "Hoja de ruta de LSB" . Fundación Linux . 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 3.1 de la base estándar de Linux (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 Linux Standard Base (ISO / IEC 23360)" . Consultado el 15 de octubre de 2011 .
- ^ "Normas ISO disponibles al público" . Consultado el 15 de octubre de 2011 .
- ^ Directorio de productos de productos certificados en linuxbase.org (12 de enero de 2015)
- ^ "bugs.debian.org" .
- ^ "linuxfoundation.org" .[ enlace muerto permanente ]
- ^ "openacs.org" .
- ^ "osnews.com" .
- ^ "Capítulo 22. Instalación del software 22.1. Introducción" . Especificación del núcleo básico estándar de Linux 3.1 . 2005.
- ^ "Capítulo 22. Instalación del software 22.3. Restricciones de paquetes de secuencias de comandos" . Especificación del núcleo básico estándar de Linux 3.1 . 2005.
- ^ a b "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 de Debian LSB ML" . Proyecto Debian . Consultado el 12 de septiembre de 2015 .
- ^ "Debian descartando la base estándar de Linux" . LWN.net .
- ^ "Paquete fuente lsb 9.20150917ubuntu1 en Ubuntu" .
- ^ a b 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" . Fundación Linux . 2008 . Consultado el 26 de abril de 2010 .
enlaces externos
- linuxfoundation.org archivos de la especificación
- OLVER Test Suite para LSB - Proyecto de verificación de Linux abierto
Medios de comunicación
- Cuatro proveedores de Linux acuerdan una implementación de LSB (slashdot)
- Comunicado de prensa del 26 de agosto de 1998 que describe el desglose de los equipos (en ese momento) y quiénes estaban involucrados, de interés histórico
- Sí, el LSB tiene valor - respuesta a Drepper (2005) por Jeff Licquia