Linux Standard Base

Das LSB -Logo

Das Linux Standard Base (LSB) war ein gemeinsames Projekt von mehreren Linux -Verteilungen unter der Organisationsstruktur der Linux Foundation standardisieren die Softwaresystemstruktur, einschließlich der Dateisystem Hierarchie Standard verwendet in der Linux Kernel. LSB basierte auf dem Posix Spezifikation, die Einzel -Unix -Spezifikation (SUS) und mehrere andere offene Standards, aber sie in bestimmten Bereichen erweiterte.

Laut LSB:

Das Ziel des LSB ist es, eine Reihe offener Standards zu entwickeln und zu fördern, die die Kompatibilität zwischen Linux -Verteilungen erhöhen und Softwareanwendungen ermöglichen, auf jedem konformen System auszuführen sogar in binärer Form. Darüber hinaus wird das LSB dazu beitragen, die Bemühungen zu koordinieren, um Softwareanbieter für die Portion und Schreiben von Produkten für Linux -Betriebssysteme zu rekrutieren.

Die LSB -Konformität kann durch ein Zertifizierungsverfahren für ein Produkt zertifiziert werden.[1]

LSB angegebener Standard Bibliotheken (zentriert um die ld-lsb.so), eine Reihe von Befehlen und Versorgungsunternehmen, die die erweitern Posix Standard, das Layout der Dateisystem Hierarchie, Laufstufen, das Drucksystem, einschließlich Spooler wie zum Beispiel TASSEN und Werkzeuge wie Foomatischund mehrere Erweiterungen zum X Fenstersystem. Es gab auch Starteinrichtungen fest, wie z. $ local_fs, $ network, die verwendet wurden, um Serviceabhängigkeiten in System v-Stil -Initialisierungsskripte.[2] Ein maschinenlesbarer Kommentarblock oben in einem Skript lieferte die Informationen, die erforderlich sind, um festzustellen, an welchem ​​Punkt des Initialisierungsprozesses das Skript aufgerufen werden sollte. Es wurde der LSB -Header genannt.[3]

Der Befehl lsb_release -a war in vielen Systemen erhältlich, um die LSB -Versionsdetails zu erhalten, oder könnte durch die Installation eines geeigneten Pakets zur Verfügung gestellt werden, beispielsweise die redhat-lsb Paket in Roter Hut-Formierte Verteilungen wie z. Fedora,[4] oder der LSB-Release Paket in Debian-basierten Verteilungen.

Der Standard wurde im Jahr 2015 nicht mehr aktualisiert, und die aktuellen Linux -Verteilungen halten es nicht an oder bieten sie an. Allerdings die lsb_release Der Befehl ist manchmal noch verfügbar.

Ein Beispiel für die LSB -Ausgabe in einem Terminal (Debian Version 11)

Rückwärtskompatibilität

LSB zielt darauf ab zu machen UserSpace Binärdateien tragbar

LSB wurde als binär kompatibel und produzierte einen Stall Anwendung Binärschnittstelle (Abi) für unabhängige Softwareanbieter. Um eine Rückwärtskompatibilität zu erreichen, war jede nachfolgende Version rein additiv. Mit anderen Worten, Schnittstellen wurden nur hinzugefügt; Es wurden keine Schnittstellen entfernt. Die LSB verabschiedete eine Grenzflächenabwertungspolitik, um Anwendungsentwicklern genügend Zeit zu geben, falls eine Schnittstelle von LSB entfernt wurde.

Dies ermöglichte es dem Entwickler, sich für eine bekannte Zeit auf jede Schnittstelle in LSB zu verlassen und auch Änderungen zu planen. Die Grenzflächen wurden erst nach mindestens drei Hauptversionen oder ungefähr elf Jahren als "veraltet" gekennzeichnet.[5]

LSB 5.0 war die erste große Veröffentlichung, die brach Rückwärtskompatibilität mit früheren Versionen.[6]

Versionsgeschichte

  • 1.0: Erste Veröffentlichung 29. Juni 2001.
  • 1.1: Veröffentlicht am 22. Januar 2002. Hardware-spezifische Spezifikationen hinzugefügt (IA-32).
  • 1.2: Veröffentlicht am 28. Juni 2002. Hardware-spezifische Spezifikationen hinzugefügt (Powerpc 32-Bit). Die Zertifizierung begann Juli 2002.
  • 1.2.1: Veröffentlicht Oktober 2002. hinzugefügt Itanium.
  • 1.3: Veröffentlicht am 17. Dezember 2002. Hardware-spezifische Spezifikationen (Itanium, Enterprise System Architecture/390, Z/Architektur).
  • 2.0: Veröffentlicht am 31. August 2004
    • LSB ist zu LSB-Core, LSB-CXX, LSB-Graphics und LSB- modularisiertI18n (nicht veröffentlicht)
    • Neue hardwarespezifische Spezifikationen (PowerPC 64-Bit, AMD64)
    • Synchronisiert mit Einzel -Unix -Spezifikation (SUS) Version 3
  • 2.0.1: Veröffentlicht am 21. Oktober 2004, ISO Version von LSB 2.0, die die Spezifikation für alle Hardware-Architekturen enthielt (mit Ausnahme von LSB-Graphics, von denen nur eine generische Version verfügbar ist).
  • 2.1: Veröffentlicht am 11. März 2005.
  • 3.0: Veröffentlicht am 1. Juli 2005. Unter anderem Änderungen der Bibliothek:
    • GNU C -Bibliothek Version 2.3.4
    • C ++ ABI wird in die von verwendete von geändert GCC 3.4
    • Die Kernspezifikation wird auf ISO aktualisiert Posix (2003)
    • Technische Corrigenda 1: 2005
  • 3.1: Veröffentlicht am 31. Oktober 2005. Diese Version wurde als ISO/IEC 23360: 2006 eingereicht.
  • 3.2: veröffentlicht am 28. Januar 2008. Diese Version wurde als ISO/IEC 23360: 2006 eingereicht.
  • 4.0: Veröffentlicht am 11. November 2008. Diese Version enthält die folgenden Funktionen:
    • GNU C -Bibliothek Version 2.4
    • Binärkompatibilität mit LSB 3.x
    • Einfacher zu bedienen SDK
    • Unterstützung für neuere Versionen von Gtk und Kairo Grafische Bibliotheken
    • Java (Optionales Modul)
    • Einfachere Möglichkeiten zum Erstellen von LSB-konformen RPM-Paketen
    • Crypto -API (über die Netzwerksicherheitsdienste Bibliothek) (Optionales Modul)
  • 4.1: Veröffentlicht am 16. Februar 2011:[7]
    • Java entfernt[8]
    • Module "Versuchsnutzung" von LSB 4.0, die Multimedia abdecken (Alsa), Sicherheit (NSS) und Desktop -Verschiedenes (Verschiedenes Desktop (xdg-utils) wurden als erforderliche Submodule befördert
    • Aktualisiert Gtk+, Kairo und TASSEN Bibliotheken
    • Drei neue Testsuiten hinzugefügt
  • 5.0: Veröffentlicht am 2. Juni 2015 wurde diese Version als ISO/IEC 23360: 2021 eingereicht
    • GNU C -Bibliothek Version 2.10 (für PSIGINFO)
    • Erste große Veröffentlichung, die mit früheren Versionen die Kompatibilität rückwärts bricht (kompatibel mit LSB 3.0 und meistens kompatibel mit LSB 3.1 und später mit einigen Ausnahmen[9])
    • Integriert die vorgenommenen Änderungen in FHS 3.0
    • Die QT 3 -Bibliothek wurde entfernt
    • Entwickelte Modulstrategie; LSB wird zu LSB Core, LSB Desktop, LSB -Sprachen, LSB -Bildgebung und LSB -Versuchsanwendung modularisiert

ISO/IEC -Standard

Die LSB, Version 3.1, ist als Beamter registriert ISO/IEC internationaler Standard.[10] Die Hauptteile davon sind:

  • ISO/IEC 23360-1: 2006 Linux Standard Base (LSB) Kernspezifikation 3.1-Teil 1: Generische Spezifikation
  • ISO/IEC 23360-2: 2006 Linux Standard Base (LSB) Kernspezifikation 3.1-Teil 2: Spezifikation für die IA-32-Architektur
  • ISO/IEC 23360-3: 2006 Linux Standard Base (LSB) Kernspezifikation 3.1-Teil 3: Spezifikation für die IA-64-Architektur
  • ISO/IEC 23360-4: 2006 Linux Standard Base (LSB) Kernspezifikation 3.1-Teil 4: Spezifikation für AMD64-Architektur
  • ISO/IEC 23360-5: 2006 Linux Standard Base (LSB) Kernspezifikation 3.1-Teil 5: Spezifikation für PPC32 die Architektur
  • ISO/IEC 23360-6: 2006 Linux Standard Base (LSB) Kernspezifikation 3.1-Teil 6: Spezifikation für PPC64 die Architektur
  • ISO/IEC 23360-7: 2006 Linux Standard Base (LSB) Kernspezifikation 3.1-Teil 7: Spezifikation für S390 die Architektur
  • ISO/IEC 23360-8: 2006 Linux Standard Base (LSB) Kernspezifikation 3.1-Teil 8: Spezifikation für S390X die Architektur

Es gibt auch ISO/IEC TR 24715: 2006, die Konfliktbereiche zwischen ISO/IEC 23360 (LINUX Standard Base 3.1 -Spezifikation) und dem ISO/IEC 9945: 2003 (POSIX) International Standard identifizieren.[11]

Die LSB, Version 5.0, ist ebenfalls als Beamter registriert ISO/IEC internationaler Standard.

  • ISO/IEC 23360-1-1: 2021 Linux Standard Base (LSB)-Teil 1-1: Häufige Definitionen
  • ISO/IEC 23360-1-2: 2021 Linux Standard Base (LSB)-Teil 1-2: Kernspezifikation Generischer Teil
  • ISO/IEC 23360-1-3: 2021 Linux Standard Base (LSB)-Teil 1-3: Desktop-Spezifikation Generischer Teil
  • ISO/IEC 23360-1-4: 2021 Linux Standard Base (LSB)-Teil 1-4: Sprachenspezifikation
  • ISO/IEC 23360-1-5: 2021 Linux Standard Base (LSB)-Teil 1-5: Bildgebungsspezifikation
  • ISO/IEC TS 23360-1-6: 2021 Linux Standard Base (LSB)-Teil 1-6: Grafik- und GTK3-Spezifikation
  • ISO/IEC 23360-2-2: 2021 Linux Standard Base (LSB)-Teil 2-2: Kernspezifikation für x86-32 Architektur
  • ISO/IEC 23360-2-3: 2021 Linux Standard Base (LSB)-Teil 2-3: Desktop-Spezifikation für x86-32 Architektur
  • ISO/IEC 23360-3-2: 2021 Linux Standard Base (LSB)-Teil 3-2: Kernspezifikation für die Architektur IA64 (ITANIUM ™)
  • ISO/IEC 23360-3-3: 2021 Linux Standard Base (LSB)-Teil 3-3: Desktop-Spezifikation für IA64 (Itanium TM) Architektur
  • ISO/IEC 23360-4-2: 2021 Linux Standard Base (LSB)-Teil 4-2: Kernspezifikation für AMD64 (x86-64) Architektur
  • ISO/IEC 23360-4-3: 2021 Linux Standard Base (LSB)-Teil 4-3: Desktop-Spezifikation für AMD64 (x86-64) Architektur
  • ISO/IEC 23360-5-2: 2021 Linux Standard Base (LSB)-Teil 5-2: Kernspezifikation für PowerPC 32 Architektur
  • ISO/IEC 23360-5-3: 2021 Linux Standard Base (LSB)-Teil 5-3: Desktop-Spezifikation für PowerPC 32 Architektur
  • ISO/IEC 23360-6-2: 2021 Linux Standard Base (LSB)-Teil 6-2: Kernspezifikation für PowerPC 64 Architektur
  • ISO/IEC 23360-6-3: 2021 Linux Standard Base (LSB)-Teil 6-3: Desktop-Spezifikation für PowerPC 64 Architektur
  • ISO/IEC 23360-7-2: 2021 Linux Standard Base (LSB)-Teil 7-2: Kernspezifikation für S390 Architektur
  • ISO/IEC 23360-7-3: 2021 Linux Standard Base (LSB)-Teil 7-3: Desktop-Spezifikation für S390 Architektur
  • ISO/IEC 23360-8-2: 2021 Linux Standard Base (LSB)-Teil 8-2: Kernspezifikation für die S390X-Architektur
  • ISO/IEC 23360-8-3: 2021 Linux Standard Base (LSB)-Teil 8-3: Desktop-Spezifikation für die S390X-Architektur

ISO/IEC 23360 und ISO/IEC TR 24715 können von der ISO -Website frei heruntergeladen werden.[12]

Rezeption

Während LSB ein Standard war und ohne einen Konkurrenten, folgte nur wenige nur wenige Linux -Verteilungen. Zum Beispiel wurden nur 21 Verteilungsveröffentlichungen (Versionen) für LSB Version 4.0 zertifiziert, insbesondere für LSB -Version 4.0 Rote Flag -Linux Desktop 6.0, Red Hat Enterprise Linux 6.0, SUSE Linux Enterprise 11 und Ubuntu 9.04 (Jaunty Jackalope);[13] Noch weniger wurden für Version 4.1 zertifiziert.

Der LSB wurde kritisiert[14][15][16][17] Um keine Eingaben von Projekten zu nehmen, vor allem die Debian Projekt außerhalb des Bereichs seiner Mitgliedsunternehmen.

Auswahl des RPM -Paketformats

LSB gab an, dass Softwarepakete entweder als LSB-konforme Installateur geliefert werden sollten.[18] oder (vorzugsweise) in einer eingeschränkten Form der geliefert werden RPM -Paketmanager Format.[19]

Diese Auswahl des Paketformats hat die Verwendung anderer vorhandener Paketformate ausgeschlossen, die nicht mit Drehzahl kompatibel sind. Um dies zu beheben, bestand der Standard nicht vor, welches Paketformat das System für seine eigenen Pakete verwenden muss, lediglich, dass RPM unterstützt werden muss, damit Pakete von Händler von Drittanbietern auf einem konformen System installiert werden können.

Einschränkungen für Debian

Debian enthielt optionale Unterstützung für LSB frühzeitig, Version 1.1 in "Woody" (3.0; 19. Juli 2002), 2.0 in "Sarge" (3.1; 6. Juni 2005), 3.1 in "Etch" (4.0; 8. April, 8. April, 2007), 3.2 in "Lenny" (5.0; 14. Februar 2009) und 4.1 in "wheezy" (7; 4. Mai 2013). Um ausländische LSB-konforme RPM-Pakete zu verwenden, die Endbenutzer Muss Debian's verwenden Außerirdischer Programm, um sie in das native Paketformat umzuwandeln und dann zu installieren.

Das LSB-spezifizierte RPM-Format verfügte über eine eingeschränkte Teilmenge an Drehzahlfunktionen-die Verwendung von RPM-Funktionen, die für .deb mit außerirdischen oder anderen Paketkonvertierungsprogrammen nicht übersetzt wären, und umgekehrt, da jedes Format die Fähigkeiten hat, die andere nicht haben. In der Praxis waren nicht alle Linux-Binärpakete notwendigerweise LSB-konform, während die meisten zwischen .rpm und .deb konvertiert werden konnten, war diese Operation auf eine Teilmenge von Paketen beschränkt.

Durch die Verwendung von Alien war Debian in jeder Hinsicht LSB-kompatibel, aber nach der Beschreibung ihrer LSB Paket,[20] Das Vorhandensein des Pakets "bedeutet nicht, dass Debian die Linux-Standardbasis vollständig entspricht und nicht als Aussage ausgelegt werden sollte, dass Debian LSB-konform ist."[20]

Debian bemühte sich, die LSB einzuhalten, aber mit vielen Einschränkungen.[21] Diese Bemühungen stellten jedoch um den Juli 2015 aufgrund mangelnder Interesse und Belegschaft im Projekt ein.[22] Im September 2015 bestätigte das Debian -Projekt dies, während die Unterstützung für die Unterstützung für Dateisystem Hierarchie Standard (FHS) würde fortgesetzt, die Unterstützung für LSB war fallen gelassen worden.[23] Ubuntu folgte Debian im November 2015.[24]

Qualität der Compliance -Testsuiten

Darüber hinaus wurden die Compliance-Testsuiten dafür kritisiert Beantragen Sie und erhalten Sie Verzichtserklärungen aus der Einhaltung der Tests.[25] Er verurteilte auch einen Mangel an Anwendungstests und wies darauf hin, dass das Problem der Anwendungen, die sich auf implementierungsdefinierte Verhalten stützen, niemals das Problem der Anwendungen lösen kann.[25]

Für die Anbieter, die LSB -Zertifizierungen in ihren Portabilitätsanstrengungen in Betracht ziehen, die Linux Foundation gesponsert ein Tool, das analysierte und Anleitung zu Symbolen und Bibliotheken lieferte, die über die LSB hinausgehen.[26]

Siehe auch

Verweise

  1. ^ "Zertifizierung einer Anwendung an die LSB". Linux Foundation. 2008. archiviert von das Original am 15. Juli 2009. Abgerufen 26. April, 2010.
  2. ^ "Einrichtungsnamen". Linux -Standard -Basis -Kernspezifikation 3.1. 2005.
  3. ^ "Kommentarkonventionen für Init -Skripte". Linux -Standard -Basis -Kernspezifikation 3.1. 2005.
  4. ^ "Paket Redhat-LSB". fedoraproject.org. Abgerufen 15. August, 2015.
  5. ^ "LSB Roadmap". Linux Foundation. 2008. Abgerufen 26. April, 2010.
  6. ^ "LSB 5.0 Versionsnotizen". LinuxFoundation.org. Archiviert von das Original am 8. Juli 2017. Abgerufen 3. Juni, 2015.
  7. ^ DJWM (10. März 2011). "Java von Linux Standard Base 4.1 entfernt". Archiviert von das Original Am 7. Dezember 2013.
  8. ^ "Java von Linux Standard Base 4.1 entfernt". h-online.com. 10. März 2011. Abgerufen 15. August, 2015.
  9. ^ "LSB 5.0 Versionshinweise: QT 3 entfernt". LinuxFoundation.org. Abgerufen 3. Juni, 2015.
  10. ^ ISO/IEC 23360-1: 2006 - Kernspezifikation von Linux Standard Base (LSB) 3.1 - Teil 1: Generische Spezifikation
  11. ^ ISO/IEC TR 24715: 2006 - Informationstechnologie - Programmiersprachen, ihre Umgebungen und System -Software -Schnittstellen - Technischer Bericht über die Konflikte zwischen ISO/IEC 9945 (POSIX) und der Linux Standard Base (ISO/IEC 23360)
  12. ^ "ISO öffentlich verfügbare Standards". Abgerufen 15. Oktober, 2011.
  13. ^ Produktverzeichnis zertifizierter Produkte auf Linuxbase.org (2015-01-12)
  14. ^ "bugs.debian.org".
  15. ^ "LinuxFoundation.org".[Permanent Dead Link]
  16. ^ "openacs.org".
  17. ^ "osnews.com".
  18. ^ "Kapitel 22. Software -Installation 22.1. Einführung". Linux -Standard -Basis -Kernspezifikation 3.1. 2005.
  19. ^ "Kapitel 22. Software -Installation 22.3. Paketskriptbeschränkungen". Linux -Standard -Basis -Kernspezifikation 3.1. 2005.
  20. ^ a b "Debian - Details zu Paket LSB in Lenny (stabil) - Linux Standard Base 3.2 Support -Paket". Debian -Projekt. 18. August 2008. Abgerufen 26. April, 2010.
  21. ^ "Debian LSB". Debian -Projekt. Abgerufen 26. April, 2010.
  22. ^ "Debian LSB ML Diskussion". Debian -Projekt. Abgerufen 12. September, 2015.
  23. ^ "Debian fallen die Linux -Standardbasis ab". Lwn.net.
  24. ^ "LSB 9.20150917ubuntu1 Quellpaket in Ubuntu".
  25. ^ a b Drepper, Ulrich (17. September 2005). "Glaubst du immer noch, dass der LSB einen gewissen Wert hat?". Abgerufen 26. April, 2010.
  26. ^ "Alles über den Linux Application Checker". Linux Foundation. 2008. Abgerufen 26. April, 2010.

Externe Links

Medien: