Operating System
Вид материала | Реферат |
СодержаниеЗадание линий терминалов Изменение работы последовательной линии Задание типа терминала |
- The design of the unix operating system by Maurice, 9215.6kb.
- Уровни рассмотрения, 314.07kb.
- Курс по операционным системам (на примере ос windows) Основан на учебном курсе Windows, 29.21kb.
- Выполнил ученик 11 «А» класса, 443.51kb.
- Ос лекция 1 (2-й семестр – временно), 101.4kb.
- 1. ms sql server. Общие сведения, 66.03kb.
- Лекция Сущность, цели и задачи финансового менеджмента, 126.51kb.
- Лекция 10. Файловые системы Unix, 116.79kb.
- Д. В. Серебряков по изданию: advanced selling strategies (The Proven System of Sales, 3304.13kb.
- 1. ао «Казахстанская компания по управлению электрическими сетями» (Kazakhstan Electricity, 243.17kb.
Если вы используете обеспеченную 4-х или 8-ми портовую плату расширения, проверьте, что ваша плата распознается во время процедуры начальной загрузки проверкой сообщения начальной загрузки операционной системы UNIX. Если в процессе начальной загрузки не выдается корректное сообщение о вашей плате, то переключатели на плате установлены неправильно. Проверьте документацию по аппаратуре платы для правильной установки переключателей и Release Notes для правильного задания адресов. Это относится к платам, перечисленным, как обеспечиваемые, в документе Release Notes.
- 14-5а -
Обеспечиваемые производителем драйверы могут не печатать распознающие сообщения во время начальной загрузки. Если плата расширения является "интеллектуальной" платой с обеспеченным производителем драйвером, вам не следует выполнять mkdev serial для выполнения процедуры установки. Чтобы распознать новую плату в системе, следует выполнить программу установки, предоставляемую производителем.
Назначим прерывания двум стандартным портам СОМ: СОМ1 - прерывание 4 и СОМ2 - прерывание 3. Большая часть последовательных плат использует одно прерывание на панель, поэтому две четырехпортовые платы могут использовать СОМ1 и СОМ2. Следует удовлетворять требования других продуктов и аппаратуры для предотвращения конфликтов прерываний. Смотрите раздел serial(HW) для получения дополнительной информации о СОМ1 и СОМ2.
- 14-6 -
Когда обеспеченная плата правильно сконфигурирована для нужного порта СОМ и распознается во время процедуры начальной загрузки, выполните эту команду:
/etc/mkdev serial
sysadmsh пользователи выбирают: система --> аппаратура - -> последовательная плата
Это создает файлы устройств для дополнительных последовательных портов.
2. Убедитесь, что вы подключены к системе в качестве корня в многопользовательском режиме.
Подсоедините терминал и включите его. Установите для него
9600 бод, 8 битов данных, 1 стоповый бит, отсутствие контроля четности, полнодуплексный режим и взаимодействие XON/ XOFF. Если терминал не работает в этом режиме, получите информацию о конфигурации терминала в разделе "Изменение файла gettydefs", расположенном далее в этой главе, и на странице stty(C) документа User's Reference.
Некоторые терминалы присоединяются кабелем непосредственно к компьютеру. Другие терминалы присоединяются к модему. Терминалы, присоединяемые к модему, используют "нулевой модем" или "коннектор модема" - кабель с использованными контактами 2 и 3. Присоедините терминал таким образом, чтобы Передача Данных на последовательном порту была связана с Получением Данных на терминале последовательного порта. Сигнал Земля должен быть связан с Сигналом Земля. Другие контакты вероятно не следует соединять. Операционная система требует только соединения контактов 2, 3 и 7.
Дополнительная информация о терминале содержится в руководстве по терминалу или документации по последовательной коммуникации.
3. Если порт открыт, нажмите клавишу <Возврат> несколько раз, чтобы увидеть появление подсказки login:. Если это произойдет, вы готовы к подключению к системе. Если нет, используйте консоль или рабочий терминал для подключения к
- 14-6а -
системе в качестве суперпользователя (корневого), и закройте порт этой командой:
disable ttyname
В предыдущей команде ttyname - это специальное имя устройства рассматриваемого порта. Убедитесь, что вы используете устройство управления не модемом, например /dev/tty1a, а не /dev/tty1A. Дополнительная информация о именах последовательного порта содержится в разделе serial(HW) и разделе "Добавление и конфигурирование последовательных портов" в данной главе.
- 14-7 -
4. Проверьте, что элемент для этого последовательного порта в файле /etc/inittab выглядит аналогично следующему (ttyname - это имя файла устройства, например, /dev/tty1a):
t1a:2:respawn:/etc/getty tty1a m
Если элемент не соответствует приведенному в этом примере образцу, редактируйте файл для его коррекции. Информация о формате файла /etc/inittаb содержится на странице inittab(F) документа User's Reference.
Примечание
Если вы хотите, чтобы любые изменения, сделанные в /etc/inittаb были постоянными, следует также сделать некоторые изменения в /etc/conf/cf.d/init.base. Это необходимо, так как каждый раз, когда ядро перередактируется (когда добавляется драйвер или изменяется настраиваемый параметр) /etc/inittаb реконструируется из элементов из /etc/conf/cf.d/ init.base.
5. Посмотрите с консоли в качестве root, сможете ли вы перенаправить выход на терминал вводом:
Ъ2date > /dev/ttyname
Если вы не увидите дату, напечатанную на терминале, и не уверены в корректности ttyname, попытайтесь запустить другие ttynames для этого последовательного порта. Если вы все же не увидите дату, отпечатанную на терминале, попытайтесь выполнить следующее:
- убедитесь, что терминал подсоединен нужным образом;
- проверьте, что кабель конфигурирован правильно. Если последовательный порт, который вы используете, имеет 25-контактный разъем ((DB-25), читайте, начиная с шага
2 в предыдущем наборе инструкций. Соединены ли контакты 2, 3 и 7 правильно? (Заметим, что контакты, отличные от 2, 3
и 7 не используются).
Если ваша система или плата расширения имеет 9-контактный разъем (DB-9), вам следует использовать (9-25) контакт-
ный разъем. Смотрите руководство по аппаратуре для получения информации о (9-25)- контактных соединениях;
- проверьте конфигурацию установки терминала. Смотрите шаг 2 предыдущего набора инструкций;
- 14-8 -
- проверьте переключатели последовательного порта. Если вы используете многопортовую плату, попытайтесь использовать другие линии на этой плате;
- присоедините терминал к стандартному, последовательному порту (СОМ1 или СОМ2), чтобы убедиться, что терминал и кабель работают правильно. Если вы уже используете порт СОМ1, попытайтесь переключиться на другой порт.
Если вы успешно установили другой терминал, переключите аппаратуру между работающим и неработающим терминалом по одному за раз. Это может помочь при решении аппаратной проблемы. Заметим, что некоторая сбоящая аппаратура может работать под управлением операционной системы DOS, но не под управлением операционной системы UNIX.
6. Когда дата печатается на терминале, разблокируйте порт следующей командой:
Ъ2enable ttyname
Команда enable запускает процесс getty, который отображает следующую подсказку подключения:
login:
Если вы не видите подсказку "login", введите следующую команду, чтобы убедиться, что getty выполняется для порта и что программа конфигурирована правильно:
Ъ2ps -t ttyname
Экран должен отображать сообщение аналогично тому, как это делается в следующем примере, когда либо "login", либо "getty" перечисляется в колонке "COMMAND":
+-----------------------------------------------------
| PID TTY TIME COMMAND
| (время) (команда)
| 2557 1a 0:06 getty
7. Если вы набрали команды enable и disable много раз, то возможно, что новый процесс getty не может быть выполнен для этого порта. Если так, то закройте систему, выполните повторную загрузку, выполните процедуру подключения в качестве "корня" в многопользовательском режиме и попытайтесь выполнить свои действия снова.
- 14-9 -
ЗАДАНИЕ ЛИНИЙ ТЕРМИНАЛОВ
Система может автоматически адаптироваться к нескольким скоростям передачи для терминала и к нескольким параметрам установки. Та же программа, которая отображает сообщение login (getty(М)) читает эти значения линии терминала из таблицы, обрабатывая каждый параметр установки до успешного завершения и до того, как пользователь сможет подключиться к системе. Эта таблица обеспечивает несколько параметров установки, принимаемых по умолчанию для различных типов линий терминала.
Getty автоматически выполняется как часть процесса login. Таблица параметров установки терминала находится в файле, называемом /etc/gettydefs. Вы можете редактировать файл gettydefs для добавления различных наборов характеристик терминалов или их изменения.
Файл gettydefs
Файл /etc/gettydefs содержит информацию, которую программа getty использует для задания характеристик линии терминала, таких как скорость передачи данных в бодах. Файл хранится в виде таблицы. Каждый элемент таблицы разделен на пять полей. Эти поля включают:
label#initial-flags#final-flags#login-prompt#next-label
метка начальные конечные подсказка следующая
флаги флаги login метка
[#login-program]
программа login
Этими полями являются:
label идентифицирует элемент gettydefs для программы
getty. Это может быть число или буква. label
соответствует полю режима линии в /etc/inittab.
Программа init передает режим линии программы getty, как аргумент.
initial-flags устанавливают характеристики линии терминала, когда программа getty первоначально устанавливает связь. Программа getty распознает флаги,
- 14-9а -
перечисленные в termio(М) в документе User's
Reference. Часто единственным устанавливаемым флагом в этом поле является флаг скорости передачи. Например В300 задает скорость передачи, равную 300.
- 14-10 -
final-flags устанавливают характеристики линии терминала (сразу перед тем, как программа getty вы-
полняет процедуру login. Эти флаги описывают рабочие характеристики для линии. Снова устанавливается скорость передачи В. Другие общие флаги включают SANE (составной флаг, который устанавливает для ряда характеристик терминала соответствующие значения, ТАВ3 (расширяет таблицы пробелами), IXANY (разрешает любому символу выполнение рестарта выхода) и HUPCL (перехватывает линию при конечном закрытии). Флаги могут вводиться в любом порядке.
login-prompt содержит сообщение LOGIN, выдаваемое пользователю. Это поле печатается точно в том виде, в каком оно вводится, включая пробелы и символы табуляции. Символ "@" в поле подсказки login расширяется в первой строке (или второй строке, если она имеется) в файле /etc/systemid (если только символу @ не предшествует знак '\').
Распознаются несколько последовательностей
символов, включая:
\n перевод строки \t табуляция
\r возврат каретки \f перевод формата
\v вертикальная табуляция \b пробел
\nnn (3 восьмеричных цифры)
заданные символы ASCII
next-label идентифицирует следующую метку в gettydefs для
getty для повторного выполнения, если предыдущее заканчивается неудачно. Getty переходит на следующую метку, если пользователь нажимает клавишу BREAK при попытке подключения к системе. Группы элементов, такие как коммутируемые или TTY линии, должны образовывать закрытый набор так, что getty переходит обратно к первоначальному входу, если ни один из других входов не выполняется успешно.
login-program имя программы, которая в действительности подключает пользователей к системе. По умолча-
- 14-10а -
нию это программа /etc/login. Это поле является выборочным.
Если присутствует ключевое слово AUTO, то getty не выдает подсказку для имени пользователя, но вместо этого использует имя устройства (то есть tty03) как имя пользователя и немедленно выполняет программу login.
- 14-11 -
Каждое поле разделяется знаком решетки (#) и каждый элемент в gettydefs разделяется пустой строкой.
Элемент в gettydefs может выглядеть следующим образом:
4#B1200 SANE TAB3 HUPCL #login: #2#AUTO /etc/login new
Далее следует описание каждой части этой строки:
* число 4 идентифицирует этот элемент getty;
* следующее поле задает скорость передачи 1200;
* третье поле указывает скорость передачи (В1200), SANE
(составной флаг для ряда характеристик) и HUPCL (перехват строки при конечном закрытии);
* login : появляется как подсказка login. Если это задание не успешно, getty переходит к метке 2 в gettydefs;
* AUTO пытается подключить пользователя выполнением
/etc/login new.
Если последний элемент также содержит filename, то выполняется программа login. (Заметим, что filename и соответствующая программа login создаются пользователем). Например может использоваться включение файла, такого как /etc/diаl_login для линии, присоединенной к модему. Следует задать идентификатор пользователя, назначить пароль, проверить пользователя и далее назначить пользователя. При этом возможно потребуется пароль для системы в добавление к учетному паролю, а также задание специального набора переменных среды подключения, включенных в /etc/default/dial_login.
Изменение файла gettydefs
Файл /etc/gettydefs задает наборы элементов для коммутируемых линий и линий терминалов. Эти наборы элементов соответствуют заданиям режимов линий в /etc/inittab. Программа init передает режим линии как аргумент для getty.
- 14-12 -
Можно редактировать gettydefs для добавления новых установок для терминала или изменения существующих. Например задание установок для терминала может выглядеть следующим образом:
4 # B2400 HUPCL # B2400 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 5
5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 6
6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
Для изменения файла-образца gettydefs таким образом, чтобы getty пыталась использовать скорость передачи 1200 выполните следующие действия:
1. Вызовите текcтовый редактор для редактирования первой строки файла gettydefs.
2. Измените первое и третье поля с В2400 на В1200.
3. Сохраните gettydefs и выйдите из редактора.
Файл-образец будет выглядеть как в следующем примере:
4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 5
5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 6
6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
Вы можете также добавить дополнительные задания для линии терминала в gettydefs. Флаги и допустимые значения для заданий для терминала перечислены в stty(C) документа User's Reference.
Когда вы добавляете новый элемент, убедитесь, что группы элементов в gettydefs образуют закрытый набор, так что поле next-label последнего элемента направляет getty обратно к первому элементу группы.
Для добавления элемента, задающего скорость передачи 300 в предшествующем файле образце gettydefs выполните следующие шаги:
1. Вызовите текстовый редактор для редактирования файла /etc/ gettydefs.
- 14-13 -
2. Найдите точку, где вы хотите поместить новые определения установки для gettydefs. Порядок элементов не существенен; getty только просматривает метку. В данном примере новый элемент является последним элементом файла.
3. Поместите символ возврата каретки после последней строки в файл и введите следующую новую строку
# B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
4. Для помещения метки 7 в набор меток измените поле next_label для элемента с 6 на 7:
6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 7
Getty теперь направляется с метки 6 на метку 7 и далее обратно на метку 4.
5. Завершите работу текстового редактора с сохранением измененного файла gettydefs.
Новый файл gettydefs выглядит следующим образом:
4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 5
5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 6
6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 7
7 # B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
Проверка параметров установки терминала
Каждый раз, когда вы изменяете параметры установки линии терминала или добавляете новые элементы в файл gettydefs следует проверить, что новые значения удовлетворяют getty Чтобы сделать это, используйте команду getty с возможностью проверки -с и именем файла.
Например для проверки gettydefs введите: getty -c /etc/gettydefs
- 14-14 -
Если любые из значений и параметров установки в файле gettydefs не разрешены, getty -с отображает их на экране терминала.
Дополнительная информация о getty и gettydefs содержится в разделах getty(M) и gettydefs(F) документа User's Reference.
- 14-15 -
ИЗМЕНЕНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОЙ ЛИНИИ
Когда вы "открываете" терминал командой enable, система автоматически устанавливает рабочие характеристики последовательной линии по умолчанию. Иногда эти значения не соответствуют величинам, используемым терминалом и поэтому должны меняться, чтобы обеспечить связь между системой и терминалом. Можно отобразить рабочие характеристики последовательной линии командой stty (set tty). Если нужно изменить характеристики "открытого" порта, следует использовать элементы в файле gettydefs, а не команды stty, приведенные ниже.
Примечание
Любые параметры установки для порта, задаваемые командой stty, действуют только до тех пор, пока рассматриваемый порт открыт. Например, если вы хотите изменить скорость передачи tty2a, а tty2a не "открыт", то сначала команда stty открывает порт, далее изменяет параметры установки порта и окончательно закрывает порт. Когда она закрывает порт последний раз, значения параметров установки восстанавливаются к своим первоначальным значениям. В командах stty позднее в данном разделе используется цикл while для устранения такого поведения команды stty. Если вы выполняете stty перенаправляя вход с
Можно отобразить текущие рабочие характеристики последовательной линии вводом этой команды с терминала, присоединенного к этой линии:
stty
Если невозможно подключиться к системе с этого терминала, вы можете использовать другой терминал для отображения характеристик. Подключитесь к системе как суперпользователь с другого терминала и введите:
Ъ2stty < ttyname
- 14-15а -
В предыдущей команде ttyname - это имя специального файла устройства, соответствующего последовательной линии (смотрите главу "Оглавления UNIX и специальные файлы устройств"). Например данная команда отображает текущие характеристики последовательной линии с именем /dev/tty1a:
- 14-16 -
stty < /dev/tty1a
Команда отображает скорость передачи, схему четности и другую информацию о последовательной линии. Эта информация объясняется в разделе stty(С) документа User's Reference.
Одним из возможных изменений для последовательной линии является изменение скорости передачи. Это обычно делается с терминала, присоединенного к другой последовательной линии, так как изменение скорости нарушает связь между терминалом и системой. Перед тем, как вы изменяете скорость, вам необходимо знать текущую скорость передачи терминала (смотрите руководство по аппаратуре терминала для определения текущей скорости передачи). После того, как вы получили скорость передачи, подключитесь к системе как суперпользователь с другого терминала и введите:
Ъ2(stty Ъ1baud-rate; while:; do sleep 3600; done) < ttyname &,
где baud-rate - это текущая скорость передачи терминала, а
ttyname - это имя специального файла устройства, соответствующего последовательной линии, для которой вы хотите провести изменения. Скорость передачи должна содержаться в наборе 50, 75, 110, 134, 150, 200, 300, 600, 1200, 2400, 4800 и 9600.
Например команда:
(stty 9600; while:; do sleep 3600; done) < /dev/tty1a &
изменяет скорость передачи последовательной линии /dev/tty1a на 9600. Заметим, что символ "меньше, чем" (<) используется как
для отображения, так и для задания параметров последовательной линии с другого терминала.
Другим возможным изменением является изменение способа, которым система обрабатывает вход и выход для последовательной линии. Такие изменения обычно делаются с терминала, присоединенного к последовательной линии. Например команда
stty tabs
приводит к тому, что система расширяет символы табуляции
- 14-16а -
пробелами (используется терминалами, которые не расширяют символы табуляции) и команда:
stty echoeЪ
приводит к тому, что система удаляет удаляемый символ с экрана терминала, когда вы используете клавишу
Заметим, что команда stty может также использоваться для адаптации последовательной линии к необычному терминалу, к другому типу последовательного устройства, требующего генерации и регистрации четности или специальной обработки ввода и вывода.
Полное описание этой команды содержится в разделе stty(C) документа User's Reference.
- 14-17 -
ЗАДАНИЕ ТИПА ТЕРМИНАЛА
Системы UNIX требуют, чтобы тип терминала был ясно определен перед работой с этим терминалом. Предпочтительным методом задания типа терминала является назначение типа переменной TERM, специальной переменной среды, связывающей используемый терминал со списком характеристик, приведенном в файле /etc/termсap. Эти характеристики сообщают системе, как интерпретировать клавиши терминала и как отображать данные на экране терминала. Eсли вы используете оболочку Bourne shell (sh), то назначение TERM имеет вид: