Dwadzieścia pięć lat. Dziewięć lat na pierwszej linii innowacji i
postępu. Szesnaście lat epickiej opery mydlanej i bratobójczych walk pod
każdą długością i szerokością geograficzną. Amiga, jedyna platforma,
którego średnia użytkowników chorych psychicznie wypada jakoś jeden i
jedna trzecia na użytkownika.
Amiga to taka Polska w wersji binarnej. Pamiętamy jak w 1410 żeśmy tym
chrześcijanom spuścili lanie, że tylko my na Moskwę z sukcesem i kiedy
tak wspominamy, to przysłowiowe psy srają po chodnikach.
Amiga to też jedyna platforma, której byłem fanbojem. Kiedy mówię
fanbojem, to myślę o kimś, kto rozwalał płyty PC-ta dla zabawy. Ktoś,
kto nie dorzucił się jakiemuś biednemu człowiekowi ze sceny do biletu po
tym, jak zauważył że to użytkownik innej platformy. Ktoś, kto wtedy
schylił się tak, aby dało się odczytać z czapki “A M I G A” i
powiedział swoim młodzieńczym basem: “chyba gramy dla innej drużyny”.
Mam nadzieję, że czytelnicy poznali mnie na tyle, żeby pojąć, że nie
chodziło o czystej krwi totemizm.
AmigaOS był genialny. AmigaOS był systemem, który mimo swoich
technologicznych problemów potrafił wciągnąć każdego, kto kochał
komputery w ten czysty sposób, w jaki można było kochać komputery w
1992, zanim Twoja Stara wrzucała foty na Naszej Klasie.
Dwadzieścia pięć lat później siedzę w domu i piję piwo czytając relacje
z różnych imprez związanych z tą, jak to nazwał jeden z portali,
“okrągłą rocznicą”. Dopada mnie nostalgia i rzucam się w kierunku
laptopa. Zainstaluję sobie AmigaOS 3.1 i powiem Wam, co było w nim fajnego.
Jestem z siebie trochę dumny, a trochę mi żal, że marnuję głowę na takie
informacje. Postawiłem cały system od zera, z dwóch dyskietek. W
godzinę. Bez większego problemu. Ostatni raz używałem Amigi na poważnie
w 2003. Niektóre rzeczy nie chcą wyjść z głowy. Pierwsza dziewczyna,
pierwsza wódka, pierwszy komputer, którym rządziłeś.
AmigaOS zachwyca. Jak to nie zachwyca, jak zachwyca?
Przypisano mi te zasoby
Urządzenia w AmigaOS posiadały dwie nazwy: logiczną i fizyczną. To nie
jest całkowita prawda, ale to bardzo dobre kłamstwo. Nazwy dysków nie
miały znaczenia w takim sensie, w jakim jesteśmy do tego przyzwyczajeni
na innych systemach. Główny dysk dysk twardy zwyczajowo przyjmował
fizyczną nazwę DH0: co stanowiło logiczne ciągłość, jeżeli wiedziało
się, że wewnętrzna stacja dyskietek to DF0:. DH0: to nasz /dev/sda1 lub
C:, nic nie stało jednak na przeszkodzie, żeby dysk ten nazywał się
Cherbata:. Nic, prócz ortografii.
Kiedy uruchomiłeś swój system z dysku Cherbata:, to w tle działa się
czarna magia zwana przypisami. Komputer zaczynał odzywać się do dysku
startowego per sys: i doklejał do ważnych katalogów kolejne nazwy. I tak
katalog Libs/ na dysku Cherbata: stawał się Libs:, to samo działo się z
katalogami C, S, Devs, Fonts i innymi.
A co to dawało praktycznie? No cóż, wszystkie zasoby w AmigaOS
(czcionki, biblioteki, sterowniki) były w pewnym sensie programami, a
przypis mógł wskazywać na więcej niż jedną ścieżkę. Przykład z życia:
wpada kolega narysować kolekcję obwisłych penisów, której to kolekcji
użyje jako argumentu w podwórkowej dyskusji o wyższości klubów
sportowych. Znajomość anatomii pozwala mu szybko ukończyć dzieło,
niestety nie posiadam na dysku jego ulubionych fontów. Zamiast
przegrywać jego czcionki do mojego systemu, piszę po prostu (zakładając,
że dysk kolegi to DH1 w moim systemie):
assign fonts: dh1:fonts add
Raz, dwa, trzy i już może używać swojej ulubionej kombinacji
bold-kapitalik-underline-outline.
Inny przykład. Odwiedzając znajomych ze swoim dyskiem, co i raz
natrafiałem na system, na którym mój dysk nie chce wystartować z pełnym
systemem. Honorową odznaką było posiadanie takiego systemu, który sobie
radzi z wieloma rodzajami rozszerzeń i zwężeń dostępnych dla komputerów
Amiga. Napisałem mały program, który wykrywał typ procesora i
koprocesora oraz innych flaków i wykonywał stosowne przypisy do
katalogów z bibliotekami. Możecie o tym myśleć jako o przenośnym
systemie, który zależnie od tego, czy jest uruchamiany w środowisku 32-
lub 64-bitowym, wybiera stosowny zestaw bibliotek do użycia.
Dzięki odkryciu rozkazu assign zostałem też guru dla wielkiej rzeszy
niedomytych amigowców, którzy używali komputera zgodnie z jego
przeznaczeniem, to znaczy strzelali do obcych w rytm muzyki techno,
kiedy w tle zapieprzała paralaksa z miliardem kolorów, przy których lata
sześćdziesiąte wyglądały jak proszona herbatka u babci Jadwigi.
Wspominałem o tym kłamstwie z nazwą logiczną i fizyczną? Dobrze. Robiło
się tak. Jeżeli miałeś szczęście, to dyskietka z grą była systemowa (to
znaczy zawierała normalną strukturę danych jak katalogi i pliki i dawała
się odczytać przez system bez własnego bootloadera) i najczęściej po jej
włożeniu do napędu DF0: na ekranie pojawiała się jej ikonka podpisana
np. PornPart1 co znaczyło dla nas tyle, że w fizycznym napędzie DF0:
dostępny jest logiczny wolumin PornPart1:. Wszystko co musiałeś zrobić,
to przegrać pliki ze wszystkich dyskietek do katalogu na twardym dysku i
napisać skrypt. O, taki:
assign PornParty1: dh0:gry/pornparty
assign PornParty2: dh0:gry/pornparty
dh0:gry/pornparty/pornparty
Gra, szukając dyskietki pornparty1:, zostanie odesłana do katalogu na
dysku. Teraz wystarczy to zapakować, zanieść na giełdę i zebrać
obietnice przyszłego piwa, które kupią Ci lamerzy, jak tylko skończysz
więcej niż piętnaście lat.
Mała piracka trivia dla lokalnych amigowców. Po tylu latach już chyba
mogę? Moim największym osiągnięciem na scenie crackerskiej było
przystosowanie zajumanej wersji Sensible World of Soccer do działania na
Amidze 500. Piracka wersja sprzedawana w znanym wszystkim miejscu na
ulicy Przybyszewskiego nie działała, ku wielkiemu smutkowi większości
użytkowników zbyt skąpych na oryginał nie mówiąc już o Amidze 1200.
Enter The Emil. Szybki rzut oka na dyskietkę i okazało się, że została
ona przygotowana pod nowy system plików, którego A500 nie umiała gryźć.
Siedem sekund później już umiała. Odniosłem swoją wersję do sklepu za co
uzyskałem stosownie duży kredyt na nowości z katalogu z żółtą okładką.
Jeżeli kupowałeś SWOS-a na dwóch dyskietkach tam, w tym sklepie, i
grałeś na swojej ukochanej pięćsetce, to możemy sobie przybić piątkę!
Ręka w rękę zadeptaliśmy jakikolwiek sens pisania oprogramowania na
naszą platformę. Karma trochę dziwka, ay?
Wracając do przypisów. Obraz wart tysiąca słów.
Utwór zaczyna się spokojnie, trwa i spokojnie się kończy
Prawdziwego mężczyzny nie poznaje się po tym jak zaczyna, podobno.
Podobno też miło jak zaczyna bez skarpetek. Amiga zaczynała proces
bootowania bez niczego.
Doszliśmy dziś do momentu, w którym sekwencja startowa systemu to
praktycznie system sam w sobie. Dawno zapomniano o prostocie
autoexec.bat i config.sys, dziś potrzebne są rekursywne skrypty,
event-driven i żeby jeszcze backend koniecznie w XML, a jak się nie da,
to jebnijmy jakąś bazę.
Żeby nie było, rozumiem, z jakiego powodu jesteśmy tu, gdzie jesteśmy.
Dobrze, gdzie ja jestem, a ja nie jestem w stanie prześledzić całego
procesu wczytywania się systemu na swoim laptopie. Ofiary własnego sukcesu.
Były jednak czasy, gdy mężczyźni byli mężczyznami, kobiety kobietami, a
pociągi jeździły na węgiel. Czasy prostsze, sielanka pod gruszą i
s:startup-sequence, który rozkręcał Amigę.
Prosto i do celu. Mimo całej świadomości, że nie da się utrzymać
współczesnego systemu, który zwisałby z jednego skryptu startowego, to
lubię wspominać czasy, w których wiedziałem, co też się dzieje pod maską
mojego komputera.
Co robi antagonista Jamesa Bonda? Daje mu szansę ucieczki
To jedna z tych rzeczy, o których zapomniałem, że mi ich brakuje. Ktoś
mógłby powiedzieć, że w takim razie mi ich nie brakowało, ja znów
twierdzę, że pogodziłem się z losem.
Programiści nie są specjalnie znani z ich zamiłowań do dokumentacji,
która nie odnosi się bezpośrednio do przekładania bajtów z jednego
miejsca na drugie. Podręczniki zawierające informacje co do stylu
traktowane są jako delikatna sugestia i nic więcej. Z tym większym
zdziwieniem przypomniałem sobie, że prawie każdy program do ustawiania
preferencji (programy systemowe zwykły mieć osobny “konfigurator”
dostępny gdzieś w sys:prefs) posiada opcję “Use”.
Zanim o tym, kilka słów o przechowywaniu ustawień w AmigaOS.
Słyszeliście kiedyś o RAM-dysku? RAM-dysk to taki wirtualny dysk, który
znajduje się w pamięci (serio, kapitanie Oczywistość? Dziękujemy!) i
jego zawartość ulatuje razem z resetem komputera. W AmigaOS RAM-dysk
jest niezbywalną częścią systemu. Co różniło jego implementację (i w
pewien sposób wpłynęło na to, że to jedyny system na którym stał się
popularny) od innych to fakt, że dokonywał on automatycznie przydziału
pamięci. DOS-owy odpowiednik miał określone przy tworzeniu, że zajmie
np. megabajt i już. RAM-dysk w Amidze zajmował tyle, ile zajmowały
umieszczone tam pliki, a górną granicą była dostępna dla systemu pamięć.
RAM-dysk był używany do trzech rzeczy
- rozpakowywania programów celem przetestowania, nie trzeba było
sprzątać po sesji
- zapisywanie plików tymczasowych
- przechowywanie ustawień
Przy starcie komputera system kopiował zawartość katalogu EnvArc: do
RAM:Env i przypisywał do niego nazwę Env:, katalog EnvArc (od
Environment Archive) zawierał ostatnie zapisane ustawienia, a Env: ich
bieżącą kopię. Przejdźmy do slajdu numer następny.
“Save”, “Use” i “Test”. Kliknięcie “Use” powodowało zapisanie zmiany do
katalogu Env: (więc na RAM-dysk) i pozwalało przetestować zmiany. Jeżeli
udało nam się ustawić czarny tekst na czarnym podkładzie i spowodować
aby wskaźnik myszy przesuwał się tylko o cal, to jeden reset dalej
czekało nas wybawienie z opresji. To jedna z takich banalnych rzeczy,
które cieszą.
Oczywiście dziś trzymam swoje dotfiles w repozytorium GIT-a, co wymagało
kilku skryptów ,
drugiego serwera, który utrzymuje te dane i wprawdzie wszystko jest
rozproszone i nowoczesne, to jednak nie mogę się jakoś oprzeć wrażeniu,
że kopiowanie katalogu ma w sobie jakąś prostotę, przy której moje
rozwiązanie jest wymęczone jak Stanisław Lem po maratonie “Na Wspólnej”.
O tym jak kodeki dało się instalować bez “paska narzędziowego” Aleksy dla IE
Dzisiejszym słowem-wytrychem jest skalowalność, wczorajszym była
modułowość. Jeżeli program był modularny, to znaczyło, że marketingowiec
mógł zawsze powiedzieć o tej rozpieprzonej części programu “wystarczy
wymienić moduł”. Zaraz, miało być o tym systemie z lat dziewięćdziesiątych.
AmigaOS miał wbudowany system DataTypes. Co to znaczyło? Wyobraź sobie,
że piszesz program graficzny, ale nie masz specjalnie czasu na te
wszystkie głupie formaty plików, które krążą po dyskietkach znajomych.
Odwołujesz się więc do DataTypes przez standardową bibliotekę systemową
i mówisz mu “wczytaj obrazki, o których wiesz jak”. Ta dam!
DataTypes to dekodery (animacji, obrazków, dźwięków) napisane tak, aby
używając wspólnego API pozwolić użytkownikowi wczytywać media bez
potrzeby zmieniania programu. Jeżeli wczoraj nie było formatu PNG
(młodsi mogą nie pamiętać, że nie było. Czasy wielkiej schizmy LZW
wywarły piętno na nas wszystkich) a Twój program jest napisany według
zasad, to pojutrze ktoś napisze odpowiedni “datatyp”, użytkownik go
sobie zainstaluje i gotowe.
Nie mówiąc już o tym, że odpowiednie dekodery mogły być przygotowywane
pod specjalne linie procesorów czy też kart graficznych, dzięki czemu
mogłeś sobie wybrać coś, co będzie działało jak sobie życzysz.
Po raz kolejny, mimo mojego kompletnego umiłowania do kompilowania
programów, co brzmi lepiej dla Zwykłego Usera:
- Zainstaluj ten program (DataType way)
- Ściągnij libpng-dev i przekompiluj z —enable-png
Więcej niż piktogramy
Ikona w AmigaOS była czymś więcej niż ikony w innych systemach. Po
pierwsze była dodatkowym plikiem, którego nazwa zgadzała się z nazwą
pliku, który miała opisywać i rozszerzenia .info. Każda ikona posiadała
dwa stany: przed i po kliknięciu. Prawdopodobnie miało to pomóc określić
stan w jakim znajduje się ikona, praktycznie skupiło się to na
projektowaniu uroczych ikonek, które wyglądały jeszcze zabawniej po
kliknięciu. Hipopotamek z zamkniętą buzią. Po kliknięciu z otwartą i
nutki. Tak się włączało szlagierowy odtwarzacz muzyki HippoPlayer.
Nie tylko lansem stały ikony. Metadanymi stały też.
Poza standardowymi rzeczami, takimi jak atrybuty pliku, komentarz i data
utworzenia, widzimy pole “Default tool”, co jak bardziej rozgarnięci
czytelnicy mogą zgadnąć, jest miejscem do wpisania domyślnego programu,
który włączy się przy dwumlasku Bieleckiego. Mogłeś więc komponować
sobie muzykę w programie muzycznym, zawrzeć nazwę tego programu w polu
“Default tool” i klikając wracać do pracy nad nim, ale mogłeś też bez
problemu zaciągnąć ikonę do HippoPlayera i posłuchać efektów.
A te “Tool Types”? To nic innego jak dodatkowy sposób na konfigurowanie
programu w stylu .ini, zmienna = wartość. Pozwalało to zmienić domyślne
ustawienia wywoływanego programu (w przypadku zrzutu ekranu jest to
instalator aplikacji).
Wrócę jeszcze do komentarzy. Komentarze to była dopiero super sprawa.
Ponieważ AmigaOS nie dostarcza żadnych narzędzi do zarządzania swoim
cyfrowym żywotem i do tego jest systemem jednoużytkownikowym, to normą
było ręczne kopiowanie plików do systemu. Jak ktoś miał świeższą wersję
reqtools.library na dysku, to nie ściągał pakietu instalacyjnego, tylko
kopiował go sobie do libs:, przy takim podejściu do systemu komentarze
do plików pozwalały mi zachować zmysły.
Przed instalacją programu wpisywałem w konsoli polecenie, które
ustawiało komentarze dla wszystkich plików programu na np. “Plik
pochodzi z programu XYZ, zainstalowano w marcu”. Potem pozwalałem się mu
instalować. Kiedy coś mi nie grało z fontem czy biblioteką, po prostu
patrzyłem na komentarze i już wiedziałem, że plik został nadpisany. Jak
nie masz dpkg to masz łeb!
A jak było naprawdę?
AmigaOS w tamtym wcieleniu był systemem bardzo dobrym. Na lekko
dokarmionej Amidze człowiek pracował jak pszczółka i czuł się jak bóg.
Bo i serio nie było specjalnie przeciwników. Apple było praktycznie
nieznane, a OS7 powodował tylko pusty śmiech. Microsoft miał dopiero
przywalić z Windows 95 i zgarnąć pulę nad długie lata. Atari, poza małą
niszą, nigdy nie przekonało nikogo TOS-em, a Falcon spadł z drzewa zanim
się dobrze wykluł. Ośmiobitowce dawno już trafiły na karty historii.
Światu nie zabrało długo by dopaść, a później przegonić AmigaOS. Potem
wybuchła wojna domowa i dzięki wielkiemu wysiłkowi walczących stron
prawie nikt nie przeżył. Powstały trzy największe obozy, tak wielkie, że
po ustawieniu ich na łbie od szpilki zostanie miejsce dla kilku milionów
diabłów. Ale to już historia na inną okazję. Jeżeli chcecie posłuchać
mojej jednostronnej i absolutnie zakłamanej historii współczesnej świata
po Commodore, to możecie napisać e-maila. Zbiorę się na pięćdziesięciolecie.
Przekonałeś mnie
Miałeś Amigę i nagle zachciało Ci się klikać? Są opcje.
- WinUAE dla tych, którzy chcą postrzelać z
paralaksą. Używać też pod Linuksem via WINE, chodzi dużo lepiej niż
natywne port.
- Amiga Forever KX Light opcja
dla ludzi zainteresowanych emulacją z dozą legalności.
- Icaros Desktop to dystrybucja
open source’owej reimplementacji AmigaOS,
AROS-a. Myśl Haiku do BeOS minus
binarna kompatybilność.
- MorphOS, ideowy spadkobierca
AmigaOS, działa na Macu Mini i eMacu (w przyszości PowerBook) z
procesorami PowerPC. Wersja darmowa działa przez pół godziny
- AmigaOS 4.1, oficjalny
następca. Działa tylko na wybranych płytach. Możesz kupić
Samanthę lub
Pegasosa.
- Opcja nerdout: reimplementacja A500 w
FPGA.
Full disclosure, kumpluję się z eFUNZINe. Jak coś kupicie
powołując się na ten tekst to mogę obiecać, że coś surpresę.