Операционные системы на основе ядра Linux: сообщество, дистрибутив, жизненный цикл
Первая лекция в цикле «Школы фундаментальных технологий РБПО»
План:
- Представление
- Что такое «Операционая система»?
- Об истории термина «operating system»
- ОС: разделение, унификация и учёт ресурсов компьютера
- ОС: решение основных пользовательских (под?)задач
- Архитектура «Цветочек»
- Kernel space VS user space
Микроядро: схема не обязана быть настолько монолитной
- Танненбаум: 7, что ли, уровней… Современные архитектуры — 4: аппаратный, гипервизор, ядро, пользователь
- «Принцип сундука» (aka «Unix way»)
На каждую простую задачу должно быть решение + инструмент их склейки
- «Принцип чемоданчика» (aka «Всё на свете можно запрограммировать на C++»)
Только самые необходимые инструменты, позволяющие достаточно комфортно решать любую задачу
- «Принцип гаража» (aka «Не пропадать же добру»)
Чем больше популярных задач будут иметь готовое решение, тем лучше
- Комбинация принципов в современных ОС
- Об истории термина «operating system»
- Что такое «Linux»?
- Linux — это ядро ОС. Немного истории.
- Minix, Линус и файловая система. Первое ядро. Первый дистрибутив. Коммерциализация.
- Ядро — это API.
Те же функции, что и у ОС. В чём разница? В kernel space разделение, унификация и учёт программные (их можно случайно или намеренно нарушить), в user space ОС — структурные (обуcловленные ядром).
- Использование Linux (почти) без userspace
- Встроенные и однозадачные системы
- Android и иже с ним
- Linux — это ядро ОС. Немного истории.
- Свободное лицензирование и открытая разработка
См. Кордонский, Ланцберг «Технология группы» (Ядро - актив - аура - аудитория)
- Принципы формирования свободного сообщества
- Социальная значимость «общего дела»
- Низкий порог входа-выхода
- Произвольная мотивация
- Динамическая профессиональная иерархия
- Информационное пространство (документация/взаимодействие)
- …
- Открытая разработка как свободное сообщество
- + Свободное распространение как условие развития
- + Распределённая совместная разработка
- Свободное лицензирование
- Определение
- Право запускать программу
Право изучать и изменять исходный текст для своих нужд
- Право распространять копии программы
Право публиковать изменения в исходном тексте программы
- Копилефт:
Распространять разрешается на условиях, которые включают все пять пунктов исходной лицензии
- Определение
- Скорее всего, большинство подзадач уже имеют решение⇒ Google it first
- ⇒ Что такое «Операционные системы на основе ядра Linux»?
- Дистрибутив и репозиторий
- Пакет как компонент ОС
- Дистрибутив как продукт
- Репозиторий как платформа для создания дистрибутивов
- (замечание о терминологии: в Debian «дистрибутив» — это репозиторий, а «сборка» — это дистрибутив)
- Роль сообщества в развитии того и другого
- Понятие сопровождающего (майнтейнера) пакета. Сообщество вокруг дистрибутива как сообщество сопровождающих.
- Поддержка технологической составляющей (сборочницы, инструментов сборки и верификации, и т. д.)
- Поддержка инфоресурсов (вики, телеграм, рассылки и т. п.)
- Технические требования к репозиторию
- Пакеты подписаны сборочницей и собраю.тся из исходников
- Изоляция: процесс сборки не может повлиять ни на хост-систему, ни на другой процесс сборки
- Цельность: минимизация «анметов» (неудовлетворённых зависимостей)
- В Сизифе их давно уже нет
- ⇒ Атомарные «задания» по (пере)сборке нескольких пакетов (например, при обновлении библиотеки)
- Ведение истории (возможность собрать пакет на определённом «срезе» постоянно меняющегося репозитория)
- ⇒ Стабильные ветки («платформы») для дистрибутивов
Воспроизводимая (с точностью до временных меток) сборка
- Проверка и енфорсмент дисциплины разработки
- ЖЦ дистрибутива
- Один из вариантов на примере ALT Linux Team / Базальт СПО
- Совместная разработка на базе репозитория
- «Регулярные сборки» на его базе
- Подготовка «платформы» (стабильного среза) в рамках основного репозитория
- Поиск и исправление ошибок в запланированных изменениях
- Обновление версий популярного прикладного ПО (если ещё не)
- Запрет на остальные глобальные изменения
- Документирование
- …
- Выпуск платформы: создание «стабильной ветки» репозиотрия
- Более строгие правила попадания
- «Стартовые сборки»
- Выпуск дистрибутива на базе платформы
- Комплектация
- Оформление
- Документация
- …
- Сопровождение дистрибутива
- Техподдержка
- Обновление версий популярного прикладного ПО
- Обновление с исправлением ошибок проблем с безопасностью
- …
- Послеэксплуатационное сопровождение
- Обновление до продукта следующей ветки: вспомогательные пакеты, например, библиотеки с несовместимым ABI, инструкции и т. п.
- Совместная разработка на базе репозитория
- Один из вариантов на примере ALT Linux Team / Базальт СПО
- Дистрибутив и репозиторий
- Подходы к информационной безопасности в «обычной» ОС
- Что такое «безопасность»?
техническая VS административная составляющие: есть мнение, что в первую очередь — административная!
- секретность VS надёжность (и то, и другое)
- верифицируемость и доступность к экспертизе VS «security through obscurity»
- Техническая безопасность в системах общего назначения:
- Дискреционые и мандатные права доступа
- Суперпользователь и как с ним бороться
- Изоляция (на уровне процессов и на уровне контрольных групп)
Принцип активного оператора: человек-оператор не должен исключаться из цепи управления, сохраняя в ней активные функции (например, после установки пакета соответствующий сервис должен быть выключен до тех пор, пока администратор не включи его явно)
- Дискреционые и мандатные права доступа
- Безопасность как дисциплина:
- криптостойкость
- приватные ключи и токены
- права суперпользовтеля
- …
- Безопасность в процессе разработки:
- харденинг
- дисциплина разработки
- дисциплина оформления пакетов
- Виды дистрибутивов с точки зрения бизнеса и отношения к сообществу
Клоны: родительский дистрибутив оформляется как инструмент решения бизнес-задачи (которую он и так решает)
- Не требует сообщества, не требует актива, зачастую не требует даже технических ресурсов
- ⇒ Не имеет полноценного ЖЦ
- Можно организовать и ликвидировать in no time
Деривативы: родительский дистрибутив дорабатывается для решения класса технологических и безнес-задач
- «Разница» с родительским дистрибутивом сопровождается командой разработчиков (как правило, одной компанией), поддержка сообщества не требуется (она есть у родительского дистрибутива)
- ⇒ ЖЦ строго строго завязан на родительский дистрибутив (релизы, изменения в непрофильном ПО и т. п.)
- Можно сопровождать небольшой командой, полностью сосредоточенной на решении бизнес-задач
Аутентичные: нет родительского дистрибутива
- Для сопровождения требуются усилия сообщества и профессионального актива, большая ресурсная база («сборочница»)
- ⇒ ЖЦ целиком подкотролен сообществу или сообществу + продуктовой компании
Пригоден для изготовления из него клонов и деривативов!
- Что такое «безопасность»?
- История Linux в России на примере ALT Linux Team + Базальт СПО
1999-2000 год — клон «Linux-Mandrake Russian Edition» (русификация)
2001 год — формирование сообщества ALT Linux Team и выпуск деривативов «ALT Linux Junior 1.0» (создание собственной пакетной базы и выработка дисциплин) и «Castle» (внедрение наработок по безопасности, сертификация)
2002 год — выпуск аутентичного дистрибутива «ALT Linux Master 2.0» (полностью своя пакетная база, контроль за процессом сборки); запуск линеек продуктовых дистрибутивов; формирование репозитория Sisyphus
2004 год — компания ИВК выпускает дериватив на базе Sisyphus в составе комплексов «ИВК Кольчуга»
- …строго говоря, вся программная разработка проделана компанией ALT Linux☺
- …продукт развивается по сей день
- 2008-2009 год — по заказу государства выпускаются семейство дистрибутивов «ПСПО» для образовательных учреждений
- 2008 год: Пилотное внедрение проходит успешно при активной поддержке компании ALT Linux и сообщества
2009 год: Попытка создать и поддерживать клон сторонними компаниями без участия компании-разработчика проваливается
2009 год — успешный дериватив на базе Пятой платформы: «Simply Linux»
- Впоследствии линейка Simply перешла под управление компании и сообщества
- …
- (просто чтобы не забыть) 2015 год — смена названия на «Базальт СПО»
- …
На сегодня (2024-03-03):
- Дистрибутивы: сертифицированный ФСТЭК, десктопные, серверный, сервер виртуализации, образоватеьный (сервер и десктоп)
- Аппаратные платформы
- tear 1: x86_64/i596, aarch64/armh, ppc64le
- tear 2: эльбрус, riscv64, loongrach64, mipsel
- Репозиторий: 19603 пакета; 415 активных майнтейнеров; 5751 участник группы в Telegram; …