МОС-Linux Основные компоненты системы

Материал из IT в школе
Перейти к навигацииПерейти к поиску



Статья в основном для новичков. Это попытка собрать в одном месте полезную информацию, которую иногда непросто найти в описаниях

Ядро (kernel)

Ядро системы это программа, обеспечивающая главным образом

  • Многозадачность - одновременное и независимое исполнение прикладных программ и системных утилит
  • Независимость исполнения программ от особенностей аппаратуры компьютера
  • Совместный доступ к файловой системе компьютера и сети

Ядро системы МОС это и есть Linux - название полученное слиянием имени исходного автора ядра Линуса Торвальдса (сейчас авторов много) с названием идеологического вдохновителя - операционной системы Unix.Именно ядро объединяет все системы Linux.

Ядро написано главным образом на языке C и собирается для системы МОС из исходных текстов. В процессе сборки выбирается (буквально - галочками) включение в систему поддержки тех или иных устройств и функций. Для систем общего назначения обычно выбирается все, что в них может встретится, но текст ядра рассчитан и на специализированные устройства, их поддержку естественно исключают. При сборке добавляются свои исправления (патчи), выбирается что будет присутствовать в системе сразу, а что догружаться в процессе работы в виде модулей. (командами insmod, просмотр lsmod). Таким образом, при всей схожести, ядра одной линукс-системы не вполне похожи на ядра другой.

Ядро состоит из основного файла, загружаемого при старте OC, и модeлей (*.ko) ,служащих для включения поддержки некоторых функций - оборудования, файловых систем ИТП. Важно Ядро монолитно, модули от одного ядра не подходят к другому. Именно поэтому понятие "драйвер" фактически бессмысленно. Есть лишь средства "приделать" в виде модуля к используемому ядру драйвер, поставляемый в виде исходного кода, да и то только если им поддерживается необходимая версия ядра. В процессе "приделывание" в модуль добавляется информация, инбивидуальная для данной версии ядра.

Ядро периодически обновляется, м при этом функции дополняются, а также исправляются ошибки. Каждое новое ядро обозначается номером версии вида x.yy На момент написания уже доступна версия 6.00. Для обновления автоматического ядра используем команду update-kernel (от root).

Название файла ядра обычно vmlinuz (записывается обычно в сжатом виде - потому z).

Загрузчик (grub)

Функция загрузчика - загрузить ядро. При этом присутствует возможность запустить меню (если нажать что-то пока присутствует на экране буква М и идет отсчет времени) и выбрать ядро (если в системе установлено несколько версий) или параметры запуска ядра (например режим отладки). Также из меню можно загрузить Windows из отдельного раздела. Пункты меню настраиваются при настройке grub. Не следует это делать в файле /boot/grub/grub.conf. Этот файл будет пересоздан автоматически при обновлении ядра. Настройка производится в /etc/grub.d/ и обновляется по команде update-grub

Настройки загрузки можно менять из самого Grub в процессе загрузки, вплоть до полностью ручной загрузки. Следуйте подсказкам в меню.

Grub состоит из двух частей - stage 1 и stage 2. Первая часть записана в начале диска (она примитивная), Вторая - в файловой системе. Если вы видите приглашение Grub stage1, значит он не находит файловой системы МОС и все совсем плохо.

Загрузчик передает ядру строку параметров, которые определяют как именно запустится система - включит или нет графику, acpi, какие загрузит или не загрузит модули ИТД ИТП. Через ядро параметры попадают в систему и анализируются и применяются по мере загрузки. Полный список стоит искать в разделе параметры ядра.

Файловая система стадии загрузки (initrd)

При произведении автоматической настройки системы на использование нового ядра, часть модулей и некоторые скрипты и программы, которые необходимы ядру для инициализации от моментв загрузки, до момента подключения файловой системы, копируются сокращенный образ файловой системы, называемый initrd. Именно эта часть системы наиболее зависит от конкретного железа. Собственно простой сисадмин с ней не контактирует, но стоит знать о наличии.

Системный менеджер (systemd)

Системный менеджер служит для запуска множество процессов, исполняемых внутри системы в соответствии с конфигурацией. Он отвечает за порядок запуска, за перезапуск в случае падения, за запись логов, за исполнение роли некоторых простых и не очень сервисов - синхронизации времени, кэширования DNS, и много-много всего. В зависимости от конкретного Linux, используются все функции systemd, либо только часть, либо не используются вообще (заменяется скриптами). В МОС systemd используется максимально.

наиболее употребемые команды systemctl [имя сервиса].servuice <start,stop,restart,enable,disable> ( управление сервисами - запуск, перезапуск, разрешение или запрет запуска при загрузке ) journalctl [-xe] (чтение логов). Попутно заметим что для чтения логов ядра также есть команда dmesg (от root)

Интерпретатор командной строки и скриптов (bash)

Аналог cmd и PowerShell в Windows. Может быть заменен в настройках пользователя на другой (в природе существуют sh,zsh, и другие). Служит для исполнения вводимых команд или интерпретации скриптов. Для того, чтобы явно указать на чем написан скрипт, в первой строке скрипта пишут

#!/bin/bash

что прямо указывает какой программой будет обрабатываться скрипт. Скрипты могут быть написаны и на любом другом языке, если изменить это строку.

Файловая система (ext4)

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

Особенностью linux,доставшейся в наследие от Unix является принцип единой файловой системы и принцип "все есть файл".

Это означает, что все подключенные дисковые устройства входят в единое дерево файловой системы в качестве "веток". В виде "веток" также отображаются

  • Устройства ввода-вывода (диски, консоли, порты, вэб-камеры, клавиатуры) в каталоге /dev
  • Исполняемые процессы в каталокге /proc
  • Системные переменные в каталоге /sys
  • Подключенные невстроенные дисковые в каталоге /mnt (могут быть и в других каталогах)

Пространство для размещения свапа а МОС занимает отдельный раздел на диске (а не файл, как в Windows). Впрочем в других дистридутивах дывает и иначе.

Файловый менеджер (mc)

Аналог Far Manager в Windows (ну или NortonComander :)). Двухпанельный файлменеджер. Имеет хороший редактор с функцией подсветки синтаксиса и копирования прямоугольных блоков. Редактор имеет свое название mcedit. Чтобы установить его редактором по умолчанию в системе нужно заменить в файле /etc/bashrc.d/editor.sh редактор vim на mcedit. По F2 из mc вызывается удобное пользовательское меню для архивации катклогов. По команде "Shell соединение" в меню панели позволяет через ssh подключение просматривать и редактировать файловую систему компьютера, подключенного по сети.

Система документации команд командной строки (man)

На большую часть команд командной строки можно получить описание набрав в командной строке

man <имя команды>

Сервер печати (cups)

В наследство от Apple, МОС достался сервер печати. Управление им осуществляется довольно нестандартно - через web интрефейс, доступный по ссылке http://localhost:631

Дисплейный менеджер (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)

Фактически это и есть графическая подсистема МОС. Она в свою очередь запускает среду рабочего стола Plasma-desktop, а та в свою очередь графический приложения. Каждое графическое приложение имеет консоль. Если графическое приложения запускать из консоли, расположенной внутри графической среды, оно запустится но в консоль возможно будет выдавать сообщения об ошибках. Это бывает полезно для понимания проблем

Среда рабочего стола (plasma-desktop)

Настройки системы для пользователя (каталок .config)

Настройки для конкретного пользователя хранятся в основном в папке пользователя, в каталоге .config , приимущественно в текстовом виде. При проблемах с системой, эти каталоги можно восстановить из архива, скопировать с соседнего компьютера или в крайнем случае частично удалить, сбросив настройки. Можно также запретить изменения настроек, дав файлам в каталоге разрешение только для чтения.

не-Эмулятор Windows (wine)

Для запуска программ Windows можтщ установить эмулятор Wine. Он бывает 32 или 64 битным на 64-битном Linux. Обычно рекомендуется 32-битный. Эмулятор при первом запуске создает в домашней папке каталог .wine (если небыло указано иначе) в котором размещается файловая система всех дисков, подключенных к псевдо-windows. Можно создать таких систем несколько - например свою для каждой запускаемой из wine программы. Windows сложная система, имеет много лицензионных ограничений, поэтому эмуляция работает лишь частично. Часть программ запускается, но работает не полностью, часть не запускается. программа winetriks содержит сборник рецептов в виде скриптов для установки отдельных популярных программ. Важно: программы на wine устанавливаются от имени пользователя (права root не нужны) в каталог пользователя(доступны одному пользователю). Единожды установленный, каталог .wine может быть скопирован на другой компьютер в тот же каталог, чтобы не повторять действия по установке.