| терминал |-------* модем *\ | |
| | кабель * * \ ***** | UNIX |
+----------+ ***** \ _||_ * * прямой | |
\ _||_ ---* модем *-------| tty00 |
/ || * * кабель | |
+----------+ ***** / || ***** | |
| | прямой * * / +--------+
| микро-ЭВМ|-------* модем */ getty 1200 tty00
| | кабель * * login имя_польз
+----------+ ***** sh
Коммуникационное обеспечение,
команда набора телефонного номера
---------------------------------------------------------------------------
Терминал (когда он установлен на 1200 бод) общается
непосредственно с модемом. При этом задействованы модемные команды
"набрать телефонный номер" (dial), "повесить трубку" (hang up) и т.д.
Микро-ЭВМ, запускающая коммуникационное программное обеспечение,
обычно имеет команду набора номера, которая генерирует команду для
модема. Соединение между терминалом/микро-ЭВМ и модемом должно быть
выполнено в виде прямолинейного кабеля. Модем имеет также телефонный
кабель, идущий в телефонную систему.
Поскольку мы имеем дело с UNIX, последовательность действий при
регистрации в системе такая же, как и рассмотренная ранее, за
исключением того, что getty инициируется обычно со скоростью 1200
бод, чтобы соответствовать скорости модема. Если getty имеет другую
скорость, переключите ее с помощью клавиши break на значение 1200
бод.
Как только все действия по конфигурированию завершены, терминал
или микро-ЭВМ может связаться с системой UNIX. Как это сделать? При
регистрации пользователя в системе структура данных termcap
используется для поддержки управления экраном. Если у вас еще нет
записи в файле termcap, обратитесь к предыдущей главе, где описано,
как подготовить такую запись. Терминалы (поскольку обычно они
являются просто аппаратурой) не слишком гибки и дружественны по
отношению к пользователю. Они не обладают широким спектром
возможностей помимо регистрации в системе и запуска некоторых
программ. Микро-ЭВМ, с другой стороны, имеют большую гибкость и могут
многое добавить к пользовательскому интерфейсу с системой UNIX.
Коммуникационные программы имеют обычно буфер памяти с прямой
адресацией (RAM), который вы можете использовать для того, чтобы
захватить данные и поместить их на диск. Благодаря применению этого
буфера, вы можете избавиться от необходимости использовать
специальные команды UNIX для передачи файлов. Вы можете дать команду
включения захвата данных, затем отобразить файл на экран (используя,
например, команду cat или просматривая файл редактором), если только
этот файл не слишком большой для буфера.
Следует иметь в виду, однако, что программные файлы или другие
файлы, требующие стопроцентной точности при передаче, нужно
передавать с явным использованием протокола проверки ошибок,
поскольку телефонные линии или даже прямое подключение могут вносить
"шумы" и один неверный символ может сделать программу бесполезной.
Некоторые протоколы, поддерживаемые в мире микро-ЭВМ, приспособлены к
машинам с системой UNIX, например программы xmodem и kermit.
Из этих двух протоколов xmodem более широко распространен в мире
микро-ЭВМ и поддерживается почти всеми системами типа досок
объявлений. Kermit очень популярен в мире UNIX, имеет растущую
популярность в мире микро-ЭВМ и доступен почти для каждой модели
микро-ЭВМ за цену, немногим большую стоимости диска.
Используя эти протоколы, микро-ЭВМ может посылать и принимать
файлы из системы UNIX, и вам не нужно заботиться о контроле ошибок
при передаче данных. Чтобы подробнее узнать об этих протоколах,
проконсультируйтесь у администраторов вашей системы UNIX и у
пользователей микро-ЭВМ, имеющих те же проблемы.
ДОСТУП ИЗ СИСТЕМЫ UNIX К МИКРО-ЭВМ
Обратная ситуация, в отличие от только что рассмотренной,
состоит в обращении из системы UNIX к системе, отличной от UNIX,
функционирующей на микро-ЭВМ или на большой машине. Для того чтобы
это сделать, необходимо знать, как получить доступ к
последовательному порту, какую команду модема использовать для набора
телефонного номера, как зарегистрироваться в той системе, в которую
мы обращаемся. Модель этой ситуации показана на рис. 8-6.
Терминальное устройство DTE-1, т.е. система UNIX, использует
прямой кабель для подключения модема. Для последовательной линии,
которой в нашем примере является tty00, не нужно запускать процесс
getty. Программа getty нужна только для регистрации в системе, а не
для обращения к другой системе. Последовательным портом UNIX-машины
управляет программа cu. Система, отличная от UNIX, имеет
регистрационную последовательность некоторого вида. Если вы
обращаетесь к микро-ЭВМ, на которой функционирует программное
обеспечение типа доски объявлений, то система, отличная от UNIX,
обычно запрашивает ваше имя, город и т.д., а также пароль. (Обычно
вы можете зарегистрироваться как новый пользователь и завести
пароль, но это зависит от конкретной доски объявлений.) Если другой
системой является большая машина, то ее регистрационную
последовательность нужно знать заранее.
Как уже отмечалось, основной программой, которую предоставляет
UNIX для обращения к другой системе, является cu(1), что означает
"call unix" ("вызвать UNIX"). На практике, как и в нашем примере,
другая система не обязана быть системой UNIX, поэтому эту программу
было бы более правильно характеризовать как "подключение к
UNIX-порту".
Рис. 8-6. Обращение UNIX к системе, отличной от UNIX
---------------------------------------------------------------------------
DTE-1 DTE-2
+--------+ +------+
| | ***** _||_ ***** | |
| UNIX | прямой * * _||_ * * прямой | Не |
| |-------* модем *-- || --* модем *-------| UNIX |
| tty00 | кабель * * || * * кабель | |
| | ***** || ***** | |
+--------+ +------+
ДЕЙСТВИЕ ДЕЙСТВИЕ
Вместо команды getty tty00 Специфическая
команда cu -ltty00 dir регистрационная
последовательность
---------------------------------------------------------------------------
Программа cu открывает последовательный порт и помещает "файл
занятости" ("lock file") в каталог /usr/spool/uucp. Присутствие этого
файла занятости просто означает, что порт задействован, и
препятствует доступу к нему других пользователей. Вы имеете право
исключительного доступа до тех пор, пока не выйдете из программы cu и
не отдадите этот порт кому-нибудь другому.
При вызове утилиты cu начинают работать два процесса: читатель
(который читает из последовательного порта) и писатель (который пишет
в последовательный порт). Когда вы вводите символы для программы cu,
она проверяет наличие среди них специальных символов, на которые она
должна реагировать. Обычно cu сразу реагирует на специально
предназначенные ей командные символы. Остальные символы передаются
через последовательный порт другой стороне. Помимо передачи символов
вперед и назад, программа cu предоставляет многие функции,
аналогичные функциям коммуникационного пакета микро-ЭВМ.
ОБНАРУЖЕНИЕ МОДЕМОВ В СИСТЕМЕ
Если вы работаете на большой машине, вам нужно выяснить, какие
порты в вашей системе подсоединены к модему и внешней линии. Если вы
администратор, то вы должны знать, как сконфигурировать эти линии.
Начинать нужно с файла /usr/lib/uucp/L-devices. Это основной
файл, определяющий, какие порты используются и каким образом они
используются. Вот пример распечатки с информацией о портах:
---------------------------------------------------------------------------
|
| ACU cul0 cua0 1200
| DIR tty00 0 300
| DIR tty00 0 1200
| DIR tty00 0 2400
| DIR tty00 0 4800
| DIR tty00 0 9600
|
В файле L-devices каждый порт определяется либо как прямое
подключение (DIR - direct connection), либо как специальное
устройство, называемое устройством автоматического вызова (ACU -
automatic call unit). Об устройствах вызова мы поговорим позже.
Сейчас нам нужно рассмотреть только записи типа DIR. Программа cu
использует записи типа прямого подключения, а uucp - типа ACU. Теперь
очень просто идентифицировать каждый последовательный порт: как к
нему обращаться, на какой скорости он работает и можем ли мы
осуществить вызов через этот порт.
Данные файла L-devices показывают, например, что
последовательный порт tty00 используется как линия прямого вызова.
Вам разрешается использовать для вызова через этот порт скорости от
300 до 9600 бод. Это полный диапазон используемых обычно скоростей
обмена, причем более высокие скорости применяются для прямого
подключения к другим машинам, а не к модему.
А как насчет модемных линий, которые ВХОДЯТ в машину? Для того
чтобы их найти, нужно посмотреть каталог /etc. Там два файла dialin и
dialup определяют, на каких линиях tty применяется вторичная
регистрационная парольная последовательность для удаленных
пользователей. Эти линии tty предназначены только для обращения извне
в данную систему и обычно не могут быть использованы для доступа из
этой системы во внешний мир.
ИСПОЛЬЗОВАНИЕ И КОНФИГУРИРОВАНИЕ ЛИНИИ
Теперь, когда мы знаем, по какой линии осуществить вызов, нам
необходима команда вызова. В последних версиях System V утилита cu
более развита, чем в предыдущих версиях. Нам, как правило, не нужны
особо мощные возможности, поэтому наши командные строки довольно
просты и смогут работать практически с любым вариантом программы cu.
К основным возможностям, которые мы имеем, относятся: выбор
номера линии (т.е. устройства tty), скорости функционирования и
подключаться ли к устройству напрямую для ручного набора номера либо
же набирать номер автоматически. Самый простой способ - чтобы номер
набирала программа cu, но если это невозможно, то вы должны
подключиться непосредственно к модему. Следующий пример показывает,
как непосредственно подключиться к устройству и вручную управлять
модемом с целью набора номера. В данном случае используется довольно
широко распространенный модем Hayes 1200 Smartmodem. Если у вас
модем, который не является "Hayes-совместимым", то вы должны найти
эквивалентные управляющие последовательности в вашей документации.
$ cu -ltty00 dir # Получить прямой доступ к терминальной
# линии со скоростью 1200 бод
Connected # Отзыв программы cu
ATdt555-1212 # Внимание модему, установка связи путем
# набора следующего номера
CONNECT # Модем подтверждает факт подключения
# Отправка возврата каретки в систему-адресат
Welcome to Micro BBS # Получение приветствия от микро-ЭВМ
.
.
выполнение сеанса работы с удаленной системой
.
.
exit # Выйти из микро-системы ИЛИ,