Стандартная база Linux

Из Википедии, бесплатной энциклопедии

Логотип ЛСБ

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

По данным ЛСБ:

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

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

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

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

Стандарт перестал обновляться в 2015 году, и текущие дистрибутивы Linux не соответствуют ему и не предлагают его; Однако lsb_release команда иногда все еще доступна. [ нужна цитата ] 7 февраля 2023 года бывший сопровождающий LSB написал: «Проект LSB по сути заброшен». [5]

Пример вывода LSB в терминале (Debian версии 11)

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

LSB стремится сделать двоичные файлы пользовательского пространства переносимыми

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

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

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

История версий [ править ]

  • 1.0: первый выпуск 29 июня 2001 г.
  • 1.1: Выпущено 22 января 2002 г. Добавлены спецификации для конкретного оборудования ( IA-32 ).
  • 1.2: Выпущено 28 июня 2002 г. Добавлены спецификации для конкретного оборудования ( PowerPC 32-разрядная версия ). Сертификация началась в июле 2002 года.
  • 1.2.1: Выпущен в октябре 2002 г. Добавлен Itanium .
  • 1.3: Выпущено 17 декабря 2002 г. Добавлены спецификации для конкретного оборудования (Itanium, Enterprise System Architecture/390, z/Architecture).
  • 2.0: выпущена 31 августа 2004 г.
  • 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:2006.
  • 3.2: Выпущено 28 января 2008 г. Эта версия представлена ​​как ISO/IEC 23360:2006.
  • 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 г.: [8]
    • Java удалена [9]
    • Модули «Пробного использования» из LSB 4.0, охватывающие мультимедиа ( ALSA ), безопасность (NSS) и прочие рабочие столы ( xdg-utils ), были продвинуты как обязательные подмодули.
    • Обновлены GTK+ , Cairo и CUPS. библиотеки
    • Добавлены три новых набора тестов.
  • 5.0: выпущено 2 июня 2015 г. Эта версия представлена ​​как ISO/IEC 23360:2021.
    • Библиотека GNU C версии 2.10 (для psiginfo)
    • Первый основной выпуск, который нарушает обратную совместимость с более ранними версиями (совместим с LSB 3.0 и в основном совместим с LSB 3.1 и более поздними версиями, за некоторыми исключениями). [10] )
    • Включает изменения, внесенные в FHS 3.0.
    • Библиотека Qt 3 удалена.
    • Развитая модульная стратегия; LSB модульно разделен на LSB Core, LSB Desktop, LSB Languages, LSB Imaging и пробное использование LSB.

Стандарт ISO/IEC [ править ]

LSB версии 3.1 зарегистрирован в качестве официального ISO / IEC международного стандарта . Основными его частями являются:

  • ISO/IEC 23360-1:2006 Основная спецификация ядра Linux (LSB) 3.1. Часть 1: Общая спецификация [11]
  • ISO/IEC 23360-2:2006 Базовая стандартная базовая спецификация Linux (LSB) 3.1. Часть 2. Спецификация для архитектуры IA-32.
  • ISO/IEC 23360-3:2006 Базовая стандартная базовая спецификация Linux (LSB) 3.1. Часть 3. Спецификация для архитектуры IA-64.
  • ISO/IEC 23360-4:2006 Базовая стандартная базовая спецификация Linux (LSB) 3.1. Часть 4. Спецификация для архитектуры AMD64.
  • ISO/IEC 23360-5:2006 Базовая стандартная базовая спецификация Linux (LSB) 3.1. Часть 5. Спецификация для PPC32. архитектуры
  • ISO/IEC 23360-6:2006 Базовая стандартная базовая спецификация Linux (LSB) 3.1. Часть 6. Спецификация для PPC64. архитектуры
  • ISO/IEC 23360-7:2006 Базовая стандартная базовая спецификация Linux (LSB) 3.1. Часть 7. Спецификация для S390. архитектуры
  • ISO/IEC 23360-8:2006 Базовая спецификация Linux Standard Base (LSB) 3.1. Часть 8. Спецификация для S390X. архитектуры

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

LSB версии 5.0 также зарегистрирован в качестве официального ISO / IEC международного стандарта .

  • ISO/IEC 23360-1-1:2021 Стандартная база Linux (LSB). Часть 1-1. Общие определения
  • ISO/IEC 23360-1-2:2021 Стандартная база Linux (LSB). Часть 1-2. Общая часть базовой спецификации.
  • ISO/IEC 23360-1-3:2021 Стандартная база Linux (LSB). Часть 1-3. Общая часть спецификации рабочего стола.
  • ISO/IEC 23360-1-4:2021 Стандартная база Linux (LSB). Часть 1-4: Спецификация языков
  • ISO/IEC 23360-1-5:2021 Стандартная база Linux (LSB). Часть 1-5. Спецификация образа
  • ISO/IEC TS 23360-1-6:2021 Стандартная база Linux (LSB). Часть 1-6: Графика и спецификация Gtk3
  • ISO/IEC 23360-2-2:2021 Стандартная база Linux (LSB). Часть 2-2. Базовая спецификация для архитектуры X86-32.
  • ISO/IEC 23360-2-3:2021 Стандартная база Linux (LSB). Часть 2-3. Спецификация рабочего стола для архитектуры X86-32.
  • ISO/IEC 23360-3-2:2021 Стандартная база Linux (LSB). Часть 3-2. Базовая спецификация для архитектуры IA64 (Itanium™).
  • ISO/IEC 23360-3-3:2021 Стандартная база Linux (LSB). Часть 3-3. Спецификация рабочего стола для архитектуры IA64 (Itanium TM)
  • ISO/IEC 23360-4-2:2021 Стандартная база Linux (LSB). Часть 4-2. Базовая спецификация для архитектуры AMD64 (X86-64).
  • ISO/IEC 23360-4-3:2021 Стандартная база Linux (LSB). Часть 4-3. Спецификация настольного компьютера для архитектуры AMD64 (X86-64)
  • ISO/IEC 23360-5-2:2021 Стандартная база Linux (LSB). Часть 5-2. Базовая спецификация для архитектуры PowerPC 32.
  • ISO/IEC 23360-5-3:2021 Стандартная база Linux (LSB). Часть 5-3. Спецификация настольного компьютера для архитектуры PowerPC 32.
  • ISO/IEC 23360-6-2:2021 Стандартная база Linux (LSB). Часть 6-2. Базовая спецификация для архитектуры PowerPC 64.
  • ISO/IEC 23360-6-3:2021 Стандартная база Linux (LSB). Часть 6-3. Спецификация настольного компьютера для архитектуры PowerPC 64.
  • ISO/IEC 23360-7-2:2021 Стандартная база Linux (LSB). Часть 7-2. Базовая спецификация для архитектуры S390.
  • ISO/IEC 23360-7-3:2021 Стандартная база Linux (LSB). Часть 7-3. Спецификация рабочего стола для архитектуры S390
  • ISO/IEC 23360-8-2:2021 Стандартная база Linux (LSB). Часть 8-2. Базовая спецификация для архитектуры S390X.
  • ISO/IEC 23360-8-3:2021 Стандартная база Linux (LSB). Часть 8-3. Спецификация рабочего стола для архитектуры S390X

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

Прием [ править ]

Хотя 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) ; [14] еще меньше было сертифицировано для версии 4.1.

LSB подвергся критике [15] [16] [17] [18] за то, что он не принимает участие в проектах, в первую очередь в проекте Debian , за пределами сферы деятельности компаний-членов.

Выбор формата пакета RPM [ править ]

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

Этот выбор формата пакета исключил использование других существующих форматов пакетов, несовместимых с 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 апреля 2005 г., 3.1 в «etch») 2007), 3,2 у «ленни» (5,0; 14 февраля 2009 г.) и 4,1 у «хрипящего» (7; 4 мая 2013 г.). Чтобы использовать сторонние LSB-совместимые RPM-пакеты, конечному пользователю необходимо использовать программу Debian Alien , чтобы преобразовать их в собственный формат пакета, а затем установить.

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

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

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

Наборы тестов качества соответствия [ править ]

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

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

См. также [ править ]

Ссылки [ править ]

  1. ^ «Удостоверение заявления в LSB» . Фонд Linux . 2008. Архивировано из оригинала 15 июля 2009 года . Проверено 26 апреля 2010 г.
  2. ^ «Названия объектов» . Стандартная базовая спецификация ядра Linux 3.1 . 2005.
  3. ^ «Соглашения о комментариях для сценариев инициализации» . Стандартная базовая спецификация ядра Linux 3.1 . 2005.
  4. ^ «Пакет redhat-lsb» . Fedoraproject.org . Архивировано из оригинала 1 сентября 2015 года . Проверено 15 августа 2015 г.
  5. ^ «Re: Архив этого списка рассылки» . список рассылки lsb-discuss . 7 февраля 2023 г.
  6. ^ «Дорожная карта ЛСБ» . Фонд Linux . 2008 год . Проверено 26 апреля 2010 г.
  7. ^ «Примечания к выпуску LSB 5.0» . linuxfoundation.org . Архивировано из оригинала 8 июля 2017 года . Проверено 3 июня 2015 г.
  8. ^ djwm (10 марта 2011 г.). «Java удалена из Linux Standard Base 4.1» . Архивировано из оригинала 7 декабря 2013 года.
  9. ^ «Java удалена из Linux Standard Base 4.1» . h-online.com . 10 марта 2011 года . Проверено 15 августа 2015 г.
  10. ^ «Примечания к выпуску LSB 5.0: Qt 3 удален» . linuxfoundation.org . Проверено 3 июня 2015 г.
  11. ^ ISO/IEC 23360-1:2006 — Базовая стандартная базовая спецификация Linux (LSB) 3.1. Часть 1: Общая спецификация . Проверено 15 октября 2011 г.
  12. ^ ISO/IEC TR 24715:2006 – Информационные технологии. Языки программирования, их среды и интерфейсы системного программного обеспечения. Технический отчет о конфликтах между ISO/IEC 9945 (POSIX) и базой стандартов Linux (ISO/IEC 23360) . Проверено 15 октября 2011 г.
  13. ^ «Общедоступные стандарты ISO» . Проверено 15 октября 2011 г.
  14. ^ Каталог сертифицированных продуктов на linuxbase.org (12 января 2015 г.)
  15. ^ «bugs.debian.org» .
  16. ^ «linuxfoundation.org» . [ постоянная мертвая ссылка ]
  17. ^ «openacs.org» .
  18. ^ «osnews.com» .
  19. ^ «Глава 22. Установка программного обеспечения 22.1. Введение» . Стандартная базовая спецификация ядра Linux 3.1 . 2005.
  20. ^ «Глава 22. Установка программного обеспечения 22.3. Ограничения пакетных сценариев» . Стандартная базовая спецификация ядра Linux 3.1 . 2005.
  21. ^ Перейти обратно: а б «Debian — Подробная информация о пакете lsb в lenny (стабильная версия) — пакет поддержки Linux Standard Base 3.2» . Проект Дебиан . 18 августа 2008 года . Проверено 26 апреля 2010 г.
  22. ^ «Дебиан LSB» . Проект Дебиан . Проверено 26 апреля 2010 г.
  23. ^ «Обсуждение Debian LSB ML» . Проект Дебиан . Проверено 12 сентября 2015 г.
  24. ^ «Debian отказывается от стандартной базы Linux» . LWN.net .
  25. ^ «Исходный пакет lsb 9.20150917ubuntu1 в Ubuntu» . 19 ноября 2015 г.
  26. ^ Перейти обратно: а б Дреппер, Ульрих (17 сентября 2005 г.). «Вы все еще думаете, что LSB имеет какую-то ценность?» . Проверено 26 апреля 2010 г.
  27. ^ «Все о средстве проверки приложений Linux» . Фонд Linux . 2008 год . Проверено 26 апреля 2010 г.

Внешние ссылки [ править ]

СМИ: