Standardowa podstawa systemu Linux — Linux Standard Base

Logo LSB

Linux Standard Base ( LSB ) był wspólny projekt kilku dystrybucjach Linuksa w ramach struktury organizacyjnej Linux Foundation w celu ujednolicenia struktury systemu oprogramowania, w tym systemu plików Hierarchy Standard stosowany w jądrze Linux . LSB został oparty na specyfikacji POSIX, specyfikacji Single UNIX (SUS) i kilku innych otwartych standardach, ale rozszerzył je w niektórych obszarach.

Według LSB:

Celem LSB jest rozwijanie i promowanie zestawu otwartych standardów, które zwiększą kompatybilność między dystrybucjami Linuksa i umożliwią uruchamianie aplikacji na dowolnym zgodnym systemie, nawet w formie binarnej . Ponadto LSB pomoże koordynować wysiłki na rzecz rekrutacji dostawców oprogramowania do przenoszenia i pisania produktów dla systemów operacyjnych Linux.

Zgodność produktu z LSB może być potwierdzona przez procedurę certyfikacji.

LSB określił standardowe biblioteki (skoncentrowane wokół ld-lsb.so), szereg poleceń i narzędzi rozszerzających standard POSIX , układ hierarchii systemu plików , poziomy uruchamiania , system drukowania, w tym bufory, takie jak CUPS i narzędzia takie jak Foomatic , oraz kilka rozszerzeń do systemu X Window . Określił także narzędzia startowe, takie jak $local_fs , $network , które były używane do wskazywania zależności usług w skryptach inicjujących w stylu System V. Czytelny maszynowo blok komentarza na górze skryptu dostarczał informacji niezbędnych do określenia, w którym momencie procesu inicjalizacji skrypt powinien zostać wywołany; nazywano to nagłówkiem LSB.

Polecenie lsb_release -abyło dostępne w wielu systemach, aby uzyskać szczegóły wersji LSB, lub można je było udostępnić poprzez zainstalowanie odpowiedniego pakietu, na przykład redhat-lsbpakietu w dystrybucjach o smaku Red-Hat, takich jak Fedora , lub lsb-releasepakietu w dystrybucjach opartych na Debianie.

Standard przestał być aktualizowany w 2015 roku, a obecne dystrybucje Linuksa go nie stosują ani nie oferują, jednak lsb_releasepolecenie jest nadal dostępne.

Przykład wyjścia LSB w terminalu (Debian wersja 11)

Kompatybilność wsteczna

LSB ma na celu uczynienie binariów w przestrzeni użytkownika przenośnymi

LSB został zaprojektowany tak, aby był kompatybilny z plikami binarnymi i wyprodukował stabilny interfejs binarny aplikacji (ABI) dla niezależnych dostawców oprogramowania . Aby osiągnąć kompatybilność wsteczną, każda kolejna wersja była czysto addytywna. Innymi słowy, dodano jedynie interfejsy; żadne interfejsy nie zostały usunięte. LSB przyjęła politykę wycofywania interfejsu, aby dać twórcom aplikacji wystarczająco dużo czasu na wypadek usunięcia interfejsu z LSB.

Dzięki temu deweloper mógł polegać na każdym interfejsie w LSB przez znany czas, a także planować zmiany. Interfejsy zostały usunięte dopiero po oznaczeniu jako „przestarzałe” przez co najmniej trzy główne wersje lub około jedenastu lat.

LSB 5.0 było pierwszym głównym wydaniem, które złamało wsteczną kompatybilność z wcześniejszymi wersjami.

Historia wersji

  • 1.0: Pierwsze wydanie 29 czerwca 2001.
  • 1.1: Wydano 22 stycznia 2002. Dodano specyfikacje specyficzne dla sprzętu ( IA-32 ).
  • 1.2: Wydano 28 czerwca 2002. Dodano specyfikacje specyficzne dla sprzętu ( PowerPC 32-bit ). Certyfikacja rozpoczęła się w lipcu 2002 roku.
  • 1.2.1: Wydany w październiku 2002. Dodano Itanium .
  • 1.3: Wydano 17 grudnia 2002. Dodano specyfikacje specyficzne dla sprzętu (Itanium, Enterprise System Architecture/390, z/Architecture).
  • 2.0: Wydany 31 sierpnia 2004 r.
  • 2.0.1: Wydana 21 października 2004 r. wersja ISO LSB 2.0, która zawiera specyfikację dla wszystkich architektur sprzętowych (z wyjątkiem LSB-Graphics, którego dostępna jest tylko wersja ogólna).
  • 2.1: Wydany 11 marca 2005 r.
  • 3.0: Wydany 1 lipca 2005. Wśród innych zmian w bibliotece:
    • Biblioteka GNU C w wersji 2.3.4
    • C++ ABI został zmieniony na używany przez gcc 3.4
    • Podstawowa specyfikacja została zaktualizowana do ISO POSIX (2003)
    • Sprostowanie techniczne 1: 2005
  • 3.1: Wydano 31 października 2005. Ta wersja została przesłana jako ISO/IEC 23360.
  • 3.2: Wydano 28 stycznia 2008. Ta wersja została przesłana jako ISO/IEC 23360.
  • 4.0: Wydano 11 listopada 2008. Ta wersja zawiera następujące funkcje:
  • 4.1: Wydany 16 lutego 2011 r.:
    • Usunięto Javę
    • Moduły "Trial Use" z LSB 4.0, obejmujące multimedia ( ALSA ), security (NSS) i desktop różne ( xdg-utils ) zostały wypromowane jako wymagane submoduły
    • Zaktualizowane GTK + , Kair i CUPS biblioteki
    • Dodano trzy nowe zestawy testowe
  • 5.0: Wydano 2 czerwca 2015 r.
    • Biblioteka GNU C wersja 2.10 (dla psiginfo)
    • Pierwsze główne wydanie, które łamie kompatybilność wsteczną z wcześniejszymi wersjami (kompatybilne z LSB 3.0, a głównie kompatybilne z LSB 3.1 i nowszymi, z pewnymi wyjątkami)
    • Zawiera zmiany wprowadzone w FHS 3.0
    • Biblioteka Qt 3 została usunięta
    • Rozwinięta strategia modułu; LSB jest zmodularyzowany do LSB Core, LSB Desktop, LSB Languages, LSB Imaging i LSB Trial Use

Norma ISO

LSB, wersja 3.1, jest zarejestrowana jako oficjalny międzynarodowy standard ISO / IEC . Główne jego części to:

  • Podstawowa specyfikacja ISO/IEC 23360-1:2006 Linux Standard Base (LSB) 3.1 — Część 1: Specyfikacja ogólna
  • Podstawowa specyfikacja ISO / IEC 23360-2: 2006 Linux Standard Base (LSB) 3.1 - Część 2: Specyfikacja architektury IA-32
  • Podstawowa specyfikacja ISO / IEC 23360-3: 2006 Linux Standard Base (LSB) 3.1 - Część 3: Specyfikacja architektury IA-64
  • Podstawowa specyfikacja ISO / IEC 23360-4: 2006 Linux Standard Base (LSB) 3.1 - Część 4: Specyfikacja architektury AMD64
  • Podstawowa specyfikacja ISO / IEC 23360-5: 2006 Linux Standard Base (LSB) 3.1 - Część 5: Specyfikacja architektury PPC32
  • Podstawowa specyfikacja ISO / IEC 23360-6: 2006 Linux Standard Base (LSB) 3.1 - Część 6: Specyfikacja architektury PPC64
  • Podstawowa specyfikacja ISO / IEC 23360-7: 2006 Linux Standard Base (LSB) 3.1 - Część 7: Specyfikacja architektury S390
  • Podstawowa specyfikacja ISO / IEC 23360-8: 2006 Linux Standard Base (LSB) 3.1 - Część 8: Specyfikacja architektury S390X

Istnieje również norma ISO/IEC TR 24715:2006, która identyfikuje obszary konfliktu między ISO/IEC 23360 (specyfikacja Linux Standard Base 3.1) a międzynarodowym standardem ISO/IEC 9945:2003 (POSIX).

ISO/IEC 23360 i ISO/IEC TR 24715 można bezpłatnie pobrać ze strony internetowej ISO.

Przyjęcie

Podczas gdy LSB był standardem i bez konkurenta, po nim pojawiło się tylko kilka dystrybucji Linuksa . Na przykład tylko 21 wydań dystrybucji (wersje) uzyskało certyfikat LSB w wersji 4.0, w szczególności Red Flag Linux Desktop 6.0, Red Hat Enterprise Linux 6.0, SUSE Linux Enterprise 11 i Ubuntu 9.04 (Jaunty Jackalope) ; jeszcze mniej zostało certyfikowanych dla wersji 4.1.

LSB zostało skrytykowane za nieuczestniczenie w projektach, w szczególności w projekcie Debian , poza sferę firm członkowskich.

Wybór formatu pakietu RPM

Firma LSB określiła, że ​​pakiety oprogramowania powinny być dostarczane jako instalator zgodny z LSB lub (najlepiej) w ograniczonej formie formatu RPM Package Manager .

Ten wybór formatu pakietu wykluczał użycie wielu innych, istniejących formatów pakietów, które nie są zgodne z RPM. Aby rozwiązać ten problem, standard nie dyktował, jakiego formatu pakietu system musi używać dla swoich własnych pakietów, a jedynie, że RPM musi być obsługiwany, aby umożliwić instalowanie pakietów od zewnętrznych dystrybutorów w zgodnym systemie.

Ograniczenia w Debianie

Debian wcześnie dołączył opcjonalną obsługę LSB, w wersji 1.1 w "woody" (3.0; 19 lipca 2002), 2.0 w "sarge" (3.1; 6 czerwca 2005), 3.1 w "etch" (4.0; 8 kwietnia, 2007), 3,2 w „lennym” (5,0; 14 lutego 2009) i 4,1 w „wheezy” (7; 4 maja 2013). Aby używać zagranicznych pakietów RPM zgodnych z LSB, użytkownik końcowy musi użyć programu Alien Debiana, aby przekształcić je w natywny format pakietu, a następnie zainstalować.

Określony przez LSB format RPM miał ograniczony podzbiór funkcji RPM — aby zablokować korzystanie z funkcji RPM, które byłyby niemożliwe do przetłumaczenia na .deb za pomocą programu Alien lub innych programów do konwersji pakietów i na odwrót, ponieważ każdy format ma możliwości, których brakuje drugiemu. W praktyce nie wszystkie pakiety binarne Linuksa były koniecznie zgodne ze standardem LSB, więc chociaż większość można było przekonwertować między .rpm a .deb, operacja ta była ograniczona do podzbioru pakietów.

Używając Alien, Debian był kompatybilny z LSB pod każdym względem, ale zgodnie z opisem ich pakietu lsb , obecność pakietu „nie oznacza, że ​​wierzymy, że Debian jest w pełni zgodny ze standardową bazą Linuksa i nie powinien być interpretowane jako stwierdzenie, że Debian jest zgodny z LSB."

Debian starał się zachować zgodność z LSB, ale z wieloma ograniczeniami. Jednak wysiłek ten zakończył się około lipca 2015 r. z powodu braku zainteresowania i siły roboczej w projekcie. We wrześniu 2015 roku projekt Debian potwierdził, że chociaż wsparcie dla Filesystem Hierarchy Standard (FHS) będzie kontynuowane, wsparcie dla LSB zostało porzucone. Ubuntu podążyło za Debianem w listopadzie 2015 roku.

Jakość zestawów testów zgodności

Dodatkowo, zestawy testów zgodności były krytykowane za to, że są błędne i niekompletne – w szczególności w 2005 roku Ulrich Drepper skrytykował LSB za źle napisane testy, które mogą powodować niekompatybilność między dystrybucjami z certyfikatem LSB, gdy niektóre implementują nieprawidłowe zachowanie, aby testy z błędami działały, podczas gdy inne ubiegać się i otrzymywać zwolnienia z przestrzegania testów. Potępił również brak testowania aplikacji, wskazując, że testowanie tylko dystrybucji nigdy nie rozwiąże problemu aplikacji polegających na zachowaniu zdefiniowanym w implementacji.

Dla dostawców rozważających certyfikację LSB w swoich wysiłkach dotyczących przenoszenia, Linux Foundation sponsorowała narzędzie, które analizowało i dostarczało wskazówek dotyczących symboli i bibliotek, które wykraczają poza LSB.

Zobacz też

Bibliografia

Zewnętrzne linki

Głoska bezdźwięczna