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.
Ъ2TERM=Ъ1termtype; export Term
Если вы используете оболочку С (csh), то назначение TERM имеет вид:
Ъ2setenv TERM termtype
termtype должно быть одним из имен, связанных с одним из терминалов, определенных в файле /etc/termcap. Назначение должно вводиться с терминала, тип которого вы устанавливаете.
Например для установки типа терминала "ansi" из оболочки Bourne обратитесь к терминалу, который вы хотите установить, введите подсказку оболочки ("$"):
TERM=ansi; export TERM
и нажмите клавишу <Возврат>. Из оболочки С введите подсказку
("%")
setenv TERM ansi
и нажмите <Возврат>.
Если вы не уверены в том, какое имя вы можете использовать для termtype, вы можете просмотреть имена либо отображением файла /etc/termcap, либо чтением страницы руководства terminals (M) документа User's Reference, где перечисляются все терминалы, обеспеченные в файле /etc/termcap. Для отображения самого списка введите:
more /etc/termcap
и нажмите клавишу <Возврат>.
- 14-18 -
Вы можете позволить системе определить тип терминала автоматически, когда вы подключаетесь к системе, включив назначение TERM в файл .profile (смотрите "Изменение файлов .profile и .login" в главе "Запуск и останов системы").
Альтернативный метод задания типа терминала описан в разделе tset(C) документа User's Reference.
Если вы позволите системе установить тип терминала, следует быть осторожным при подключении к системе на терминалах, которые не относятся к тому же типу, к которому относится ваш обычный терминал. У системы отсутствует способ проверки корректности данного терминала, она предполагает тип терминала, аналогичный вашему обычному терминалу. Если это не так, вам следует установить тип терминала вручную.
- 14-19 -
АВТОМАТИЧЕСКОЕ ЗАДАНИЕ ТИПА ТЕРМИНАЛА
Если вы хотите, чтобы тип терминала задавался автоматически во время подключения к системе, выполните следующую процедуру:
1. Подключитесь к рассматриваемому терминалу и определите, какое ttyname вы используете, введя:
tty
2. Подключитесь как root и редактируйте файл /etc/ttytype текстовым редактором. Измените поле типа терминала для линии, связанной с рассматриваемым терминалом, на необходимый вам тип терминала. Учтите модель консоли. Если вы хотите, чтобы тип терминала был установлен как wy50 для /dev /tty1a, редактируйте /etc/ttytype следующим образом:
wy50 tty1a
3. Далее пользовательский файл запуска должен редактироваться с соответствующей строкой команды tset(C) для автоматического задания типа терминала. В каждый файл .login пользователя оболочки С добавьте следующую строку:
tset -s -q > /tmp/tset$$; source /tmp/tset$$;
/bin/rm/tmp/tset$$
Убедитесь в удалении строки команды setenv(C), принимаемой по умолчанию и включающей TERM и TERMCAP из файла .login.
В каждом .profile пользователя оболочки Bourne добавьте следующую строку:
eval 'tset -s'
Убедитесь в удалении имеющейся строки команды tset из файла .profile.
4. Отключите всех пользователей от системы, далее подключитесь к системе снова для проверки изменения типа нового терминала. После подключения к системе проверьте новый termtype введя:
env
- 14-20 -
УДАЛЕНИЕ ТЕРМИНАЛА
Время от времени может оказаться необходимым удалить терминал из системы, например, если вы хотите заменить его некоторым другим устройством. Перед тем, как вы можете удалить терминал, вы должны отключить его командой disable(C).
Для удаления терминала выполните следующие шаги:
1. Выключите питание терминала.
2. Подключитесь к системе как суперпользователь с другого терминала.
3. Используйте команду disable для отключения терминала. Команда имеет вид:
Ъ2disable ttyname
где ttyname - это имя последовательной линии, к которой
присоединен терминал. Например, команда:
disable /dev/tty1a
отключает терминал, связанный с последовательной линией
/dev/tty1a.
4. Отсоедините терминал от системы.
Последовательная линия, ранее присоединенная к терминалу, теперь свободна для принятия другого устройства.
- 14-21 -
ИСПОЛЬЗОВАНИЕ ПОСЛЕДОВАТЕЛЬНЫХ МУЛЬТИЭКРАНОВ
СРЕДСТВАМИ MSCREEN
Если вы знакомы с multiscreen(M), средствами, которые обеспечивают множество отдельных экранов login для консоли, то имеется возможность использования аналогичного средства для терминала. Терминалы, которые имеют множество страниц экранной памяти, могут использоваться с разделяемыми экранами, каждый со своим сеансом login, так, как будто у вас имеется несколько терминалов вместо одного.
На терминале WYSЕ60 легко может быть сохранено содержимое двух полных экранов активности. Использование третьего экрана для WYSЕ60 обсуждается ниже. Это означает, что использование двух экранов очень похоже на применение более одного терминала. Полная функциональность сессии login обеспечивается для каждого экрана, и ранее выполняемые команды (или их результаты) отображаются на каждом экране, когда он используется. В настоящей статье описывается WYSЕ60, при этом в качестве основы для всех примеров используются две страницы экранной памяти.
Вы можете также ограничить число доступных mscreens. Утилита mscreen обеспечивает доступ к сессиям набора терминалов, что во многом похоже на операцию logging для более, чем одного терминала. Эти сессии обеспечиваются для "псевдо ttys", а не для устройств tty, обычно используемых терминалами или модемами. tty - это специальный файл, связанный непосредственно с отдельным аппаратным устройством, используемым для связи с оборудованием, таким как терминалы или принтеры. За tty следует число и буква. Псевдо-tty - это устройство, которое не связано с какой-либо реальной аппаратурой и используется для моделирования функций реального tty.
Пользователи сетевых продуктов должны уже быть знакомы с псевдо-ttys, так как они являются устройствами, используемыми для подключения к системе на удаленных машинах. Псевдо-tty представляется двумя программными устройствами, которые появляются в листинге /dev как "pty" и "ttyp", за каждым из которых следует число. Первый называется "главным" tty, а последний - "подчиненным". Они моделируют функциональный tty.
После установки система допускает максимум 16 экранов и только 8 псевдо-ttys создаются во время процедуры установки. Вы можете создать большее количество псевдо-ttys и в результате получить больше экранов в системе с программой на рисунке 14-1.
- 14-21а -
Этот предел псевдо-ttys, которые могут использоваться, контролируется конфигурируемым параметром NSPTTYS, который определяет число псевдо-ttys, распознаваемых системой (по умолчанию во время установки задается 16). Допускается максимум 32 псевдо-ttys. Если вы планируете использовать более 16 псевдо-ttys, вы должны увеличить этот параметр в добавление к созданию дополнительных псевдо-ttys. Заметим, что строка "для х
- 14-22 -
в 8 9 10" на рисунке 14-1 расширяется до 23, что означает, что создается 16 дополнительных псевдо-ttys ((0 - 7) уже имеются). Следует укоротить эту строку, если вам не нужно так много псевдо-ttys. Вы можете также расширить ее до 31, если вам нужен максимум 32.
# тип '1 /dev/ptyp*' вы получите несколько линий, аналогичных: # crw----------- 1 бин терминал 59, 26 мая 08:21 /dev/ptyp0 # # установите переменную "главный мастер" (ниже), равную приво- # димому главному номеру major_master=59 # тип '1 /dev/ptyp*' вы получите несколько линий, аналогичных: # crw----------- 1 бин терминал 58, 26 мая 08:21 /dev/ttyp0 # # установите переменную "главный мастер" (ниже), равную приво- # димому главному номеру major_slave=58 for x in 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 do # make master (выполнение "мастера) /etc/mknod /dev/ptyp$x c $major_master $x chown bin /dev/ptyp$x chgrp terminal /dev/ptyp$x chmod 600 /dev/ptyp$x # make slave (выполнение "раба") /etc/mknod /dev/ptyp$x c $major_slave $x chown bin /dev/ptyp$x chgrp terminal /dev/ptyp$x chmod 600 /dev/ptyp$x done |
Рис. 14-1. Процедура оболочки maketyps.
Выполните эти шаги для конфигурации дополнительных экранов
1. Конфигурируйте ваше ядро для обеспечения дополнительных псевдо-ttys. Читайте раздел "Перевыделение ресурсов ядра при конфигурации" в главе "Настройка производительности системы" данного руководства для получения инструкций по
- 14-22а -
выполнению configure(ADM). Выберите категорию 3, Файлы, i
-узлы и файловые системы и установите параметр NSPTTYS в
требуемое значение. Выполните инструкции по перередактированию ядра перед продолжением работы.
2. Далее копируйте процедуру на рисунке 14-1 в файл, называемый "makeptys". Чтобы сделать эту процедуру оболочки выполняемой, введите следующую команду:
chmod 744 makeptys
- 14-23 -
3. Для выполнения этой процедуры оболочки убедитесь, что вы подключены к системе как root и выполните процедуру оболочки следующим образом:
./makeptys
4. После добавления устройств вы должны конфигурировать систему для запуска процесса getty на каждом псевдо-tty. Это выполняется добавлением элементов в файлы /etc/inittab и / etc/conf/cf.d/init.base. Элементы, уже представленные для первых восьми псевдо-ttys выглядят следующим образом:
p0:2:respawn:/etc/getty ttyp0 m
p1:2:respawn:/etc/getty ttyp1 m
p2:2:respawn:/etc/getty ttyp2 m
p3:2:respawn:/etc/getty ttyp3 m
p4:2:respawn:/etc/getty ttyp4 m
p5:2:respawn:/etc/getty ttyp5 m
p6:2:respawn:/etc/getty ttyp6 m
p7:2:respawn:/etc/getty ttyp7 m
Примечание.
Первые 8 псевдо-ttys могут сказать "из" вместо "перепорождения". (Мышь требует, чтобы псевдо-ttys были замаскированы). Вы можете изменить их на "перепорождение", открыв каждое из этих устройств, как в следующем примере:
enable p0
При этом открывается псевдо-tty /dev/ttyp0. (Не открывайте эти псевдо-ttys, если вы уже используете их для мыши).
Вы можете копировать и далее модифицировать эти элементы для дополнительных устройств. Убедитесь, что вы модифицировали оба файла. Например, если вы хотите добавить 8 дополнительных псевдо-ttys, вам следует добавить следующие строки в оба файла:
p8:2:respawn:/etc/getty ttyp8 m
p9:2:respawn:/etc/getty ttyp9 m
p10:2:respawn:/etc/getty ttyp10 m
p11:2:respawn:/etc/getty ttyp11 m
p12:2:respawn:/etc/getty ttyp12 m
p13:2:respawn:/etc/getty ttyp13 m
p14:2:respawn:/etc/getty ttyp14 m
p15:2:respawn:/etc/getty ttyp15 m
- 14-24 -
5. Далее введите следующую команду:
/tcb/lib/ttys_update
Это гарантирует, что ваши добавления распознаются механизмами безопасности системы.
Добавление больших возможностей mscreen в систему увеличивает производительность пользователей. Однако чрезмерное использование может снизить производительность системы. Система с десятью пользователями, каждый из которых использует два экрана, может привести к тому, что производительность системы будет такой же, как в случае двадцати пользователей. Следует иметь производительность в виду при решении вопроса о том, как много mscreen следует использовать в системе, и кто будет иметь возможность использовать их.
Пока никакой терминал не содержит достаточно экранной памяти для сохранения информации, отображаемой при использовании всех двадцати login, которые обслуживаются средствами mscreen, любой терминал позволяет пользователю выполнить переключение между двадцатью экранами, при условии, что клавиатура имеет достаточно дополнительных клавиш для использования при переключении экранов. Однако пользователь вероятно не будет считать полезным использование многих экранов без набора страниц экранной памяти. Неудобно, например, переполучать экран терминала каждый раз при переключении экранов, когда используется крупноформатная таблица на одном экране и Vi на другом. Большая часть людей, которые используют терминалы с минимальной памятью экрана предпочтут слои оболочки shl(C) mscreen для множества сессий login. Дополнительная информация по shl содержится в документе User's Reference.
Поиск неисправностей
В отличии от многих утилит сложные средства mscreen требуют ряда условий для правильного функционирования. Следуя этим предположениям вам следует обойти ряд наиболее общих ошибок, которые делают новые пользователи mscreen.
При подготовке к использованию mscreen убедитесь, что терминал будет работать с программой. Определите, сколько
- 14-24а -
имеется экранной памяти, обратившись к руководству по терминалу. Утилита mscreen использует файл /etc/mscreencap для определения того, как изменить образы экрана для отдельного терминала. Будучи заполнен файл /etc/mscreencap обеспечивается лишь для ряда терминалов. Не следует говорить, что другие терминалы не работают с mscreen, они делают это. Вам следует лишь конфигурировать файл /etc/mscreencap перед использованием терминала. Если вы выполняете mscreen для терминала, который не имеет элементов в файле /etc/mscreencap, то mscreen завершится аварийно.
Если вы уверены, что терминал будет работать с mscreen и у вас есть работающая процедура mscreencap, но процедура mscreen все же завершается аварийно, проверьте следующие проблемы:
- 14-25 -
- создайте псевдо-ttys. Вам может потребоваться создать большее количество псевдо-ttys, если текущие псевдо-ttys уже используются. Используйте процедуру оболочки с рисунка 14-1 для создания большего количества псевдо-ttys.
- проверьте переключение. Убедитесь, что /etc/mscreencap для терминала корректен. Используйте один из примеров в /etc/mscreencap для проверки способа, которым выходная последовательность функциональных клавиш отображается на отдельную команду mscreen. Подключитесь к системе: вы должны подключиться к системе отдельно для каждого экрана, который вы будете использовать.
- уничтожьте процессы mscreen. Если вы тестируете элемент mscreen и имеете неисправность на экранах, то следует выполнить следующее:
1. Проверьте выполняющиеся процессы:
Ъ2ps -uusername
2. Уничтожьте все процессы Ъ2mscreen:
Ъ2kill -g process_numbers
Усовершенствованное использование
Многие пользователи считают, что mscreen представляет достаточные средства. Для усовершенствованных пользователей mscreen или кого-либо заинтересованного в более подробном изучении mscreen и операционной системы имеется несколько советов по использованию и расширению mscreen.
Страница руководства по mscreen(M) предполагает средства автоматического вызова mscreen из файла .login оболочки С. Кроме автоматического вызова mscreen информация на рисунке 14-2 описывает три полнофункциональных mscreen для WYSE 60, а также добавляет ряд удобных средств для пользователя mscreen. Рисунок 14-3 представляет тот же самый материал для файла .profile оболочки Bourne. Заметим, что эти примеры спроектированы для добавления в конец файла .login или .profile и замещают любую существующую информацию о tset.
- 14-26 -
# Example material for the end of a C-Shell .login file. # If logging in via pseudo-tty, surpress terminal # initialization set ttyname='tty' (Пример для конца файла .login оболочки С. Если подключение к системе происходит через псевдо-tty, прекратите инициализацию терминала. Установите ttyname='tty') # Set init to null, iitially.| set init=' ' (Установите init в нулевое значение, первоначально. Установите init=' ') set noglob # Reset init to the valur "-I" when logging in on a pseudo-tty # to surpress the tset terminal initializations string. if ( 'expr $ttyname : "/dev/ttyp"' > 0 ) set init = "-I" set term = ('tset -m ansi:ansi -m wy60 -m:?wy60 -r -S -Q $init') setenvTern $term[1] setenvTERMCAP $term[2] #terminal data base unset noglob term # Put WYSE 60 in ECON-80 mode during initial log in process. (Установите WYSE 60 в режим ECON-80 во время процедуры начального подключения к системе) if ( "$init" !="-I" && "STERM" == "wy60" ) /bin/echo "\033eG\c" # Set the prompt to indicate the tty number of the current # mscreen and command. (Установите подсказку, чтобы указать номер tty текущего mscreen и команду). set prompt = "'expr $ttynamt : '/dev/)' ` % " # Release the local variable used. (Освободите локальные используемые переменные). unset ttyname init # Run mscreen and logout if the 'stop' key (defined as S-F9 in # the default /etc/mscreencap for wy60) is pressed. This # string is described in the mscreen(M) manual pages. (Выполните mscreen и журнал, если клавиша "стоп" (определенная как S-F9 в принимаемом по умолчанию файле /etc/mscreencap для wy60 нажата. Эта строка описана в руководстве по mscreen(M)). mscreen -n 3 if ($status == 0) logout |
Рис. 14-2. Процедура .login.
- 14-27 -
# # Example material for the end of a Bourne shell .profile # file (Пример для конца файла .profile оболочки Bourne) ttyname='tty' init="' if [ `expr $ttyname : "/dev/ttyp"` -gt "0" ] then init="-I" fi eval `tset -m ansi:ansi -m wy60:wy60 -m :?wy60 -r -s -q $init` export PATH if ["$init" = "-I" -a "STERM" = "wy60" ] them /bin/echo "\033eg\c" fi PSI=`expr $ttyname : '/dev')'` $ " unset ttyname init mscreen -n 3 if [ "$?" = "0" ] then exit fi |
Рис. 14-3. Процедура файла .profile.
Многие элементы termcap (включая wy60) чистят буфера экрана (которые mscreen использует при запоминании содержимого множества экранов) как части строки инициализации. На рисунках 2 и 3 tset(С) посылает строку инициализации только во время первой процедуры .login. При подключении к
- 14-27а -
псевдо-ttys tset вызывается с флагом -I. Это делается добавлением переменной "init" в строку tset. Первый раз, когда выполняется tset "init" имеет значение, равное "", не добавляя ничего к команде tset. При выполнении команды tset во время первой процедуры login на экране отображается строка "\033tG\c". Эта последовательность выхода изменяет параметры установки COLUMNS в WYSE60 на режим ECON-80. Комбинация этих параметров установки освобождает достаточное количество экранной памяти для использования тремя экранами. В качестве дополнительного удобства подсказка пользователя устанавливается для отображения номера вспомогательного псевдо-tty, что позволяет пользователю легко отслеживать содержимое используемых экранов.
Если вы не используете терминал WYSE60, вы можете задать подсказку для указания текущего экрана и вызвать mscreen автоматически во время проверки кода возврата оболочки, как это показано на рисунках 14-2 и 14-3.
- 14-28 -
ИСПОЛЬЗОВАНИЕ МОДЕМА В СИСТЕМЕ
Данный раздел объясняет, как соединять и использовать модем в системе UNIX.
Последовательные линии
Операционная система обеспечивает управление модемом для последовательных портов. Таблица 14.1 содержит примеры имен устройств с управлением модемом и без такого управления.
Таблица 14.1 Последовательные линии
Устройство | Функция |
| /dev/tty1a| основной последовательный адаптер без управления |
| | модемом |
| /dev/tty1A| основной последовательный адаптер с управлением |
| | модемом |
| /dev/tty2a| альтернативный последовательный адаптер без |
| | управления модемом |
| /dev/tty2A| альтернативный последовательный адаптер с |
| | управлением модемом |
+-----------+-------------------------------------------------+
/dev/tty1a и /dev/tty1A относятся к одному и тому же последовательному порту (аналогично /dev/tty2a и /dev/tty2A). Операционная система использует в каждом случае различные подпрограммы драйверов устройств. Нельзя пытаться использовать одновременно порты управления с модемом и без модема или же вы увидите следующее сообщение:
cannot open: device busy
(нельзя открыть: устройство занято)
Для систем, включающих многопортовые последовательные платы, устройства /dev/tty[1,2] [а-m] относятся к использованию без управления модемом, а /dev/tty[1,2] [А-М] относятся к использованию с управлением модемом.