Архитектура операционной системы UNIX   ::   Бах Морис Дж.

Страница: 546 из 715

Когда функция open возвращает управление, getty-процесс исполняет программу login (регистрации в системе), которая требует от пользователей, чтобы ониидентифицировали себя указанием регистрационного имени и пароля. Если пользователь зарегистрировался успешно, программа login наконец запускает командный процессор shell и пользователь приступает к работе. Этот вызов shell'а именуется "login shell" (регистрационный shell, регистрационный интерпретатор команд). Процесс, связанный с shell'ом, имеет тот же идентификатор, что и начальный getty-процесс, поэтому login shell является процессом, возглавляющим группу процессов. Если пользователь не смог успешно зарегистрироваться, программа регистрации завершается через определенный промежуток времени, закрывая открытую терминальную линию, а процесс начальной загрузки порождает для этой линии следующий getty-процесс. Процесс начальной загрузки делает паузу до получения сигнала об окончании порожденного ранее процесса. После возобновления работы он выясняет, был ли прекративший существование процесс регистрационным shell'ом и если это так, порождает еще один getty-процесс, открывающий терминал, вместо прекратившего существование.

алгоритм login /* процедура регистрации */

{

 исполняется getty-процесс: установить группу процессов (вызов функции setpgrp);

 открыть терминальную линию; /* приостанов до завершения открытия */

 if (открытие завершилось успешно)  {

  исполнить программу регистрации: запросить имя пользователя;

  отключить эхо-сопровождение, запросить пароль;

  if (регистрация прошла успешно) { /* найден соответствующий пароль в /etc/p

|< Пред. 544 545 546 547 548 След. >|

Java книги

Контакты: [email protected]