Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Колисниченко Д. Н. Хакинг на linux.pdf
Скачиваний:
17
Добавлен:
19.04.2024
Размер:
29.19 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

r

 

P

 

 

 

 

 

NOW!

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

w Click

 

 

 

# /sbin/grubm

-install /dev/sda

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

l .1.111.1 1. ( k110111.1

l

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

,illll\

 

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Поскольку GRUВ2 у тебя уже устаномен, вряд ли когда-то придется вво­ дить эту команду. Исключение может составить разве что переустановка операционной системы, которая перезапишет загрузочный сектор сво­ им загрузчиком. Поэтому тебе придется загрузиться с LiveCD, выполнить chroot для вашей старой корневой системы и ввести команду grub-install для установки загрузчика GRUВ2.

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

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

Слу,,сба (сервис, демон)- специш ьная программа, выполняющаяся в фоно­ вом режиме и предоставляющая определенныеуслуги (или, как говорят, сер­

вис - отсюда и второе название).

Что превращает обычный компьютер, скажем, в FТР-сервер? Правильно, за­ пущенная служба FTP - тот же ProFTPD или что-то подобное. Ты можешь установить программу ProFТPD и настроить ее на автоматический запуск системой инициализации. Тогда при каждой загрузке наш компьютер будет превращаться в FТР-сервер. Аналогично и с другими сервисами - доста­ точно установить определенную программу, чтобы превратить компьютер в веб-сервер или почтовый сервер. Но стоит тебе отключить ее и компьютер уже прекращает предоставлять обеспечиваемые программой услуги, следо­ вательно, превращается в самый обычный компьютер.

В мире Linux существовало очень много разных систем инициализации - init, upstart, init-ng. Все их рассматривать уже нет смысла, поскольку в совре­ менных дистрибутивах используется совреме1:tная система инициализации systemd.

systemd - подсистема инициализации и упрамения службами в Linux, фактически вытеснившая в 2010-е годы традиционную подсистему init. Основная особенность - интенсивное распараллеливание запуска--служб

в процессе загрузки системы, что позволяет существенно ускорить запуск операционной системы. Основная единица упрамения - модуль, одним из

'-- - -- - - -- - --- - - - --- - -- - --- - -- - - - - --- ----- - - - - -- - - ---- ---- - - - - - ---- - --- - - - - - - - - - -

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'\ ,11, 11111 11,1 ( 11111 \

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

 

w Click

 

 

типовm

модулей являются "службы" - аналог демонов - наборы процессовw Click,

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

запускаемые и управляемые средствами подсистемы и изолируемые·

 

 

g

 

 

 

 

 

 

 

 

 

g

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

контрольными группами.

Принцип работы

Система инициализации systemd используется во многих современных дистрибутивах, в частности в Fedora, UЬuntu, CentOS и openSUSE. На дан­ ный момент - это самая быстрая система инициализации.

Давайте подумаем, как можно ускорить запуск Linux? Можно пойти по пути upstart - параллельно запускать службы. Но параллельный запуск - не всег­ да хорошо. Нужно учитывать зависимости служб. Например, сервис d-,.bus нужен многим другим сервисам. Пока сервис d-bus не будет запущен, нельзя запускать сервисы, которые от него зависят.

Если сначала запускать основные сервисы и ждать, пока они будутзапуще­ ны, а потом уже запускать службы, которые от них зависимы, особого вы­ игрыша в производительности по сравнению с init ты не увидишь. Но если сервис d-bus (или любой другой, от которого зависят какие-то другие серви­ сы) запускается долго, то все остальные службы будутждать его.

Как обойти это ограничение? При своем запуске службы проверяют, запу­ щена ли необходимая им служба, по наличию файла сокета. Например, в

случае с d-Ьиs-это файл /var/run/dbus/system_bus_socket. Если мы создадим сокеты для всех служб, то мы можем запускаrь их параллельно, особо не беспокоясь, что произойдет сбой какой-то службы при запуске из-за отсут­ ствия службы, от которой они зависят. Даже если несколько служб, которым нужен сервис d-bus, запустятся раньше, чем сам сервис d-bus: ничего страш­ ного. Каждая из этих служб отправит в сокет (главное, что он уже открыт!) сообщение, которое обработает сервис d-bus после того, как он запустится. Вот и все.

Но это не единственное "ухищрение", посредством которого осуществля­ ется ускорение запуска компьютера, инициализацию которого производит systemd. Эта система инициализации запускает только необходимые сер­ висы. Остальные же будут запущены по мере необходимости. Концепция отложенного запуска используется и в других операционных системах - например, в Мае OS Х (там система инициализации называется launchd)

и в Windows ( концепция отложенного запуска служб). Так что решение не

очень новое , но зато проверенное.

 

------------·····································-- -- -- -- ---····-·· ··· ··· · ··-······

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

Основнымиm

функциями systemd являются:

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Активация на основании сокетов - система инициализации systemd

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

Активация на основании устройств - systemd может запустить опре­ деленные службы, когда станет доступным определенный тип оборудо­ вания. Например, ты подключил Bluetooth-aдanтep, может быть запущен сервис Ыuetooth.

Активация.на основании d-bus - служба инициализации может запу­ стить сервисы, которые используют d-bus для межпроцессного взаимо­ действия, например, когда клиентское приложение попытается связаться

ссистемной службой.

Активащiя на основании путей - systemd может запустить службу, если изменится содержание каталога.

Управление точками монтирования и автоматическим монтирова­ нием - система инициализации отслеживает и управляет точками монти­ рования и автоматического монтирования.

Снимки системных состояний - благодаря этой возможности systemd

может сохранить состояние всех модулей и восстановить предыдущее состояние системы.

Параллелизация - systemd запускает системные службы параллельно благодаря активации на основании сокетов. Параллельная активация су­ щественно сокращает время загрузки системы.

Обратная совместимость с SysV - поддерживаются сценарии инициа­ лизации SysV, что упрощает переход на systemd. Однако все устанавли­ ваемые в современных дистрибутивах пакеты служб уже адаптированы под systemd, поэтому не нужно надеяться, что во время установки пакета какого-то сервиса будут установлены SуsV-сценарии. Будут созданы фай­ лы, необходимые для запуска сервиса посредством systemd.

.............................,....................................................•

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

\.,11, 11111

 

 

 

 

to

BUY

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

11,1 ( 11111 \

Конфиrурационные файлы systemd

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

концепция модулей (юнитов).

Таблица 1.1. Типы модулей системы инициализации systemd

Тип

Описание

service

в

время

 

в

 

target

snapshot

mount

4 '

-----------------------------------------------------------------------------------·

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

automount

socket

device

path

scope

slice

swap

timer

 

 

 

hang

e

 

 

 

 

C

 

E

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

F

 

 

 

 

 

t

 

D

 

 

 

 

 

i

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

to

 

 

 

w Click

 

 

 

m

 

 

 

 

w

 

 

 

 

 

 

Автоматическая точка монтирования. Используется для df-x chan

o

 

 

w

 

 

.

 

.c

 

 

 

p

g

 

 

 

 

 

e

монтирования сменных носителей - флешек, внешних

 

 

жестких дисков, оптических дисков и т.д.

 

 

 

Сокет. Представляет сокет, находящийся в файловой си-

 

 

стеме или в Интернете. Поддерживаются сокеты AF_INET,

 

 

AF_INET6, AF_UNIX. Реализация довольно интересная.

 

 

Например, если сервису servicel.servive соответствует со-

 

 

кет servicel.socket, то при попытке установки соединения с

 

 

servicel .socket будет запущен servicel.servive

 

 

 

Устройство. Представляет устройство в дереве устройств.

 

 

Работает вместе с udev: если устройство описано в виде

 

 

правила udev, то его можно представить в systemd в виде

 

 

модуля device

 

 

 

Файл или каталог, созданный где-то в файловой системе

 

 

 

Процесс, который создан извне

 

 

 

Управляет системными процессами. Представляет собой

 

 

группу иерархически организованных модулей

 

 

 

 

 

 

 

 

Представляет область подкачки (раздел подкачки) или файл

 

 

подкачки (свопа)

 

 

 

 

 

 

 

Представляетсобой таймерсистемы инициализации systemd

 

 

Модули хранятся в следующих каталогах:

/etc/systemd/system/ - обладает самым высоким приоритетом. Здесь со­ держатся модули, которые созданы и управляются системным админи­ стратором.

/run/systemd/system/ - модули, созданные во время ыполнения. Приори­ тет этого каталога ниже, чем каталога /etc/systemd/system/, но выше, чем

у /usrЛiЬ/systemd/system.