uucp
uucp (сокр. от англ. Unix-to-Unix CoPy) — команда копирования файлов между двумя компьютерами под управлением операционной системы UNIX, использующая одноимённый протокол. Позже появились реализации этого протокола под другие операционные системы, в том числе DOS, Windows, OS/2.
Своё название uucp ведёт от имени команды копирования файлов в UNIX — cp — и фактически является её расширением, позволяя копировать файлы с локальной машины на удалённую и с удалённой на локальную, в первую очередь, посредством модемного соединения (позже появились реализации «UUCP over TCP»; они были как в виде встроенной в программу функции, так и в виде отдельного драйвера, эмулирующего модемный звонок посредством установки TCP-сессии). Достаточно быстро uucp стал использоваться для передачи почты и новостей (телеконференций).
Технология[править | править код]
UUCP может использовать несколько различных типов физических соединений и протоколов канального уровня, но обычно используется в коммутируемых соединениях. Перед широко распространенной доступностью Интернета компьютеры были соединены только небольшими частными сетями внутри компании или организации.
Компьютеры часто оборудовались модемами для удаленного подключения через телефонные линии с помощью терминалов текстового режима. UUCP использовал модемы компьютеров, чтобы дозваниваться до других компьютеров, устанавливая временные магистральные линии между ними. У каждой системы в сети UUCP есть список соседних систем с телефонными номерами, именами для входа в систему, паролями и т. д. Когда работа (передача файлов или запросы выполнения команд) поставлена в очередь для соседней системы, программа uucico обычно вызывает ту систему, которая находится в работе. Программа uucico может также периодически опрашивать своих соседей, чтобы проверить их работу, поставленную в очередь на их стороне; это разрешает участвовать в работе сети соседям без возможности набора.
Сегодня UUCP редко используется по каналам коммутируемого доступа, но иногда используется по TCP/IP. С начала 2006 года работало 1500—2000 сайтов через 60 предприятий. Долговечность UUCP может быть связана с её низкой стоимостью, подробным ведением логов, собственной отказоустойчивостью к коммутируемому доступу и постоянно управляемой очередью.
История[править | править код]
UUCP был первоначально написан в AT&T Bell Laboratories Майком Леском. К 1978 году его использовали на восьмидесяти двух машинах UNIX в системе Bell, прежде всего для распространения программного обеспечения. Оно был выпущено в 1979 году как часть Unix версии 7. Исходный UUCP был переписан исследователями AT&T Питером Ханименом, Дэвидом А. Новицем и Брайаном Э. Редманом приблизительно в 1983 году. Перезапись упоминается как HDB или HoneyDanBer UUCP, которая впоследствии была улучшена, исправлены ошибки, и преобразована в BNU UUCP («Basic Network Utilities»).
Каждая из этих версий была распределена как собственное программное обеспечение, которое в 1991 году вдохновило Яна Лэнса Тейлора написать новую версию бесплатного программного обеспечения с нуля. UUCP Тейлора был выпущен под общедоступной лицензией GNU General Public License. UUCP Тейлора закрыл дыры в системе безопасности, которые позволяли некоторым оригинальным сетевым червям удаленно выполнять неожиданные команды. UUCP Тейлора также включает функции всех предыдущих версий UUCP, позволив ему устанавливать связь с любой другой версией и даже использовать аналогичные форматы файлов конфигурации из других версий.
UUCP был также реализован для не UNIX операционных систем, прежде всего для системы MS-DOS. Пакеты, такие как UUSLAVE/GNUUCP (Джон Гилмор, Гарри Пэксинос, Тим Позэр), UUPC (Дрю Дербишир) и FSUUCP (Кристофер Амблер из IODesign), принесли первое интернет-подключение к персональным компьютерам, расширив сеть вне взаимосвязанных университетских систем. FSUUCP легли в основу многих электронных досок объявлений (BBS), таких как Galacticomm’s Major BBS и Mustang Software’s Wildcat! BBS, чтобы соединиться с сетью UUCP и обменяться электронными почтой и Usenet-трафиком. В качестве примера, UFGATE (Джон Гэльвин, Гарри Пэксинос, Тим Позэр) является пакетом, который обеспечивает шлюз между сетями, работающими с Fidonet протоколом UUCP.
FSUUCP был единственной реализацией Тейлора с расширенным 'i' протоколом, значительно улучшенным по сравнению со стандартом 'g' протокола, используемого в большинстве реализаций UUCP.
Маршрутизация почты[править | править код]
UUCP и uuxqt можно использовать для того, чтобы отправлять электронные письма между машинами с соответствующими почтовыми пользовательскими интерфейсами и программами доставки. Простой почтовый адрес UUCP формируется из смежного имени машины, восклицательного знака (часто называемый «bang»), сопровождающегося именем пользователя на смежной машине. Например, адрес barbox!user
обратился бы к пользователю user на смежной машине barbox.
Почта, кроме того, может быть направлена через сеть, проходя любое число промежуточных узлов прежде, чем прибыть к месту назначения. Первоначально, это должно было быть сделано определением полного пути со списком промежуточных имен хоста, разделенных воскл. знаками. Например, если машина barbox не соединена с локальной машиной, но известно, что barbox соединен с машиной foovax, который действительно связывается с локальной машиной, соответствующий адрес для отправки почты будет foovax!barbox!user
.
Пользователь barbox!user
может публиковать свой UUCP-адрес электронной почты в виде, например, !bigsite!foovax!barbox!user
. Это направляет людей к маршруту их почты, чтобы механизировать bigsite (по-видимому, известная и хорошо соединенная машина, доступная для всех) и оттуда через машину foovax в учётную запись пользователя user на barbox. Публикация полного пути была бы бессмысленна, потому что она будет различаться в зависимости от того, где был отправитель. Многие пользователи предложили бы несколько маршрутов от различных известных сайтов, обеспечивая ещё лучшее и, возможно, более быстрое соединение с отправителем почты.
Bang path[править | править код]
Адрес электронной почты этой формы был известен как Bang path. Bang path, содержащие от восьми до десяти имён машин, были весьма распространены в 1981 году.
«Псевдо-домен», заканчивающийся на .uucp, иногда использовался, чтобы определять имя узла, являющееся достижимым сетям UUCP, несмотря на то, что это формально никогда не регистрировалось в системе доменных имен (DNS) как домен верхнего уровня. uucp-сообщество администрировало себя и не сцеплялось хорошо с методами администрирования и инструкциями, управляющими DNS; .uucp работает там, где необходимо.
Трафик Usenet был первоначально передан по протоколу UUCP, используя Bang paths. Они все ещё используются в строках заголовка Пути формата сообщения Usenet. Они теперь имеют только информационную цель и не используются для маршрутизации, несмотря на то, что они могут использоваться, чтобы гарантировать, чтобы циклы не возникали.
UUCPNET и отображение[править | править код]
UUCPNET был именем для совокупности компьютеров в сети, соединенных через UUCP. Эта сеть была неофициальной, поддерживалась в духе взаимовыгодного сотрудничества между системами, принадлежавшим тысячам частных компаний, университетов и так далее. Часто, особенно в частном секторе, ссылки UUCP были установлены без официального одобрения высшего руководства компаний. Сеть UUCP постоянно изменялась как были добавлены новые системы, и каналы коммутируемого доступа, другие были удалены.
Проект Отображения UUCP был добровольным, и в основном сосредотачивался на том, чтобы построить карту соединений между машинами, которые были открытыми почтовыми релеями и устанавливают управляемое пространство имен. Каждый системный администратор будет предоставлять, по электронной почте, список систем, к которыми он будет подключаться, вместе с ранжированием для каждого такого соединения. Эти данные представленные на карте, были обработаны автоматической программой, которая объединила их в один набор файлов, описывающих все связи в сети. Эти файлы были тогда опубликованы ежемесячно в группе новостей, посвященной этой цели. Файлы карт UUCP могли тогда использоваться программным обеспечением, таким как «pathalias», чтобы вычислить путь оптимального маршрута от одной машины до другого для почты и автоматически предоставить этот маршрут. Карты UUCP также перечисляют контактную информацию для сайтов, и так делали сайты, стремящиеся присоединиться к UUCPNET простым способом, чтобы найти возможных соседей.
Соединение с Интернетом[править | править код]
Много узлов UUCP, особенно в университетах, были также соединены с интернетом в его первые годы и почтовыми шлюзами между интернетом были разработаны, основанная на SMTP почта и почта UUCP. Пользователь в системе с соединениями UUCP мог, таким образом, обмениваться почтой с интернет-пользователями, а интернет-ссылки могли использоваться, чтобы обойти значительно медленные части сети UUCP. «Зона UUCP» была определена в пространстве имен интернет-домена, чтобы упростить эти интерфейсы.
Удаленные команды[править | править код]
uux — удалённое выполнение команды по UUCP. uux команда используется, чтобы выполнить команду в удалённой системе или выполнить команду в локальной системе, используя файлы от удалённых систем.
Синтаксис[править | править код]
Для указания места файла на удалённой машине в uucp используется синтаксис вида машина!файл, где машина — имя одного из известных данному компьютеру хостов, а файл — имя файла, возможно, с абсолютным или относительным путём до него.
Таким образом, вызов uucp в простейшем виде для копирования файла example.tar.gz с локальной машины на удалённую, имеющую имя remote, будет иметь вид:
uucp example.tar.gz remote!example.tar.gz
uucp также позволяет выполнять транзитную передачу файлов. Например, для копирования файла example.tar.gz с удалённой машины remote2 через машину remote1 на локальную, вызов примет вид:
uucp remote1!remote2!example.tar.gz example.tar.gz
Применения[править | править код]
Широкое применение uucp получила для передачи электронной почты и новостей Usenet в период, предшествовавший широкому распространению TCP/IP.
В это время были созданы многочисленные клоны uucp для операционных систем DOS и OS/2, наиболее известны из которых[1] и UUPC Андрея Чернова.
В России протокол uucp использовался в сети Релком для обмена электронной почтой. Адрес пользователя был в привычном для пользователей Internet формате «юзер@хост.домен», и пользователи uucp могли обмениваться почтой с пользователями Internet.
В настоящее время можно рекомендовать uucp для регионов, где прокладка выделенных линий и организация постоянных соединений затруднена, а телефонная связь уже есть. Кроме того, UUPC Андрея Чернова нормально работает под DOS на очень слабых машинах, начиная от PC-XT (640 КБ ОЗУ, 20 МБ HDD). В совокупности эти два фактора позволяют предоставить доступ к электронной почте для людей, выход в Интернет которым затруднителен.
Закат UUCP[править | править код]
Использование UUCP начало вымирать с появлением интернет-провайдеров, предлагающих недорогие услуги SLIP и PPP. Проект отображения UUCP был официально закрыт в конце 2000 года.
Протокол UUCP был теперь главным образом заменен интернет протоколом SMTP для почты на основе TCP/IP протокола и NNTP для новостей Usenet.
В июле 2012 года голландский интернет-провайдер, XS4ALL закрыл свою службу UUCP, утверждая, что он был «вероятно, одним из последних провайдеров в мире, который все ещё предлагал эту службу»; у неё было только 13 пользователей в то время (однако, до завершения её работы, они отказывались от запросов новых пользователей в течение нескольких лет).
Последнее использование и наследие[править | править код]
Одна выживающая функция UUCP — формат файла чата, в основном унаследованный от программного обеспечения Expect.
UUCP использовался на дорогостоящих каналах специального назначения (например, морские спутниковые линии) после его исчезновения, и все ещё используется.
В середине 2000-х годов UUCP по TCP/IP (часто в зашифрованном виде, используя протокол SSH) был предложен для использования, когда компьютер не имеет никаких фиксированных IP-адресов, но все ещё готов запустить стандартный агент передачи почты (MTA) как Sendmail или Postfix.
Bang path все ещё используются в сети Usenet, хотя и не для маршрутизации; они используются, чтобы записать узлы, через которые сообщение передалось, а не к прямому, куда оно пойдет затем. «Bang path» также используется в качестве выражения для любого явно указанного пути маршрутизации между сетевыми узлами. Это использование не обязательно ограничено UUCP, маршрутизацией IP, почтовым обменом сообщениями или Usenet.
Источники[править | править код]
- Mark Horton (1986). RFC 976: UUCP Mail Interchange Format Standard. Internet Engineering Task Force Requests for Comment.
Примечания[править | править код]
Ссылки[править | править код]
- RFC 976: UUCP Mail Interchange Format Standard
- UUPC Андрея Чернова
- UUCP Internals Frequently Asked Questions
- Taylor UUCP — GPL licensed UUCP package
- Taylor UUCP Documentation — it provides useful info about general UUCP and UUCP protocols.