МОС-Linux Основные компоненты системы
Статья в основном "для новичков"
Ядро (kernel)
Ядро системы это программа, обеспечивающая главным образом
- Многозадачность - одновременное и независимое исполнение прикладных программ и системных утилит
- Независимость исполнения программ от особенностей аппаратуры компьютера
- Совместный доступ к файловой системе компьютера и сети
Ядро системы МОС это и есть Linux - название полученное слиянием имени исходного автора ядра Линуса Торвальдса (сейчас авторов много) с названием идеологического вдохновителя - операционной системы Unix.Именно ядро объединяет все системы Linux. В некоторых системах (например android, линукс в роутерах) даже отсутствуют компоненты GNU.
Ядро написано главным образом на языке C и собирается для системы МОС из исходных текстов. В процессе сборки выбирается (буквально - галочками) включение в систему поддержки тех или иных устройств и функций (для систем общего назначения обычно выбирается все что в них может встретится, но текст ядра рассчитан и на специализированные устройства, их поддержку естественно исключают), добавляются свои исправления (патчи), выбирается что будет присутствовать в системе сразу, а что догружаться в процессе работы в виде модулей. (командами insmod, просмотр lsmod). Таким образом, при всей схожести, ядра одной линукс-системы не вполне похожи на ядра другой.
Ядро состоит из основного файла, загружаемого при старте OC, и модeлей, (*.ko) служащих для включения поддержки некоторых функций - оборудования, файловых систем ИТП. Важно Ядро монолитно, модули от одного ядра не подходят к другому. Именно поэтому понятие "драйвер" фактически бессмысленно. Есть лишь средства "приделать" в виде модуля к используемому ядру драйвер, поставляемый в виде исходного кода, да и то только если им поддерживается необходимая версия ядра.
Ядро периодически обновляется,дополняется. Каждое новое ядро обозначается номером версии вида x.yy На момент написания уже доступна версия 6.00. Для обновления автоматического ядра используем команду update-kernel (от root).
Название файла ядра обычно vmlinuz (записывается обычно в сжатом виде - потому z).
Загрузчик (grub)
Функция загрузчика - загрузить ядро. При этом присутствует возможность запустить меню (если нажать что-то пока присутствует на экране буква М и идет отчсет времени) и выбрать ядро (если их несколько) и параметры запуска ядра. Также из меню можно загрузить Windows из отдельного раздела (если указать раздел при настройке grub). Можно исправить строку запуска ядра,. Grub состоит из двух частей - stage 1 и stage 2. Первая часть записана в начале диска (она примитивная), Вторая - в файловой системе. Если вы видите приглашение Grub stage1, значит он не находит файловой системы МОС и все совсем плохо. Загрузчик передает ядру строку параметров, которые определяют как именно запустится система - включит или нет графику, acpi, какие загрузит или не загрузит модули ИТД ИТП. Через ядро параметры попадают в систему и анализируются и применяются по мере загрузки. Полный список стоит искать в разделе параметры ядра.
Файловая система стадии загрузки (initrd)
При произведении автоматической настройки системы на использование нового ядра, часть модулей и некоторые скрипты и программы, которые необходимы ядру для инициализации от моментв загрузки, до момента подключения файловой системы, копируются сокращенный образ файловой системы, называемый initrd. Именно эта часть системы наиболее зависит от конкретного железа. Собственно простой сисадмин с ней не контактирует, но стоит знать о наличии.
Системный менеджер (systemd)
Системный менеджер служит для запуска множество процессов, исполняемых внутри системы в соответствии с конфигурацией. Он отвечает за порядок запуска, за перезапуск в случае падения, за запись логов, за исполнение роли некоторых простых и не очень сервисов - синхронизации времени, кэширования DNS, и много-много всего. В зависимости от конкретного Linux, используются все функции systemd, либо только часть, либо не используются вообще (заменяется скриптами). В МОС systemd используется максимально.
наиболее употребимые команды systemctl ( управление сервисами - запуск, перезапуск, установка запуска при загрузке ) journalctl (чтение логов).
Интерпретатор командной строки (bash)
Аналог cmd и PowerShell в Windows. Может быть заменен в настройках пользователя на другой (в природе существуют sh,zsh, и другие). Служит для исполнения вводимых команд или интерпретации скриптов. Для того, чтобы явно указать на чем написан скрипт, в первой строке скрипта пишут
#!/bin/bash
что прямо указывает какой программой будет обрабатываться скрипт.
Файловый менеджер (mc)
Аналог Far Manager в Windows (ну или NortonComander :)). Двухпанельный файлменеджер. Имеет короший редактор с функцией подсветки синтаксиса и копирования прямоугольных блоков. Редактор имеет свое название mcedit. Чтобы установить его редактором по умолчанию в системе нужно заменить в файле /etc/bashrc.d/editor.sh редактор vim на mcedit. По F2 из mc вызывается удобное пользовательское меню для архивации катклогов. По команде "Shell соединение" в меню панели позволяет через ssh подключение просматривать и редактировать файловую систему компьютера, подключенного по сети.
Дисплейный менеджер (sddm)
Графическая окружение является независимой подсистемой MOS-Linux. Для ее запуска используется дисплейный менеджер. Именно дисплейный менеджер запускается системным менеджером после загрузки системы и служит для ввода логина и пароля (в том числе и для беcпарольного входа, если эта функция активирована). В дисплейном менеджере можно выбрать некоторые параметры. В частности вид графического сервера (xorg или более современный wayland) но я не рекомендую это делать в MOS на данном этапе - wayland работает плохо. В системе могут быть установлены разные дисплейные менеджеры (lightdm, gdm), но по умолчанию выбран sddm. В его настройках в /etc/X11/sddm/sddm.conf можно задать пользователя, от имени которого будет осуществляться вход сразу после загрузки без пароля.
Если графическая подсистема не стартует, рекомендуем переустановить (apt-get reintall sddm) или перезапустить (systemctl sddm.service restart) дисплейный менеджер.
Графический сервер (xorg)
не-Эмулятор Windows (wine)
Для запуска программ Windows можтщ установить эмулятор Wine. Он бывает 32 или 64 битным на 64-битном Linux. Обычно рекомендуется 32-битный. Эмулятор при первом запуске создает в домашней папке каталог .wine (если небыло указано иначе) в котором размещается файловая система всех дисков, подключенных к псевдо-windows. Можно создать таких систем несколько - например свою для каждой запускаемой из wine программы. Windows сложная система, имеет много лицензионных ограничений, поэтому эмуляция работает лишь частично. Часть программ запускается, но работает не полностью, часть не запускается. программа winetriks содержит сборник рецептов в виде скриптов для установки отдельных популярных программ. Важно: программы на wine устанавливаются от имени пользователя (права root не нужны) в каталог пользователя(доступны одному пользователю). Единожды установленный, каталог .wine может быть скопирован на другой компьютер в тот же каталог, чтобы не повторять действия по установке.