Operating System

Вид материалаРеферат

Содержание


Автоматическое задание типа терминала
Удаление терминала
Использование последовательных мультиэкранов
Использование модема в системе
Подобный материал:
1   ...   19   20   21   22   23   24   25   26   ...   36

Ъ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] [А-М] относятся к ис­пользованию с управлением модемом.