Lsb linux standard base

FOSS Open Standards/The Linux Standard Base

The GNU/Linux operating system consists of the Linux kernel itself and, together, the rest of the system software and tools/utilities make up the operating system. Most of the system software is from the GNU Project. [1] In addition, for an operating system to be useful to most people, it has to be made available with support for some application software. The strong community-based history and support of GNU/Linux together with the nature of the licensing of the Linux kernel and GNU software resulted in many people taking the kernel, system software from GNU and possibly other FOSS utilities/tools, adding in some application software which they deem useful, and putting all these together to form a working package. This working package is termed a GNU/Linux distribution or distro. Consequently, the GNU/Linux operating system comes in very many distros. [2] The large number of distros available, coupled with the fact that since most software, if not all, included in a distro are FOSS and, hence, can be customizable to suit the requirements of a particular distro, have resulted in a fair measure of binary and configuration incompatibilities among distros. Some incompatibility problems include different library versions, package formats and differences in directory and file layouts. It has been recognized that if GNU/Linux is to be fully embraced and supported by mainstream computing as a legitimate alternative to proprietary operating systems, there is a need to cut down on these incompatibilities so that a software package with source can compile cleanly across distros and a binary version can run properly across all distros. The Linux Standard Base Project (LSB) [3] tries to do this by specifying a standard for GNU/Linux.

Contents

What is the Linux Standard Base? [ edit | edit source ]

The Linux Standard Base is a project under the Free Standards Group. It attempts to develop and promote a set of binary standards that will increase compatibility among GNU/Linux and other similar systems. These standards will also enable software applications to run on any conforming system.

While the main goal of the LSB project is to increase compatibility among GNU/Linux distributions by specifying and promoting standards for their use, it does not limit the applicability of the specification to only the GNU/Linux environment. The LSB specification has been written so that it can be readily implemented on any UNIX-like operating system, natively or as a compatibility layer. With some more work, it can also be implemented on other operating systems.

The LSB is a community-based project and anyone can contribute to it by participating in the various LSB mailing lists. There is considerably good support for the LSB standard among commercial software vendors like Mandrakesoft, Miracle Linux, Novell, Progeny, Red Flag, Red Hat, IBM, Oracle, Veritas, MySQL, etc.

The Linux Standard Base Specification [ edit | edit source ]

The LSB comprises a single common (generic) specification and architecture specific specifications. The complete specification for a particular platform consists of the generic specification plus one of the architecture specifications. Architectures supported currently are IA32 and IA64 (Intel 32- and 64-bit processors), PPC32 and PPC64 (IBM’s 32- and 64-bit PowerPC family), S390 (IBM’s S390 processors) and S390X (IBM zSeries processors), and AMD64 (Advanced Micro Devices 64-bit processors).

The LSB defines both a set of Application Program Interfaces (APIs) for source code and Application Binary Interfaces (ABIs) for compiled binaries. A conforming implementation has to support all of the ABIs in the LSB but not all of the source-level APIs.

The LSB is divided into specification modules in which a specification module refers to a unique collection of one or more functions that have value for a certain group of runtime implementations. The modules currently available are LSB-Core, LSB-C++, LSB-Graphics and LSB-I18N. Both LSB-Core and LSB-C++ have generic and architecture-specific specifications while the LSB-Graphics and the LSB-I18N have only the generic specification. Table 10 summarizes the currently available modules. [4]

Читайте также:  Macbook air 2014 обновление mac os
LSB Modules
Module Functional Area Architectures Available
ELF Generic, Processor-specific
LSB-Core LSB Generic, Processor-specific
Packaging Generic, Processor-specific
LSB-CXX LSB-C++ Generic, Processor-specific
LSB-Graphics Graphics Generic
LSB-I18n OpenI18n Generic

The latest version of the LSB is 3.0.0. LSB 2.0.1 had been submitted to ISO to become an international standard for GNU/Linux.

LSB-Core Specification [ edit | edit source ]

This is the Core module of the Linux Standard Base. This module provides the fundamental system interfaces, libraries, and runtime environment upon which all conforming applications and libraries depend. It provides specifications for the following areas:

  1. Executable and Linking Format (ELF)
  2. Base libraries
  3. Utility libraries
  4. Command and utilities
  5. Execution environment
  6. System initialization
  7. Users and groups
  8. Package format and installation

The specifications make extensive use of existing standardized APIs and ABIs from other bodies. Some normative references include those from ISO POSIX, the System V Interface Definition (SVID) and the Filesystem Hierarchy Standard (FHS).

In particular, the LSB-Core specification includes many interfaces described in ISO POSIX (ISO/IEC 9945) [5] and it specifies that such interfaces should behave exactly as specified in the POSIX standard. It is also the long-term plan of the LSB to converge with ISO/IEC 9945.

One of the problems plaguing the many different GNU/Linux distros has been the various formats used in software package distribution. The LSB addresses this by specifying that applications shall be packaged in the RPM packaging format as defined in the LSB, or supply an installer which is LSB conforming (for example, by invoking LSB commands and utilities). This means that while packages are encouraged to be supplied in Red Hat Package Manager (RPM) format the LSB does not mandate the use of the RPM program or database.

LSB-C++ Module [ edit | edit source ]

This is the C++ module of the LSB. It supplements the core interfaces by providing system interfaces, libraries, and a runtime environment for applications built using the C++ programming language.

Normative references include the LSB-Core, IOS POSIX and the ISO/IEC 14882 C++ Language standard.

It provides specifications for the following areas:

  1. Low level system information
  2. Base libraries
  3. Package information

The LSB-Graphics Module [ edit | edit source ]

This specification defines the graphical interface found on an LSB conforming system. Normative references include the LSB-Core and graphic libraries and specifications from The X.Org Foundation.

It provides specifications for the following areas:

  1. Graphic libraries
  2. OpenGL libraries
  3. Package information

The LSB-I18N Module [ edit | edit source ]

This module corresponds to the OpenI18N Global Specification from the OpenI18N Project.

Linux Standard Base as an ISO Standard [ edit | edit source ]

LSB 2.0.1 had been submitted to ISO for use as an international standard for GNU/Linux through the ISO PAS (Publicly Available Specification) process and this was recently approved as the standard ISO 23360.

The availability of an ISO GNU/Linux standard is an important milestone, symbolically, in the development of GNU/Linux. It signifies that the GNU/Linux operating environment has come of age and is now officially recognized as a full-fledged mainstream computing platform. As a result, corporations and governments, that so far have been reluctant to use GNU/Linux due to uncertainty regarding its long-term viability and international acceptance, now have the confidence to consider it on an equal footing with other more established operating systems. An ISO GNU/Linux standard will also help the acceptance and usage of FOSS in general as many FOSS products are implemented on GNU/Linux and it is arguably the most wellknown FOSS product.

Linux Standard Base Certification [ edit | edit source ]

GNU/Linux distributions that conform to the LSB can be certified as such. The LSB certification scheme is run on behalf of the Free Standards Group by the Open Group, [6] a vendor- and technology-neutral consortium, to ensure neutrality and confidentiality. Certification charges are kept to a minimum to encourage developers, Independent Software Vendors (ISVs) and GNU/Linux distributions to become LSB certified.

LSB certification is currently available for the following:

  1. LSB Runtime Environment
  2. LSB Application
  3. LSB Internationalized Runtime Environment

Developers and vendors are granted a license to use the LSB Certified trademark in connection with a particular product, once it has passed the applicable certification test suites.

Источник

Стандартная база Linux — Linux Standard Base

Standard Base Linux ( LSB ) был совместный проект нескольких дистрибутивов Linux под организационной структурой Linux Foundation , стандартизировать структуру системы программного обеспечения, в том числе Filesystem Hierarchy Standard используется в ядре Linux . LSB был основан на спецификации POSIX , Single UNIX Specification (SUS) и нескольких других открытых стандартах, но расширил их в определенных областях.

Цель LSB — разработать и продвигать набор открытых стандартов, которые повысят совместимость между дистрибутивами Linux и позволят программным приложениям работать в любой совместимой системе даже в двоичной форме . Кроме того, LSB поможет координировать усилия по привлечению поставщиков программного обеспечения для переноса и написания продуктов для операционных систем Linux.

Соответствие LSB может быть сертифицировано для продукта с помощью процедуры сертификации.

Читайте также:  Установка mdadm linux mint

LSB определяет стандартные библиотеки (сосредоточенные вокруг ld-lsb.so ), ряд команд и утилит, расширяющих стандарт POSIX , структуру иерархии файловой системы , уровни выполнения , систему печати, включая спулеры, такие как CUPS, и инструменты, такие как Foomatic , и несколько расширений. в систему X Window . В нем также указаны средства загрузки, такие как $ local_fs , $ network , которые использовались для указания зависимостей служб в сценариях инициализации в стиле System V. Машиночитаемый блок комментариев в верхней части сценария предоставляет информацию, необходимую для определения, в какой момент процесса инициализации сценарий должен быть вызван; это называлось заголовком LSB.

Эта команда lsb_release -a была доступна во многих системах для получения сведений о версии LSB или могла быть доступна путем установки соответствующего пакета, например redhat-lsb пакета в дистрибутивах с добавлением Red-Hat, таких как Fedora , или lsb-release пакета в дистрибутивах на основе Debian.

Стандарт перестал обновляться в 2015 году, и текущие дистрибутивы Linux не придерживаются его и не предлагают его, однако команда lsb_release все еще доступна.

СОДЕРЖАНИЕ

Обратная совместимость

LSB был разработан для обеспечения двоичной совместимости и создал стабильный двоичный интерфейс приложений (ABI) для независимых поставщиков программного обеспечения . Для обеспечения обратной совместимости каждая последующая версия была чисто аддитивной. Другими словами, интерфейсы только добавились; никакие интерфейсы не были удалены. LSB принял политику устаревания интерфейса, чтобы дать разработчикам приложений достаточно времени на случай, если интерфейс был удален из LSB.

Это позволяло разработчику полагаться на каждый интерфейс в LSB в течение известного времени, а также планировать изменения. Интерфейсы были удалены только после того, как они были помечены как «устаревшие» по крайней мере для трех основных версий, или примерно через одиннадцать лет.

LSB 5.0 был первым крупным выпуском, в котором была нарушена обратная совместимость с более ранними версиями.

История версий

  • 1.0: первый выпуск от 29 июня 2001 г.
  • 1.1: Выпущено 22 января 2002 г. Добавлены аппаратные спецификации ( IA-32 ).
  • 1.2: Выпущено 28 июня 2002 г. Добавлены аппаратные спецификации ( 32-разряднаяверсия PowerPC ). Сертификация началась в июле 2002 года.
  • 1.2.1: Выпущено в октябре 2002 г. Добавлен Itanium .
  • 1.3: выпущена 17 декабря 2002 г. Добавлены аппаратные спецификации (Itanium, Enterprise System Architecture / 390, z / Architecture).
  • 2.0: выпущена 31 августа 2004 г.
    • LSB модульный для LSB-Core, LSB-CXX, LSB-Graphics и LSB- I18n (не выпущен)
    • Новые аппаратные спецификации ( 64-разряднаяверсия PowerPC , AMD64 )
    • Синхронизирован с единой спецификацией UNIX (SUS) версии 3
  • 2.0.1: Выпущена 21 октября 2004 года ISO- версия LSB 2.0, которая включала спецификацию для всех аппаратных архитектур (кроме LSB-Graphics, из которых доступна только общая версия).
  • 2.1: выпущена 11 марта 2005 г.
  • 3.0: выпущена 1 июля 2005 г. Среди других изменений библиотеки:
    • Библиотека GNU C версии 2.3.4
    • C ++ ABI заменен на тот, который используется в gcc 3.4.
    • Основная спецификация обновлена ​​до ISO POSIX (2003).
    • Технические исправления 1: 2005
  • 3.1: выпущен 31 октября 2005 г. Эта версия была представлена ​​как ISO / IEC 23360.
  • 3.2: Выпущен 28 января 2008 г. Эта версия была представлена ​​как ISO / IEC 23360.
  • 4.0: выпущена 11 ноября 2008 г. Эта версия содержит следующие функции:
    • Библиотека GNU C версии 2.4
    • Двоичная совместимость с LSB 3.x
    • Легче использовать SDK
    • Поддержка новых версий графических библиотек GTK и Cairo.
    • Java (дополнительный модуль)
    • Более простые способы создания пакетов RPM, совместимых с LSB
    • Crypto API (через библиотеку Network Security Services ) (дополнительный модуль)
  • 4.1: выпущена 16 февраля 2011 г .:
    • Java удалена
    • Модули «Пробного использования» из LSB 4.0, охватывающие мультимедиа ( ALSA ), безопасность (NSS) и прочее для настольных компьютеров ( xdg-utils ), были продвинуты как требуемые подмодули.
    • Обновлены библиотеки GTK + , Cairo и CUPS.
    • Добавлены три новых набора тестов
  • 5.0: выпущена 2 июня 2015 г.
    • Библиотека GNU C версии 2.10 (для psiginfo)
    • Первый основной выпуск, который нарушает обратную совместимость с более ранними версиями (совместим с LSB 3.0 и в основном совместим с LSB 3.1 и более поздними версиями, за некоторыми исключениями)
    • Включает изменения, внесенные в FHS 3.0.
    • Библиотека Qt 3 удалена
    • Развитая модульная стратегия; LSB разделен на модули LSB Core, LSB Desktop, LSB Languages, LSB Imaging и LSB Trial Use

Стандарт ISO

LSB версии 3.1 зарегистрирован как официальный стандарт ISO . Основные его части:

  • ISO / IEC 23360-1: 2006 Базовая спецификация ядра Linux Standard Base (LSB) 3.1 — Часть 1: Общая спецификация
  • ИСО / МЭК 23360-2: 2006 Базовая спецификация ядра Linux Standard Base (LSB) 3.1 — Часть 2: Спецификация архитектуры IA-32
  • ИСО / МЭК 23360-3: 2006 Стандарт ядра Linux Standard Base (LSB), спецификация 3.1 — Часть 3: Спецификация для архитектуры IA-64
  • ISO / IEC 23360-4: 2006 Стандарт ядра Linux Standard Base (LSB), спецификация 3.1 — Часть 4: Спецификация для архитектуры AMD64
  • ИСО / МЭК 23360-5: 2006 Стандарт ядра Linux Standard Base (LSB), спецификация 3.1 — Часть 5: Спецификация архитектуры PPC32
  • ИСО / МЭК 23360-6: 2006 Базовая спецификация ядра Linux Standard Base (LSB) 3.1 — Часть 6: Спецификация архитектуры PPC64
  • ISO / IEC 23360-7: 2006 Базовая спецификация ядра Linux Standard Base (LSB) 3.1 — Часть 7: Спецификация для архитектуры S390
  • ИСО / МЭК 23360-8: 2006 Базовая спецификация ядра Linux Standard Base (LSB) 3.1 — Часть 8: Спецификация для архитектуры S390X
Читайте также:  Менеджер загрузки операционных систем для windows

Также существует ISO / IEC TR 24715: 2006, который определяет области конфликта между ISO / IEC 23360 (спецификация Linux Standard Base 3.1) и международным стандартом ISO / IEC 9945: 2003 (POSIX).

ISO / IEC 23360 и ISO / IEC TR 24715 можно бесплатно загрузить с веб-сайта ISO.

Прием

Хотя LSB был стандартом и не имел конкурентов, за ним последовали лишь несколько дистрибутивов Linux . Например, только 21 выпуск (версия) дистрибутива был сертифицирован для LSB версии 4.0, в частности Red Flag Linux Desktop 6.0, Red Hat Enterprise Linux 6.0, SUSE Linux Enterprise 11 и Ubuntu 9.04 (Jaunty Jackalope) ; еще меньше было сертифицировано для версии 4.1.

LSB критиковали за то, что он не принимал участие в проектах, в первую очередь проекта Debian , за пределами сферы своих компаний-членов.

Выбор формата пакета RPM

В LSB указано, что программные пакеты должны поставляться либо как LSB-совместимая программа установки, либо (предпочтительно) поставляться в ограниченной форме в формате диспетчера пакетов RPM .

Такой выбор формата пакета исключил использование многих других существующих форматов пакетов, несовместимых с RPM. Чтобы решить эту проблему, стандарт не диктовал, какой формат пакета система должна использовать для своих собственных пакетов, а просто то, что RPM должен поддерживаться, чтобы разрешить установку пакетов от сторонних дистрибьюторов в соответствующей системе.

Ограничения Debian

Debian включил необязательную поддержку LSB на раннем этапе, в версии 1.1 в «woody» (3.0; 19 июля 2002 г.), 2.0 в «sarge» (3.1; 6 июня 2005 г.), 3.1 в «etch» ​​(4.0; 8 апреля 2002 г.) 2007), 3,2 для lenny (5,0; 14 февраля 2009 г.) и 4,1 для «wheezy» (7; 4 мая 2013 г.). Чтобы использовать иностранные LSB-совместимые пакеты RPM, конечный пользователь должен использовать программу Debian Alien, чтобы преобразовать их в собственный формат пакетов, а затем установить их.

Формат RPM, заданный LSB, имел ограниченное подмножество функций RPM — чтобы заблокировать использование функций RPM, которые нельзя было бы перевести в .deb с помощью Alien или других программ преобразования пакетов, и наоборот, поскольку каждый формат имеет возможности, которых нет у другого. На практике не все двоичные пакеты Linux обязательно были LSB-совместимыми, поэтому, хотя большинство из них можно было преобразовать между .rpm и .deb, эта операция была ограничена подмножеством пакетов.

Используя Alien, Debian был LSB-совместимым для всех намерений и целей, но, согласно описанию их пакета lsb , наличие пакета «не означает, что мы считаем, что Debian полностью соответствует Стандартной базе Linux, и не должен быть истолковано как утверждение, что Debian совместим с LSB «.

Debian стремился соответствовать LSB, но с множеством ограничений. Однако эти усилия прекратились примерно в июле 2015 года из-за отсутствия интереса и рабочей силы внутри проекта. В сентябре 2015 года проект Debian подтвердил, что, хотя поддержка стандарта иерархии файловой системы (FHS) будет продолжена, поддержка LSB прекращена. Ubuntu последовала за Debian в ноябре 2015 года.

Качество комплектов тестов на соответствие

Кроме того, комплекты тестов на соответствие критиковались за то, что они содержат ошибки и являются неполными — в частности, в 2005 году Ульрих Дреппер раскритиковал LSB за плохо написанные тесты, которые могут вызвать несовместимость между LSB-сертифицированными дистрибутивами, когда некоторые из них реализуют некорректное поведение, чтобы заставить ошибочные тесты работать, в то время как другие подать заявку и получить отказ от прохождения тестов. Он также осудил отсутствие тестирования приложений, указав, что тестирование только дистрибутивов никогда не может решить проблему приложений, полагающихся на поведение, определяемое реализацией.

Для поставщиков, рассматривающих LSB-сертификаты в своих усилиях по переносимости, Linux Foundation спонсировал инструмент, который проанализировал и предоставил рекомендации по символам и библиотекам, выходящим за рамки LSB.

Источник

Оцените статью