Linux самоучитель для начинающих

Уроки по Linux

Linux — это семейство Unix-подобных операционных систем (сокр. «ОС»), использующих ядро Linux, которое разработал финно-американский программист Линус Торвальдс. ОС, использующие ядро Linux, называются дистрибутивами Linux, и они являются такими же операционными системами как Microsoft Windows и Apple macOS, но с одной очень важной особенностью, а именно: их исходные коды являются открытыми, так как они распространяются под лицензией GNU GPL, которая подразумевает создание свободного и открытого программного обеспечения (open source software).

Linux существует вокруг нас с середины 1990-х годов. Вы можете встретить его повсюду: в телефонах, ноутбуках, наручных часах, суперкомпьютерах, автомобилях и даже в холодильниках. Он обрел известность как среди разработчиков, так и среди обычных пользователей компьютеров.

Операционные системы на базе ядра Linux пользуются популярностью в разработчиков, так как поддерживают почти все наиболее часто используемые языки программирования: C/C++, Java, Python, Ruby и др. Кроме того, они облегчают работу с широким спектром полезных приложений для разработки ПО.

Цель данных уроков — помочь новичкам разобраться в теме Linux.

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

Поделиться в социальных сетях:

Источник

скачать программу бесплатно

бесплатные программы на русском языке

Мы в социальных сетях

Самоучитель Linux для пользователя

Книга самоучитель Linux для пользователя» посвящена использованию операционной системы Linux. В книге приводятся сведения об истории создания Linux и существующих дистрибутивах. Обсуждается инсталляция системы Linux и ее настройка, описываются файловая система, графический интерфейс и интерфейс командной строки, подключение и настройка аппаратных средств, установка и обновление программных пакетов, работа в локальной сети и Интернете.

Рассмотрены программы работы с текстом в ОС Linux и операционные оболочки, предназначенные для манипулирования файлами. В книге даны полезные ссылки на ресурсы Интернета посвященные OS Linux. Самоучитель Линукс для пользователя (для опытных пользователей и начинающих сетевых администраторов).

Содержание самоучителя Linux:
  • Предисловие
  • Для кого эта книга
  • О чем эта книга
  • Как возникла эта книга
  • Типографские соглашения
  • Благодарности

1.1. Что такое ОС вообще и обучение Linux в частности

1.1.1. Семейство ОС типа UNIX

1.1.2. Немного истории

1.1.3. Основные характеристики ОС Linux

  • Реальная многозадачность
  • Многопользовательский доступ
  • Свопирование оперативной памяти на диск
  • Страничная организация памяти
  • Загрузка выполняемых модулей «по требованию»
  • Совместное использование исполняемых программ
  • Общие библиотеки
  • Динамическое кэширование диска
  • 100%-ное соответствие стандарту POSIX 1003.1.
  • Частичная поддержка возможностей System V и BSD
  • System V IPC
  • Возможность запуска исполняемых файлов других ОС
  • Поддержка различных форматов файловых систем
  • Сетевые возможности
  • Работа на разных аппаратных платформах

1.2. Дистрибутивы Linux

1.3. Требования к компьютеру

1.4. Где взять Linux?

2.1. Подготовка к инсталляции

2.2. Предостережения и рекомендации

2.3. Разделы на диске и процесс загрузки

2.3.1. Что такое «геометрия диска?»

2.3.2. Разделы диска и таблица разбиения диска

2.3.3. Процесс загрузки ОС фирмы Microsoft

2.3.4. Проблемы с большими дисками

2.4. Выбор загрузчика

2.4.1. Загрузчик LILO из дистрибутива ОС Linux

2.4.2. Другие загрузчики ОС

2.4.3. Варианты загрузки

2.5. Подготовка разделов на диске

2.5.1. Рекомендации по созданию разделов

2.5.2. Программы для разбиения диска

2.6. Windows NT и Linux: загрузка через OS Loader от NT

2.7. Использование загрузчика LILO

2.7.1. Установка и настройка загрузчика LILO

2.7.2. Установка других операционных систем после Linux

2.7.3. Перенос каталога /boot в DOS-раздел

2.8. Загрузка Linux из MS-DOS с помощью loadlin.exe

3.1. Загрузка ОС Linux

3.2. Вход в систему

3.3. Консоль, виртуальные терминалы и оболочка

3.4. Редактирование командной строки. История команд

3.5. Завершение работы системы Linux

3.6. Помощь по работ с Линукс учебник

3.6.1. Источники справочной информации

3.6.2. Страницы интерактивного руководства man

3.6.3. Команда info

3.6.4. Команда help

3.6.5. Документация, поставляемая с дистрибутивом и пакетами ПО

3.6.6. Команда Хтап

3.6.7. Команда helptool.

3.6.8. Книги и Интернет

4.1. Файлы и их имена

4.3. Назначение основных системных каталогов

4.4.1. Файлы физических устройств

4.4.2. Именованные каналы (pipes)

4.4.3. Доменные гнезда (sockets)

4.4.4. Символические ссылки (еще раз об именах файлов)

4.5. Права доступа к файлам и каталогам

4.6. Команды для работы с файлами и каталогами

4.6.1. Команды chown и chgrp

4.6.2. Команда mkdir …

4.6.3. Команда cat

4.6.6. Команды т и rmdir

4.6.7. Команды тоге и less

4.6.8. Команда find u символы шаблонов для имен файлов

4.6.9. Команда split — разбиваем файл на несколько частей

4.6.10. Сравнение файлов и команда patch

4.7. Команды архивирования файлов

4.7.1. Программа tar

4.7.2. Программа gzip

4.7.3. Программа bzip2

4.8. Создание и монтирование файловых систем

5.1. Что такое оболочка?

5.2. Специальные символы

5.3. Выполнение команд

5.3.3. Операторы && и ||

5.4. Стандартный ввод/вывод

5.4.1. Потоки ввода/вывода

5.4.2. Команда echo

5.4.3. Команда cat

5.5. Перенаправление ввода/вывода, каналы и фильтры

5.5.1. Операторы >, операционная система Линукс (дополнительные материалы)

Источник

Подборка материала для начинающего linux-сисадмина

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

Кто заинтересовался — прошу под кат.

Читайте также:  Современные темы для windows

Linux/Unix:

Книги:
Ссылки:


habrahabr.ru — разнообразные статьи и новости на IT и около-IT тематику.
www.opennet.ru — огромный сборник манов, вики, статей, советов, новостей и прочего на тему Linux, Unix.
www.linux.org.ru — русская информация об ОС Linux.
xgu.ru/wiki — точка обмена знаниями по UNIX/Linux-системам, системам с открытым исходных кодом, сетям и другим родственным вещам.
www.ibm.com/developerworks/ru/linux — крутые статьи от IBM.
syslog.tv — говорят, что бывают полезные статьи, но сам лично не читал.
www.cyberciti.biz — различные how-to и советы.
events.yandex.ru/events/kit — Курсы Информационных технология от Яндекса (видео), очень советую, крутые доклады.
course.secsem.ru/lections — Лекции по курсу «Практические аспекты сетевой безопасности» (видео, аудио, текст).
www.howtoforge.com — большая подборка How-to.
workaround.org — несколько полезных статей и руководств по Linux.
highload.com.ua — масштабирование и производительность, высокие нагрузки, PHP, MySQL.
find.unixpin.com/ru — построитель команды find.
www.grymoire.com/Unix — отличные учебники по sed, awk и полезные статьи.
kernelnewbies.org/KernelHacking — как же работает ядро?
forum.ru-board.com/forum.cgi?forum=8 — раздел форума для сисадминов.
sysadminblog.ru — блоги сисадминов про cisco, ip телефонию, linux, openldap и другое.
wiki.dieg.info — довольно много полезных советов по Linux.
www.sysadminwiki.ru/wiki — неплохая вики.
olemskoi.ru — блог системного администратора Linux.
debian.pro — блок для пользователя и администратора Debian.
interface31.ru/tech_it/index.html — технический блог со статьями по администрированию.
antizlo.blogspot.ru — опять таки неплохой блог.
howitmake.ru — очередной блог.
vds-admin.ru — linux-мануалы, how-to.
wiki.enchtex.info — ряд полезных статей и how-to по администрированию ubuntu и gentoo.
rfc2.ru — русские переводы RFC.
handynotes.ru — есть довольно хорошие статьи.
xtips.ru — шпаргалка для системных администраторов.
vim-adventures.com — игра-туториал для пользователей Vim.
nixsrv.com — Learn Linux The Hard Way — довольно интересные задачки для новичка.
www.linuxfromscratch.org/lfs — Linux From Scratch — соберем свой собственный линукс дистрибутив с блэкджеком и девушками.

Книги:
Ссылки:

ss64.com — отличный справочник консольных команд bash, cmd, powershel и т.д.
cb.vu/unixtoolbox.xhtml — описание shell-команд и примеры.

Книги:
Ссылки:


www.cpan.org — окало 120 тысяч модулей к Perl.

Python:

Книги:
Ссылки:


docs.python.org/2 — официальная документация по Python 2.7.3.
docs.python.org/3 — официальная документация по Python 3.3.0.

Книги:


Язык программирования С — лучшая книга по Си, но довольно высокий порог вхождения.
Как программировать на С — мне очень понравилась книга манерой изложения и доступностью, по сравнению с первой книгой.
Программирование на языке С — очень хорошо изложен материал.

Книги:


Язык программирования С++ — опять таки одна из лучших книг по С++, но порог вхождения опять таки велик.
Как программировать на С++ — аналогично книге по Си, очень доступно.

Источник

Linux для начинающих

Запись создана, как шпаргалка, чтобы в случае необходимости, использовать как точку входа, для поиска нужной информации. За основу, был взят курс: OTUS: Linux для начинающих — Отличный видеокурс рассчитанный для программистов и администраторов, которые хотят освоить ОС Linux. Курс понравился структурой, которая объясняет основы, необходимые для начинающих изучение.

Linux — семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU, и, возможно, другие компоненты. Как и ядро Linux, системы на его основе как правило создаются и распространяются в соответствии с моделью разработки свободного и открытого программного обеспечения. Linux-системы распространяются в основном бесплатно в виде различных дистрибутивов — в форме, готовой для установки и удобной для сопровождения и обновлений, — и имеющих свой набор системных и прикладных компонентов, как свободных, так, возможно, и собственнических. Linux — Википедия.

Официальной версии операционной системы не существует. Ядро от Линус Торвальдс + окружение от Ричарда Столлмана = GNU/Linux. Оригинальная версия ядра «Vanilla kernel» – kernel.org. Разные версии ядра, разная структура каталогов, разные менеджеры пакетов, разный набор ПО. Не существует официальных сборок.

Версии Linux

Основанные на Red Hat Linux: Red Hat / CentOS / Fedora
Основанные на Debian: Debian / Ubuntu
Основанные на Slackware: Slackware
Основанные на Gentoo: Gentoo

Иерархическая структура каталогов Linux

Иерархическая структура каталогов Linux – все сводится к корню «/» (root).

Иерархическая структура каталогов Linux

/ Корневой каталог, содержит всю файловую архитектуру.
/bin Основные утилиты, необходимые как в однопользовательском режиме, так и при обычной работе всем пользователям (например: cat, ls, cp).
/boot Загрузочные файлы (в том числе файлы загрузчика, ядро, initrd).
/dev Основные файлы устройств (например, /dev/null, /dev/zero).
/etc Общесистемные конфигурационные файлы.
/home Домашние каталоги пользователей, которые содержат персональные настройки и данные пользователя.
/lib Основные библиотеки, необходимы для работы программ из /bin и /sbin.
/media Точки монтирования для сменных носителей.
/mnt Временно монтируемые файловые системы.
/opt Дополнительное программное обеспечение.
/proc Виртуальная файловая система, состояние ядра ОС и запущенные процессы в виде файлов.
/root Домашний каталог супер пользователя.
/run Информация о системе с момента ее загрузки, в том числе данные, необходимые для работы демонов.
/sbin Основные системные программы для администрирования и настройки системы, например init, iptables, ifconfig.
/srv Данные для сервисов, предоставляемых системой (например, www или ftp).
/sys Информация об устройствах, драйверах, а также некоторых свойств ядра.
/tmp Временные файлы.
/usr Вторичная иерархия для данных пользователя. Содержит большинство пользовательских приложений и утилит, используемых в многопользовательском режиме.
/var Изменяемые файлы, такие как файлы регистрации, временные почтовые файлы, файлы спулеров, лог файлы.

Варианты установки ПО в Linux

Из исходных кодов – компиляция бинарных файлов, возможность модифицировать, возможность установки без прав администратора.
Минусы: Поиск зависимостей очень долгий. Отсутствие контроля установленного ПО.

Из пакетов – пакет, это своего рода архив, который содержит уже готовый скомпилированный бинарный файл и перечень зависимостей (сразу виден перечень зависимостей). Есть контроль установленного ПО.

Пакетные менеджеры обрабатываю пакеты, имеют собственную базу данных установленного ПО. Если все таки ПО идет из исходного кода, тогда правильно будет собрать пакет и установить.
Минусы: Нужны права администратора. Пакеты создаются под определённый дистрибутив Linux (rpm для пакетного менеджера yum и deb для dpkg).

Читайте также:  Ведьмак 3 для линукс

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

Простейшие команды в Linux

ls -l Просмотр файлов и директорий, -a показать скрытые файлы.
pwd Текущая директория.
touch Создание файлов
mkdir Создание директорий, -p авто создание поддиректорий.
cd Сменить текущую директорию. Абсолютный путь – путь от корня файловой системы. Относительный путь – путь из текущей директории.
rm Цдалить файл, можно использовать маску.
rmdir Удалить директорию, удаляет только пустые. Нужно использовать команду rm –r, а после rmdir.
cp Копирование файлов и директорий.
mv Перемещение файлов и директорий, можно использовать для переименования.
type Информация о типе команды, то как она будет интерпретироваться если вводится в командной строке.
whereis Показывает полный путь к исполняемому файлу.
who Кто сейчас работает на сервере.
man Справочная информация по команде.
more Листать файл, пробел постранично, еnter построчно, выход клавиша Q.
less Листать файл, можно с помощью курсора, поиск по файлу.

Пользователи в Linux

Идентификация пользователя (UID) — Имя пользователя – 32 символа (псевдоним), для ОС важно идентификатор пользователя.
Два типа пользователей:

  • root (UID 0) – никаких ограничений.
  • Все остальные – служебные (демоны) и обычные (UID не 0).

/etc/passwd – хранится информация о пользователях, в виде:
имя пользователя : Х : UID : GUID (UID группы) : комментарий : домашний каталог : командная оболочка

/etc/group – информация о группах пользователей.
имя группы : GUID : кто входит в группу

/etc/shadow – информация о паролях пользователей, в виде хэш.

Аутентификация – проверка подлинности, наличия пользователя в системе. Логин + пароль – Хеш функция – сравнение с тем что хранится в системе.
Авторизация — предоставление определённому лицу или группе лиц прав на выполнение определённых действий, а также процесс проверки данных прав при попытке выполнения этих действий. Часто можно услышать выражение, что какой-то человек «авторизован» для выполнения данной операции — это значит, что он имеет на неё право.

Расширение файла не имеет значения для ОС – файл это всего лишь поток байт.

Права доступа к файлам

Директория – это файл с определенным признаком каталога.
x – открыть директорию.
r – прочесть содержимое директории.

chmod – смена прав. Ключ –R меняет права директории и содержимого.

Файл – именованная область данных на диске — ext2,3,4. Блок минимальная единица – в ext4 блок 4 Килобайта.
inode – индексный дескриптор, хранит мета информацию о файле, идентифицируются по номерам. Количество inode ограничено, в xfs – нет таких ограничений.

stat – выводит информацию inode файла.

df – свободное пространство файловых систем.
df –i – информация о inode.

Каталог – хранит в себе имена файлов, по сути соответствие имени файла и его inode. Удаление файла — удаление его имени из каталога, файл остается лежать на диске.

Hard Link – синоним имени файлов – для создания ln, для просмотра ln –li, так как при выводе inode можно увидеть количество жестких ссылок. Жесткие линки созданные на один файл, логически между собой равны. Нельзя создавать на каталоги и только в пределах одной файловой системы, потому что inode уникальны в рамках одной файловой система.

Soft Link – аналог ярлыков, ln –s.
Софт линк занимает inode так как это новый файл, а хард линк – новое имя уже существующего файла. Можно создавать на каталоги и между разными файловыми системами.

Работа с потоками STDIN, STDOUT, STDERR

STDIN — Поток номер 0 (stdin) зарезервирован для чтения команд пользователя или входных данных.
STDOUT — Поток номер 1 (stdout) зарезервирован для вывода данных, как правило (хотя и не обязательно) текстовых.
STDERR — Поток номер 2 (stderr) зарезервирован для вывода диагностических и отладочных сообщений в текстовом виде.

Потоки STDIN, STDOUT, STDERR

Перенаправление в файл:
Стандартный поток: ls -l > stdout
Ошибки: ls -l 2> stderr
Одновременно: ls -l 2>stderr 1> stdout
> — перезаписывает файл
>> — добавление в файл

Порядок выполнения команды в bash:
ls -l > stdout — выполнение идет справа налево, сначала создается файл и после в него записывается вывод команды ls.

Перенаправление в STDIN другой команды:
command1 | command2 — перенаправление вывода одной команды на вход другой, используется “|” — pipe.

Команда tee::

Потоки и указатели: “&” — перенаправление по адресу, по указателю.

И, ИЛИ, НЕ ИМЕЕТ ЗНАЧЕНИЯ — Логические операторы работают на основании кода возврата программы. Код возврата: 0 — true, не 0 — false. Каждая программа возвращает код возврата, как увидеть: echo $?

&& — Логическое И:

|| — Логическое ИЛИ:

; — Логическое НЕ ИМЕЕТ ЗНАЧЕНИЕ:

Монтирование

Все есть файлы, диски находятся в каталоге dev, например, sda, sda1, sda2, sdb, sdc, sde, sdf. S — интерфейс SATA. Если имя состоит из букв, это физический диск. Если в конце цифра, это логический диск. Работа с дисками посредством виртуальной файловой системы, VFS — Virtual File System:

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

Монтирование — связывание виртуальной файловой системы с реальной.

После того как запускается ядро ОС, оно должно произвести монтирование корневой файловой системы, точки монтирования прописаны в файле: /etc/fstab
lsblk — информация о блочных устройствах, дисках ОС.
df — h — выводить размеры в читаемом виде, в мегабайтах или гигабайтах.
mount — более подробная информация, берет данные из /etc/mtab -> /proc/self/mounts

Читайте также:  Сколько места выделить под восстановление системы windows 10

/mnt — каталог для монтирования временных устройств, если на постоянной основе, тогда через fstab и отдельный каталог.

Установка ПО

rpm — Пакетный менеджер в Centos (работа с пакетами).
yum — Надстройка над пакетным менеджером, которая работает с репозиторием. Предоставляет данные пакетному менеджеру.

Список файлов в пакете:

Поиск пакета по файлу:

Процессы в Linux

Процесс – программа выполняющаяся в текущий момент, совокупность файлов и данных.

Создать процесс можно исключительно из существующего процесса.
fork() – системный вызов, создающий новый процесс. Создает полную копию процесса. Стартует в одном процессе, завершается в двух.
exec() – системный вызов, заменяющий исполняемый код в процессе. Загрузили программу в созданный процесс.
exit() – завершение процесса. Возвращает код возврата.
wait() – считывает код возврата. Вызывается из процесса, который сделал вызов fork(). Считать код возврата может только тот процесс, из которого произошел процесс, который сейчас завершился, то есть процесс родитель.

fork exec exit wait

PID – Уникальный идентификатор процесса, PPID – уникальный идентификатор процесс родителя. Все процессы имеют идентификаторы кроме init или systemd (pid 1 и ppid 0) и kthreadd (pid 2 и ppid 0).

init – пространство пользователя.
kthreadd – процесс пространства ядра.

Иерархическая структура процессов.

Процесс зомби – процесс между событиями exit и wait от родителя. Нормальное состояние, но если они начинают плодится стоит задуматься. Так как могут быть лимит у пользователя.
1. Симптом загруженной системы.
2. Процесс не следить за своими потомками, код возврата читает исключительно родитель.

Процесс сирота – это процесс без родителя. За сиротами следит ядро, как только появляется такой процесс он присваивается init, чтобы можно было прочесть код возврата.

Как завершить процесс-зомби, сделать сиротой, тогда он присвоится init и завершится.

Каталог /proc/pid — информация о процессе. Просмотр доступен всем пользователям ОС. Управлять процессом может либо создающий пользователь либо root. Сменить владельца не возможно. Кто является владельцем каталога то и является владельцем процесса.
Демон (Аналог служба в Windows.) — Программа работающая в фоновом режиме. Процесс, который не имеет управляющего терминала — не воспринимает команды с клавиатуры. Взаимодействие происходит с помощью сигналов ОС. Буква d в названии файлов – демон.

kill pid — по умолчанию завершает процесс.
posix 28 видов сигналов.
SIGINT – 2 (Сигнал прерывания Ctrl-C с терминала).
SIGTERM – 15 (Сигнал завершения, сигнал по умолчанию для kill).
SIGKILL – 9 Безусловное завершение.

Сигналы обрабатываются специальными обработчиками – описание того что произойдет. Можем сами написать, произойдет замена на дефолтный. На 9 сигнал невозможно написать обработчик. Исключения процессы в статусе d (dump) и процесс init (В FreeBSD можно убить init).

top – показывает первые процессы которые потребляют больше всего процессорного времени.
Если нажать S можно установить период обновления.

Загрузка компьютера: За 1 минуту, За 5 минут, за 15 минут.

load average – среднее количество процессов в очереди на ожидании ресурсов. Если за минуту больше чем за 5 минут, значит нагрузка возрастает, если наоборот, нагрузка падает. Должно быть меньше или равно количеству ядер процессора, но не всегда.

В Линкус в очередь могут попадать процессы ожидающие каких то данных с устройства ввода-вывода, например при монтированная папка которая не доступна по сети, процесс приобретает статус di. По сути это не страшно, так как процессор не нагружают.

Если нажать 1 можно увидеть данные по ядрам.
Вторая строчка – сколько процессов и какой у них статус.

us – сколько процессорных ресурсов израсходовано в пространстве пользователя.
sy – сколько процессорного потрачено на работу ядра.
ni (nice) – сколько процесс. ресурсов потраченных на процессы с низким приоритетом
id – процент простоя процессорного времени.
wa – сколько процессорного времени потраченного на устройство ввода-вывода. Если растет этот параметр, значить система ввода-вывод не справляется с текущей нагрузкой, либо сеть либо диск.
hi – сколько процессорных ресурсов потрачено на обработку аппаратных прерываний.
si – сколько процессорных ресурсов потрачено на программные прерывания.
st – как занята хостовая машина. Актуально для виртуальных машин. Не для всех гипервизоров актуально.

Узнать DNS: cat /etc/resolv.conf

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

Порядок загрузки компьютера:

MBR — главная загрузочная запись, 512 байт — содержит код загрузчика и таблицы раздела. Необходима для загрузки операционной системы.
GPT — стандарт формата размещения таблиц разделов на физическом жестком диске. Он является частью Расширяемого микропрограммного интерфейса (англ. Extensible Firmware Interface, EFI) — стандарта, предложенного Intel на смену BIOS. EFI использует GPT там, где BIOS использует Главную загрузочную запись (англ. Master Boot Record, MBR).

GRUB — Позволяет пользователю иметь несколько установленных операционных систем. Умеет по цепочке передавать управление другому загрузчику. Популярный загрузчик в мире Linux. Загрузка ядра ОС.

Ядро должно содержать драйвер диска для каталога «/». Если загрузка идет со специфического диска, то, как правило, сначала вместо реального диска в каталог / монтируется initrd (Initial RAM Disk) — временная файловая система, можно положить модули ядра. После, старт системы инициализации.

Система инициализации — стартует после загрузки ядра. За систему инициализации отвечает первый процесс (init/systemd). Определяет порядок запуска служб и программ.

Три наиболее популярные системы:
1. SysV — наиболее старая система. Пришла из мира Unix. Набор стартовых скриптов. Уровни запуска.
2. Upstart — пришла на смену SysV, упростить написание стартовых скриптов, инициализация служб отличалась от SysV. Полностью быть совместимой с SysV. Особо не популярна.
3. Systemd — современная система инициализации. Параллельность запуска. Зависимости служб. Если служба не запустилась, система будет пытаться запустить.

Скрипты SysV лежать в каталоге /etc/init.d/
Upstart — команда service
В каталогах rc*.d указывается кто и когда будет стартовать, см. /etc/rc

Каталог по умолчанию для систем инициализации: /lib/systemd/system — перечень файлов, которые отвечают за старт служб.

Источник

Оцените статью