Инициализация
Инициализация (от англ. initialization, инициирование) — создание, активация, подготовка к работе, определение параметров. Приведение программы или устройства в состояние готовности к использованию. [1]
Термин употребляется как для программных, так и для аппаратных средств.
Действие инициализации направлено извне по отношению к инициализируемому объекту (программе, устройству) и необходимо для определения параметров и правил работы с ним.
Примеры
- Инициализация подсистемы печати для вывода на принтер. Перед печатью необходимо определить, на каком устройстве будет произведена печать и учесть особенности работы с ним (поддерживаемый формат печати, максимально возможное разрешение, возможность использования цвета и т. п.). Для этого устройство активируют (подача питания, управляющий сигнал), запрашивают возможные параметры работы или «сканируют» устройство для определения его возможностей, и значения этих параметров используют для первоначальной настройки подсистемы печати, чтоб она могла предложить пользователю варианты печати, соответствующие его оборудованию.
- Инициализация программы заключается в задании начальных значений или установке в нуль программных переменных (адресов, счетчиков, переключателей, указателей и т. п.) перед выполнением программы. Во многих языках программирования имеются средства определения начальных значений при первом описании переменной.
- Инициализация магнитного диска «винчестера» включает его форматирование и запись управляющей информации (метки тома, описателей дорожек и т. п.).
См. также
Примечания
- ↑Инициализация
- Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
- Дополнить статью (статья слишком короткая либо содержит лишь словарное определение).
- Компьютер
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое «Инициализация» в других словарях:
инициализация — инициирование Словарь русских синонимов. инициализация сущ., кол во синонимов: 2 • инициирование (4) • … Словарь синонимов
инициализация — Приведение областей памяти в состояние, исходное для последующей обработки или размещения данных. [ГОСТ 19781 90] инициализация Присваивание начальных значений переменным программы [ГОСТ 28397 89] Тематики обеспеч. систем обраб. информ.… … Справочник технического переводчика
Инициализация — 37. Инициализация Initialize Присваивание начальных значений переменным программы Источник: ГОСТ 28397 89: Языки программирования. Термины и определения оригинал документа 3. Инициализация Приведен … Словарь-справочник терминов нормативно-технической документации
инициализация — iniciacija statusas T sritis automatika atitikmenys: angl. initialization; initializing; initiating; initiation vok. Initialisieren, n; Initialisierung, f rus. инициализация, f; инициирование, n; присваивание начального значения, n pranc.… … Automatikos terminų žodynas
инициализация (периферийного устройства) — Операция, необходимая для установки периферийного устройства в исходное положение и выполняемая до начала использования носителя данных или начала реализации процесса. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ … Справочник технического переводчика
инициализация (спутникового приемника) — Процедура измерений для предварительного разрешения неоднозначности перед началом спутниковых определений в кинематическом режиме. [РТМ 68 14 01] Тематики спутниковая технология геодезических работ Обобщающие термины методы спутниковых… … Справочник технического переводчика
инициализация диска — Разметка диска и запись на него управляющей информации. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN initializationdisk … Справочник технического переводчика
инициализация общего опроса — — [ГОСТ Р МЭК 60870 5 103 2005] Тематики телемеханика, телеметрия EN initiation of general interrogation … Справочник технического переводчика
инициализация периферийного устройства — Операция, необходимая для установки периферийного устройства в исходное положение и выполняемая до начала использования носителя данных или начала реализации процесса. [ГОСТ 25868 91] Тематики оборуд. перифер. систем обраб. информации EN… … Справочник технического переводчика
инициализация системы — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом EN system initialization … Справочник технического переводчика
Системы инициализации Linux
В операционной системе Linux и других системах семейства Unix после завершения загрузки ядра начинается инициализация Linux системы, сервисов и других компонентов. За это отвечает процесс инициализации, он запускается ядром сразу после завершения загрузки, имеет PID 1, и будет выполняться пока будет работать система.
Процесс инициализации запускает все другие процессы, которые должны быть запущены, это родительский процесс для всего, что выполняется в системе. Другие процессы могут тоже создавать дочерние процессы, но если родительский процесс завершается, для его дочерних процессов родительским становится процесс инициализации.
Системы инициализации Linux
За время развития операционных систем были созданы различные системы инициализации Linux. В разных дистрибутивах использовались разные системы. В этой статье мы рассмотрим лучшие системы инициализации, которые вы можете сейчас использовать. Мы начнем с более старых систем с меньшим функционалом, чтобы понять с чего все начиналось, затем подойдем к более новым, созданным в последнее время.
1. System V Init
System V или SysV — это довольно старая, но до сих пор ещё популярная система инициализации Linux и Unix подобных операционных систем. Она была основой для создания многих других систем инициализации, а также первой коммерческой системой инициализации разработанной для Unix в AT&T. Она была разработана еще в 1983 году.
Почти все дистрибутивы Linux изначально использовали SysV. Исключением была только Gentoo, в которой использовалась собственная система инициализации и Slackware, с инициализацией в стиле BSD.
Основные возможности SysV:
- Написание файлов запуска служб на bash;
- Последовательный запуск служб;
- Сортировка порядка запуска с помощью номеров в именах файлов;
- Команды для запуска, остановки и проверки состояния служб.
Никакой параллельной загрузки, системы зависимостей, запуска по требованию и автоматического запуска здесь не было и в помине.
С момента ее разработки прошло много лет и из-за некоторых недостатков были разработаны другие системы для ее замены, они хоть и имели новые функции и были более эффективны, но они были по-прежнему совместимы с SysV.
2. OpenRC
OpenRC — это система инициализации Linux и Unix подобных операционных систем совместимая с Sys V Init и поддерживающая систему зависимостей во время запуска. Она приносит некоторые улучшения в SysV, и как и другие системы инициализации Linux, совместима с ней, но вы должны иметь в виду, что OpenRC не заменяет полностью файл /sbin/init. Эта система инициализации используется в Gentoo и дистрибутивах BSD.
Кроме стандартных возможностей SysV, здесь поддерживается также:
- Поддержка зависимостей служб;
- Поддержка параллельного запуска служб;
- Поддерживает настройку в одном отдельном файле;
- Работает как демон;
По сравнению с SysV тут появилось много новых возможностей, но все еще не все те, что нужны для оптимальной работы системы.
3. Systemd
Systemd — это новая система инициализации Linux. Она была введена по умолчанию в Fedora 15, а сейчас используется почти во всех популярных Linux дистрибутивах. Это не только инициализирующий процесс, поддерживающий огромное количество возможностей, но и набор инструментов для управления службами и этими возможностями из системы. Основная цель — иметь полный контроль над всеми процессами во время их запуска и на протяжении всего выполнения.
Systemd очень сильно отличается от всех существующих систем инициализации, тем как она работает с сервисами, и даже конфигурационными файлами сервисов. Совместимости со скриптами SysV нет, их нужно преобразовать в linux systemd unit файлы.
Вот ее основные особенности:
- Понятный, простой и эффективный дизайн;
- Параллельная загрузка служб на основе зависимостей;
- Поддерживается завершение дополнительных процессов;
- Поддерживается собственный журнал с помощью journald;
- Поддерживается планирование заданий с помощью таймеров Systemd;
- Поддерживается управление сетью с помощью networkd;
- Для управления DNS используется systemd-resolved;
- Хранение журналов в бинарных файлах;
- Сохранение состояния сервисов linux systemd для возможного восстановления;
- Улучшенная интеграция с Gnome;
- Запуск сервисов по требованию;
4. Runinit
Runinit — это кроссплатформенная система инициализации, которая может работать в GNU Linux, Solaris, BSD и MacOS. Это отличная альтернатива для SysV с поддержкой мониторинга состояния служб.
Здесь есть некоторые интересные особенности, которых нет в других системах инициализации:
- Полный контроль сервисов, каждый сервис привязывается к своему каталогу;
- Надежное средство журналирования и ротации логов;
- Быстрая система загрузки и выключения;
- Портативность;
- Легкое создание файлов конфигурации служб;
- Небольшое количество кода системы инициализации.
5. Upstart
Upstart — это система инициализации на основе событий, разработанная в Canonical и призванная заменять SysV. Она может запускать системные службы, выполнять над ними различные задачи, инспектировать их во время выполнения, а также выполнять нужные действия в ответ на события в системе.
Это гибридная система инициализации, она использует как SysV скрипты запуска, так и файлы служб Systemd. Вот ее самые заметные особенности:
- Изначально разработанная для Ubuntu, но может использоваться и в других дистрибутивах;
- Запуск и остановка служб на основе событий;
- Генерация событий во время запуска и остановки служб;
- События могут быть отправлены обычными процессами;
- Связь с процессом инициализации через DBus;
- Пользователи могут запускать и останавливать свои процессы;
- Перезапуск служб, которые неожиданно завершились;
- Параллельная загрузка сервисов;
- Автоматический перезапуск служб;
Большинство ее возможностей работают благодаря интеграции с системой инициализации Systemd. В последнее время всё меньше используются скрипты SysV init и всё больше применяются юнит файлы Systemd. Рано или поздно Systemd вытеснит и полностью заменит Upstart в Ubuntu.
Выводы
Как я уже говорил, система инициализации запускает и управляет всеми другими процессами в системе Linux. SysV до недавнего времени была основной системой инициализации в большинстве дистрибутивов Linux, но из-за некоторых своих недостатков для нее было разработано несколько замен, в том числе Systemd.
Какие системы инициализации Linux используются в вашем дистрибутиве? В списке обозначены не все существующие системы, какую из них нужно добавить в список? Напишите в комментариях!
Что означает инициализация системы ps4
Перед тем как купить, продать или просто выбросить игровую приставку себя нужно обезопасить. Технику рекомендуется вернуть к заводским настройкам – нужна инициализация PS4, чтобы предотвратить неправомерную эксплуатацию пользовательских данных.
Инициализация ps4 – эта фраза означает, что идет процесс возврата к параметрам по умолчанию. Во время восстановления удаляются все учетные записи и данные, находившиеся в памяти жесткого диска.
Когда пользователь сбрасывает платформу, то он удаляет абсолютно все предустановленные настройки и данные. Отменить возврат к заводским характеристикам нельзя, поэтому нужна осторожность, чтобы по ошибке не удалить важные сведения.
Приставку нельзя выключать во время процедуры – это может привести к сбою программной начинки и неполадкам в работе.
Инициализация через основной аккаунт
Процесс сброса данных делится на несколько шагов:
- Войти в рабочий профиль – включить приставку и ввести учетные данные пользователя. Нужен именно основной аккаунт, чтобы вернуть параметры по умолчанию;
- Открыв главный экран, нужно нажать вверх на левом джойстике – откроется меню. Этим же джойстиком прокрутить вправо, пока не отобразится раздел «Настройки» (иконка оформлена в виде ящика с инструментами). Для взаимодействия нажать X;
- Открыть меню «Инициализация». После перехода в раздел настроек, нужно прокрутить до самого низа, пока не будет видна нужная опция. После открытия тапнуть «Инициализировать систему PS4». Нажать на «Полная», после чего консоль начнет процесс сброса. Пользователь должен следовать инструкциям, отображаемым на экране.
Инициализация системы позволяет откатить консоль до состояния «как в магазине». Вся несохраненная информация (о трофеях, скриншоты и др.) будет удалена. Весь процесс инициализации может занять несколько часов. Важно не выключать приставку и не допускать сбоев питания, так как из-за этого часто случается повреждение самой системы.
Ручной возврат к заводским настройкам
Инициализировать вручную систему ps4 можно следующим образом:
- Деактивировать приставку – зажать кнопку питания и удерживать в течение нескольких секунд, пока не прозвучит гудок, а индикатор не начнет светится красным. После этого нужно убрать палец с клавиши;
- Запуск. Требуется заново нажать на кнопку питания и удерживать ее, пока не прозвучит первый гудок – останавливаться не нужно. Через 7 секунд пользователь услышит второй сигнал. Только после можно этого убрать палец с клавиши;
- После включения консоль будет работать в специальном режиме. Левым джойстиком открывается параметр «Восстановить настройки по умолчанию». Кликнуть по нему кнопкой активации и следовать дальнейшим инструкциям.
Для работы с безопасным режимом геймпад подключается только через USB-разъем. Данный метод инициализации PlayStation используется только в ситуации, когда у пользователя нет пароля для входа.
USB-порты на PS4
Резервное копирование и восстановление данных
Перед инициализацией рекомендуется создать запасную копию данных, чтобы была возможность восстановить систему в случае ошибки.
Функция восстановления и применения для этого накопителя USB была добавлена в прошивке доработки 2.50.
- Люди, у которых имеется аккаунт PS Network, могут провести запасной перенос информации с одной системы и восстановить их на другой – перенести данные с консоли на консоль;
- Игроки, у которых нет нужной страницы, могут вернуть копию только на той же системе, на которой она была зарегистрирована;
- Для проведения копирования понадобится съемный накопитель большого объема, формата FAT32 или exFAT. Если для процесса не хватает места, можно не переносить раздел «Данные приложений».
Процесс резервного копирования:
- Рекомендуется заблаговременно синхронизировать сведения о пользовательских призах: перейти в меню «Призы», нажать кнопку «Options» и кликнуть по параметру «Синхронизация с сеть PS Net»;
- Подсоединить съемный носитель к разъему USB на приставке;
- Открыть раздел «Настройки», потом «Система» и «Создание резервной копии…»;
- Потребуется пометить, какие параметру будут перенесены в резерв. Если пользователь не захочет делать копию приложений, то не ему не придется загружать и еще раз инсталлировать их в случае восстановления этой копии;
- Следующий параметр позволяет дать имя резерву. После этого нужно выбрать «Создать резервную копию» и нажать «Х»;
- Индикатор консоли будет показан прогресс переноса файлов. В любую секунду процедуру можно отменить.
Восстановление резервной копии:
- Перейти в раздел «Настройки», потом «Система» и «Создание резервной копии…»;
- Соединить консоль с накопителем, на котором хранится копия информации;
- Выбрать параметр «Восстановить данные»;
- Найти и нажать на файл с резервной копией;
- На экране отобразится сообщение, что консоль будет перезагружена и инициализирована, независимо от хода запуска резерва. Для продолжения придется нажать «Да».
Сброс PS4 – это способ вернуть начальные настройки, если система дает сбои и некорректно работает. Перед сбросом рекомендуется произвести копирование данных.
Система инициализации Upstart: что это такое и как это работает
Инициализация – это очень важная процедура, лежащая в основе любой операционной системы на основе Unix. Она управляет сервисами и сценариями. Особенно инициализация важна для серверов, которые нуждаются в оптимизации производительности.
Инициализация состоит из следующих этапов:
- Загрузка сервера;
- Запуск процесса init (как правило, он имеет PID 1);
- Запуск последовательности предопределённых задач;
Инициализация обеспечивает корректный запуск и отключение сервера.
В данном руководстве речь пойдёт об Upstart – удобной и производительной системе инициализации.
Краткий обзор Upstart
Система Upstart изначально разрабатывалась с упором на гибкость, потому предлагает множество подходов, которых нет в стандартных системах инициализации. По умолчанию её использую т системы Red Hat Enterprise Linux (RHEL) 6, Chrome OS и дистрибутивы Ubuntu до версии 15.04.
Процессы
Upstart делит рабочие процессы (jobs) на задачи (task jobs) и сервисы (service jobs, могут работать в фоновом режиме). Также существуют процессы, которые работают до тех пор, пока их не остановит пользователь.
События
События – это сигналы, или вызовы, инициирующие определённое действие. Наиболее общим примером события является мониторинг процесса (starting, started, stopping, stopped).
Реализация событий
Процесс запуска события называется реализацией. Как правило, события запускаются процессами, но в случае необходимости администратор может запустить их вручную с помощью команды:
initctl emit <event>
Ещё одна полезная команда для работы с Upstart: init control.
Конфигурации процесса
Примечание: Система Upstart очень производительна в Ubuntu, потому в данном руководстве используется сервер Ubuntu 14.04.
Чтобы настройки процесса были валидными, конфигурационный файл должен соответствовать таким требованиям:
- Он не должен быть пустым;
- Не должен содержать ошибок;
- Должен содержать хотя бы один блок команд (stanza).
Теперь попробуйте создать файл testjob.conf в каталоге /etc/init. Расширение файла .conf указывает на файл конфигураций процесса.
sudo nano /etc/init/testjob.conf
Пусть это процесс записывает сообщение и текущую метку времени в лог-файл.
Существует два блока, с помощью которых можно определить цель и автора процесса: description и author. С них должен начинаться файл:
description «A test job file for experimenting with Upstart»
author «Your Name»
Этот процесс должен загружаться после того, как загрузятся все остальные сервисы и процессы. Для этого добавьте строку:
start on runlevel [2345]
Уровень выполнения, или runlevel – это режим работы операционной системы компьютера. Уровни выполнения обозначаются цифрами от 0 до 6.
Теперь нужно добавить исполняемый код. Строка начинается с exec, чтобы обозначить, что данный код должен быть обработан оболочкой Bash.
exec echo Test Job ran at `date` >> /var/log/testjob.log
Обратите внимание: команда echo использует обратные кавычки, чтобы запустить команду date, а затем записывает результат команды в лог. Если вы пропустите обратные кавычки, на экране просто отобразится слово date.
Сохраните и закройте файл.
Чтобы убедиться, что всё работает корректно, запустите процесс вручную. Но сначала нужно проверить синтаксис на ошибки:
Если команда обнаружила ошибки, исправьте их. Если ошибок нет, команда вернёт:
File /etc/init/testjob.conf: syntax ok
При помощи следующей команды можно управлять процессами и фоновыми сервисами (например веб-сервером). Её базовый синтаксис:
sudo service <servicename> <control>
В поле control можно использовать такие команды:
- restart: перезапуск
- start: запуск
- stop: остановка сервиса
- status: состояние сервиса
Чтобы вручную запустить процесс, используйте команду:
sudo service testjob start
Теперь проверьте файл testjob.log:
Эта команда прочитает заданный файл и выведет его содержимое:
Test Job ran at Fri Aug 1 08:43:05 BST 2014
Это значит, что тестовый процесс работает правильно.
Перезапустите сервер, войдите и снова запустите команду:
В файле должна появиться ещё одна строка:
Test Job ran at Fri Aug 1 08:44:23 BST 2014
Так на примере одного процесса вы научились основам Upstart. Теперь пора ознакомиться с событиями и состояниями процессов.
Состояние процессов и события
Процессы системы хранятся в каталоге /etc/init/, а процессы пользователей – в каталоге
Рабочие процессы пользователей запускаются в их сессиях. Такие процессы не являются общесистемными.
Все процессы независимо от их вида всегда определяются в конфигурационном файле (.conf), где их имя должно представлять сервис или выполняемую задачу.
Каждая такая задача имеет целью запуск (start) или остановку (stop). Между этими двумя целями находится ряд состояний задачи, который определяет текущее действие процесса в зависимости от цели.
- waiting: исходное состояние процесса.
- starting: подготовка к запуску.
- pre-start: загрузка предпусковых задач.
- spawned: запуск разделов сценария.
- post-start: выполнение операций после запуска процесса.
- running: процесс полностью запущен.
- pre-stop: подготовка к остановке процесса.
- stopping: остановка процесса.
- killed: процесс остановлен.
- post-stop: чистка окружения после остановки процесса.
Процесс в состоянии post-start считается запущенным процессом. Он остаётся запущенным до состояния pre-stop, в котором он готовится к остановке. После этого процесс останавливается и переходит в состояние post-stop (очистка системы).
Чтобы увидеть, как процесс изменяет свои состояния, переведите приоритет лога Upstart (/var/log/upstart/) в debug:
sudo initctl log-priority debug
Обратите внимание: состояния и события – не одно и то же.
Процессы сервисов
Процесс сервиса использует конфигурационные файлы, которые позволяют запускать процессы в фоновом режиме.
Для примера попробуйте установить сервер Node.js.
Примечание: Node.js – это кроссплатформенная среда для серверных и сетевых приложений.
Node.js – очень лёгкий пакет, но по умолчанию он не установлен в Ubuntu 14.04. Чтобы установить его, введите:
sudo apt-get install nodejs
Теперь попробуйте создать сервис. Для этого создайте новый файл nodetest.conf в каталоге /etc/init.
sudo nano /etc/init/nodetest.conf
Примечание: Имя файла должно быть описательным.
Добавьте в файл описание и автора процесса:
description «Service for a test node.js server»
author «Your Name»
Чтобы настроить автоматический запуск и отключение этого приложения на основе Node, добавьте в файл такие строки:
start on filesystem or runlevel [2345] stop on shutdown
Уровень запуска в сочетании с событием filesystem обеспечивает запуск процесса во время загрузки сервера.
Теперь нужно добавить в файл определённые ранее блоки. Поскольку это приложение является серверным, нужно добавить в конфигурации логирование. Чтобы регистрировать запуск и остановку приложения, используйте действия script, pre-start script и pre-stop script.
Как видите, pre-start и pre-stop – это состояния процессов, но их можно добавлять в блоки.
Сначала нужно добавить сам сценарий процесса. Он получит ID процесса для фонового сервера Node, а затем запустит сценарий приложения. Обратите внимание на отступы в блоке – они важны для корректного синтаксиса.
export HOME=»/srv»
echo $$ > /var/run/nodetest.pid
exec /usr/bin/nodejs /srv/nodetest.js
Приложению Node необходима переменная домашнего каталога, потому /srv экспортируется в первой строке блока. Символы $$ устанавливают PID процесса и создают файл для него.
Теперь сосредоточьтесь на pre-start и pre-stop. Дата, а также сообщения о запуске и остановке процесса, будут внесены в лог:
echo «[`date`] Node Test Starting» >> /var/log/nodetest.log
Обратите внимание: блок pre-stop содержит строку, которая удаляет PID-файл. Эта задача будет частью процесса остановки.
rm /var/run/nodetest.pid
echo «[`date`] Node Test Stopping» >> /var/log/nodetest.log
В результате файл будет иметь такой вид:
description «Test node.js server»
author «Your Name»
start on filesystem or runlevel [2345] stop on shutdown
script
export HOME=»/srv»
echo $$ > /var/run/nodetest.pid
exec /usr/bin/nodejs /srv/nodetest.js
end script
pre-start script
echo «[`date`] Node Test Starting» >> /var/log/nodetest.log
end script
rm /var/run/nodetest.pid
echo «[`date`] Node Test Stopping» >> /var/log/nodetest.log
Сохраните и закройте файл.
Как сказано в строке exec, сценарий Node.js будет запущен с сервера, потому нужно создать файл nodetest.js:
sudo nano /srv/nodetest.js
Полученный сценарий выполняет следующие действия:
- Запрашивает HTTP-модуль Node.
- Создаёт веб-сервер HTTP.
- Provide a status 200 (OK) response in the Header
- Возвращает фразу Hello World.
- Прослушивает порт 8888.
При помощи следующего кода можно запустить приложение Node:
var http = require(«http»);
http.createServer(function(request, response) <
response.writeHead(200, <"Content-Type": "text/plain">);
response.write(«Hello World»);
response.end();
>).listen(8888);
Сохранив файл, убедитесь, что в синтаксисе нет ошибок.
init-checkconf /etc/init/nodetest.conf
File nodetest.conf: syntax ok
Убедившись, что код не содержит ошибок, перезапустите сервер и откройте ссылку:
На экране появится фраза Hello World.
Теперь нужно проверить, работает ли логирование. Откройте указанный в настройках лог и найдите в нём метки времени в строке Starting. После остановки сервиса в логе появится строка Stopping.
cat /var/log/nodetest.log
[Sun Aug 17 08:08:34 EDT 2014] Node Test Starting
[Sun Aug 17 08:13:03 EDT 2014] Node Test Stopping
Для запуска стандартных команд (start, stop, restart и т.д.) используется следующий синтаксис:
sudo service nodetest restart
Заключение
Данное руководство охватывает только основы работы с Upstart. Открытая система Upstart – производительное и надёжное средство для написания процессов.