Все о моделировании в Компас-3D LT
   Главная Статьи Файлы Форум Ссылки Категории новостей
December 21 2024 13:09:31   
Навигация
Главная
Статьи
Файлы
FAQ
Форум
Ссылки
Категории новостей
Обратная связь
Фото галерея
Поиск
Разное
Карта Сайта
Популярные статьи
Что необходимо ... 65535
4.12.1 Професси... 34423
Учимся удалять!... 32316
Примеры, синони... 23622
Просмотр готовы... 22918
Декартовы коорд... 22629
FAST (методика ... 21661
содержание - се... 20969
Просмотр готовы... 19697
Работа с инстру... 15138
Сейчас на сайте
Гостей: 11
На сайте нет зарегистрированных пользователей

Пользователей: 9,955
новичок: Logyattella
Друзья сайта
Ramblers Top100
Рейтинг@Mail.ru

Здесь трубопроводы для гидромеханизации от НПО "Композит".
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ по Delphi
Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog
10.3.7 Вход в систему
Как показано в главе 7, процесс начальной загрузки, имеющий номер 1, выполняет бесконечный цикл чтения из файла "/etc/inittab" инструкций о том, что нужно делать, если загружаемая система определена как "однопользовательская" или "многопользовательская". В многопользовательском режиме самой первой обязанностью процесса начальной загрузки является предоставление пользователям возможности регистрироваться в системе с терминалов (Рисунок 10.19). Он порождает процессы, именуемые getty-процессами (от "get tty" — получить терминал), и следит за тем, какой из процессов открывает какой терминал; каждый getty-процесс устанавливает свою группу процессов, используя вызов системной функции setpgrp, открывает отдельную терминальную линию и обычно приостанавливается во время выполнения функции open до тех пор, пока машина не получит аппаратную связь с терминалом. Когда функция open возвращает управление, getty-процесс исполняет программу login (регистрации в системе), которая требует от пользователей, чтобы они идентифицировали себя указанием регистрационного имени и пароля. Если пользователь зарегистрировался успешно, программа login наконец запускает командный процессор shell и пользователь приступает к работе. Этот вызов shell'а именуется "login shell" (регистрационный shell, регистрационный интерпретатор команд). Процесс, связанный с shell'ом, имеет тот же идентификатор, что и начальный getty-процесс, поэтому login shell является процессом, возглавляющим группу процессов. Если пользователь не смог успешно зарегистрироваться, программа регистрации завершается через определенный промежуток времени, закрывая открытую терминальную линию, а процесс начальной загрузки порождает для этой линии следующий getty-процесс. Процесс начальной загрузки делает паузу до получения сигнала об окончании порожденного ранее процесса. После возобновления работы он выясняет, был ли прекративший существование процесс регистрационным shell'ом и если это так, порождает еще один getty-процесс, открывающий терминал, вместо прекратившего существование.
алгоритм login /* процедура регистрации */
{
исполняется getty-процесс: установить группу процессов (вызов функции setpgrp);
открыть терминальную линию; /* приостанов до завершения открытия */
if (открытие завершилось успешно) {
исполнить программу регистрации: запросить имя пользователя;
отключить эхо-сопровождение, запросить пароль;
if (регистрация прошла успешно) { /* найден соответствующий пароль в /etc/passwd */
перевести терминал в канонический режим (ioctl);
исполнить shell;
}
в противном случае считать количество попыток регистрации, пытаться зарегистрироваться снова до достижения определенной точки;
}
}
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Случайные статьи
ГЛАВА 2. ПЯТЬ УРОВ...
9.5 УПРАЖНЕНИЯ
1.2. Фундаменталь...
Введение
Строка текущего со...
Каковы источники п...
СОДЕРЖАНИЕ
3. Матричная струк...
2.3.1 Общие сообра...
6.2.3 Размещение ядра
Вместо заключения
Пример домена
Необязательные атр...
Источник питания
2. Дивизиональная ...
Функциональный пример
3.3. Группы ключе...
7.2.1. Обязательс...
Дифференциальный GPS
Глава 8. HUMMINBIR...
Рекомендуемая лите...
7.8 КОМАНДНЫЙ ПРОЦ...
10.2 ДИСКОВЫЕ ДРАЙ...
3. Обзор концепции...
6.5.3 Присоединени...
GPS для Palm
Вот что такое «Гео...
Глава первая
Идея первая: Место...
Опции QoS
Кабели
Версии Linux
Выводы
ГЛАВА 4. ИСПОЛЬЗО...
8. При выделении п...
ССЫЛКИ НА ИСПОЛЬЗУ...
Своя игра
Синтаксис
11.2.3 Семафоры
Организация дуплек...
Мини-чат
Вам необходимо залогиниться.

Нет присланных сообщений.
Copyright © 2009