Что такое Операционная система
Операционная система это программный код, который обеспечивает работу прикладных компьютерных программ. Если проводить аналогии, то можно сказать, что операционная система это фундамент, стены, крыша, окна и двери здания. А внутри здания может быть все что угодно - жилье, мастерская, склад, ресторан (это уже аналогии прикладных программ).
Операционная система состоит как минимум из трех частей. Ядро обеспечивает доступ (для прикладных программ) к процессору и оперативной памяти - это два компонента необходимы для выполнения любых операций над информацией. Вторая часть операционной системы отвечает за получение информации из какого-либо устройства (или нескольких устройств) и вывод результатов вычислений на другое устройство (или устройства). И третья часть это минимальный набор прикладных программ, которые предназначены для настройки и управления ядром операционной системы. А также для запуска других прикладных программ.
Пример такой минимальной ОС и минимального компьютера это роутеры. Тем самые роутеры, которые стоят сегодня почти в каждом доме и офисе. Роутер это самый простой компьютер и он работает под управлением самой простой операционной системы. Из чего состоит роутер? Аппаратно там всего лишь 3 компонента:
- Процессор.
- Оперативная память.
- Сетевые карты ввода и вывода данных.
Соответственно и операционная система там тоже предельно простая, состоящая из:
- Ядро.
- Драйверы сетевых карт.
- Прикладная программа, которая управляет процессором, обеспечивая передачу данных между сетевыми картами.
Объем программного кода такой простой операционной системы относительно небольшой и может быть написан даже несколькими программистами.
Но если мы возьмем операционную систему для компьютеров, такую как Windows, Linux или Mac OS то там уже будет огромный массив программного кода, который создают сотни и даже тысячи программистов, в течении многих лет. "Большие" операционные системы включают в себя, кроме ядра, драйверов устройств ввода и вывода еще и систему графического (визуального) вывода информации и графический интерфейс пользователя. То есть "большие" ОС на порядки больше и сложнее, чем ОС для маленьких устройств вроде роутера.
Итак, операционная система это программный код, который создают (пишут) программисты. Причем такую работу может выполнять далеко не любой программист. Операционные системы разрабатывают самые квалифицированные из программистов.
Но для того, чтобы программный код операционной системы можно было практически использовать на конкретном компьютере, этот код нужно определенным образом подготовить. И вот тут уже начинается история дистрибутива.
Что такое дистрибутив Операционной системы
Дистрибутив это программный код операционной системы, который скомпонован, оформлен и трансформирован таким образом, чтобы его можно было установить на компьютер и затем использовать. Опять таки, если проводить аналогии, то например можно сказать и так - операционная система это еда, которая на кухне, в кастрюлях, сковородах и т.п.. А дистрибутив это еда, которую которую разложили по тарелкам, вынесли и расставили на столах - можно садиться и есть.
Подготовкой дистрибутивов тоже занимаются программисты, но уже уже с более низкой квалификацией. Собственно говоря, выполнять сборку дистрибутивов могут даже не программисты, поскольку там нет необходимости работать с программным кодом операционной системы.
Таким образом, разработкой операционной системы занимаются две группы специалистов:
- Высококвалифицированные программисты, которые создают программный код.
- Обычные программисты или даже совсем не программисты, которые формируют дистрибутив из этого программного кода.
Если брать проприетарные операционные системы, такие как MS Windows или Apple Mac OS, то это деление на группы и вся эта работа, "снаружи" не видна. На "выходе" есть лишь готовые дистрибутивы этих операционных систем. Поскольку обе группы специалистов работают в одной и той же компании, то мы с вами, как потребители, видим лишь конечный результат этой работы.
С операционной системой GNU\Linux все сложнее. Там мало того что все части ОС Linux создаются разными группами программистов, которые очень слабо связаны друг с другом. Но и компоновщики (maintainers) дистрибутивов не связаны с программистами, которые пишут код операционной системы.
И получается примерно такая картина. Одна группа программистов пишет код ядро ОС. Другая группа пишет код графического движка, причем под Linux есть несколько графических движков (Xorg, Wayland) и соответственно несколько команд программистов которые их пишут. Есть группы, которые пишут код графических оболочек пользователя (GNOME, KDE, LXDE, XFCE и т.д.). А еще программисты которые пишут необходимые для работы ОС, прикладные программы.
И все эти группы программистов не связаны друг с другом и никому не подчиняются кроме самих себя.
И со сборщиками (maintainers) точно такая же картина. Они не связаны не только друг с другом, но и с программистами, которые пишут код операционной системы.
И как же это все работает, как в итоге получаются пригодные для использования дистрибутивы Linux?
Все группы программистов, которые пишут код ОС, выкладывают этот код в Интернет, в открытый доступ. Майнтейнеры дистрибутивов берут этот код, компонуют все его части друг с другом. Затем компилируют в бинарную форму (программный код, в чистом виде не может быть выполнен процессором компьютера). Добавляют также откомпилированные прикладные программы. Затем настраивают программу-установщик. И все это вместе, записывают в образ установочного диска. Далее этот образ или выкладывается в Интернет, для скачивания или (и) отправляется на фабрику, для печати физических установочных дисков.
Кроме создания образа установочного диска, майнтейнеры (maintainers)дистрибутивов собирают еще и так называемые репозитории ПО. Хранилища прикладных программ, драйверов, частей ОС в такой форме чтобы это можно было более или менее просто установить на компьютер, уже после установки операционной системы.
И поскольку исходные коды как самой операционной системы Linux, так и большого количества прикладных программ для нее, доступны свободно и без ограничений, то собрать дистрибутив Linux может любой желающий. Конечно при наличии необходимой квалификации. Хотя сборка дистрибутива это сильно проще чем написание программного кода, но все же требует и знаний и опыта.
Именно поэтому, сегодня существуют уже наверное больше 100 дистрибутивов Linux. Разобраться в них трудно, для не специалиста. Но все их можно разделить на две группы:
Базовые дистрибутивы
Те, которые собираются из исходных кодов, всех частей ОС и прикладных программ. Самые известные среди базовых дистрибутивов - Debian, Ubuntu, Fedora, RHEL, SuSe. Есть и другие базовые дистрибутивы. В частности, у нас в стране это Rosa Linux и Alt Linux.
Клоны
Те, кому не хватает квалификации (или возможностей) для создания полноценного дистрибутива берут один из уже существующих и клонируют его у себя. Добавив от себя какие-либо изменения, часто совсем незначительные. Дистрибутивы-клоны делают обычно из базовых дистрибутивов, но бывают и клоны, созданные из клонов. Таких дистрибутивов сегодня уже десятки, если не больше сотни. Буквально нашествие клонов.
У нас в стране тоже есть такие клоны, например АльтерОС и Астра Линукс. Но если АльтерОС это незамутненный клон дистрибутива CentOS. То сборщики дистрибутива Астра Линукс, добавили, к исходникам дистрибутива Debian, немалую долю своей работы - они написали собственную графическую оболочку пользователя.
Резюме
Если вы используете (или планируете использовать) Windows или Mac OS то вам незачем думать про различия между операционной системой и её дистрибутивом. Потому что вы можете получить только дистрибутив, причем только в одном варианте (не считая вариантом версии).
Но если вы хотите использовать ОС Linux то разницу нужно понимать. И нужно думать о том, какой именно дистрибутив выбрать. Если для личного использования можно и любой клон выбрать, то для использования на работе лучше выбирать базовый дистрибутив, а если уж клон, то серьезного уровня (типа Астра Линукс).
Dws, 2024 г.