From 1c4dab825e6df07f5287bba680c384373612b284 Mon Sep 17 00:00:00 2001 From: nnz1024 <0comffdiz@inbox.ru> Date: Mon, 23 May 2011 17:16:00 +0400 Subject: [PATCH] Version v6.0 (2011-05-23 17:16) [AUTO] --- s4a.tex | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 105 insertions(+), 1 deletion(-) diff --git a/s4a.tex b/s4a.tex index d9cbb81..2d84a0b 100644 --- a/s4a.tex +++ b/s4a.tex @@ -13,8 +13,9 @@ % Заполняем поля PDF уже со включенной опцией unicode \hypersetup{pdftitle={systemd для администраторов},% pdfauthor={Lennart Poettering, Sergey Ptashnick}} -% Небольшое сокращение +% Несколько сокращений \newcommand{\sectiona}[1]{\section*{#1}\addcontentsline{toc}{section}{#1}} +\newcommand{\hreftt}[2]{\href{#1}{\texttt{#2}}} % Настройка макета страницы \setlength{\hoffset}{-1.5cm} \addtolength{\textwidth}{2cm} @@ -1644,6 +1645,109 @@ Fedora~15 <<из коробки>>. не~самым правильным решением. \end{itemize} +\section{Новые конфигурационные файлы} + +Одно из наиболее масштабных нововведений +\href{http://www.freedesktop.org/wiki/Software/systemd}{systemd}~--- наличие +полного набора программ, необходимых на ранних стадиях загрузки, причем эти +программы написаны на простом, быстром, надежном и легко поддающемся +распараллеливанию языке C. Теперь можно отказаться от <<простыней>> +shell-скриптов, разработанных для этих задач различными дистрибутивами. Наш +<<Проект нулевой оболочки>>\footnote{Наш девиз~--- <<Первой оболочкой, +запускающейся при старте системы, должна быть GNOME shell>>. Формулировка +оставляет желать лучшего, но все же неплохо передает основную идею.} увенчался +полным успехом. Уже сейчас возможности предоставляемого нами инструментария +покрывают практически все нужды настольных и встраиваемых систем, а также +большую часть потребностей серверных систем: +\begin{itemize} + \item Проверка и монтирование всех файловых систем. + \item Обновление и активация квот на всех файловых системах. + \item Установка имени хоста. + \item Конфигурирование интерфейса обратной петли (+lo+). + \item Подгрузка правил SELinux, обновление + меток безопасности в динамических каталогах +/run+ и +/dev+. + \item Регистрация в ядре дополнительных бинарных форматов (например, + Java, Mono, WINE) через API-файловую систему +binfmt_misc+. + \item Установка системной локали. + \item Настройка шрифта и раскладки клавиатуры в консоли. + \item Создание, очистка, удаление временных файлов и каталогов. + \item Применение предписанных в +/etc/fstab+ опций к смонтированным + ранее API-файловым системам. + \item Применение настроек +sysctl+. + \item Поддержка технологии упреждающего чтения (read ahead), включая + автоматический сбор информации. + \item Обновление записей в +utmp+ при включении и выключении системы. + \item Сохранение и восстановление затравки для генерации случайных чисел + (random seed). + \item Принудительная загрузка указанных модулей ядра. + \item Поддержка шифрованных дисков и разделов. + \item Автоматический запуск +getty+ на serial-консолях. + \item Взаимодействие с Plymouth. + \item Создание уникального идентификатора системы. + \item Установка часового пояса. +\end{itemize} + +В стандартной установке Fedora~15 запуск shell-скриптов требуется только для +некоторых устаревших служб, а также для подсистемы хранения данных (поддержка +LVM, RAID и multipath). Если они вам не~нужны, вы легко можете отключить их, и +наслаждаться загрузкой, полностью очищенной от shell-костылей (я это сделал уже +давно). Такая загрузка является уникальной возможностью Linux-систем. + +Большинство перечисленных выше компонентов настраиваются через конфигурационные +файлы в каталоге +/etc+. Некоторые из этих файлов стандартизированы для всех +дистрибутивов, и поэтому реализация их поддержки в наших инструментах +не~представляла особого труда. Например, это относится к файлам +/etc/fstab+, ++/etc/crypttab+, +/etc/sysctl.conf+. Однако множество других, нестандартно +расположенных файлов и каталогов вынуждали нас добавлять множество операторов ++#ifdef+, чтобы обеспечить поддержку различных вариантов расположения +конфигураций в разных дистрибутивах. Такой положение дел сильно усложняет +жизнь нам всем, и при этом ничем не~оправдано~--- все эти файлы решают одни и те +же задачи, но делают это немного по-разному. + +Чтобы улучшить ситуацию и установить единый стандарт расположения базовых +конфигурационных файлов во всех дистрибутивах, мы заставили systemd пользоваться +дистрибутивно-специфическими конфигурациями только в качестве \emph{резервного} +варианта~--- основным источником информации становится определенный нами +стандартный набор конфигурационных файлов. Разумеется, там, где это возможно, мы +старались не~придумывать чего-то принципиально нового, а брали лучшее из +решений, предложенных существующими дистрибутивами. Ниже приводится небольшой +обзор этого нового набора конфигурационных файлов, поддерживаемых systemd во +всех дистрибутивах: +\begin{itemize} + \item + \hreftt{http://0pointer.de/public/systemd-man/hostname.html}{/etc/hostname}: + имя хоста для данной системы. Одна из наиболее простых и важных + системных настроек. В разных дистрибутивах оно настраивалось + по-разному: Fedora использовала +/etc/sysconfig/network+, + OpenSUSE~--- +/etc/HOSTNAME+, Debian~--- +/etc/hostname+. Мы + остановились на варианте, предложенном Debian. + \item + \hreftt{http://0pointer.de/public/systemd-man/vconsole.conf.html}{/etc/vconsole.conf}: + конфигурация раскладки клавиатуры и шрифта для консоли. + \item + \hreftt{http://0pointer.de/public/systemd-man/locale.conf.html}{/etc/locale.conf}: + конфигурация общесистемной локали. + \item + \hreftt{http://0pointer.de/public/systemd-man/modules-load.d.html}{/etc/modules-load.d/*.conf}: + каталог\footnote{Прим. перев.: для описания этого и трех + последующих каталогов автор пользуется термином <>. Этот термин означает каталог, в который можно + поместить множество независимых файлов настроек, и при чтении + конфигурации все эти файлы будут обработаны (впрочем, часто + накладывается ограничение~--- обрабатываются только файлы с + именами, соответствующими маске, обычно +*.conf+). Такой подход + позволяет значительно упростить процесс как ручного, так и + автоматического конфигурирования различных компонентов~--- для + внесения изменений в настройки уже не~нужно редактировать + основной конфигурационный файл, достаточно лишь + скопировать/переместить в нужный каталог небольшой файл с + указанием специфичных параметров.} для перечисления модулей + ядра, которые нужно принудительно подгрузить при загрузке + (впрочем, необходимость в этом возникает достаточно редко). + \item + \hreftt{http://0pointer.de/public/systemd-man/sysctl.d.html}{/etc/sysctl.d/*.conf}: +\end{itemize} + \end{document} vim:ft=tex:tw=80:spell:spelllang=ru