Base standard Linux - Linux Standard Base

Le logo LSB

La Linux Standard Base ( LSB ) était un projet conjoint de plusieurs distributions Linux sous la structure organisationnelle de la Linux Foundation pour normaliser la structure du système logiciel, y compris le Filesystem Hierarchy Standard utilisé dans le noyau Linux . LSB était basé sur la spécification POSIX , la spécification Single UNIX (SUS) et plusieurs autres normes ouvertes, mais les a étendus dans certains domaines.

Selon LSB :

L'objectif du LSB est de développer et de promouvoir un ensemble de normes ouvertes qui augmenteront la compatibilité entre les distributions Linux et permettront aux applications logicielles de fonctionner sur n'importe quel système conforme, même sous forme binaire . De plus, le LSB aidera à coordonner les efforts de recrutement de fournisseurs de logiciels pour porter et écrire 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 a spécifié des bibliothèques standard (centrées autour du ld-lsb.so), un certain nombre de commandes et d'utilitaires qui étendent le standard POSIX , la disposition de la hiérarchie du système de fichiers , les niveaux d'exécution , le système d'impression, y compris les spouleurs tels que CUPS et des outils comme Foomatic , et plusieurs extensions au système X Window . Il spécifiait également des fonctionnalités de démarrage, telles que $local_fs , $network , qui étaient utilisées pour indiquer les dépendances de service dans les scripts d'initialisation de style System V. Un bloc de commentaires lisible par une machine en haut d'un script fournissait les informations nécessaires pour déterminer à quel stade du processus d'initialisation le script devait être invoqué ; il s'appelait 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 package approprié, par exemple le redhat-lsbpackage dans les distributions Red-Hat telles que Fedora , ou le lsb-releasepackage dans les distributions basées sur Debian.

La norme a cessé d'être mise à jour en 2015 et les distributions Linux actuelles ne la respectent pas ou ne l'offrent pas, cependant la lsb_releasecommande est toujours disponible.

Un exemple de sortie LSB dans un terminal (Debian version 11)

Rétrocompatibilité

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 . Pour obtenir une compatibilité descendante, chaque version ultérieure était purement additive. En d'autres termes, les interfaces ont seulement été ajoutées ; aucune interface n'a été supprimée. Le LSB a adopté une politique de dépréciation d'interface pour donner aux développeurs d'applications suffisamment de temps au cas où une interface serait supprimée de LSB.

Cela a permis au développeur de s'appuyer sur chaque interface de LSB pendant une durée connue et de planifier les modifications. Les interfaces n'ont été supprimées qu'après avoir été marquées "obsolètes" pendant au moins trois versions majeures, soit environ onze ans.

LSB 5.0 a été la première version majeure qui a rompu la compatibilité descendante avec les versions antérieures.

Historique des versions

  • 1.0 : Version initiale le 29 juin 2001.
  • 1.1 : sortie le 22 janvier 2002. Ajout de spécifications spécifiques au matériel ( IA-32 ).
  • 1.2 : publié le 28 juin 2002. Ajout de spécifications spécifiques au matériel ( PowerPC 32 bits ). La certification a débuté 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 spécifiques au matériel (Itanium, Enterprise System Architecture/390, z/Architecture).
  • 2.0 : publié le 31 août 2004
    • LSB est modularisé en LSB-Core, LSB-CXX, LSB-Graphics et LSB- I18n (non publié)
    • Nouvelles spécifications spécifiques au matériel (PowerPC 64 bits , AMD64 )
    • Synchronisé à la spécification Single UNIX (SUS) version 3
  • 2.0.1 : Sortie le 21 octobre 2004, version ISO de LSB 2.0, qui incluait des spécifications pour toutes les architectures matérielles (à l'exception de LSB-Graphics, dont seule une version générique est disponible).
  • 2.1 : Paru 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++ est remplacée par celle utilisée par gcc 3.4
    • La spécification de base est mise à jour vers ISO POSIX (2003)
    • Rectificatifs techniques 1 : 2005
  • 3.1 : publié le 31 octobre 2005. Cette version a été soumise en tant qu'ISO/IEC 23360.
  • 3.2 : publié le 28 janvier 2008. Cette version a été soumise en tant qu'ISO/IEC 23360.
  • 4.0 : sortie le 11 novembre 2008. Cette version contient les fonctionnalités suivantes :
  • 4.1 : Paru le 16 février 2011 :
    • Java supprimé
    • Les modules "Utilisation d'essai" de LSB 4.0, couvrant le multimédia ( ALSA ), la sécurité (NSS) et divers bureau ( xdg-utils ) ont été promus comme sous-modules requis
    • Mise à jour GTK + , Le Caire et CUPS bibliothèques
    • Trois nouvelles suites de tests ajoutées
  • 5.0 : publié le 2 juin 2015
    • Bibliothèque GNU C version 2.10 (pour psiginfo)
    • Première version majeure qui rompt la rétrocompatibilité avec les versions antérieures (compatible avec LSB 3.0, et principalement 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 module évoluée ; LSB est modularisé en LSB Core, LSB Desktop, LSB Languages, LSB Imaging et LSB Trial Use

Norme ISO

Le LSB, version 3.1, est enregistré comme norme internationale officielle ISO / IEC . Les principales parties de celui-ci sont :

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

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

ISO/IEC 23360 et ISO/IEC TR 24715 peuvent être téléchargés gratuitement sur le site Web de l'ISO.

Accueil

Alors que LSB était un standard et sans concurrent, il n'a été suivi 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és pour la version 4.1.

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

Choix du format de package RPM

LSB a spécifié que les progiciels devraient soit être livrés en tant qu'installateur compatible LSB, soit (de préférence) être livrés sous une forme restreinte du format RPM Package Manager .

Ce choix de format de package empêchait l'utilisation des nombreux autres formats de package existants non compatibles avec RPM. Pour résoudre ce problème, la norme n'a pas dicté quel format de package le système doit utiliser pour ses propres packages, simplement que RPM doit être pris en charge pour permettre aux packages de distributeurs tiers d'être installés sur un système conforme.

Limitations sur Debian

Debian a inclus le support optionnel de LSB dès le début, à la version 1.1 dans "woody" (3.0 ; 19 juillet 2002), 2.0 dans "sarge" (3.1 ; 6 juin 2005), 3.1 dans "etch" (4.0 ; 8 avril, 2007), 3,2 dans « lenny » (5,0 ; 14 février 2009) et 4,1 dans « wheezy » (7 ; 4 mai 2013). Pour utiliser des packages RPM étrangers compatibles LSB, l' utilisateur final doit utiliser le programme Alien de Debian pour les transformer dans le format de package natif, puis les installer.

Le format RPM spécifié par LSB avait un sous-ensemble restreint de fonctionnalités RPM - pour bloquer l'utilisation des fonctionnalités RPM qui seraient intraduisibles en .deb avec Alien ou d'autres programmes de conversion de package, et vice versa, car chaque format a des capacités que l'autre manque. Dans la pratique, tous les packages binaires Linux n'étaient pas nécessairement compatibles LSB, donc alors que la plupart pouvaient être convertis entre .rpm et .deb, cette opération était limitée à un sous-ensemble de packages.

En utilisant Alien, Debian était compatible avec LSB à toutes fins utiles, mais selon la description de leur paquet lsb , la présence du paquet "n'implique pas que nous pensons que Debian est entièrement conforme à la base standard Linux, et ne devrait pas être interprété comme une déclaration selon laquelle Debian est conforme à LSB."

Debian s'est efforcé de se conformer au LSB, mais avec de nombreuses limitations. Cependant, cet effort a cessé vers juillet 2015 en raison du manque d'intérêt et de main-d'œuvre au sein du projet. En septembre 2015, le projet Debian a confirmé que si la prise en charge de Filesystem Hierarchy Standard (FHS) se poursuivrait, la prise en charge de LSB avait été 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 être boguées et incomplètes - notamment, en 2005, Ulrich Drepper a critiqué le LSB pour des tests mal écrits qui peuvent provoquer une incompatibilité entre les distributions certifiées LSB lorsque certaines implémentent un comportement incorrect pour faire fonctionner les tests bogués, tandis que d'autres demander et recevoir des dispenses de se conformer aux tests. Il a également dénoncé un manque de tests d'applications, soulignant que tester uniquement les distributions ne peut jamais résoudre le problème des applications reposant sur un comportement défini par l'implémentation.

Pour les fournisseurs envisageant les certifications LSB dans leurs efforts de portabilité, la Linux Foundation a parrainé un outil qui a analysé et fourni des conseils sur les symboles et les bibliothèques qui vont au-delà du LSB.

Voir également

Les références

Liens externes

Médias