Limity opłacalności

Opublikowane:

01.05.2019

Pięćdziesiąt lat temu ograniczenia w obliczeniach były związane z kosztem, a nie wiedzą; maddog wspomina rok 1969.

Pięćdziesiąt lat temu ograniczenia w obliczeniach były związane z kosztem, a nie wiedzą; maddog wspomina rok 1969.

Kiedy jesteś „obecny w branży IT od 50 lat, z pewnością masz już sporo siwych włosów (jeśli jakiekolwiek ci zostały). Masz też wielu przyjaciół, którzy opowiadają o tym, „jak to kiedyś było”.

Jednocześnie spotykasz grupy „młodszych ludzi”, którzy pytają o to, dlaczego rzeczy ułożyły się tak, a nie inaczej, i czasami mają trochę dziwne pomysły na temat tego, jak to się stało.

Wybaczcie więc wszyscy weterani, gdyż chciałbym się wybrać w podróż przez czas i pokazać, jak zaczynaliśmy oraz jak dostaliśmy się tu, gdzie jesteśmy.

Wyobraźmy sobie rok 1969 (w sumie nie tak dawno temu), kiedy nawet komputery typu mainframe przetwarzały tylko jedno zadanie naraz. Urządzenie, które wypełniało cały pokój i korzystało z chłodzenia wodą oraz zużywało mnóstwo energii, miało jedynie od jednej czwartej do jednej drugiej megabajta pamięci.

Mogło ono mieć też jeden lub dwa dyski, które kosztowały po 32 tysiące dolarów i przechowywały do 180 MB danych każdy. Procesory były w stanie wykonać od 35 tysięcy do trochę ponad 16 milionów instrukcji na sekundę, w zależności od modelu.

Przestrzeń adresowa zadania na komputerze mainframe miała w tym czasie około 16 milionów bajtów (24-bitowa przestrzeń adresowa). Cały program musiał zmieścić się w pamięci naraz, chyba że używało się sztuczki z tak zwanymi „nakładkami” (overlays), która powodowała ból i cierpienie programisty.

Tylko duże firmy i rządy mogły sobie pozwolić na coś więcej, choć i to nie zawsze. Ponieważ większość firm komputerowych budowała jedynie urządzenia, które można sprzedać, zmiana rozmiaru i pojemności nie następowała zbyt szybko.

Jednak nie było to tak, że nie wiedzieliśmy, jak rozwiązywać duże problemy, po prostu nie było nas stać na ich rozwiązywanie.

„Operatorzy” montowali taśmy magnetyczne, wkładali karty perforowane i odrywali z drukarek listingi, aby przekazać je pracownikom, którzy ich potrzebowali.

Programy czytały bezpośrednio z czytników kart i pisały od razu na drukarki. Ograniczało to prędkości aplikacji do możliwości czytników i drukarek. Dobre programy zaczynały czytanie kolejnej karty, podczas gdy przetwarzały aktualną i wybierały kolejny wiersz do wydruku, kiedy drukarka wysyłała przerwania mówiące, że ostatni wiersz został już wydrukowany. Operatorzy nie uruchamiali kolejnego zadania dopóty, dopóki poprzednie nie skończyło drukować.

Wynaleziono wtedy „spooling”. Poświęcając przestrzeń dyskową i pamięć, uzyskaliśmy szybszy dostęp do danych i drukowania. Zadania mogły być teraz kolejkowane i działać, kiedy zasoby maszyny na to pozwalały. Dodano więcej pamięci, aby możliwe było uruchamianie wielu zadań naraz.

Naszym zabezpieczeniem było zamknięcie drzwi na noc (nie było terminali podłączonych do takich urządzeń), a sieć zastępowaliśmy, nosząc pudła z kartami i taśmami po korytarzach. Grafiką zaś były wydruki ASCII.

Grafika, muzyka i wideo, które w tej chwili wydawałoby się, że mamy od zawsze, nie były znane szerszej publiczności. Większość osób nigdy nie widziała prawdziwego komputera ani nie dotykała klawiatury dopóty, dopóki nie poszła na uniwersytet lub nie zaczęła pracy w odpowiedniej firmie. Nie było komputerów w szkołach i domach.

Pojedynczy tranzystor kosztował wtedy 1,5 dolara, a układy zintegrowane zaczynały dopiero je zastępować. Nikogo po prostu nie było stać na posiadanie większej ilości pamięci lub szybszego procesora.

Pamiętam kupowanie 128000 bajtów pamięci półprzewodnikowej w 1978 roku za 128000 dolarów. To było ponad dwa razy tyle, ile płaciło się wtedy za przyzwoity dom. Kilka lata później (1981) zapłaciłem 10 tysięcy dolarów za megabajt RAM-u, a po kolejnych kilku latach kosztował on już 2 tysiące dolarów.

Należało wtedy zbalansować prędkość procesora z ilością RAM-u, pojemnością dysku i innymi elementami. Jaki byłby sens (w większości przypadków) posiadania procesora, który wykonywałby miliardy instrukcji na sekundę z dostępem do pamięci, która miała jedynie kilobajty pojemności, z dyskiem mierzonym w megabajtach? Lub 10 GB RAM-u z 5 MB dysku?

Istniały już superkomputery i wiedzieliśmy, jak rozwiązywać poważne problemy, jednak średniej wielkości firmy nie mogły sobie pozwolić na taki sprzęt, więc wielu „poważnych problemów” nie dało się rozwiązać.

Koncepcja superkomputera w stylu Beowulf pozwoliła ludziom na rozwiązywanie tych samych problemów za 1/40 ceny lub usuwanie problemów, które są 40 razy bardziej złożone, za tę samą ilość pieniędzy.

Grafika, sieć i możliwości obliczeniowe, które mamy dzisiaj (wliczając w to telefony), powstały w wyniku zaistnienia potrzeb, które z czasem rosły i rosną dalej, a także dzięki rozwojowi  technologii. Jednak możliwości te są w dalszym ciągu ograniczone przez nasze możliwości finansowe. nnn

Jon „maddog” Hall jest autorem, wykładowcą, informatykiem i jednym z pionierów Wolnego Oprogramowania. Od 1994 roku, kiedy po raz pierwszy spotkał Linusa Torvaldsa i ułatwił przeniesienie jądra na systemy 64-bitowe, pozostaje orędownikiem Linuksa. Obecnie jest prezesem Linux International®.

Autor: Jon „maddog” Hall

Aktualnie przeglądasz

Maj 2019 - Nr 183
LM_May_2019

Top 5 czytanych

Znajdź nas na Facebook'u

Opinie naszych czytelników

Nagrody i wyróżnienia