Site icon MenWorld.pl

Core War, czyli jak powstały wirusy komputerowe

Core War to program, gra komputerowa, w której na wirtualnej arenie walczą ze sobą… inne programy. Kiedy w 1984 roku A. K. Dewdney opublikował na łanach „Scientific American” felieton o zasadach wymyślonej przez siebie gry, nikt nie spodziewał się, że opisana idea przysporzy tak wielu problemów ludziom XXI wieku. Co ciekawe, wieść niesie, że programy oparte o pomysł Dewdneya istniały już w latach siedemdziesiątych. Niemniej popularność zyskały dopiero po publikacji w tym bardzo prestiżowym czasopiśmie. Obecna od zawsze w ludzkiej kulturze chęć rywalizacji przełożyła się również na komputery, ale w nieco innej postaci. Nie liczyło się, kto będzie w stanie napisać bardziej funkcjonalny, ładniejszy czy prostszy w obsłudze program. Liczyło się, kto będzie w stanie napisać program, który pokona program przeciwnika.

Wirtualna arena

W skład Core War wchodzi kilka rzeczy, ale najważniejszą z nich jest MARS, czyli Memory Array Redcore Simulator. Inaczej mówiąc, MARS jest wirtualnym procesorem, który potrafi przetwarzać komendy napisane w dość ubogim, asemblerowym języku, zwanym Redcode. Obie te rzeczy zostały stworzone specjalnie na potrzeby gry i niemożliwe było uruchomienie jednego z „redcode’owych” programów w normalnej części systemu. Zabawa polegała na tym, że w specjalnie wydzielonej części pamięci komputera, zwanej areną lub rdzeniem, stawały naprzeciwko siebie dwa programy. Celem było zmuszenie programu przeciwnika do wykonania zabronionej instrukcji bądź odebranie możliwości dalszego działania. Nad przebiegiem gry czuwał wirtualny sędzia, a walka toczyła się, można powiedzieć, w systemie turowym – programy wykonywały swoje rozkazy naprzemiennie.

core war

Brzmi ciekawie? To jeszcze nie wszystko. Ponieważ programy są tak naprawdę ciągiem zer i jedynek, konieczne było wymyślenie sposobu na to, by jeden ciąg mógł być lepszy od drugiego. A ponieważ gra jest stworzona przede wszystkim dla programistów, nie będę wchodził w najbardziej zawiłe szczegóły techniczne. Dość powiedzieć, że język asemblerowy to inaczej kod maszynowy, który już przez procesor przetwarzany jest na wspomniany ciąg zer i jedynek. Języki asemblerowe to języki programowania niskiego poziomu, które dają programiście pełną kontrolę nad procesorem. Przykładową komendą może być na przykład umieszczenie konkretnej wartości w konkretnej komórce pamięci komputera. Właśnie na tej prostocie rozkazów opiera się cała idea walki w Core War – jeden program mógł zablokować drugiemu dostęp do komórki pamięci, do której tamten chciał skopiować swoje dane. Ale to tylko taka mała dygresja.

Jak na porządną strategię przystało, Core War oferował graczom możliwość stworzenia różnych „jednostek”, co programiści skwapliwie wykorzystywali. W oryginalnej wersji gry mieliśmy wojowników nazwanych na przykład Scorpion, Infiltrator, czy Basilisk. Miało to ułatwić odbiór i określić znanymi nam pojęciami możliwości danego kawałka kodu. Były więc takie, które zajmowały się rozpoznaniem, były takie, które zadawały szybkie ciosy, oraz były takie, które na przygotowanie potężnego ataku potrzebowały więcej czasu. Z naszej obecnej perspektywy najważniejsze nie okazały się dobra zabawa czy umiejętności programistów, ale fakt modyfikowania kodu programu przez drugi program. To właśnie Core War stał się protoplastą wszystkich wirusów komputerowych.

Wojna to nie zabawa

Felieton z zasadami gry ukazał się w roku 1984. Już rok później Dewdney w tym samym czasopiśmie opublikował list dwóch włoskich programistów, którzy wpadli na iście genialny pomysł. Pomyśleli oni sobie, że skoro programy mogą ze sobą walczyć w specjalnie do tego celu przygotowanym środowisku, to dlaczego nie miałyby móc walczyć w środowisku normalnym? Szybko, bo już w 1986, powstał pierwszy szerzej znany wirus komputerowy – Brain. Żądni rozrywki programiści potrzebowali większych wyzwań niż organizowane nawet międzynarodowe turnieje w Core War. Z powodu wygórowanych ambicji i, być może, niezaspokojonego ego, musimy teraz na każdym kroku pilnować się, by nie zainfekować naszych urządzeń.

core war

Powstanie wirusów komputerowych było tak naprawdę nieuniknione. Całkiem jednak możliwe, że gdyby nie owa gra, zostałoby to odroczone o kilka ładnych lat. Tymczasem Core War w pewien sposób pokazał, że walka dwóch programów jest po prostu dobrą zabawą. Sprawienie, by działający już program zaczął zachowywać się niezgodnie ze swoim przeznaczeniem, traktowane było jako próba umiejętności. Nawet w tej chwili spora część wirusów nie powstaje z czystej chęci robienia czegoś złego, ale właśnie jako test, egzamin sprawdzający wiedzę. Chęć rywalizacji żyje w człowieku od najdawniejszych czasów – dostaliśmy do rąk jedynie nowe zabawki.

Międzynarodowe Stowarzyszenie Wojen Rdzeniowych

Wróćmy jednak do naszych programów. Już w 1985 roku (niektóre źródła podają 1986) w Bostonie odbył się pierwszy, międzynarodowy turniej Core War. W kolejnych latach zasady gry były rozszerzane, ewoluowały również inne części rozgrywki. Dla przykładu w miejsce Redcode pojawił się nieco bardziej rozbudowany Bluecode. Popularność gry stale rosła, aż w pewnym momencie dotarła nawet do Polski. Warto wiedzieć, że w tamtym czasie rynek komputerów w kraju nad Wisłą dopiero raczkował. Mimo to już w 1992 roku miały miejsce I Mistrzostwa Polski w Wojnach Rdzeniowych! Dwa lata później miała miejsce druga edycja mistrzostw i jeśli prawdę mówi sieć, odbyła się jeszcze trzecia, nie mogę jednak znaleźć żadnych dokładniejszych informacji. Od tego momentu popularność drastycznie spadła, a czasopisma przestały pisać o zabawie dla programistów.

W nowym tysiącleciu Core War straciły na znaczeniu także dla reszty świata. Zaczęły pojawiać się nowe, lepsze, a przede wszystkim znacznie łatwiejsze w odbiorze gry. W obliczu takich zmian zabawa przeznaczona tylko dla programistów przestała istnieć w świadomości użytkowników, a sami programiści przerzucili się chyba na prawdziwe wirusy. Niemniej jednak walka programów na arenie zapisała się na kartach historii i chociaż w sieci nie pisze się o tym zbyt często, warto wiedzieć, że coś takiego nadal istnieje. Osobiście nieco ubolewam, że poznałem ten temat dopiero na studiach informatycznych. Nie trzeba bowiem być programistą, aby poznać, czym jest Core War.

To nie wszystko. W sieci cały czas znaleźć można stworzone kilkanaście lat temu, ale nadal utrzymywane strony opisujące całą rozgrywkę. Ba, z niektórych z nich (na przykład z Koth.org) nadal można pobrać wszystko, co potrzebne do zabawy. Nie gwarantuję, że wersje przygotowane pod Windowsa 95/98 będą działać także na nowszych systemach, ale gdyby ktoś był zainteresowany, to może sobie sam sprawdzić. W linku wyżej znajduje się także wiele materiałów, na przykład skan pierwszego artykułu Dewdneya z 1984, od którego w zasadzie wszystko się zaczęło. Jako wisienkę dorzucam jeden z wielu filmików przedstawiających wizualizację walki między dwoma programami.

Exit mobile version