Чистым Linux очень тяжело пользоваться. Вам надо будет настраивать всевозможные библиотеки, утилиты и прочие. Поэтому распространенным решением является распространение Linux-а в виде дистрибутива. В каждом из них есть набор базовых библиотек и прочего. А в свою очередь все эти библиотеки переплетены между собой зависимостями и тем, что поставляются в виде репозиториев с открытым исходным кодом, который, в теории, доступен к редактированию и улучшению для каждого.

Дистрибутивы

Как я уже и сказал “голый” Linux устанавливает крайне малое количество разработчиков. Обычным людям это и не нужно. Популярным и стоящим способом распространения является дистрибутив. Что же он в себе содержит?

Компоненты дистрибутива

Важнейшей частью любого дистрибутива Linux является разделение на kernel space и user space — в оперативной памяти появляется условное разделение на две части пользовательские программы(user space) и механизмы работы самой ОС(kernel space).

Ядро

image.png

Самая важная и основная часть Linux-а.

Написана на C и асемблере(и чуть-чуть на расте).

Ядро линукса позволяет упростить взаимодействие с “железками” внутри вашего компьютера путем абстракции. В нем реализован механизм работы с процессором(процессы, шедулинг, контексты), оперативной памятью(виртуальная память, пагинация), жестким диском(файловая система), девайсами(единая модель для драйверов) и сетью(сокеты).

Для прямого взаимодействия с операционной системой из user space существует специальный механизм системных вызовов, который поможет вам получить ресурсы системы и взаимодействовать с ними не заботясь о том, что же реально происходит.

Немного о Линусе

Основным мейнтейнером ядра Linux является его создатель — Линус Торвальдс. Личности по истине легендарная. Но вместе с тем крайне противоречивая. Известен своим радикальным подходом к ревью патчей, несдержанности в комментариях и прямолинейностью.

Система инициализации

Изначально ваш компьютер не знает(и не должен знать) какую ОС он запускает. Для того, что бы запустить все основные процессы у операционных систем есть соглашение о том, какой процесс запускается первым и инициализирует остальные базовые компоненты ОС. За это в Linux отвечает система инициализации. Давайте посмотрим на самые популярные реализации

Режим работы Примеры дистрибутивов Сложность взаимодействия
systemd параллельный Debian, Fedora, Arch Крайне высокая
SysVinit последовательный Относительно простая
[OpenRC](https://en.wikipedia.org/wiki/OpenRC#:~:text=OpenRC is a dependency-based,distributions not to adopt systemd.) параллельный Gentoo, Alpine Linux Высокая
Runit параллельный Void Linux Умеренная

Окружение рабочего стола

Важной частью вашей операционной системы является графическая оболочка. Она облегчает ваше взаимодействие с компьютером и должна удовлетворять вашим представлениям о прекрасном. Популярные варианты