Операционные системы на основе ядра Linux: сообщество, дистрибутив, жизненный цикл

План:

  1. Представление
  2. Что такое «Операционая система»?
    • Об истории термина «operating system»
      • ОС: разделение, унификация и учёт ресурсов компьютера
      • ОС: решение основных пользовательских (под?)задач
    • Архитектура «Цветочек»
      • Картинка

      • Kernel space VS user space
      • Микроядро: схема не обязана быть настолько монолитной

      • Танненбаум: 7, что ли, уровней… Современные архитектуры — 4: аппаратный, гипервизор, ядро, пользователь
    • «Принцип сундука» (aka «Unix way»)
      • На каждую простую задачу должно быть решение + инструмент их склейки

    • «Принцип чемоданчика» (aka «Всё на свете можно запрограммировать на C++»)
      • Только самые необходимые инструменты, позволяющие достаточно комфортно решать любую задачу

    • «Принцип гаража» (aka «Не пропадать же добру»)
      • Чем больше популярных задач будут иметь готовое решение, тем лучше

    • Комбинация принципов в современных ОС
  3. Что такое «Linux»?
    • Linux — это ядро ОС. Немного истории.
      • Minix, Линус и файловая система. Первое ядро. Первый дистрибутив. Коммерциализация.
    • Ядро — это API.
      • Те же функции, что и у ОС. В чём разница? В kernel space разделение, унификация и учёт программные (их можно случайно или намеренно нарушить), в user space ОС — структурные (обуcловленные ядром).

    • Использование Linux (почти) без userspace
      • Встроенные и однозадачные системы
      • Android и иже с ним
  4. Свободное лицензирование и открытая разработка
    • Картинка

    • Принципы формирования свободного сообщества
      • Социальная значимость «общего дела»
      • Низкий порог входа-выхода
      • Произвольная мотивация
      • Динамическая профессиональная иерархия
      • Информационное пространство (документация/взаимодействие)
    • Открытая разработка как свободное сообщество
      • + Свободное распространение как условие развития
      • + Распределённая совместная разработка
    • Свободное лицензирование
      • Определение
        1. Право запускать программу
        2. {OK} Право изучать и изменять исходный текст для своих нужд

        3. Право распространять копии программы
        4. {OK} Право публиковать изменения в исходном тексте программы

      • Копилефт:
        1. Распространять разрешается на условиях, которые включают все пять пунктов исходной лицензии

    • Скорее всего, большинство подзадач уже имеют решение⇒ Google it first
  5. ⇒ Что такое «Операционные системы на основе ядра Linux»?
    • Дистрибутив и репозиторий
      • Пакет как компонент ОС
      • Дистрибутив как продукт
      • Репозиторий как платформа для создания дистрибутивов
      • (замечание о терминологии: в Debian «дистрибутив» — это репозиторий, а «сборка» — это дистрибутив)
    • Роль сообщества в развитии того и другого
      • Понятие сопровождающего (майнтейнера) пакета. Сообщество вокруг дистрибутива как сообщество сопровождающих.
      • Поддержка технологической составляющей (сборочницы, инструментов сборки и верификации, и т. д.)
      • Поддержка инфоресурсов (вики, телеграм, рассылки и т. п.)
    • Технические требования к репозиторию
      • Пакеты подписаны сборочницей и собраю.тся из исходников
      • Изоляция: процесс сборки не может повлиять ни на хост-систему, ни на другой процесс сборки
      • Цельность: минимизация «анметов» (неудовлетворённых зависимостей)
        • В Сизифе их давно уже нет
        • ⇒ Атомарные «задания» по (пере)сборке нескольких пакетов (например, при обновлении библиотеки)
      • Ведение истории (возможность собрать пакет на определённом «срезе» постоянно меняющегося репозитория)
        • ⇒ Стабильные ветки («платформы») для дистрибутивов
        • Воспроизводимая (с точностью до временных меток) сборка

      • Проверка и енфорсмент дисциплины разработки
    • ЖЦ дистрибутива
      • Один из вариантов на примере ALT Linux Team / Базальт СПО
        1. Совместная разработка на базе репозитория
          • «Регулярные сборки» на его базе
        2. Подготовка «платформы» (стабильного среза) в рамках основного репозитория
          • Поиск и исправление ошибок в запланированных изменениях
          • Обновление версий популярного прикладного ПО (если ещё не)
          • Запрет на остальные глобальные изменения
          • Документирование
        3. Выпуск платформы: создание «стабильной ветки» репозиотрия
          • Более строгие правила попадания
          • «Стартовые сборки»
        4. Выпуск дистрибутива на базе платформы
          • Комплектация
          • Оформление
          • Документация
        5. Сопровождение дистрибутива
          • Техподдержка
          • Обновление версий популярного прикладного ПО
          • Обновление с исправлением ошибок проблем с безопасностью
        6. Послеэксплуатационное сопровождение
          • Обновление до продукта следующей ветки: вспомогательные пакеты, например, библиотеки с несовместимым ABI, инструкции и т. п.
  6. Подходы к информационной безопасности в «обычной» ОС
    • Что такое «безопасность»?
      • техническая VS административная составляющие: есть мнение, что в первую очередь — административная!

      • секретность VS надёжность (и то, и другое)
      • верифицируемость и доступность к экспертизе VS «security through obscurity»
    • Техническая безопасность в системах общего назначения:
      • Дискреционые и мандатные права доступа
        • Суперпользователь и как с ним бороться
      • Изоляция (на уровне процессов и на уровне контрольных групп)
      • Принцип активного оператора: человек-оператор не должен исключаться из цепи управления, сохраняя в ней активные функции (например, после установки пакета соответствующий сервис должен быть выключен до тех пор, пока администратор не включи его явно)

    • Безопасность как дисциплина:
      • криптостойкость
      • приватные ключи и токены
      • права суперпользовтеля
    • Безопасность в процессе разработки:
      • харденинг
      • дисциплина разработки
      • дисциплина оформления пакетов
    • Виды дистрибутивов с точки зрения бизнеса и отношения к сообществу
      • Клоны: родительский дистрибутив оформляется как инструмент решения бизнес-задачи (которую он и так решает)

        • Не требует сообщества, не требует актива, зачастую не требует даже технических ресурсов
        • ⇒ Не имеет полноценного ЖЦ
        • Можно организовать и ликвидировать in no time
      • Деривативы: родительский дистрибутив дорабатывается для решения класса технологических и безнес-задач

        • «Разница» с родительским дистрибутивом сопровождается командой разработчиков (как правило, одной компанией), поддержка сообщества не требуется (она есть у родительского дистрибутива)
        • ⇒ ЖЦ строго строго завязан на родительский дистрибутив (релизы, изменения в непрофильном ПО и т. п.)
        • Можно сопровождать небольшой командой, полностью сосредоточенной на решении бизнес-задач
      • Аутентичные: нет родительского дистрибутива

        • Для сопровождения требуются усилия сообщества и профессионального актива, большая ресурсная база («сборочница»)
        • ⇒ ЖЦ целиком подкотролен сообществу или сообществу + продуктовой компании
        • Пригоден для изготовления из него клонов и деривативов!

  7. История 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; …

FrBrGeorge/Baumanka2024 (последним исправлял пользователь FrBrGeorge 2024-03-28 17:05:03)