Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕроцедура загрузки ќ— Linux




ќ— Linux работает в 2-х режимах: однопользовательском (режим пользовател€ root, в этом режиме настраиваетс€ ќ—) и многопользовательский (режим работы всех пользователей).

ѕосле включени€ питани€ компьютера и завершени€ тестировани€ аппаратной части BIOS считывает из первого сектора загрузочного диска короткую программу загрузчик. Ёта программа запускает основной системный загрузчик (например, LILO), который, в свою очередь, загружает в пам€ть €дро системы vmlinuz - x.y.z- a, которое обычно хранитс€ в файле в каталоге /boot. «десь x.y.z --- это номер версии €дра, а вместо символа "а" часто стоит указание на какие то конкретные модификации €дра.

—разу после загрузки €дро монтирует корневую файловую систему и запускает процесс init. ѕроцесс init --- это программа, котора€ ответственна за продолжение процедуры загрузки, и перевод системы от начального состо€ни€, возникающего после загрузки €дра, в стандартное состо€ние обработки запросов многих пользователей. ѕроцесс init выполн€ет еще массу различных операций, необходимых дл€ дальнейшей работы системы: проверку и монтирование файловых систем, запуск различных служб (демонов), запуск процедур регистрации, оболочек пользователей на различных терминалах и т. д.

“очный список этих операций зависит от так называемого уровн€ выполнени€ (run level). ”ровень выполнени€ определ€ет перечень действий, выполн€емых процессом init, и состо€ние системы после загрузки, т. е. конфигурацию запущенных процессов. ”ровень выполнени€ идентифицируетс€ одним символом. ¬ ќ— Linux существует 8 основных уровней выполнени€:

0- остановка системы;

1- однопользовательский режим (дл€ специальных случаев администрировани€);

2 - многопользовательский режим без NFS (то же, что и 3, если компьютер не работает с сетью);

3 - полный многопользовательский режим;

4 - использование не регламентировано;

5 - обычно используетс€ дл€ запуска системы в графическом режиме;

6 - перезагрузка системы;

S (или s) --- примерно то же, что и однопользовательский режим, но S и s

используютс€ в основном в скриптах.

 ак видите, уровни 0, 1 и 6 зарезервированы дл€ особых случаев. ќтносительно того, как использовать уровни со 2 по 5, единого мнени€ не существует.

ѕервым делом после старта процесс считывает свой конфигурационный файл /etc/inittab. Ётот файл состоит из отдельных строк. ≈сли строка начинаетс€ со знака или пуста, то она игнорируетс€.

ќбработка файла /etc/inittab процессом init начинаетс€ в однопользовательском режиме (уровень 1), в котором единственным пользователем €вл€етс€ пользователь root, работающий с консоли. ѕервым делом init находит строку, котора€ определ€ет, какой уровень выполнени€ запускаетс€ по умолчанию.

ƒалее выполн€ет команды, указанные в строке с ключевым словом sysinit. ¬ стандартной конфигурации здесь выполн€етс€ скрипт rc.sysinit из каталога /etc/rc.d. ѕосле этого процесс init просматривает файл /etc/inittab и выполн€ет скрипты, соответствующие однопользовательскому уровню (1 во втором поле строки), всем уровн€м (строки с пустым вторым полем) и уровню, заданному по умолчанию.

—ледующа€ важна€ функци€, которую выполн€ет этот процесс (на уровн€х со 2 по 5) --- запуск шести виртуальных консолей (процессов getty), чтобы предоставить пользовател€м возможность регистрироватьс€ в системе с терминалов. ƒл€ этого init порождает процессы, именуемые getty процессами, и следит за тем, какой из процессов открывает какой терминал.  аждый getty процесс устанавливает свою группу процессов, использу€ вызов системной функции setpgrp, открывает отдельную терминальную линию и обычно приостанавливаетс€ во врем€ выполнени€ функции open до тех пор, пока машина не получит аппаратную св€зь с терминалом.  огда функци€ open возвращает управление, getty процесс исполн€ет программу login (регистрации в системе), котора€ требует от пользователей, чтобы они идентифицировали себ€ указанием регистрационного имени и парол€. ≈сли пользователь зарегистрировалс€ успешно, программа login, запускает командный процессор shell и пользователь приступает к работе. Ётот вызов shell именуетс€ "login shell" (регистрационный shell, регистрационный интерпретатор команд). ѕроцесс, св€занный с shell, имеет тот же идентификатор, что и начальный getty процесс, поэтому login shell €вл€етс€ процессом, возглавл€ющим группу процессов.

≈сли пользователь не смог успешно зарегистрироватьс€, программа регистрации завершаетс€ через определенный промежуток времени, закрыва€ открытую терминальную линию, а процесс init порождает дл€ этой линии следующий getty Ц процесс открывающий терминал, вместо прекратившего существование.

ѕосле завершени€ загрузки init продолжает работать в фоновом режиме, отслежива€ изменени€ в состо€нии системы.

“аким образом, процесс начальной загрузки init посто€нно находитс€ в оперативной пам€ти и при получении соответствующих сигналов повторно выполн€ет цикл чтени€ из файла /etc/inittab о том, что нужно делать, при чем этот набор инструкций различен дл€ разных уровней выполнени€.

 огда суперпользователь останавливает систему (командой shutdown), именно init завершает все другие исполн€ющиес€ процессы, размонтирует все файловые системы и останавливает процессор.

 





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-11-05; ћы поможем в написании ваших работ!; просмотров: 433 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

—лабые люди всю жизнь стараютс€ быть не хуже других. —ильным во что бы то ни стало нужно стать лучше всех. © Ѕорис јкунин
==> читать все изречени€...

1241 - | 1214 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.012 с.