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 . Он также определял средства загрузки, такие как $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 был разработан с учетом двоичной совместимости и создал стабильный двоичный интерфейс приложений (ABI) для независимых поставщиков программного обеспечения . Для достижения обратной совместимости каждая последующая версия была чисто аддитивной. Другими словами, интерфейсы были только добавлены; никакие интерфейсы не были удалены. LSB принял политику прекращения поддержки интерфейсов, чтобы дать разработчикам приложений достаточно времени в случае удаления интерфейса из LSB.
Это позволило разработчику использовать каждый интерфейс в LSB в течение известного времени, а также планировать изменения. Интерфейсы были удалены только после того, как они были помечены как «устаревшие» как минимум в трех основных версиях, или примерно одиннадцать лет. [6]
LSB 5.0 был первым крупным выпуском, нарушившим обратную совместимость с более ранними версиями. [7]
История версий
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 (не выпущено).
Новые спецификации для конкретного оборудования (PowerPC 64-бит , AMD64 )
2.0.1: выпущена 21 октября 2004 г. ISO -версия LSB 2.0, которая включала спецификации для всех аппаратных архитектур (кроме LSB-Graphics, для которой доступна только общая версия).
2.1: Выпущено 11 марта 2005 г.
3.0: Выпущена 1 июля 2005 г. Среди других изменений библиотеки:
Первый основной выпуск, нарушающий обратную совместимость с более ранними версиями (совместимый с LSB 3.0 и в основном совместимый с LSB 3.1 и более поздними версиями, за некоторыми исключениями [10] ).
Развитая модульная стратегия; LSB модульно разделен на LSB Core, LSB Desktop, LSB Languages, LSB Imaging и пробное использование LSB.
Стандарт ИСО/МЭК
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 критиковали [15] [16] [17] [18] за то, что он не принимал участие в проектах, в первую очередь в проекте Debian , за пределами сферы деятельности своих компаний-членов.
Выбор формата пакета RPM
В 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 г.). Чтобы использовать сторонние RPM-пакеты, совместимые с LSB, конечному пользователю необходимо использовать программу 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]
^ «Сертификация приложения в LSB» . Фонд Linux . 2008. Архивировано из оригинала 15 июля 2009 года . Проверено 26 апреля 2010 г.
^ «Названия объектов». Стандартная базовая спецификация ядра Linux 3.1 . 2005.
^ «Соглашения о комментариях для сценариев инициализации» . Стандартная базовая спецификация ядра Linux 3.1 . 2005.
^ "Пакет redhat-lsb" . Fedoraproject.org . Архивировано из оригинала 1 сентября 2015 года . Проверено 15 августа 2015 г.
^ «Re: Архив этого списка рассылки» . список рассылки lsb-discuss . 7 февраля 2023 г.
^ "Дорожная карта LSB" . Фонд Linux . 2008 год . Проверено 26 апреля 2010 г.
^ «Примечания к выпуску LSB 5.0» . linuxfoundation.org . Архивировано из оригинала 8 июля 2017 года . Проверено 3 июня 2015 г.
^ djwm (10 марта 2011 г.). «Java удалена из стандартной базы Linux 4.1». Архивировано из оригинала 7 декабря 2013 года.
^ «Java удалена из стандартной базы Linux 4.1» . h-online.com . 10 марта 2011 года . Проверено 15 августа 2015 г.
^ «Примечания к выпуску LSB 5.0: Qt 3 удален» . linuxfoundation.org . Проверено 3 июня 2015 г.
^ ISO/IEC 23360-1:2006 — Базовая стандартная базовая спецификация Linux (LSB) 3.1 — Часть 1: Общая спецификация . Проверено 15 октября 2011 г.
^ ISO/IEC TR 24715:2006 - Информационные технологии. Языки программирования, их среды и интерфейсы системного программного обеспечения. Технический отчет о конфликтах между ISO/IEC 9945 (POSIX) и стандартной базой Linux (ISO/IEC 23360) . Проверено 15 октября 2011 г.
^ «Общедоступные стандарты ISO» . Проверено 15 октября 2011 г.
^ Каталог сертифицированных продуктов на linuxbase.org (12 января 2015 г.)
^ «Глава 22. Установка программного обеспечения 22.1. Введение». Стандартная базовая спецификация ядра Linux 3.1 . 2005.
^ «Глава 22. Установка программного обеспечения 22.3. Ограничения сценариев пакета» . Стандартная базовая спецификация ядра Linux 3.1 . 2005.
^ ab «Debian — Подробная информация о пакете lsb в lenny (стабильная версия) — пакет поддержки Linux Standard Base 3.2» . Проект Дебиан . 18 августа 2008 года . Проверено 26 апреля 2010 г.
^ "Debian LSB" . Проект Дебиан . Проверено 26 апреля 2010 г.
^ "Обсуждение Debian LSB ML" . Проект Дебиан . Проверено 12 сентября 2015 г.
^ «Debian отказывается от стандартной базы Linux» . LWN.net .
^ «Исходный пакет lsb 9.20150917ubuntu1 в Ubuntu» . 19 ноября 2015 г.
^ аб Дреппер, Ульрих (17 сентября 2005 г.). «Вы все еще думаете, что LSB имеет какую-то ценность?» . Проверено 26 апреля 2010 г.
^ «Все о средстве проверки приложений Linux» . Фонд Linux . 2008 год . Проверено 26 апреля 2010 г.
Стандартная база Linux (LSB), wiki.linuxfoundation.org
Открытый проект Linux VERification (OLVER), linuxtesting.org
поиск пакетов lsb, pkgs.org
лсб, pkgs.org
lsb в Launchpad, launchpad.net — отчеты об ошибках
СМИ:
Дополнительные поставщики участвуют в расширении усилий LSB, 1998, debian.org — описывает распределение команд (на тот момент) и тех, кто в них участвовал, представляет исторический интерес.
Четыре поставщика Linux договорились о внедрении LSB, 2004 г., slashdot.org
Да, LSB имеет ценность, 2005, licquia.org – ответ Джеффа Ликии Дрепперу