Кіріспе
UUCP (Unix to Unix Copy) – компьютерлік бағдарламалар мен протоколдар жиынтығы, қашықтан командаларды орындауға және файлдарды, электрондық поштаны, компьютерлер арасындағы netnews-ті тасымалдауға мүмкіндік береді. Аталған команда – жиынтықтағы бағдарламалардың бірі; ол файл көшіру операцияларын сұрату үшін пайдаланушы интерфейсін ұсынады. UUCP жиынтығына (алыстан командаларды орындауға арналған пайдаланушы интерфейсі), (файлдарды тасымалдауды жүзеге асыратын байланыс бағдарламасы), (жақындағы белсенділік туралы статистиканы көрсетеді), (алыстан жіберілген командаларды орындайды) және (жергілікті жүйенің UUCP атауын көрсетеді) кіреді. Кейбір нұсқаларында / (8 биттік бинарлық файлдарды 7 биттік мәтіндік форматқа және керісінше түрлендіру) де бар. UUCP бастапқыда 1970 және 1980 жылдары Unix жүйесінде жасалған және Unix-ке ұқсас жүйелермен байланысты болғанымен, UUCP-нің бірнеше нұсқасы Unix-ке ұқсас емес операциялық жүйелер үшін де бар, олардың ішінде DOS, OS/2, OpenVMS (тек VAX аппараттық құралдары үшін), AmigaOS, классикалық Mac OS және тіпті CP/M.
UUCP (Unix to Unix Copy) is a suite of computer programs and protocols allowing remote execution of commands and transfer of files, email and netnews between computers. A command named is one of the programs in the suite; it provides a user interface for requesting file copy operations. The UUCP suite also includes (user interface for remote command execution), (the communication program that performs the file transfers), (reports statistics on recent activity), (execute commands sent from remote machines), and (reports the UUCP name of the local system). Some versions of the suite include / (convert 8 bit binary files to 7 bit text format and vice versa). Although UUCP was originally developed on Unix in the 1970s and 1980s, and is most closely associated with Unix like systems, UUCP implementations exist for several non Unix like operating systems, including DOS, OS/2, OpenVMS (for VAX hardware only), AmigaOS, classic Mac OS, and even CP/M.
Тарих
UUCP бастапқыда AT&T Bell Laboratories-те Майк Леск жазған. 1978 жылы ол Bell жүйесінің ішінде 82 UNIX машинасына орнатылып, негізінен бағдарламалық қамтамасыз етуді тарату үшін пайдаланылды. 1979 жылы ол Version 7 Unix құрамына енгізілді. АҚШ-тан алғашқы UUCP электрондық хаттары 1979 жылы Ұлыбританияға жетті, ал 1980 жылы Ұлыбритания, Нидерланды және Дания арасында электрондық хат алмасу басталды, 1982 жылы EUnet арқылы тұрақты қызмет ретінде қолжетімді болды. Бастапқы UUCP 1983 жылы AT&T зерттеушілері Питер Хониман, Дэвид А. Новиц және Брайан Э. Редман тарапынан қайта жазылды. Бұл қайта жазылған нұсқа HDB немесе HoneyDanBer uucp деп аталды, кейіннен ол жетілдіріліп, қателер түзетіліп, BNU UUCP ("Basic Network Utilities") ретінде қайта жинақталды. Бұл нұсқалардың әрқайсысы меншік бағдарламалық қамтамасыз ету ретінде таратылды, бұл 1991 жылы Ян Ланс Тейлорды жаңа, ақысыз бағдарламалық қамтамасыз ету нұсқасын бастапқы кодтан жазуға ынталандырды. Тейлор UUCP GNU General Public License лицензиясымен шығарылды. Тейлор UUCP кейбір бастапқы желілік вирустардың күтпеген қабық командаларын қашықтан орындауына мүмкіндік берген қауіпсіздік кемшіліктерін жойды. Сонымен қатар, Тейлор UUCP UUCP-нің барлық бұрынғы нұсқаларының мүмкіндіктерін біріктірді, осылайша кез келген басқа нұсқамен байланысуға және тіпті басқа нұсқалардан ұқсас конфигурациялық файл форматтарын пайдалануға мүмкіндік берді. UUCP UNIX емес операциялық жүйелер үшін де іске асырылды, ең танымалдары DOS жүйелері болды. UUSLAVE/GNUUCP (Джон Гилмор, Гарри Паксинос, Тим Позар), UUPC/extended (Drew Derbyshire of Kendra Electronic Wonderworks) және FSUUCP (Christopher Ambler of IODesign) сияқты пакеттер жеке компьютерлерге алғашқы Интернет байланысын әкелді, осылайша желі университеттердің өзара байланысты жүйелерінен тысқары кеңейді. FSUUCP көптеген хабарландыру тақтасы жүйесі (BBS) пакеттерінің негізін құрады, мысалы Galacticomm-ның Major BBS және Mustang Software-дің Wildcat! BBS, UUCP желісіне қосылып, электрондық хаттар мен Usenet трафигін алмастыруға мүмкіндік берді. Мысалы, UFGATE (Джон Галвин, Гарри Паксинос, Тим Позар) Fidonet және UUCP протоколдарымен жұмыс істейтін желілер арасында шлюз қызметін атқаратын пакет болды. FSUUCP Тейлордың жетілдірілген 'i' протоколының жалғыз басқа дамуы болды, бұл UUCP-нің көптеген нұсқалары қолданған стандартты 'g' протоколынан айтарлықтай жақсаруды білдірді.
Технология
Интернетке кең қол жеткізілім болғанға дейін компьютерлер компания немесе ұйым ішіндегі кішкентай жергілікті желілер арқылы ғана байланыстырылатын. Олар көбінесе модемдермен жабдықталған, осылайша оларды телефон желілері арқылы таңбалық режимдегі терминалдардан қашықтан пайдалануға болар еді. UUCP компьютерлердің модемдерін басқа компьютерлерге қоңырау шалып, олардың арасында уақытша, тікелей байланыс орнату үшін пайдаланды. UUCP желісіндегі әрбір жүйе көрші жүйелердің тізімін сақтайды, онда телефон нөмірлері, кіру есімдері, парольдер және т.б. болады. Егер жұмыс (файлдарды беру немесе командаларды орындау туралы сұраулар) көрші жүйеге кезекке қойылса, бағдарлама әдетте сол жүйені жұмысты өңдеу үшін шақырады. Бағдарлама сондай-ақ көршілерінде кезекте тұрған жұмысты тексеру үшін оларды мерзімік сұрап білуге болады; бұл қоңырау шалу мүмкіндігі жоқ көршілерге де қатысуға мүмкіндік береді. Уақыт өте келе, қоңырау шалу желілері Интернет байланыстарымен алмастырылды, ал UUCP бірқатар жаңа байланыс қабаты протоколдарымен толықтырылды. Бұл жаңа байланыстар жаңа желілердің артықшылықтарын пайдаланатын жаңа қосымша протоколдары жасалғандықтан, UUCP қажеттілігін де азайтты. Бүгінде UUCP қоңырау шалу желілерінде сирек қолданылады, бірақ кейде TCP/IP арқылы қолданылады. 2006 жылдың басындағы мәліметтер бойынша, 60 кәсіпорнда 1500-2000 шамасындағы жүйелер жұмыс істеді. UUCP-нің ұзақ қызмет етуіне оның төмен құны, кең ауқымды тіркемелері, қоңырау шалуға автоматты түрде ауысуы және кезекті басқару мүмкіндігі себеп болады.
Бастапқы қол алысу
Басталғанда, uucico \20Shere=hostname\0 идентификациялық тізбегімен жауап береді, мұнда \20 – басқару P символы, ал \0 – соңғы нөл. Шақырушының UUCP \20Scallername options\0 арқылы жауап береді, мұнда options – нөл немесе одан көп Unix сияқты опциялардың тізбесі. Оларға пакет және терезе өлшемдері, қолдау көрсетілетін ең үлкен файл мөлшері, қателерді жою опциялары және басқалары кіруі мүмкін. Екі жүйенің конфигурациясына байланысты, қоңырау осы жерде аяқталуы мүмкін. Мысалы, шақырушы жүйе атауын жібергенде, шақырылған жүйе шақырушыны танымаса, RYou are unknown to me\0 жауап тізбегін жіберіп, содан кейін байланысты үзуі мүмкін.
Файл сұраныстары
Егер екі жүйе сәтті қол алысса, қоңырау шалушы бірнеше файл сұраныстарын жібере бастайды. Төрт түрі бар: S – шақырушыдан шақырылған жүйеге файл жіберу (жүктеу). Алушы файлдың атын өзгертуге мүмкіндік беретін "from" және "to" атаулары беріледі. S командасы шақырылған жүйеде қабылданған кезде, егер ол сәтті болса, SY жауабымен жауап береді және файлды қабылдауға дайын екенін көрсетеді, немесе егер сәтсіз болса, SNx жауабымен, мұнда x – сәтсіздік себебі. Егер шақырушы SY жауабын алса, ол бастапқы қол алысу кезінде таңдалған протоколды қолдана отырып файлды жүктеуді бастайды (төменде қараңыз). Жүктеу аяқталған кезде шақырылған жүйе файлды сәтті қабылдаса CY, ал сәтсіз болса CN5 жауабын береді. R – шақырылған жүйенің шақырушыға файл жіберуін (көшіруін) сұрау. Бұл S-қа ұқсас, команда қабылданғанын және деректерді жібере бастайтынын немесе проблема болғанын көрсету үшін RY және RN қолданылады, сондай-ақ жүктеу соңында шақырушыдан CY және CN5 жауабын күтеді. X – шақырылған жүйеде орындалатын командаларды жүктейді. Бұл жүйе басқа жүйеге қоңырау шалып, оған файлдарды жеткізу үшін пайдаланылуы мүмкін. Шақырылған жүйе сәтті болса XY, ал сәтсіз болса XN жауабын береді. H – Hangup, қоңырауды аяқтауды білдіреді. Шақырылған жүйе сәтті болса HY, ал сәтсіз болса HN жауабын береді.
S causes a file to be Sent from the caller to the called system (upload). The from and to names are provided, allowing the filename to be changed on the receiver. When the S command is received on the called system, it responds with SY if it succeeded and it is ready to accept the file, or SNx if it failed, where x is a failure reason. If an SY is received by the caller, it begins uploading the file using the protocol selected during the initial handshake (see below). When the transfer is complete, the called system responds with CY if it successfully received the file, or CN5 if it failed. R is a Request for the called system to send a file to the caller (download). It is otherwise similar to S, using RY and RN to indicate the command was accepted and it will begin to send data or had a problem, and expecting a CY and CN5 from the caller at the end of the transfer. X uploads commands to be eXecuted on the called system. This can be used to make that system call another and deliver files to it. The called system responds with XY if it succeeded, or XN if it failed. H, for Hangup, indicates the caller is done. The called system responds with HY if it succeeded, or HN if it failed.
Соңғы қол алысу
H командасын жібергеннен кейін шақырушы жүйе соңғы пакет жібереді (P бақылау, алты 0, нөлдік терминатор) ал шақырылған жүйе (P бақылау, жеті 0, нөлдік терминатор) деп жауап береді. Кейбір жүйелер H командасын сәтті қабылдағанда дереу байланысты үзеді және соңғы қол алысу процедурасын орындамайды.
g-протоколы
UUCP-дегі протоколдар жиынтығындағы негізгі g протоколы ақпаратты қатесіз түрде жеткізуге жауапты. Бұл протокол бастапқыда пакеттерді жеткізуге арналған көп мақсатты жүйе ретінде құрылған, сондықтан UUCP жинағында толығымен қолданылмаған көптеген мүмкіндіктерді ұсынады. Олардың ішінде файлдарды жіберумен бірге командалық деректерді де жібере алатын қосымша арна және деректерді жіберу барысында пакеттер мен терезе өлшемдерін қайтадан келісу мүмкіндігі бар. Мұндай қосымша мүмкіндіктер UUCP стегінің кейбір нұсқаларында қолжетімсіз болуы мүмкін. Пакет форматы 6 байттық тақырыптан және 0-ден 4096 байтқа дейінгі пайдалы жүктемеден тұрады. Пакет бір \020 (бақылау P) символымен басталады. Одан кейін "K" деп аталатын бір байт келеді, ол 1-ден 8-ге дейінгі мәнді көрсетеді, бұл 32-ден 4096 байтқа дейінгі пакет өлшемін білдіреді, ал 9 – бақылау пакетін көрсетеді. Көптеген жүйелер тек K=2-ні, яғни 64 байтты ғана қолдады. Келесі екі байт – тақырыпты қоспағанда, пайдалы жүктеменің 16 биттік тексеру сомасы. Келесі байт – дерек түрі, ал соңғы байт – тақырыптың XOR коды, ол пайдалы жүктемеден бөлек тексеруге мүмкіндік береді. Олар UUCP хосттарында кеңінен қолданылды, себебі ұзақ қашықтыққа байланысты төлемдерді қысқарту арқылы өздерін тез ақтады.
Басқа хаттамалар
UUCP-тің іске асырылуларында белгілі бір байланыстар арқылы пайдалану үшін басқа да деректерді беру протоколдары да бар. f протоколы 7 биттік қателерді түзететін байланыстар арқылы жұмыс істеу үшін жасалған. Бұл бастапқыда 1980-ші жылдары бір кезде танымал болған X.25 байланыстарында пайдалану үшін көзделіпті. Ол деректерді бөліктеп жібермейді, керісінше, бүкіл файл бір ұзын тізбек түрінде, содан кейін файлдың толық тексеру сомасымен бірге жіберіледі. Осыған ұқсас x протоколы көбінесе немесе мүлдем қолданылмаған болып көрінеді. d протоколы x протоколына ұқсас болды, бірақ көптеген Bell Labs кеңселерiн байланыстырған Datakit желілерінде пайдалануға арналған.
Поштаны бағыттау
Электрондық поштаны пайдаланушы интерфейстері мен жеткізу агенті бағдарламалары арқылы машиналар арасында электрондық хат жіберуге болады. Қарапайым UUCP электрондық пошта мекенжайы көршілес машинаның атынан, әдетте "банг" деп аталатын сұрғылт белгіден ( ! ), содан кейін көршілес машинадағы пайдаланушы атынан тұрады. Мысалы, barbox!user мекенжайы көршілес машинадағы barbox пайдаланушысына сілтеме жасайды. Электрондық хат желі арқылы да маршруттала алады, мақсатына жету үшін кез келген аралық түйіндерден өтеді. Бастапқыда, бұл толық жолды көрсету арқылы жасалатын, аралық хосттардың аттары сұрғылт белгілермен ( ! ) бөлінетін. Мысалы, егер barbox машинасы жергілікті машинаға қосылмаған болса, бірақ barbox машинасы жергілікті машинамен байланысатын foovax машинасына қосылған болса, электрондық хатты жіберу үшін дұрыс мекенжай foovax!barbox!user болады. Пайдаланушы barbox!user әдетте өзінің UUCP электрондық пошта мекенжайын !bigsite!foovax!barbox!user түрінде жариялайды. Бұл адамдарға электрондық хаттарын bigsite машинасына (әдетте барлығына қолжетімді, жақсы танымал және жақсы байланысқан машина) бағыттауға және одан foovax машинасы арқылы barbox машинасындағы пайдаланушының тіркелгісіне жіберуге мүмкіндік береді. Толық жолды жариялаудың мәні жоқ, өйткені ол жіберушінің орналасқан жеріне байланысты өзгереді. (Мысалы, бір сайтта Энн gway!tcol!canty!uoh!bigsite!foovax!barbox!user арқылы жіберуі керек, ал басқа жерде Билл pdp10!router22!bigsite!foovax!barbox!user арқылы жіберуі керек). Көптеген пайдаланушылар әртүрлі ірі, танымал сайттардан бірнеше маршруттарды ұсынады, бұл электрондық хат жіберушіге одан да жақсы және мүмкін жылдам байланыс қызметін ұсынады.
Бағыт жолы
Осы форматтағы электрондық пошта адресі "банг жолы" деп аталды. 1981 жылы сегіз-он машинадан (немесе байланыс нүктелерінен) тұратын банг жолдары жиі кездесетін, ал түнгі уақытта UUCP байланыстарын қоңырау арқылы орнату бір аптаға дейін созылуы мүмкін. Банг жолдары көбінесе хабарлар жоғалып кетуі мүмкін болғандықтан, берілу уақыты мен сенімділігіне қарай таңдалды. Кейбір хосттар жолды "қайта жазуға" тырысып, поштаны "жылдам" маршруттармен жіберуге ұмтылды, бірақ мұндай тәжірибеге қарсылық білдірілді. "Псевдодомен" uucp аяқталуы кейде UUCP желісімен қол жетімді хост атын көрсету үшін қолданылды, бірақ бұл домендік атаулар жүйесінде (DNS) жоғары деңгейдегі домен ретінде ешқашан ресми тіркелмеген. Uucp қауымдастығы өзін-өзі басқарады және DNS-ті басқару әдістерімен ережелерге толық сәйкес келмейді; uucp қажетті жерде жұмыс істейді. Кейбір хосттар кіретін SMTP байланысында uucp адресі танылған жағдайда, SMTP кезектерінен uucp кезектеріне шлюз машиналарын арқылы пошта жібереді. Usenet трафигі бастапқыда UUCP протоколы арқылы банг жолдарымен берілді. Бұл әлі де Usenet хабарлама форматындағы Path тақырыптарында қолданылады. Қазір олар тек ақпараттық мақсатта қолданылады және маршруттау үшін пайдаланылмайды, бірақ циклдардың пайда болуын болдырмау үшін қолданылуы мүмкін. Жалпы, басқа ескі электрондық пошта форматтары сияқты, банг жолдары "@ белгісімен" алмастырылды, тіпті UUCP-ді әлі де қолданатын сайттарда да. UUCP-ға арналған сайт DNS доменін тіркей алады және осы доменді басқаратын DNS серверіне MX жазбаларын ұсына алады, бұл Интернет поштасын сол сайтқа Интернеттегі UUCP хосты арқылы жеткізуге мүмкіндік береді, ол кейін поштаны UUCP сайтына жеткізеді.
UUCPNET және картаға түсіру
UUCPNET – UUCP арқылы байланысқан компьютерлер желісінің толық атауы. Бұл желі өте бейресми болды және мыңдаған жеке компаниялар мен университеттерге тиесілі жүйелер арасындағы өзара ынтымақтастық рухында қолдауға алынды. Көбінесе, әсіресе жеке секторда, UUCP байланыстары компания басшылығының ресми келісімі болмастан орнатылды. UUCP желісі жаңа жүйелер мен қоңырау арқылы байланыстар қосылғанда, ал басқалары алынып тасталғанда және т.б. үнемі өзгеріп отырды. UUCP карталау жобасы – ерікті, көбінесе сәтті болған, ашық пошта релесі ретінде жұмыс істейтін машиналар арасындағы байланыстардың картасын жасау және басқарылатын атау кеңістігін құруға бағытталған күш-жігер. Әрбір жүйе әкімшісі электрондық пошта арқылы өз жүйесіне қосылатын жүйелердің тізімін және әрбір байланысқа бағасын жіберетін. Осы жіберілген карта жазбалары автоматты бағдарлама арқылы өңделіп, желідегі барлық байланыстарды сипаттайтын бірнеше файлға біріктірілді. Бұл файлдар ай сайын осы мақсатқа арналған жаңалықтар тобында жарияланды. UUCP карта файлдарын "pathalias" сияқты бағдарламалық құралдар пошта үшін бір машинадан екіншісіне ең қолайлы маршрутты есептеу және осы маршрутты автоматты түрде беру үшін пайдалана алды. UUCP карталарында сайттар туралы контакттік ақпарат та келтірілген, сондықтан UUCPNET-ке қосылғысы келетін сайттарға болашақ көршілерді табу оңай болды.
Интернетке қосылу
Көптеген UUCP хостары, әсіресе университеттердегілер, өзінің алғашқы жылдарында Интернетке қосылды, сондай-ақ Интернеттің SMTP негізіндегі поштасы мен UUCP поштасы арасында электрондық пошта шлюздері құрылды. UUCP қосылыстары бар жүйедегі пайдаланушы осы арқылы Интернет пайдаланушыларымен хат алмаса алатын болды, ал Интернет байланыстары баяу UUCP желісінің үлкен бөлігін айналып өтуге мүмкіндік берді. Осы интерфейстерді жеңілдету үшін Интернет домендік атау кеңістігінде "UUCP аймағы" анықталды. Бұл инфрақұрылымның болуымен, UUCP-нің артықшылығы – сайтқа Интернет электрондық поштасы мен Usenet-ке қосылуға, тек басқа ынтымақтас компьютерге модемді қосылым арқылы мүмкіндік беруі болды. Ол кезде нағыз Интернетке қол жеткізу үшін жалға алынған дерек желісі қажет болды, ол Интернетке қосылу нүктесін қамтамасыз ететін және екеуі де қымбатқа соғып, ұйымдастыруы қиын болды. Ал UUCP желісіне қосылуды болашақ көрші жүйелердің әкімшілеріне бірнеше телефон қоңыры арқылы орнатуға болады. Көрші жүйелер көбінесе телефондық қоңыраулар үшін ең қарапайым төлемнен басқа төлемдерден аулақ болуға жеткілікті жақын болды.
Қашықтан басқару
uux – UUCP арқылы қашықтан команда орындау. uux командасы қашықтағы жүйеде команданы орындауға немесе қашықтағы жүйелерден файлдарды пайдаланып, жергілікті жүйеде команданы орындауға қолданылады. Бұл команда daemon арқылы іске қосылады, ол қашықтан орындау сұрауларын келесі байланыс нүктесі қолжетімді болғанда қашықтағы жүйеге жіберуге болатын кез келген файл түрі ретінде қарастырады. Қашықтағы жүйе сұралған команданы орындайды және бастапқы жүйе қолжетімді болған кезде нәтижені қайтарады. Бұл екі трансфер де бірнеше сатыдан өтуі мүмкін, қолжетімділік уақыты кез келген болуы мүмкін. Тіпті әрқашан қолжетімді көрші жүйеде команда орындалғанда да, uux дереу орындалмайды.
Құлдырау
UUCP пайдалану арзан SLIP және PPP қызметтерін ұсынатын Интернет-провайдерлердің пайда болуымен азайды. UUCP карталау жобасы 2000 жылдың соңында ресми түрде жабылды. UUCP протоколы қазір көбінесе Интернет TCP/IP негізіндегі SMTP электрондық пошта және NNTP Usenet жаңалықтары үшін протоколдарымен алмастырылды. 2012 жылдың шілдесінде XS4ALL голландтық интернет-провайдері UUCP қызметін тоқтатты, бұл "болжам бойынша әлемде оны әлі де ұсынатын соңғы провайдерлердің бірі" екенін мәлімдеді; сол кезде оның бар болғаны 13 пайдаланушысы болды (жабылуға дейін бірнеше жыл бойы жаңа пайдаланушылардың өтініштерін қабылдамай келді).
Қазіргі қолданылулары мен мұрасы
UUCP-нің сақталған бір ерекшелігі – Expect бағдарламалық құралы мұра еткен чат файл форматы. UUCP басқа жерлерде қолданыстан шыққаннан кейін де, арнайы мақсаттағы, қымбат байланыс желілерінде (мысалы, теңіз спутниктік байланысы) ұзақ уақыт қолданылып келді және әлі де қолданыста. 2021 жылы мұралық қолданысқа қоса, UUCP-нің жаңа және инновациялық қолданысы артып келеді, әсіресе HF жиілік диапазонында телекоммуникациялар үшін, мысалы, Амазонка ормандарындағы қауымдастықтар үшін электрондық пошта алмасу және басқа да мақсаттарда. Ианның UUCP-ге енгізген түзетулер, UUCP HF байланысын қамтамасыз ететін HERMES (Жоғары жиілікті төтенше және ауылдық мультимедиялық алмасу жүйесі) жобасына бейімделу үшін UUCP Debian Linux жинағына қосылды. 2000-жылдардың ортасында UUCP TCP/IP арқылы (көбінесе SSH протоколымен шифрланған) қолданылды, ал "Bang path" термині желілік хосттар арасындағы нақты маршруттау жолына қатысты кез келген жағдайда қолданылады. Бұл қолданыс міндетті түрде UUCP, IP маршрутизациясы, электрондық пошта немесе Usenet-пен шектелмейді. 2000-жылдардың басында кешігуге төзімді желілік протоколдарға қайта оралысты. UUCP-де қолданылған сияқты техникалар, кешігу немесе үлкен бұзылуларға ұшырайтын басқа желілерге де қолданылуы мүмкін.