Стандартная база 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 был разработан с учетом двоичной совместимости и создал стабильный двоичный интерфейс приложений (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 г.
- LSB состоит из модулей LSB-Core, LSB-CXX, LSB-Graphics и LSB- I18n (не выпущено).
- Новые спецификации для конкретного оборудования (PowerPC 64-бит , 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: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]
- 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 Standard Base (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 г.). Чтобы использовать сторонние 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]
См. также [ править ]
- Стандарт двоичной совместимости Intel (iBCS)
- POSIX (интерфейс портативной операционной системы)
Ссылки [ править ]
- ^ «Удостоверение заявления в 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 г.
- ^ «Дорожная карта ЛСБ» . Фонд Linux . 2008 год . Проверено 26 апреля 2010 г.
- ^ «Примечания к выпуску LSB 5.0» . linuxfoundation.org . Архивировано из оригинала 8 июля 2017 года . Проверено 3 июня 2015 г.
- ^ djwm (10 марта 2011 г.). «Java удалена из Linux Standard Base 4.1» . Архивировано из оригинала 7 декабря 2013 года.
- ^ «Java удалена из Linux Standard Base 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 г.)
- ^ «bugs.debian.org» .
- ^ «linuxfoundation.org» . [ постоянная мертвая ссылка ]
- ^ «openacs.org» .
- ^ «osnews.com» .
- ^ «Глава 22. Установка программного обеспечения 22.1. Введение» . Стандартная базовая спецификация ядра Linux 3.1 . 2005.
- ^ «Глава 22. Установка программного обеспечения 22.3. Ограничения пакетных сценариев» . Стандартная базовая спецификация ядра Linux 3.1 . 2005.
- ↑ Перейти обратно: Перейти обратно: а б «Debian — Подробная информация о пакете lsb в lenny (стабильная версия) — пакет поддержки Linux Standard Base 3.2» . Проект Дебиан . 18 августа 2008 года . Проверено 26 апреля 2010 г.
- ^ «Дебиан 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 , linuxfoundation.org
- Стандартная база Linux (LSB) , wiki.linuxfoundation.org
- Открытый проект Linux VERification (OLVER) , linuxtesting.org
- поиск пакетов lsb , pkgs.org
- лсб , pkgs.org
- lsb в Launchpad , launchpad.net — отчеты об ошибках
СМИ:
- Дополнительные поставщики участвуют в росте LSB Effort , 1998, debian.org — описывает распределение команд (на тот момент) и тех, кто в них участвовал, представляет исторический интерес.
- Четыре поставщика Linux договорились о внедрении LSB , 2004, slashdot.org
- Да, LSB имеет ценность , 2005, licquia.org – ответ Джеффа Ликии Дрепперу