Trickle - strumyk oprogramowania

Oprogramowanie niekomercyjne i archiwum SIMTEL-20

Oprogramowanie niekomercyjne i archiwum SIMTEL-20

Przez oprogramowanie niekomercyjne rozumiem oprogramowaniepu-blicdomain (w wąskim znaczeniu oznacza to programy, do których autor zrzeka się wszelkich praw), free-ware (rozpowszechnianie jest bezpłatne, ale informacja o autorstwie programu musi być zachowana) oraz shareware (nieograniczone rozpowszechnianie, ale użytkownik jest moralnie zobowiązany do wniesienia niewielkiej opłaty). W wielu wypadkach oprogramowanie niekomer-cyjne dorównuje swoim odpowiednikom komercyjnym lub nawet je przewyższa, ale prawdą jest również, że za bezpłatne oprogramowanie płaci się własnym czasem - dokumentacja jest często bardzo skąpa, a sam wybór wła-ściwego programu wśród wielu podobnych bywa trudny wskutek braku łatwo dostępnej informacji. Nawiasem mówiąc, dalszy rozwój oprogramowania niekoniercyjnego -a zdaniem pesymistów, w ogóle rozwój oprogramowania - jest obecnie poważnie zagrożony przez rygorystyczne prawodawstwo Stanów Zjednoczonych (upowszechniające się również i w innych krajach; miejmy nadzieję, że nie dotrze ono dó Polski w swej skrajnej formie) chroniące prawem autorskim look andfeel oraz pozwalające patentować pomysły programistyczne.

Za pomocą sieci komputerowych dostępne są liczne archiwa oprogramowania niekomercyjnego. Niektóre z nich są wyspecjalizowane tematycznie, jak np. archiwa systemu TeX w Clarkson w Stanach Zjednoczonych i w Aston w Wielkiej Brytanii, inne mają zakres tematyczny bardzo szeroki. Jednym z największych i najbardziej znanych archiwów jest SIMTEL-20; mieści się ono w White Sand Missile Rangę (Poligon Rakietowy Białych Piasków) w Nowym Meksyku w Stanach Zjednoczonych. SIMTEL jest skrótem od nazwy zespołu Simulation and Teleprocessing, który komputer zakupił i w którego budynku się on znajduje; liczba 20 wskazuje, że chodzi

o komputer DECSYSTEM-20. Archiwum to zawiera materiały - nie tylko programy, ale również dokumentację

i inne teksty - dla takich systemów i komputerów jak CP/M, MSDOS, Macintosh i UNK; ostatnio w archiwum utworzono specjalny dział dla języka ADA.

Moje doświadczenia ograniczają się jedynie do pobierania z archiwum plików związanych z PC, i to konkretnie z katalogu msdos (w stawianiu pierwszych kroków pomógł mi istotnie Krzysztof Heller, za co mu serdecznie dziękuję), i w dalszym ciągu niniejszego tekstu ograniczę się wyłącznie do tego zagadnienia.

Dostęp do archiwum SIMTEL-20

Komputer przechowujący archiwum SIMTEL-20 podłączony jest do sieci Internet jako wsmr-simtel20.ar-my.mil pod adresem 192.88.110.20. Ze względu na dużą liczbę chętnych do korzystania z archiwum, jego systematycznie uaktualniana kopia (nazywana mirror) znajduje się na komputerze wuarchive.wustl.edu. Użytkownicy BITNET i EARN nie mogą jednak pracować na komputerach sieci Internet - w szczególności nie mogą interakcyjnie przeglądać archiwum i pobierać zbiorów (za pomocą tzw. anonymous FTP). Można obejść to ograniczenie wysyłając pocztą elektroniczną zestaw odpowiednich komend do komputera - podłączonego zarówno do sieci Internet jak i do BITNET - eksploatującego specjalny program (FTP server), który przekaże otrzymane komendy wskazanemu komputerowi sieci Internet i odeśle otrzymane wyniki, w szczególności zamówione zbiory. Taki program działa na komputerze uniwersytetu w Princeton (bitftppucc/), który - jak się wydaje - jest również bardzo obciążony; co więcej, przy korzystaniu z FTP server pobrane zbiory - często znacznej wielkości - wędrują po sieci okrężnymi trasami.

Aby usprawnić pobieranie zbiorów z archiwum SIMTEL-20 przez użytkowników sieci BITNET i EARN, _ stworzono koncepcję trickle (ang.* strumyk) stopniowego przepływu informacji z archiwum do lokalnych ośrodków redystrybucyjnych, wyposażonych we własną stosunkowo niedużą pamięć podręczną (ang. cache). Te lokalne ośrodki są obsługiwane przez programy nazywane serwerami trickle. Po otrzymaniu żądania wysłania pliku serwer sprawdza najpierw, czy zbiór ten znajduje się w jego pamięci podręcznej; jeśli tak, to go wysyła do zamawiającego. Jeżeli zbioru nie ma w pamięci podręcznej, serwer sprawdza, czy adres zamawiającego odpowiada obsługiwanemu przez niego regionowi - jeśli nie, to odsyła zamawiającego do właściwego serwera. Jeśli zbioru nie ma, a zamawiający należy do obsługiwanego regionu, serwer kontaktuje się z sąsiednimi serwerami, czy nie mają one tego zbioru w swojej pamięci; jeśli otrzyma odpowiedź pozytywną, poleca wysłać zbiór zamawiającemu. Jeśli żądanego zbioru nie ma żaden z serwerów, obsługujący danego użytkownika serwer zamawia go w archiwum; po jego nadejściu wysyła go użytkownikowi, a jednocześnie zapamiętuje go w swojej pamięci podręcznej (na miejscu innego zbioru lub zbiorów uznanych za mniej potrzebne).

Aby zapewnić sprawne działanie systemu serwerów, zostały wprowadzone pewne limity i ograniczenia. Dla przykładu, każdy serwer może zamówić w archiwum tylko pewną ilość informacji; następne zbiory może zamawiać dopiero w miarę otrzymywania zamówionych wcześniej zbiorów.

Ponieważ o serwerach trickle w sieci BITNET wiem tylko tyle, że działają one nieco inaczej niż serwery sieci EARN, dalej zajmiemy się wyłącznie tymi ostatnimi.

Serwery trickle w sieci EARN

Programy pełniące funkcje serwerów noszą nazwę RED (prawdopodobnie wywodzi się ona z określenia Listserp Redirector, którego sens nie jest jednak dla mnie do końca jasny). Jest ich obecnie 10 i mają one następujące adresy: TRICKLEDKTC11 TRICKLETREARN TRICKLEIMIPOLI TRICKLEBANUFS11 TR1CKLEAWIWUW11

TRICKLEDS0RUS1I TRICKLEEBOUBO11 TRICKLETAUNIVM ^ TRICKLEHEARN TRICKLEFRMOP11

Szczególny charakter ma turecki serwer TRICKLETREARN w.Izmir oraz austriacki serwer TRICKILAW1-WUW11 w Wiedniu, które - oprócz obsługi swojego regionu w zakresie podstawowych katalogów archiwum SIMTEL-20 - obsługują również pewne inne archiwa lub katalogi.

Naszym regionalnym serwerem jest TRICKLEDKTC11 na politechnice w Kopenhadze. Inne serwery reagują na żądania zbiorów tylko w dwóch wypadkach:

- kiedy mają żądane zbiory w swoich pamięciach podręcznych

- kiedy zauważą, że TRICKLEDKTC11 z jakichś względów nie działa.

Komendy dla serwera można wysyłać wsadowo pocztą (tj. za pomocą mail) lub interakcyjnie (tj. za pomocą tell). Sposób wysłania komendy wpływa na sposób odpowiedzi -w szczególności na komendy interakcyjne serwer w miarę możliwości również odpowiada za pomocą komunikatu, a nie poczty.

Wszystkie komendy dla serwera zaczynają się od ukośnika /. Swój kontakt z serwerem warto zacząć od komendy /help

Wykaz katalogów archiwum otrzymamy za pomocą komendy /pddir

Wykaz podkatalogów i zbiorów w tych podkatalogach otrzymamy za pomocą komend typu /pddir <msdos> /pddir <msdos.starter>

Zawartość pamięci podręcznej konkretnego serwera możemy poznać wysyłając mu komendę /cac

Jest to oczywiście skrót od cache. Ponieważ pełna lista zbiorów w pamięci podręcznej jest długa, lepiej jest stosować komendę typu /cac <msdos.desqview> która daje wynik postaci <MSDOS.DESQVIEW»DVCTIMER.ZIP 5843 28-04-91

<MSDOS.DESQVIEW>DVMU12.ARC 134616 16-09-89

<MSDOS.DESQVIEW»FILES004.ZIP 9235 29-03-91

<MSDOS.DESQV1EW>LTFRMT12.ZIP 80828 24-03-91

Syntaktycznie argument komendy /cac jest po prostu napisem, co ilustruje przykład następujący. <MSDOS.DESQVIEW>DVCTIMER.ZIP 5843 28-04-91 <MSDOS.DESQVIEW»DVMU12.ARC

<MSDOS.TEX>DVIVGAINF 2181 10-

01-89

<MSDOS.TEX»DVIVGA2ARC 138780

14-fli-O"

140190

<MSDOS.TEX>DVIVGA5.ARC 164864 10-01-89

<MSDOS.TEX>DVIVGA7ARC 194048 10-01-89

<MSDOS.TEX>DVrVGA8.ARC 193024 10-01-89

Również komenda /pddir może mieć postać

pddir <katalog.podkatalog>napis ale wydaje się ona mało przydatna.

Bardziej skomplikowane kryteria

wyszukiwania pozwala sformułować

komenda /generic (odgeneric seareb

przeszukiwanie ogólne); podobno nie wszystkie serwery ją realizują. Oto przykład jej działania: Subject: Re: /GENERICMSDOS.*>DV*

*

GENERIC V2. la Generic search

Target:

Date Size Filename

900119 5677 <MSDOS.LAN>DVNO-

VELLARC

890706 23680 -MSDOS.TROJAN-

PRO.DVIR1701.EXE

900416 15932

<MSDOS.T1FF>DVTIF1.ZIP

910509259650

<MSDOS.TEX>DVIXX050.ZIP

890110 12&512 <MSDOS.TEX>DVIV-

GA9.ARC

901028 6806 <MSDOS.RBBS-

PC>DVRBBS2.ZIP

900413 7843 <MSDOS.RBBS-PC>DV-

GUARD.ZIP

910213 349829

MSDOS.POSTSCRIPT>DVIPSLIB.ZIP

910213 321884

<MSDOS.POSTSCRIPT>DVIPS54.ZIP

850613 4862 <MSDOS.KEYBO-

ARD.DVORAKXT.ASM

830731 4826 -MSDOS.KEYBO-

ARD>DVORAK86.ASM

900523 2926 <MSDOS.DES-

QVIEW>DVWINDOW.ZIP

Subdirectories searched: 171 ***Endof search***

Przy stosowaniu tej komendy należy zawsze podać pełną nazwę katalogu lub zastąpić ją gwiazdką, co oznacza przeszukiwanie wszystkich katalogów.

Wysłanie komendy /poll wymusza na serwerze sprawdzenie, czy pozostałe serwery są aktywne - będzie ona potrzebna wówczas, kiedy nasz serwer nie będzie działał, a inne serwery tego nie zauważą i nie będą chciały przyjmować naszych komend.

Komenda /tr dostarcza informację

o statusie zamówionych przez nas

1 jeszcze nie otrzymanych zbiorów.

Najważniejszą komendę /pdget omówimy w punkcie następnym, zaś informacje o pozostałych komendach można znaleźć w tekście stanowiącym wynik komendy /help.

Przesyłanie zbiorów

Ponieważ zajmujemy się tutaj pobieraniem z archiwum SIMTEL-20 oprogramowania dla komputera PC, kluczowym etapem jest przesyłanie zbiorów z systemu VM/CMS na PC (nie zajmujemy się tutaj sytuacją, kiedy węzeł EARN jest zrealizowany np. na komputerze SUN za pomocą programu UREP). Zasadnicze pytanie jest następujące - czy mamy możliwość transmisji binarnej chcemy z niej korzystać (może być np. wolniejsza od znakowej). Swoje doświadczenia Z SIMTEL-20 rozpoczynałem

wtedy, kiedy Kermit na PLEARN nie miał jeszcze możliwości transmisji binarnej, chcąc nie chcąc nastawiłem się więc na korzystanie wyłącznie z transmisji znakowej. Ponieważ większość pobieranych zbiorów to skompresowane archiwa, a więc zbiory binarne, wymaga to stosowania specjalnej reprezentacji zbiorów zabezpieczającej przed zniekształceniami, natomiast w przypadku zbiorów tekstowych zachodzi potrzeba zmiany kodu z ASCII na EBCDIC. Do określenia formy zbioru służą opcje komendy /pdget. Dla zbiorów binar-

nych jest to opcja uue (skrót od uuen-coded, gdzie uu oznacza Unix-to Unix - ten sposób kodowania wywodzi się z systemu operacyjnego UNIX), zaś dla zbiorów tekstowych -opcja ebc80 lub ebc32 (EBCDIC, odpowiednio 80 lub 132 znaków w wierszu).

Tak więc aby uzyskać bliższe informacje o zawartości np. podkatalogu <msdos.telix> zamawiamy odpowiedni zbiór komendą /pdget <msdos.telix>00-index,txt (ebc32

Zbiory tego typu znajdują się w każdym podkatalogu i oprócz informacji dostarczanych przez komendę /pddir zawierają również zwięzłe objaśnienia, np.

ciach. Teoretycznie rzecz biorąc, należy je odebrać za pomocą BITRCV, który rekonstruuje pierwotny zbiór z poszczególnych fragmentów. Jednak przy aktualnym przydziale pamięci dyskowej użytkownikom PLEARN taki zbiór może nie zmieścić się na dysku, poza tym przesłanie jednego dużego zbioru na PC może być bardziej kłopotliwe niż przesłanie jego fragmentów. W konsekwencji scalałem dotąd duże zbiory dopiero na PC edytując odpowiednio przesłane fragmenty.

W szczęśliwym przypadku potwierdzenie otrzymania komendy nadchodzi w ciągu kilkunastu sekund, a sam zbiór - jeśli znajdował się

NOTE: This list was created on Sat, 11 May 91 01:47:51 MDT.Some files may have been added or deleted since that date.See file PD1:<MSDOS.FIUEDOCS>AAAREAD.ME for additional Information. NOTE: Type B is Binary; Type A is ASCII

Directory PD1:<MSPOS.TELIX>

Filename Type Length Date Description

315MOUSE.ZIP B 2145 9lT)407 Logitech mouse menu for Telix v3.15

AP100.ZIP B 55545 910328 Adds minor enhancements to Telix

AUTO-GEN.ARC B 3822 890325 Generate scripts for Telix 3-0 automa-

ticly

TLX311M3.ARC B 16931 890325 Add mouse to TELIX

TLX315-1.ZIP B 151023 910404 Telix 3-15 comm pgm executable & sup-

port files

TLX315-2.ZIP B123782 910404 Telix 315 comm pgm docs/host/scripts/

dialconv

TLX315-3.ZIP B 63538 910404 Telix 3.15 comm pgm. SALT Script lang.

and doc

••¦ Aby pobrać np. najnowszą wersję programu komunikacyjnego Telix należy zamówić odpowiednie archiwum komendą /pdget <msdos.telix>tlx315-l.zip (uue

W rezultacie otrzymamy zbiór TLX315-1.UUE, który należy przesłać w zwykłym trybie znakowym na PC, a następnie wykonać uudecode tlx315-l.uue

Wynikiem będzie zbiór TLX315-1.ZIP, o który nam chodziło. Niekiedy może wystąpić sygnalizacja błędu w ostatnim wierszu zakodowanego zbioru, co wiąże się z odmiennym traktowaniem końcowych spacji narożnych maszynach; diagnostykę tę można zignorować.

Oczywiście, nasuwa się zasadnicze pytanie, skąd wziąć programu ude-code na PC. Najprościej jest skopiować go od kolegi, powinien on też być dostępny w CIUW i innych węzłowych ośrodkach. Dla osób, które nie mogą lub nie chcą korzystać z tego rozwiązania, możliwe są dwie drogi. Jeślidy

sponują one możliwością transmisji binarnej z systemu VM/CMS na PC, to

mogą pobrać z katalogu msdos.star- ter gotowy do wykonania program uudecode.com i jego dokumentację uudecode.doc (swoją drogą, nie jest jasne, czy w tej sytuacji uudecode jest im rzeczywiście potrzebne). Jeśli dysponują tylko możliwością transmisji znakowej, pozostaje im pobrać z katalogu <msdos.starter> tekst źródłowy programu uudecode w języku BASIC, Pascal lub C. Innym źródłem tych programów może być wspomniana dalej lista dyskusyjna RED-UGTREARN.

Dla pełności obrazu należy dodać, że duże zbiory są wysyłane za pomocą BITSEND i nadchodzą w kilku częś-

w pamięci podręcznej i jest nieduży-' w ciągu kilku lub kilkunastu minut; bardziej typowy czas reakcji to kilka lub kilkanaście godzin. Jeśli natomiast zbiór jest zamawiany w archiwum, ma prawo wędrować nawet do dwóch tygodni. Niestety, zdarza się również, że serwer przyjmuje zamówienie, lecz go nie potwierdza, że serwer zapomina zamówienie, które prawidłowo potwierdził itp.

Przeglądanie zawartości archiwum

Wykaz wszystkich zbiorów w katalogu <msdos> wraz ze zwięzłymi opisami znajduje się w zbiorze <msdos.filedoc>simibm.idx

Zbiór ten wraz z kilkoma innymi zbiorami pomocniczymi jest dostępny także w postaci archiwum <msdos.filedoc>simibm.arc

Dzięki tym dodatkowym zbiorom, simjbm.idx może być przeglądany za

pomocą takich baz danych, jak dbase 3 i PC-File+. Ci, którzy nie chcą lub nie mogą korzystać z tych baz danych, mogą stosować program Simtel20Ca-talog Viewer dostępny w zbiorze <msdos.filedoc>simtel35.arc

Korzystanie z programu jest proste. Po rozpakowaniu archiwum i wywołaniu simtel35 ukazuje się menu. Po ewentualnej zmianie opcjivideo wybieramy opcję update, która powoduje wczytanie i przetworzenie zbioru simibm.idx. Następnie możemy przeglądać jego zawartość, korzystając z różnorodnych udogodnień programu.

Trudniejszym zadaniem niż jednorazowe przejrzenie zwartości jest

orientowanie się na bieżąco w nowych nabytkach. Informacje o nowych zbiorach wraz ze zwięzłym komentarzem ukazują się na liście dyskusyjnej RED-UG (Red File Server Users Group on ProvidedSoftware); jest ona dystrybuowana przez kilka węzłów dla nas właściwym adresem jest IiSTSERVHEARN. Usta ta jest również odpowiednim miejscem na pytania i odpowiedzi dotyczące znajdujących się w archiwum programów. Z listą tą związane są również pewne pożyteczne zbiory, ich wykaz można uzyskać wysyłając do LJSTSERVTRE-ARN komendę ind red-ug.

Inną metodą informacji o nowościach jest wykonanie komendy /sub <msdos>

Oznacza to zaprenumerowanie informacji o zmianach w tym katalogu, ale otrzymywane informacje są bardzo skąpe - tylko nazwa,* rozmiar i data zbioru. Ponieważ długość nazw jest ograniczona, nie są one zbyt wiele mówiące. Istnieje też komenda /new, ale nie uważam ją za wygodną.

Problemy i reklamacje

Jeśli problem dotyczy niewłaściwego funkcjonowania systemu serwerów, można go poruszyć na liście dyskusyjnej RED-SYSTREARN (Red File Server System Performance Dis-cussion Ust). W sytuacjach awaryjnych - zwłaszcza wymagających szybkiej reakcji - można skontaktować się z operatorami serwerów wysyłając pocztę na adres /RED-BUGTREARN/. Można również skontaktować się z operatorem konkretnego serwera uzyskując jego adres sieciowy za pomocą komendy /ops.

Uwagi końcowe

Na zakończenie chciałbym zwrócić uwagę, że różne fragmenty archiwum SIMTEL-20 i jego dokumentacji są uaktualniane w różnym rytmie, stąd możliwość uzyskania wewnętrznie sprzecznych lub nieprawdziwych informacji - dla przykładu, wbrew komunikatowi wysyłanemu przez /TRICKLETREARN/ nie obsługuje on m.in. katalogu <unix-c>.

Mam nadzieję, że powyższe uwagi okażą się pożyteczne dla użytkowników EARN w Polsce. Choć starałem się, aby były maksymalnie ścisłe i aktualne, nie mogę wykluczyć, że zde-aktualizowały się one w jakimś fragmencie w trakcie druku, jak również, że do tekstu wkradły się pomyłki. Świadomie pominąłem też pewne informacje, które uznałem nieistotne. Będę wdzięczny za wszelkie uwagi i komentarze.


TOP 200