Article de reference

Base de données standard Linux

La Linux Standard Base ( LSB ) était un projet commun de plusieurs distributions Linux, sous l'égide de la Linux Foundation, visant à standardiser l'architecture des systèmes lo...

distributions Linux, sous l'égide de la Linux Foundation, visant à standardiser l'architecture des systèmes logiciels, notamment la norme de hiérarchie des systèmes de fichiers (FSHS) . La LSB s'appuyait sur la spécification POSIX , la spécification UNIX unique (SUS) et plusieurs autres normes ouvertes, tout en les étendant sur certains points.

Selon LSB :

L'objectif du LSB est de développer et de promouvoir un ensemble de standards ouverts qui amélioreront la compatibilité entre les distributions Linux et permettront aux applications logicielles de s'exécuter sur tout système compatible, même sous forme binaire . De plus, le LSB contribuera à coordonner les efforts visant à inciter les éditeurs de logiciels à porter et à développer des produits pour les systèmes d'exploitation Linux.

La conformité LSB peut être certifiée pour un produit par une procédure de certification.

LSB spécifiait les bibliothèques standard (autour de `/etc/lib` POSIX , l'organisation de la hiérarchie du système de fichiers , les niveaux d'exécution , le système d'impression, incluant des spouleurs comme CUPS et des outils comme Foomatic , ainsi que plusieurs extensions du système X Window . Il spécifiait également les mécanismes de démarrage, tels que `$local_fs` et `$network` , utilisés pour indiquer les dépendances de service dans les scripts d'initialisation de type System V. Un bloc de commentaires lisible par machine, placé en haut d'un script, fournissait les informations nécessaires pour déterminer à quel moment du processus d'initialisation le script devait être invoqué ; il s'agissait de l'en-tête LSB.

La commande lsb_release -aétait disponible dans de nombreux systèmes pour obtenir les détails de la version LSB, ou pouvait être rendue disponible en installant un paquet approprié, par exemple le redhat-lsbpaquet dans les distributions de type Red Hat telles que Fedora , ou le lsb-releasepaquet dans les distributions basées sur Debian.

La norme n'est plus mise à jour depuis 2015 et les distributions Linux actuelles ne la respectent pas et ne la proposent pas ; toutefois, la lsb_releasecommande reste parfois disponible. Le 7 février 2023, un ancien responsable de la maintenance du LSB a écrit : « Le projet LSB est essentiellement abandonné. »

Exemple de sortie LSB dans un terminal (Debian version 11)
LSB vise à rendre les binaires de l'espace utilisateur portables

LSB a été conçu pour être compatible binaire et a produit une interface binaire d'application (ABI) stable pour les fournisseurs de logiciels indépendants .

Afin d'assurer la rétrocompatibilité, le LSB a adopté une politique de dépréciation des interfaces pour laisser aux développeurs d'applications le temps de s'adapter en cas de suppression d'une interface du LSB. Une interface destinée à être supprimée est d'abord marquée comme dépréciée dans une version du LSB ; elle reste prise en charge dans cette version et au moins deux versions ultérieures. Cela permet aux développeurs de s'appuyer sur chaque interface du LSB pendant une durée connue et d'anticiper les évolutions.

LSB 5.0 a été la première version majeure à rompre la rétrocompatibilité avec les versions précédentes, car elle a supprimé Qt 3 ; les applications liées dynamiquement aux bibliothèques Qt 3 n'étaient pas garanties de fonctionner sur toutes les distributions compatibles avec LSB 5.0.

Historique des versions

  • 1.0 : Première version sortie le 29 juin 2001.
  • 1.1 : Sortie le 22 janvier 2002. Ajout de spécifications matérielles spécifiques ( IA-32 ).
  • 1.2 : Sortie le 28 juin 2002. Ajout de spécifications matérielles spécifiques ( PowerPC 32 bits ). Certification commencée en juillet 2002.
  • 1.2.1 : Sortie en octobre 2002. Ajout d'Itanium .
  • 1.3 : Sortie le 17 décembre 2002. Ajout de spécifications matérielles spécifiques (Itanium, Enterprise System Architecture/390, z/Architecture).
  • 2.0 : Sortie le 31 août 2004
  • 2.0.1 : Sortie le 21 octobre 2004, version ISO de LSB 2.0, qui comprenait les spécifications pour toutes les architectures matérielles (à l’exception de LSB-Graphics, dont seule une version générique est disponible).
  • 2.1 : Sortie le 11 mars 2005.
  • 3.0 : Sortie le 1er juillet 2005. Parmi les autres modifications apportées à la bibliothèque :
    • Bibliothèque GNU C version 2.3.4
    • L'ABI C++ a été modifiée pour celle utilisée par gcc 3.4.
    • La spécification de base est mise à jour selon la norme ISO POSIX (2003).
    • Corrigenda technique 1 : 2005
  • 3.1 : Publié le 31 octobre 2005. Cette version a été soumise comme ISO/IEC 23360:2006.
  • 3.2 : Publié le 28 janvier 2008. Cette version a été soumise comme ISO/IEC 23360:2006.
  • 4.0 : Sortie le 11 novembre 2008. Cette version contient les fonctionnalités suivantes :
    • Bibliothèque GNU C version 2.4
    • Compatibilité binaire avec LSB 3.x
    • SDK plus facile à utiliser
    • Prise en charge des versions plus récentes des bibliothèques graphiques GTK et Cairo
    • Java (module optionnel)
    • Des méthodes plus simples pour créer des packages RPM conformes à LSB
    • API de chiffrement (via la bibliothèque des services de sécurité réseau ) (module optionnel)
  • 4.1 : Sortie le 16 février 2011 :
    • Java supprimé
    • Les modules « à titre d’essai » de LSB 4.0, couvrant le multimédia ( ALSA ), la sécurité (NSS) et divers outils de bureau ( xdg-utils ), ont été promus en tant que sous-modules requis.
    • Bibliothèques GTK+ , Cairo et CUPS mises à jour
    • Trois nouvelles suites de tests ont été ajoutées.
  • 5.0 : Publiée le 2 juin 2015, cette version a été soumise comme norme ISO/IEC 23360:2021
    • Bibliothèque GNU C version 2.10 (pour psiginfo)
    • Première version majeure qui rompt la rétrocompatibilité avec les versions précédentes (compatible avec LSB 3.0 et en grande partie compatible avec LSB 3.1 et versions ultérieures, à quelques exceptions près ).
    • Intègre les modifications apportées dans FHS 3.0
    • La bibliothèque Qt 3 a été supprimée.
    • Stratégie de modules évoluée ; LSB est désormais modulaire et comprend LSB Core, LSB Desktop, LSB Languages, LSB Imaging et LSB Trial Use.

norme ISO/CEI

La norme LSB, version 3.1, est enregistrée comme norme internationale officielle ISO / CEI . Ses principales composantes sont :

  • ISO/IEC 23360-1:2006 Spécification de base standard Linux (LSB) 3.1 — Partie 1 : Spécification générique
  • ISO/IEC 23360-2:2006 Spécification de base standard Linux (LSB) 3.1 — Partie 2 : Spécification de l’architecture IA-32
  • ISO/IEC 23360-3:2006 Spécification de base standard Linux (LSB) 3.1 — Partie 3 : Spécification de l’architecture IA-64
  • ISO/IEC 23360-4:2006 Spécification de base standard Linux (LSB) 3.1 — Partie 4 : Spécification pour l’architecture AMD64
  • ISO/IEC 23360-5:2006 Spécification de base standard Linux (LSB) 3.1 — Partie 5 : Spécification de l’ architecture PPC32
  • ISO/IEC 23360-6:2006 Spécification de base standard Linux (LSB) 3.1 — Partie 6 : Spécification pour l’architecture PPC64
  • ISO/IEC 23360-7:2006 Spécification de base standard Linux (LSB) 3.1 — Partie 7 : Spécification de l’architecture S390
  • ISO/IEC 23360-8:2006 Spécification de base standard Linux (LSB) 3.1 — Partie 8 : Spécification de l’architecture S390X

Il existe également la norme ISO/IEC TR 24715:2006 qui identifie les domaines de conflit entre la norme ISO/IEC 23360 (la spécification Linux Standard Base 3.1) et la norme internationale ISO/IEC 9945:2003 (POSIX).

La norme LSB, version 5.0, est également enregistrée comme norme internationale officielle ISO / CEI .

  • ISO/IEC 23360-1-1:2021 Base de normes Linux (LSB) — Partie 1-1 : Définitions communes
  • ISO/IEC 23360-1-2:2021 Linux Standard Base (LSB) — Partie 1-2 : Spécification de base (partie générique)
  • ISO/IEC 23360-1-3:2021 Linux Standard Base (LSB) — Partie 1-3 : Spécification générique pour les postes de travail
  • Norme ISO/IEC 23360-1-4:2021 Linux Standard Base (LSB) — Partie 1-4 : Spécification des langages
  • Norme ISO/IEC 23360-1-5:2021 Linux Standard Base (LSB) — Partie 1-5 : Spécification d’imagerie
  • Norme ISO/IEC TS 23360-1-6:2021 Linux Standard Base (LSB) — Partie 1-6 : Spécification graphique et Gtk3
  • ISO/IEC 23360-2-2:2021 Linux Standard Base (LSB) — Partie 2-2 : Spécification de base pour l’architecture x86-32
  • ISO/IEC 23360-2-3:2021 Linux Standard Base (LSB) — Partie 2-3 : Spécification pour les environnements de bureau x86-32
  • ISO/IEC 23360-3-2:2021 Linux Standard Base (LSB) — Partie 3-2 : Spécification de base pour l’architecture IA64 (Itanium™)
  • ISO/IEC 23360-3-3:2021 Linux Standard Base (LSB) — Partie 3-3 : Spécification de bureau pour l’architecture IA64 (Itanium™)
  • ISO/IEC 23360-4-2:2021 Linux Standard Base (LSB) — Partie 4-2 : Spécification de base pour l’architecture AMD64 (X86-64)
  • ISO/IEC 23360-4-3:2021 Linux Standard Base (LSB) — Partie 4-3 : Spécification pour ordinateurs de bureau pour l’architecture AMD64 (X86-64)
  • ISO/IEC 23360-5-2:2021 Linux Standard Base (LSB) — Partie 5-2 : Spécification de base pour l’architecture PowerPC 32
  • ISO/IEC 23360-5-3:2021 Linux Standard Base (LSB) — Partie 5-3 : Spécification pour ordinateurs de bureau utilisant l’architecture PowerPC 32
  • ISO/IEC 23360-6-2:2021 Linux Standard Base (LSB) — Partie 6-2 : Spécification de base pour l’architecture PowerPC 64
  • ISO/IEC 23360-6-3:2021 Linux Standard Base (LSB) — Partie 6-3 : Spécification pour architecture PowerPC 64
  • ISO/IEC 23360-7-2:2021 Linux Standard Base (LSB) — Partie 7-2 : Spécification de base pour l’architecture S390
  • ISO/IEC 23360-7-3:2021 Linux Standard Base (LSB) — Partie 7-3 : Spécification de bureau pour l’architecture S390
  • ISO/IEC 23360-8-2:2021 Linux Standard Base (LSB) — Partie 8-2 : Spécification de base pour l’architecture S390X
  • ISO/IEC 23360-8-3:2021 Linux Standard Base (LSB) — Partie 8-3 : Spécification de bureau pour l’architecture S390X

Les normes ISO/IEC 23360 et ISO/IEC TR 24715 peuvent être téléchargées gratuitement depuis le site web de l'ISO.

Réception

Bien que LSB ait été une norme sans concurrent, elle n'a été adoptée que par quelques distributions Linux . Par exemple, seules 21 distributions (versions) ont été certifiées pour LSB version 4.0, notamment Red Flag Linux Desktop 6.0, Red Hat Enterprise Linux 6.0, SUSE Linux Enterprise 11 et Ubuntu 9.04 (Jaunty Jackalope) ; encore moins ont été certifiées pour la version 4.1.

Le LSB a été critiqué pour ne pas avoir pris en compte les contributions de projets, notamment le projet Debian , en dehors de la sphère de ses entreprises membres.

Choix du format du paquet RPM

LSB a spécifié que les packages logiciels devaient être livrés soit sous la forme d'un installateur conforme à LSB, soit (de préférence) sous une forme restreinte du format RPM Package Manager .

Ce choix de format de paquetage interdisait l'utilisation d'autres formats existants incompatibles avec RPM. Pour remédier à cela, la norme n'imposait pas de format de paquetage spécifique au système pour ses propres paquetages, mais exigeait simplement la prise en charge de RPM afin de permettre l'installation de paquetages provenant de distributeurs tiers sur un système conforme.

Limitations sur Debian

Debian a intégré très tôt la prise en charge optionnelle de LSB : version 1.1 dans « woody » (3.0 ; 19 juillet 2002), version 2.0 dans « sarge » (3.1 ; 6 juin 2005), version 3.1 dans « etch » (4.0 ; 8 avril 2007), version 3.2 dans « lenny » (5.0 ; 14 février 2009) et version 4.1 dans « wheezy » (7 ; 4 mai 2013). Pour utiliser des paquets RPM compatibles LSB provenant de systèmes tiers, l’ utilisateur doit les convertir au format natif de Debian à l’aide du programme Alien , puis les installer.

Le format RPM, spécifié par LSB, comportait un sous-ensemble restreint de fonctionnalités afin d'empêcher l'utilisation de fonctionnalités RPM incompatibles avec le format .deb (notamment avec Alien) et d'autres programmes de conversion de paquets, et inversement, chaque format possédant des capacités que l'autre n'offre pas. En pratique, tous les paquets binaires Linux n'étaient pas nécessairement conformes à LSB ; par conséquent, bien que la plupart puissent être convertis entre .rpm et .deb, cette opération était limitée à certains d'entre eux.

En utilisant Alien, Debian était compatible LSB à toutes fins utiles, mais selon la description de leur lsbpaquet, la présence du paquet « n’implique pas que nous croyons que Debian est entièrement conforme à la base standard Linux, et ne doit pas être interprétée comme une déclaration selon laquelle Debian est conforme à LSB ».

Debian s'est efforcé de se conformer à la norme LSB, mais avec de nombreuses limitations. Toutefois, cet effort a cessé vers juillet 2015 en raison d'un manque d'intérêt et de personnel au sein du projet. En septembre 2015, le projet Debian a confirmé que si la prise en charge de la norme FHS ( Filesystem Hierarchy Standard ) serait maintenue, celle de la norme LSB était abandonnée. Ubuntu a suivi Debian en novembre 2015.

Qualité des suites de tests de conformité

De plus, les suites de tests de conformité ont été critiquées pour leurs bogues et leur caractère incomplet. En 2005, Linux Foundation a parrainé un outil qui analysait et fournissait des conseils sur les symboles et les bibliothèques qui vont au-delà du LSB.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index