Unix-to-Unix Copy
Unix-to-Unix Copy (UUCP) — это набор программ и протоколов, предназначенных для передачи файлов, электронной почты и выполнения удалённых команд между компьютерами под управлением операционных систем семейства Unix. UUCP работал в асинхронном режиме, используя для передачи данных телефонные линии, модемы или последовательные соединения, и не требовал постоянного сетевого подключения. Система была разработана в конце 1970-х годов и получила широкое распространение в 1980-х — начале 1990-х годов, став основой для ранней сети Usenet и электронной почты в интернете.
История
Разработка и ранние версии
Система UUCP была создана в 1978 году в Bell Labs (подразделение AT&T) группой разработчиков во главе с Майком Леском (Mike Lesk) и Дэвидом А. Новицки (David A. Nowitz). Первоначальная цель заключалась в обеспечении передачи файлов между компьютерами, соединёнными через телефонные линии с помощью модемов. Первая версия UUCP была включена в дистрибутив Unix седьмой редакции (Version 7 Unix) в 1979 году.
Распространение и эволюция
В начале 1980-х годов UUCP стала стандартным средством для обмена данными в академической среде и среди пользователей Unix. В 1983 году была выпущена версия UUCP, известная как «BIND» (Berkeley Internet Name Domain), которая включала улучшенную поддержку маршрутизации и адресации. Позднее, в 1985 году, появилась версия «Taylor UUCP», разработанная Яном Тейлором (Ian Taylor), которая стала одной из самых популярных реализаций благодаря своей модульности и поддержке различных протоколов.
Упадок и современное состояние
С развитием глобальной сети Интернет и распространением протокола TCP/IP в середине 1990-х годов UUCP постепенно утратила своё значение. Постоянные подключения и более быстрые протоколы (такие как SMTP для электронной почты и FTP для передачи файлов) вытеснили асинхронную связь. К началу 2000-х годов UUCP использовалась в основном в устаревших системах, в некоторых корпоративных сетях и в качестве резервного канала связи. В настоящее время UUCP практически не применяется, хотя отдельные реализации (например, Taylor UUCP) всё ещё доступны для Unix-подобных систем.
Принцип работы
Асинхронная передача
UUCP работала в асинхронном режиме: соединение устанавливалось только на время передачи данных. Компьютер-отправитель дозванивался до компьютера-получателя через модем, передавал данные, а затем завершал соединение. Это позволяло экономить на стоимости телефонных звонков и не требовало круглосуточного подключения.
Очередь заданий
Система UUCP использовала очередь заданий (spool directory). Пользователь или программа помещали задание на передачу (например, файл или письмо) в очередь. Затем демон UUCP (uucico) в установленное время или по расписанию обрабатывал очередь: устанавливал соединение с удалённым компьютером, передавал данные и получал входящие задания.
Протоколы передачи
UUCP поддерживала несколько протоколов передачи данных, которые выбирались в зависимости от типа соединения:
- g-протокол — наиболее распространённый, работал с модемами и последовательными линиями.
- f-протокол — использовался для передачи по протоколу X.25.
- t-протокол — применялся для соединений через TCP/IP (в более поздних версиях).
- i-протокол — для передачи через ISDN.
Компоненты UUCP
Основные программы
Набор UUCP включал несколько ключевых утилит:
- uucp — программа для копирования файлов между компьютерами.
- uux — программа для выполнения команд на удалённом компьютере.
- uucico — демон, отвечающий за установление соединения и передачу данных.
- uustat — утилита для просмотра состояния очереди заданий.
- uulog — программа для просмотра журналов передачи.
- uuname — утилита для отображения списка известных удалённых систем.
Адресация и маршрутизация
Каждый компьютер в сети UUCP имел уникальное имя (обычно короткое, например, «uunet» или «seismo»). Адресация осуществлялась через цепочку имён, разделённых восклицательным знаком (!). Например, адрес uunet!seismo!research!user означал, что сообщение должно пройти через компьютеры uunet, seismo и research прежде чем достичь пользователя user на конечной машине. Такая схема получила название «bang path» (путь с восклицательными знаками).
Применение
Электронная почта
UUCP была основным способом передачи электронной почты в Unix-системах до появления протокола SMTP. Почтовые программы (например, sendmail) могли использовать UUCP для доставки писем между компьютерами, не имеющими постоянного подключения к интернету. Адреса электронной почты в формате UUCP выглядели как user@host!domain или host!user.
Сеть Usenet
UUCP сыграла ключевую роль в раннем развитии сети Usenet. Система новостей Usenet (через программу news) использовала UUCP для обмена статьями между серверами. Это позволяло распространять новости даже в условиях нерегулярных соединений.
Передача файлов
Утилита uucp позволяла копировать файлы между компьютерами, аналогично современным FTP или SCP. Например, команда uucp file.txt remote!~/ копировала файл на удалённый компьютер remote в домашний каталог пользователя.
Удалённое выполнение команд
Утилита uux давала возможность выполнять команды на удалённом компьютере. Например, uux remote!lp file.txt отправлял файл на печать на принтер, подключённый к удалённой машине.
Примеры использования
Настройка соединения
Для настройки UUCP требовалось определить файлы конфигурации:
/etc/uucp/Systems— список удалённых систем, их телефонные номера, логины и пароли./etc/uucp/Devices— описание доступных модемов и последовательных портов./etc/uucp/Dialcodes— коды набора номера (например, для междугородних звонков).
Пример команды uucp
``bash uucp -m report.txt remote!~/documents/ ` Эта команда копирует файл report.txt на удалённый компьютер remote в каталог ~/documents/. Флаг -m` указывает, что после завершения передачи отправить уведомление по электронной почте.
Пример команды uux
``bash uux "remote!cat /var/log/syslog | mail user@local" ` Эта команда выполняет на удалённой машине remote команду cat /var/log/syslog`, а затем отправляет результат по электронной почте локальному пользователю.
Критика и ограничения
Безопасность
UUCP не обеспечивала шифрования данных. Пароли для доступа к удалённым системам передавались в открытом виде, что делало систему уязвимой для перехвата. Кроме того, отсутствовала аутентификация отправителя, что позволяло подделывать адреса.
Производительность
Скорость передачи данных была ограничена возможностями модемов (обычно 300–2400 бит/с в 1980-х годах). Передача больших файлов могла занимать часы. Кроме того, асинхронный режим приводил к задержкам в доставке сообщений (от нескольких часов до суток).
Сложность настройки
Конфигурация UUCP требовала ручного указания маршрутов, телефонных номеров и расписаний соединений. При изменении топологии сети (например, добавлении нового компьютера) необходимо было обновлять конфигурационные файлы на всех связанных машинах.
Интересные факты
- Название «UUCP» иногда расшифровывалось как «Unix-to-Unix Copy Program», хотя официально это не было закреплено.
- В 1980-х годах UUCP использовалась для создания «сетей с коммутацией пакетов» на основе телефонных линий, что стало предшественником современных VPN.
- Одна из крупнейших сетей UUCP, UUNET (основана в 1987 году), впоследствии стала одним из первых коммерческих интернет-провайдеров.
- Формат адресации с восклицательным знаком (bang path) сохранился в некоторых системах до сих пор, например, в протоколе NNTP (Network News Transfer Protocol) для указания пути передачи новостей.
Источники
- Lesk, M. (1978). UUCP: A Unix-to-Unix Copy Program. Bell Laboratories.
- Nowitz, D. A. (1980). UUCP Implementation Description. Bell Laboratories.
- Taylor, I. (1995). Taylor UUCP Documentation.
- Quarterman, J. S. (1990). The Matrix: Computer Networks and Conferencing Systems Worldwide. Digital Press.
- Salus, P. H. (1994). A Quarter Century of UNIX. Addison-Wesley.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →