да есть, вы имеете еще один способ запуска uucico. Синтаксис выглядит так: $ /usr/lib/uucp/uusub -c system Теперь когда мы знаем, как использовать все эти команды вручную, мы можем рассмотреть некоторые инструментальные средства, автоматизирующие большую часть вашей работы с uucp. ------------------------------------------------------------- ИМЯ: uust ------------------------------------------------------------- uust Состояние uucp и служебные действия НАЗНАЧЕНИЕ Предоставляет управляемый с помощью меню доступ ко многим служебным функциям, связанным с утилитой uucp и передачей файлов. ФОРМАТ ВЫЗОВА uust Опции меню: c - подключиться к другой системе в отладочном режиме d - показать файлы в вашем каталоге PUBDIR f - длинноформатный список файлов в каталоге подкачки (spool directory) l - динамически отображать регистрационный файл r - повторное подключение к другой системе s - дать пользователю сводку о транзакциях u - разблокировать все терминальные линии (ОСТОРОЖНО: это может нарушить сеанс работы) w - отобразить регистрационный файл за последнюю неделю ПРИМЕР ВЫЗОВА uust Динамически отображать регистрационный файл, чтобы следить за транзакциями uucp ТЕКСТ ПРОГРАММЫ 1 : 2 # @(#) uust v1.0 Uucp status utility Author: Russ Sage 4 if [ $# -gt 0 ] 5 then echo "uust: argument error" >&2 6 echo "usage: uust" >&2 7 exit 1 8 fi 10 UUNODE=`uuname -l` 11 echo " 12 UUST MENU system node: $UUNODE 13 --------- 14 c - connect with another system in debug mode 15 d - show files in your directory under PUBDIR 16 f - long list files in the spool directory 17 l - display the logfile dynamically 18 r - reconnect with another system 19 s - give user summary of transactions 20 u - unlock the tty line 21 w - display logfile for the last week 22 - exit program 24 Press c,d,f,l,r,s,u,w,or : \c" 25 read CMD 27 case $CMD in 28 "") exit 0;; 29 c) echo "\nSystem name ( to exit): \c" 30 read SYSTEM 31 if [ "$SYSTEM" = "" ] 32 then exit 0 33 fi 34 echo "\nrm /usr/spool/uucp/STST.$SYSTEM : \c" 35 rm /usr/spool/uucp/STST.$SYSTEM 2>/dev/null \ 36 && echo "" || echo "no STST files" 37 echo "\n/usr/lib/uucp/uucico -r1 -x4 -s$SYSTEM:" 38 /usr/lib/uucp/uucico -r1 -x4 -s$SYSTEM;; 39 d) echo "\n/usr/spool/uucppublic/$LOGNAME:" 40 ls -l /usr/spool/uucppublic/$LOGNAME;; 41 f) echo "\n/usr/spool/uucp:" 42 ls -l /usr/spool/uucp | more;; 43 l) echo "\n/usr/spool/uucp/LOGFILE:" 44 tail -20f /usr/spool/uucp/LOGFILE;; 45 r) echo "\nSystem name ( to exit): \c" 46 read SYSTEM 47 if [ "$SYSTEM" = "" ] 48 then exit 0 49 fi 50 echo "\nrm /usr/spool/uucp/STST.$SYSTEM : \c" 51 rm /usr/spool/uucp/STST.$SYSTEM 2>/dev/null \ 52 && echo "" || echo "no STST files" 53 echo "uusub -c$SYSTEM:" 54 if [ -f /xenix ] 55 then /usr/bin/uusub -c$SYSTEM 56 else /usr/lib/uucp/uusub -c$SYSTEM 57 fi 58 tail -20f /usr/spool/uucp/LOGFILE;; 59 s) echo "\nuulog -u$LOGNAME:" 60 uulog -un$LOGNAME | more;; 61 u) echo \\nrm /usr/spool/uucp/LCK* : 62 rm /usr/spool/uucp/LCK* 2>/dev/null || echo "no lock files";; 63 w) echo "\n/usr/spool/uucp/Log-WEEK:" 64 more /usr/spool/uucp/Log-WEEK;; 65 *) echo "uust: invalid argument '$CMD'" >&2;; 66 esac ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ CMD Содержит символ входной команды, поступивший из стандартного ввода LOGNAME Содержит ваше регистрационное имя SYSTEM Узловое имя uucp той системы, в которую вы обращаетесь UUNODE Узловое имя uucp локальной системы ОПИСАНИЕ ЗАЧЕМ НАМ НУЖЕН КОМАНДНЫЙ ФАЙЛ uust? Многие области системы UNIX являются фактически самостоятельными подсистемами. Uucp одна из них. Она использует конфигурационные файлы, файлы подкачки (spool files), файлы блокировки (lock files) и имеет много исполняемых модулей, образующих целую систему. Если вы интенсивно используете uucp, вы часто занимаетесь просмотром регистрационных файлов, очисткой каталогов после аварийных завершений работы uucp и наблюдением за системой в целом. Если делать все это вручную, требуется запоминать каталоги, файлы, команды, опции. Трудно запомнить так много символов для ввода команд. Uust значительно сокращает издержки и облегчает использование утилиты uucp. ЧТО ДЕЛАЕТ uust? Uust - это управляемый с помощью меню интерфейс, предоставляющий основные служебные функции, необходимые для среды uucp. Вам нужно набрать только команду uust, а затем требуемые опции. Вполне возможно также, что вы обнаружите трудосберегающие функции, о которых вы не знали раньше. Первое, что печатает данные командный файл - это главное меню: ------------------------- | | UUST MENU system node: russ | --------- | c - connect with another system in debug mode | d - show files in your directory under PUBDIR | f - long list files in the spool directory | l - display the logfile dynamically | r - reconnect with another system | s - give user summary of transactions | u - unlock the tty line | w - display logfile for the last week | - exit program | | Press c,d,f,l,r,s,u,w,or : Первая опция 'c' предназначена для подключения линии uucp в отладочном режиме. Эта опция генерирует такую же командную строку, как при ручном способе запуска процесса uucico (см. предыдущий раздел). Uust запрашивает у вас имя системы, к которой вы хотите подключиться. Следующая опция 'd' дает длинноформатный листинг файлов вашего каталога, определяемого вашей переменной $PUBDIR, т.е. /usr/spool/uucppublic/$LOGNAME. Если вы часто делаете пересылки с помощью uucp, здесь может собраться много файлов. Данная опция предоставляет вам простой способ их просмотра. Опция 'f' выдает длинноформатный листинг всех файлов, находящихся в каталоге подкачки. Выход команды "ls -l" передается по конвейеру команде more, что удобно при наличии большого количества файлов. Этот каталог является сердцем исполняющей системы uucp. Почти все находится или в этом каталоге, или как-то связано с ним. Опция 'l', видимо, наиболее часто используемая во всей утилите. Она позволяет увидеть в динамике функционирование uucp, наблюдая за регистрационным файлом. При первом вызове она печатает последние 20 строк этого файла, а затем ведет наблюдение, пока не будет остановлена ее работа. Общее количество нажатий на клавиши для вызова этой команды с помощью uust равно 5: 4 для вызова uust и 1 для указания опции меню. Для того чтобы набрать ту же команду вручную, требуется 31 символ. Вот где экономия времени и избавление от лишних проблем! Очень интересна опция 'r'. Укажите ей имя системы - и она установит связь с этой системой при помощи uucp. Используемый при этом метод отличается от метода, применяемого в опции 'c', но работает в System V. Отметим, однако, что в большинстве систем команда uusub, задействованная здесь, требует возможностей суперпользователя. Uusub возвращает управление обратно вашему интерпретатору shell, но затем запускает uucp в фоновом режиме. Когда это произойдет, uust продвигается вперед и показывает динамический хвост регистрационного файла, как описано выше. После этого вы можете наблюдать все действия uucp по вызову, передаче файлов и завершению работы. Опция 's' показывает все ваши транзакции к утилите uucp, выбирая из регистрационного файла только то, что относится к вашему имени. Обычно имеется много записей, поэтому вывод передается по конвейеру команде more в целях удобства чтения. Следующую опцию 'u' нужно использовать с большой осторожностью. Она удаляет файлы блокировки, устанавливаемые системой uucp для самой себя. Если в это время uucp работает, другой пользователь может обратиться при помощи cu к линии и все разрушить. Эти файлы блокировки существуют также, когда кто-то применяет cu на последователной линии. Данная опция предусмотрена по той причине, что иногда uucp или cu завершается аварийно. Когда такое происходит, нужно удалить файлы блокировки, чтобы начать все сначала. Эту опцию следует использовать только для этой цели либо для запланированного эксперимента, чтобы посмотреть, что при этом может произойти. Последняя опция 'w' предназначена для отображения из регистрационного файла тех транзакций uucp, которые относятся к последней неделе. Это нетрудно сделать, но если бы вы искали определенную транзакцию, вы могли бы применить для этого средства поиска символьных строк команды more. ПРИМЕР $ uust r Это попытка повторного подключения к линии uucp. Ее можно использовать для опроса другой системы или для отправки или приема данных, стоящих в очереди. Первым делом запрашивается имя системы, к которой нужно обратиться. Затем эта команда пытается удалить все файлы, оставшиеся после предыдущих аварийных завершений, и произвести вызов. ПОЯСНЕНИЯ Uust является однопроходной утилитой, т.е. не имеет внутренних циклов. Вы выбираете опцию, и после завершения ее выполнения завершается весь командный файл. Таким способом это сделано главным образом по той причине, что вы должны обрывать вывод команды tail, коорая используется некоторыми опциями меню. Однако, клавиша break прекращает все, даже выполнение uust. Не имеет смысла делать внутренний цикл, так как этот цикл редко смог бы повториться. В строках 4-8 выполняется проверка командной строки на наличие ошибок. Если переданы какие-то аргументы, выдается сообщение об ошибке и командный файл завершается. Строка 10 инициализирует переменную UUNODE текущим именем uucp той системы, в которой вы работаете. Это обеспечивается вызовом утилиты uuname. Строки 11-24 отображают главное меню одним большим оператором echo. Имя системы, поступившее в переменную UUNODE, выдается для справки в правой верхней части экрана. В строке 25 читается ответ пользователя, а строки 27-66 проверяют команду и выполняют ее. Если вы ввели только возврат каретки, это соответствует строке 28, и программа завершается. Строки 29-38 обрабатывают команду 'c' - подключение в отладочном режиме. Запрашивается имя системы и проверяется, не пустое ли оно. Если оно пустое, командный файл завершается. В противном случае строка 34 сообщает, что uust пытается удалить все файлы STST, которые создавались при неудачных вызовах. Перед тем как обратиться к системе, вы должны удалить все файлы STST. Если таких файлов нет, команда rm не срабатывает и выдается сообщение "no STST files". Строки 39-40 выполняют опцию 'd'. Сначала отображается для справки название каталога, который мы просматриваем. Затем распечатывается каталог PUBDIR в длинном формате. Заметим, что LOGNAME соответствует любому пользователю, запустившему данную программу, поэтому нет необходиvости вписывать в текст программы какое-то значение. В строках 41-42 аналогичным образом обрабатывается опция 'f'. Мы распечатываем здесь каталог подкачки. Команда 'l' в строках 43-44 сообщает, что отображается регистрационный файл. Затем используется команда "tail -f". Опция -f означает, что нужно производить отображение того, что находится в файле следующим образом: как только транзакции печатаются в файл, они отображаются на ваш экран. Пользователь должен нажать клавишу break для выхода из программы. Строки 45-58 выполняют команду 'r', которая пытается произвести повторное подключение. Сначала запрашивается имя системы и сравнивается с пустой строкой. Если имя введено, мы пытаемся удалить файлы STST и выдаем сообщение о том, было ли это удаление успешным. Затем печатается сообщение о том, что запускается процесс uusub. В строке 54 проверяется, является ли корневым файлом XENIX. Если это так, то утилита uusub вызывается с учетом ее нового местонахождения в системе XENIX. В противном случае она вызывается с указанием ее обычного местонахождения - /usr/lib/uucp. После выполнения uusub отображается динамический хвост регистрационного файла, пока пользователь не нажмет клавишу break, после чего командный файл завершается. В строках 59-60 выполняется проверка сводки о транзакциях. Используется команда uulog, ей передается LOGNAME текущего пользователя. Подробности о команде uulog можно найти в документации. Опция 'u' рассматривается в строках 61-62. Сначала отображается команда rm, которая будет выполнена, чтобы уведомить об этом пользователя. Затем эта команда выполняется, чтобы попытаться удалить файлы блокировки. Если команда удаления завершается неудачей, выдается сообщение об ошибке, указывающее на отсутствие файлов блокировки. Строки 63-64 запускают опцию 'w', чтобы посмотреть деятельность uucp за последнюю неделю. С помощью команды more печатается файл LogWEEK. Этот файл создается утилитой uucp, чтобы обеспечить сжатую сводку о работе в течение недели. Строка 65 соответствует любым командам, которые не были распознаны ранее. Такие команды являются ошибочными, и выдается сообщение об этом. Когда выполнение программы доходит до этого места, она завершается. ------------------------------------------------------------ ИМЯ: uutrans ------------------------------------------------------------ uutrans Передача файловых деревьев из одной системы UNIX в другую систему UNIX НАЗНАЧЕНИЕ Копирует полную иерархию файловой системы с помощью uucp в другую систему UNIX и поддерживает структуру файлового дерева. ФОРМАТ ВЫЗОВА uutrans ПРИМЕР ВЫЗОВА cd $HOME/backup uutrans remote ~russ Начиная с подкаталога backup моего регистрационного каталога, запустить uutrans с целью передачи всех моих файлов. Файлы посылаются в систему remote и размещаются там в моем регистрационном каталоге (/usr/russ). ТЕКСТ ПРОГРАММЫ 1 : 2 # @(#) uutrans v1.0 Transfer file trees via uucp 3 # Author: Russ Sage 4 if [ $# -gt 0 ] 5 then echo "uutrans: argument count error" >&2 6 echo "usage: uutrans" >&2 7 exit 1 8 fi 10 SELF=`uuname -l` 12 echo "source directory( to exit): \c" 13 read SOURCE 14 if [ "$SOURCE" = "" -o ! -d "$SOURCE" ] 15 then exit 1 16 fi 18 echo "\ndestination system( for $SELF): \c" 19 read SYSTEM 20 echo "\ndestination directory( for ~/$LOGNAME): \c" 21 read DEST 23 : ${SYSTEM:="$SELF"} 24 : ${DEST:="~/$LOGNAME"} 26 echo "\nQUEUEING:" 28 find $SOURCE -type f -print | sort | while read FILE 29 do 30 echo $FILE 31 uucp -c -d -r $FILE $SYSTEM!$DEST/$FILE 32 done ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ DEST Место назначения, куда нужно копировать файлы FILE Определенный копируемый файл LOGNAME Содержит регистрационное имя SELF Содержит узловое имя текущей системы SOURCE Источник всех копируемых файлов SYSTEM Имя системы, в которую нужно копировать ОПИСАНИЕ ЗАЧЕМ НАМ НУЖЕН КОМАНДНЫЙ ФАЙЛ uutrans? Копирование файлов из одной системы в другую с помощью uucp - довольно простая задача: достаточно указать, какие файлы куда нужно направить. Но как быть в случае, когда вам нужно скопировать иерархию файлов? Как гарантировать, что файлы расположатся в системе-адресате в виде иерархии, а не будут засунуты в один и тот же каталог? Единственное предложение в документации по uucp (даже не на страницах руководства) говорит о том, как это сделать. Если вы никогда не читали его, то скорее всего ваши пересылки завершатся неудачей. Нам нужно инструментальное средство, которое передает древовидные структуры в другие системы, сохраняя при этом форму этих структур. Мы хотим обеспечить простой способ выполнения этой работы, чтобы не искать каждый раз припрятанную информацию. ЧТО ДЕЛАЕТ uutrans? Uutrans предоставляет гибкий интерфейс, гарантирующий правильное копирование файловых иерархий. Этот командный файл знает, какие файлы передавать, в какую систему их направить и где их разместить в этой системе. Когда вы запускаете uutrans, первым делом он запрашивает исходный каталог для пересылки файлов. Если вы не хотите продолжать, нажмите возврат каретки для выхода. Обратите внимание, что используется команда find, поэтому путь, который вы указываете в ответ на подсказку, является префиксом маршрутного имени для всех передаваемых файлов. Например, если вашим текущим каталогом является $HOME и вы хотите сделать его каталогом-источником, введите ".". Оператор find сгенерирует для файла /src/f.c маршрутное имя ./src/f.c. Если же вы введете, например, имя /usr/russ, то результирующим маршрутным именем будет /usr/russ/src/f.c. Таким образом, требуется небольшая предусмотрительность, чтобы избежать создания лишних уровней каталога в системе-адресате. Затем запрашивается имя системы-адресата. Если вы хотите, чтобы это была ваша собственная система, нажмите возврат каретки. Это позволит скопировать файлы в пределах того же жесткого диска или в другие файловые системы. В запросе каталога-адресата умолчанием является PUBDIR. Если вам это не подходит, укажите точное маршрутное имя каталога, с которого вы хотите начать иерархию в системе-адресате. (Напомним также, что многие системы накладывают ограничения на то, куда вы можете копировать файлы с помощью uucp.) Способ, которым uutrans поддерживает правильное файловое дерево - это указание абсолютного маршрутного имени в системе-адресате, ниже которого будут располагаться все передаваемые файлы. Единственный способ сделать это - занести маршрутное имя в переменную и использовать ее в качестве путей как источника, так и адресата при вызове uucp. Когда вся входная информация введена, используется команда find, чтобы найти все файлы, относящиеся к данной иерархии. Затем каждое маршрутное имя передается по конвейеру в цикл, который отображает имя и передает файл адресату при помощи uucp. Для того чтобы ускорить весь процесс и сэкономить свободное пространство, файлы ставятся в очередь в каталоге подкачки (т.е. не делается попытка вызвать удаленную систему), и никакие файлы не копируются в каталог подкачки. Это экономит время, которое ушло бы на копирование больших количеств файлов, и даже может обезопасить вашу машину от аварийных завершений работы, так как копирование большого числа файлов забирает все свободное пространство. Когда все файлы поставлены в очередь, вам нужно вручную подсоединиться к uucp с помощью команды 'c' или 'r' утилиты uust. Все каталоги в системе-адресате должны создаваться автоматически по мере пересылки файлов. Несколько неприятный вопрос - права собственности и доступа к файлам на принимающей стороне. Обычная последовательность действий такова: 1. Поставить файлы в очередь к uucp, используя инструментальное средство uutrans. 2. Выйти из системы-источника. 3. Войти в систему-адресат. 4. Запустить uust и повторно подключиться к uucp. Если вы придерживаетесь такой технологии постановки в очередь и передачи, то вы полностью контролируете, какие файлы куда направляются. Имеется побочный эффект, заключающийся в том, что права доступа к файлам в каталоге-адресате устанавливаются в соответствии с маской интерпретатора shell (shell umask) того процесса, который производит повторное подключение. Необходимо отметить, что если у вас нет прав доступа на запись в вашей umask, то создается пересылочный каталог, но в него не могут быть помещены никакие файлы, что подрывает передачу файлов с помощью uucp. Для разрешения этой проблемы измените вашу umask на "000" (по умолчанию она равняется 777 для каталогов и 644 для обычных файлов). ПРИМЕРЫ 1. cd $P uutrans . remote Сменить каталог на PUBDIR. Передать все файлы из текущего каталога (.) в удаленную систему, размещая их в подразумеваемом каталоге ~/$LOGNAME, т.е. в моем каталоге PUBDIR. 2. uutrans /etc remote /tmp/etc Передать все файлы из каталога /etc в систему remote, помещая их в каталог /tmp/etc. ПОЯСНЕНИЯ Строки 4-8 проверяют наличие ошибок. Если в командной строке есть аргументы, печатается сообщение об ошибке. Строка 10 инициализирует переменную SELF именем вашего системного узла, используемого утилитой uucp. Строки 12-16 запрашивают каталог-источник и читают ответ в переменную SOURCE. Если ничего не введено или указан не каталог, программа завершается. Строки 18-21 запрашивают систему-адресат и каталог-адресат. Умолчаниями являются ваша собственная система и каталог PUBDIR для размещения файлов. Эти умолчания облегчают конфигурирование, связанное с пересылкой информации, чтобы не было необходимости вводить много данных. В строках 23 и 24 проверяется, инициализированы ли переменные. Если переменной SYSTEM присвоен возврат каретки, в нее заносится значение SELF. Если переменная DEST пустая, ей присваивается ~/$LOGNAME. Эти операторы устанавливают значения по умолчанию. Строка 26 печатает сообщение о том, что файлы ставятся в очередь. Весь фокус заключается фактически в строках 28-32. Команда find начинает работать с каталога SOURCE и находит все обычные файлы. Этот список передается утилите sort, так что uucp пересылает файлы в отсортированном порядке. Это облегчает отслеживание того, какие файлы были переданы, если возникают какие-то проблемы. Отсортированный список попадает в цикл while, читающий имена файлов. Каждое имя отображается на экран для справки, и файл ставится в очередь к удаленной системе. В строке 31 указаны такие опции uucp: -r для постановки в очередь, -c для того, чтобы не копировать файлы в каталог подкачки, и -d для создания каталогов, необходимых в удаленной системе. Для поддержки древовидной структуры мы применяем магический синтаксис $SYSTEM!$DEST/$FILE. Нам нужно не только скопировать файлы в систему и в каталог, но и определить маршрутное имя вплоть до самого файла. Это гарантирует, что файлы будут расфасованы по каталогам. Если бы был использован синтаксис $SYSTEM!$DEST, то все файлы попали бы в один каталог и их иерархическая структура была бы утеряна. После того как все файлы поставлены в очередь, они находятся в этой очереди до тех пор, пока их не позовет удаленная система. Тогда файлы будут скопированы в эту систему. КОНФИГУРАЦИОННЫЕ РЕШЕНИЯ Зачастую на практике вокруг нашей системы UNIX накапливается много не особенно совместимой аппаратуры, включая терминалы, микро-ЭВМ и модемы. Как заставить их работать совместно? Теперь когда мы рассмотрели основные особенности аппаратуры и программмного обеспечения для коммуникаций в системе UNIX, мы готовы представить некоторые примеры работы коммуникаций в комплексах с системой UNIX. Мы хотим рассмотреть ряд конфигураций, использующих различные комбинации аппаратуры. Проблемы меняются, но наш общий подход остается. ПОДКЛЮЧЕНИЕ UNIX К МОДЕМУ И ГЛАВНОЙ МАШИНЕ Первая задача, которую мы рассмотрим, это использование "персональной" системы UNIX, модема и главной машины. У нас есть система UNIX с одним последовательным портом, но мы имеем как модем, так и линию прямого подключения к системе большего размера. Как нам использовать один последовательный порт и для модема, и для главной машины? Решение показано на рис. 8-10. Рис. 8-10. Подключение системы UNIX к модему и главной машине --------------------------------------------------------------- ***** +----------------+ * * | | * модем * | главная машина | * * | | ***** +----------------+ ^ ^ | Прямой кабель | Нуль-модем | | | +---------------+ | ------>| |------- | переключатель | | | \ / \___________/ ^ | | Прямой кабель | v +-------------+ | | | UNIX | | | +-------------+ --------------------------------------------------------------- Нам нужен блок переключения. Этот блок имеет один вход на одной стороне и два входа на другой. Мы подсоединяем UNIX к главному входу, что позволяет переключаться либо на модем, либо на главную машину. Здесь два различных подсоединения: UNIX <-- --> модем Вызов из UNIX при помощи cu, uucp и обращение в UNIX с удаленного терминала UNIX --> главная машина UNIX обращается к главной машине, как прямо подключенный терминал ПОДКЛЮЧЕНИЕ UNIX И ТЕРМИНАЛА К МОДЕМУ Эта конфигурация аналогична предыдущей, за исключением того, что вся аппаратура локальна. Мы хотим использовать модем как для терминала, так и для UNIX. Конфигурация показана на рис. 8-11. Порт системы UNIX подсоединяется к одной стороне переключателя, а терминал к другой. Отметим, что терминал НЕ будет обращаться в систему UNIX. Все кабели прямолинейные. В таком комплексе возможны следующие конфигурации: UNIX <-- --> модем Обращение в UNIX с удаленного терминала и вызов из UNIX с помощью cu, uucp терминал --> модем Для вызова из UNIX только в качестве немого терминала Рис. 8-11. Подключение UNIX и терминала к модему ---------------------------------------------------------------- ***** * * * модем * * * ***** ^ | | Прямой кабель | v /-----------\ / \ | | | переключатель | | | ------->| |<------- | |_______________| | Прямой | | Прямой кабель | | кабель | | v | +-----------+ +--------------+ | | | | | UNIX | | терминал | | | | | +-----------+ +--------------+ ---------------------------------------------------------------- ПОДКЛЮЧЕНИЕ UNIX К ТЕРМИНАЛУ, МОДЕМУ И ГЛАВНОЙ МАШИНЕ Эта ситуация довольно сложна и требует двух блоков переключения. Соответствующая архитектура показана на рис. 8-12. Рис. 8-12. Подключение системы UNIX к терминалу, модему и главной машине -------------------------------------------------------------------- ***** +----------------+ * * | | * модем * | главная машина | * * | | ***** +----------------+ ^ ^ Прямой | | Нуль- кабель | | модем | +---------------+ | +-------------+ ----->| |----- | | | переключатель | | терминал | | 2 | | | \ / +-------------+ \___________/ | ^ | Нуль-модем | Прямой кабель | | | +---------------+ | ------>| |<------ | переключатель | | 1 | \ / \___________/ ^ | | Прямой кабель | v +-------------+ | | | UNIX | | | +-------------+ -------------------------------------------------------------------- Начнем с системы UNIX. В ней имеется линия, идущая в переключатель 1 в качестве главного входа. Переключатель 1 осуществляет переключение между терминалом и блоком переключения 2. Это позволяет системе UNIX либо получать терминал для регистрации в системе (в предположении, что работает getty), либо получать модем для регистрации в системе, либо посылать информацию модему или главной машине (предполагается, что процесса getty нет). Заметим, что между терминалом и UNIX должен быть нулевой модем, но мы не можем сделать нуль-модем сразу после UNIX, потому что нам нужен прямой кабель для подсоединения к модему. Затем блок переключения 2 выполняет коммутацию между модемом и главной машиной. Линия к модему должна быть прямой, а линия в главную машину должна быть нуль-модемом. Возможны следующие взаимосвязи: UNIX <-- терминал Обращение в UNIX с терминала по линии getty UNIX <-- --> переключатель <-- --> модем Вызов из UNIX с помощью cu, uucp и обращение в UNIX с удаленного терминала UNIX --> переключатель --> главная машина Обращение из UNIX при помощи cu, uucp СИСТЕМА UNIX, МИКРО-ЭВМ И МОДЕМ В этой конфигурации также требуется два блока переключения. У нас есть машина с двумя последовательными линиями, на которой работает UNIX, автономная микро-ЭВМ и модем, который они должны совместно использовать. UNIX-машина также воспринимает регистрацию с автономной машины, позволяя ей эмулировать терминал, если у нас есть соответствующее программное обеспечение. Решение показано на рис. 8-13. Рис. 8-13. Система UNIX, микро-ЭВМ и модем ------------------------------------------------------------------- ***** * * * модем * * * ***** ^ | прямой кабель | v ______________ / \ / \ | переключатель | | 2 | ------------------- ^ ^ | | | | ----------------- ------------------- | | | ------------------------------- | | | | | | | | | | | ------------------- | | | | | | | переключатель | | | \ 1 / | | \_____________/ Прямой | | Нуль-модем ^ кабель | | | v v | +--------+ +-------------+ | | | | | UNIX | | микро-ЭВМ | | | | | +--------+ +-------------+ ------------------------------------------------------------------- Микро-ЭВМ может работать двумя способами: либо как терминал в системе UNIX, либо как терминал для обращения к модему. Система UNIX имеет один последовательный порт, позволяющий связываться с микро-ЭВМ через переключатель 1. Другая последовательная линия идет в блок переключения 2, подсоединенный к модему. По этой линии можно либо обращаться из системы UNIX во внешний мир, либо принимать внешние вызовы с целью удаленной регистрации в системе через модем. Переключатель 2 коммутирует модем между микро-ЭВМ и системой UNIX. Возможны такие комбинации: микро-ЭВМ --> переключатель --> модем Обращение вовне с помощью коммуникационных средств микро-ЭВМ --> переключатель --> UNIX Регистрация в системе путем эмуляции терминала UNIX <-- переключатель <-- микро-ЭВМ Регистрация с терминала, подключенного напрямую UNIX <-- --> переключатель <-- --> модем Вызов из UNIX при помощи cu, uucp, удаленная регистрация модем <-- переключатель <-- микро-ЭВМ Вызов модема с микро-ЭВМ модем <-- --> переключатель <-- --> UNIX Вызов из UNIX или обращение в UNIX; требуется изменение getty для последовательной линии и автоответа модема АЛЬТЕРНАТИВНОЕ РЕШЕНИЕ Возможно еще одно решение предыдущей задачи. Оно использует несколько больше возможностей, чем предыдущее решение. Те же основные проблемы решены, но подход при этом сильно отличается. В конфигурации, показанной на рис. 8-14, блоки переключения подсоединяются иначе, чем в предыдущем комплексе. Доступны те же пути передачи информации, а также некоторые новые. Рис. 8-14. Система UNIX, микро-ЭВМ и модем в альтернативной конфигурации --------------------------------------------------------------------- ***** * * ------->* модем * | * * -------------------- | ***** | | | | | | прямой кабель | | v | _______________ | | | | нулевой | переключатель | | модем \ 2 / | \-----------/ | ^ | | прямой кабель | | | v | /-----------\ | / \ | | переключатель | | | 1 | | +_______________+ | ^ ^ | | | | прямой кабель | | прямой кабель | ------------------- -------------- | | | v v | +--------+ +---------------+ | | | | | UNIX | | микро-ЭВМ | | | | | +--------+ +---------------+ ---------------------------------------------------------------------- Как микро-ЭВМ, так и система UNIX подключены к переключателю 1. Этот переключатель присоединен к блоку переключения 2 главным входом. Линии от микро-ЭВМ, от UNIX, между переключателями и модемная линия должны быть прямыми кабелями. Только входная линия системы UNIX должна быть нуль-модемом. Переключатель 2 коммутирует один из центральных процессоров между модемом и второй последовательной линией системы UNIX. Модемная линия может идти от модема или к нему, но линия системы UNIX должна быть только входящей, потому что в UNIX работает getty. Возможны такие комбинации: микро-ЭВМ --> переключатель --> модем Обращение вовне при помощи коммуникационных средств микро-ЭВМ --> переключатель --> UNIX Регистрация в системе путем эмуляции терминала UNIX <-- --> переключатель <-- --> модем Обращение из или в UNIX с помощью cu, uucp UNIX --> переключатель --> UNIX Выход с первой линии идет во вторую линию для регистрации в системе модем <-- --> переключатель <-- --> процессор Выбор центрального процессора зависит от переключателя 1 UNIX <-- переключатель <-- процессор В зависимости от переключателя 1, один из процессоров может зарегистрироваться в системе ТРИ СИСТЕМЫ UNIX Последняя конфигурация, которую мы рассмотрим, это соединение трех систем UNIX. Данное решение было подсказано конфигурацией с прямым подсоединением 16-разрядной машины PC XENIX, 32-разрядной машины PC XENIX и главной машины VAX. Для того чтобы выполнить такое подключение, нам нужно три двунаправленных блока переключения. Не так важно, какая из микро-ЭВМ 1 и микро-ЭВМ 2 является 32- или 16-разрядной машиной. Они могут быть в вашем помещении, а главная машина может стоять где-то в другом месте и соединяться кабелем с вашим помещением. При этом предполагается, что кабель от главной машины уже является нуль-модемом в вашем подключении. Еще один нулевой кабель располагается между двумя системами UNIX на микро-ЭВМ, чтобы можно было зарегистрироваться с одной из этих систем в другой системе в качестве терминала. Остальные кабели прямые (см. рис. 8-15). Рис. 8-15. Три системы UNIX --------------------------------------------------------------------- +------------------+ | | | UNIX | | главная машина | | | +------------------+ ^ | нуль-модем | ______________ / \ / \ | переключатель | | 3 | |__________________| ^ ^ | | прямой кабель | | прямой кабель ---------------- ---------------- | | |