Praca z mainframe – awaryjne lądowanie

Właśnie minął 950 rok jednej z wielu załogowych misji kolonizacyjnych projektu „Ziemia2”. Celem podróży jest oczywiście gwiazdozbiór Lutnia, w którym najtęższe umysły wytropiły obiecujące ciała niebieskie. Według ekspertów tamtejsze planety mogą być na tyle podobne do Ziemi że z pewnością warto spróbować postawić nań ludzką stopę. Być może jedna z nich będzie nadawała się nawet do bezzwłocznego zamieszkania – to misja rozpoznawcza z jaką skierowano tutaj naszą załogę międzygwiezdnego statku o nazwie kodowej z/OS'ia_v18 pod dowództwem Pana Twardowsky'ego. Po wieloletnich konfliktach na rodzimej Ziemi, które totalnie wyniszczyły środowisko, każdy skrawek stabilnego gruntu pod nogami będzie błogosławieństwem dla ludzkości. W międzyczasie pojazd kosmiczny pieszczotliwie ochrzczony jako „Zosia” zbliżył się do jednej z planet w układzie Kepler-20. 

Jeden z najważniejszych systemów na statku - JES2 - już od jakiegoś czasu przeprowadzał długą i żmudną procedurę przywracania świadomości członkom załogi, którzy ostatnie kilkaset lat przeleżeli jak pierogi w zamrażarce. Według procedur w pierwszej kolejności wybudzony został kapitan, który to jest odpowiedzialny za miękkie lądowanie. Reszta załogi oraz pasażerowie zostaną wypuszczeni po bezpiecznym przyziemieniu statku. Podczas odbierania rutynowego raportu kapitanowi rzucił się w oczy podejrzany komunikat jednego z zadań: „Ended- Not OK Due to ntoskrnl.exe Update Failure”. Co gorsza jest to kluczowe zadanie w procesie lądowania na powierzchni planety. Zaburzenie całego procesu bez odpowiedniego nadzoru doprowadzić może do katastrofy. Kapitan szybko przeanalizował sytuację i podjął bardzo odważną decyzję – postanowił przejść na sterowanie ręczne, a następnie samodzielnie wylądować Zosią na powierzchni docelowego Keplera-20f.

Jeśli chodzi o procedurę to ze względów bezpieczeństwa nie była ona zapisana nigdzie w systemie statku. Kapitan musiał zajrzeć do analogowych notatek na swoim tablecie, aby przypomnieć sobie, co krok po kroku musi być wykonane. Jak zwykle początek zapowiadał się nad wyraz banalnie. Wedle instrukcji na wstępie należało utworzyć i wypełnić membra w odpowiednim gotowym już datasecie. Notatka oczywiście spłyciła wszystko głosząc „stwórz plik w folderze i napisz w nim coś”. Twardowsky wiedział mniej więcej co go czeka i że może to jednak nie być tak proste jak na domowym symulatorze lotu, gdzie wystarczy kliknąć dwa razy na pulpicie i już się coś dzieje. 

Po zalogowaniu się w głównym terminalu kapitan przeszedł do interaktywnego systemu zwiększania produktywności i wybrał opcję 2 - Edytor. Wprowadził docelową ścieżkę gdzie miał znaleźć się niezbędny „member” i dla pewności trzy razy zweryfikował jej poprawność.

Jako że folder… Znaczy się Data Set… Jako że Data Set już był przygotowany to nie pozostało nic innego jak zatwierdzić wprowadzoną ścieżkę. Po kliknięciu klawisza [Ctrl] oczom kapitana ukazał się ISPF Editor w całej swej okazałości.

Mina Twardowskiego była jednoznaczna. Grymas na twarzy jasno wskazywał na to, że już nie za bardzo wie co się tutaj dzieje. Niestety, na zajęciach z obsługi tej aplikacji kapitan wolał chodzić na wagary i zająć się rzucaniem zgniłymi jabłkami w okna placówki hospitalizującej pingwiny. Wtedy wydawało mu się to zabawne, teraz gorzko żałował, że nie poświęcił swojego cennego czasu na naukę. Nie pozostało nic innego jak zasięgnąć pomocy u źródła. W tej materii akurat nie trafiło na byle kogo. Notatki w tablecie na każdej stornie miały w rogu zapisany dużymi literami znak klawisza F1. To właśnie ten przycisk na klawiaturze otworzył przed kapitanem bezkresne połacie tekstu pomocy do uruchomionej aplikacji.

Po przewertowaniu niemałej ilości stron wsparcia wszystko stało się trochę jaśniejsze. Wygląda na to, że wbrew pozorom obsługa programu nie jest taka trudna jakby się wydawało.

Pierwsza linijka ekranu edytora wygląda jak jakieś menu. Akurat ten twór Twardowski widział pierwszy raz na oczy i wolał nie ryzykować interakcji z tą częścią interfejsu z uwagi na zaistniałą sytuację awaryjną. Dalej mamy podstawowe informacje „co i gdzie” czyli że edytujemy zasób HERC01.NOTEPAD(LANDING) wraz z informacją jakie kolumny są aktualnie widoczne. Nieco niżej znajduje się linijka Command gdzie edytor oczekuje na polecenia mające przykładowo wpływ na cały dokument. Z prawej strony opcja Scroll służy do przełączania trybu przewijania. Reszta ekranu pomiędzy Top of Data i Bottom of Data to treść dokumentu. Wyjątkiem jest charakterystyczne miejsce po lewej stronie które aktualnie jest wypełnione czerwonymi kropkami. To właśnie w tym obszarze wyświetlane są między innymi numery wierszy. Tam też wprowadzamy polecenia dla konkretnych linii które niesamowicie ułatwiają pracę.

Po zastrzyku wiedzy wystarczyło wykorzystać ją w praktyce. Po powrocie do edytora Twardowsky, chcąc przesunąć kursor w odpowiednie miejsce ekranu aby rozpocząć pisanie, niefortunnie trafił palcem w prawy przycisk [Ctrl]. To co stało się z ekranem było lekkim zaskoczeniem, oto całe miejsce na wpisywanie tekstu zniknęło!

Kapitan podrapał się po głowie, głośno westchnął i zrozumiał co się przed chwilą wydarzyło. System statku Zosia pod przyciskiem [Ctrl] tak na prawdę ma to co dzisiejsza młodzież uważa za [Enter], a z kolei przycisk [Enter] to w rzeczywistości tylko przejście do nowej linijki. Ot nowoczesne technologie w staroświeckim wydaniu stwierdziły, że skoro nic nie wpisano to można się pozbyć pustych wierszy. Nikt przecież nie mówił że w statku kosmicznym jest kierownica i że będzie wybitnie łatwo.

Wracając jednak do edycji pliku… Zniknięcie linijek było oczywiście na początku problematyczne, jednak informacje spod przycisku F1 zwiększały pewność siebie u operatora edytora. Chwila zastanowienia… Co trzeba zrobić aby z powrotem pojawiły się nowe linie? W miejscu gdzie wpisuje się polecenia dla wierszy (z lewej strony) należy wprowadzić literkę „i” jak insert oraz wpisać tuż po niej liczbę żądanych elementów która ma się pojawić. Padł rozkaz dla edytora: i7 na początku w zastrzeżonym funkcyjnym obszarze. Edytor posłusznie wykonał zatwierdzoną komendę prezentując gotowe do wypełnienia miejsce na ekranie.

Wybornie. Twardowskiemu najwyraźniej spodobał się ten jakże kulturalny sposób dialogu z programem. Z zapałem przystąpił do przepisywania zawartości tajnego notatnika z zaklęciem pozwalającym na wznowienie procedury lądowania kosmicznego pojazdu. Po kilku minutach dzieło było gotowe. No może nie do końca…

W tej całej pracy wybitnie coś się nie zgadza. Twardowsky wytrzeszczył oczy porównując to co prezentował ekran konsoli i to co miał w swoich kapitańskich zapiskach. Druga linijka powinna być za obecnie szóstą, piątej powinno nie być, a całość powinna zostać przesunięta o 7 znaków w prawo i jedną linijkę w dół. Już nawet nie wspominając o literówkach… Pierwszą myślą było przepisywanie wszystkiego od nowa. Na szczęście kapitan sam w myślach siebie skarcił stwierdzając dobitnie, że nie po to studiował pomoc do programu aby teraz zachowywać się w tak dziecinny sposób. W ruch poszła klawiatura, wiedza analityczna oraz bezgraniczna ciekawość. Po chwili ekran edytora był gotów do działania.

Dla pewności kapitan pozbył się niepotrzebnych znaczków pozostawiając sobie samą esencję tego co ma się wykonać. Dodajemy analogicznie jak wcześniej jedną linijkę na początku, następnie wykonujemy przesunięcie linii (M jak Move) do miejsca tuż za przedostatnią (A jak After), dodatkowo usuwany nadmiarową (D jak Delete), a na koniec tego wszystkiego polecenie CHANGE zamienia słówka w całym dokumencie... 

Łatwizna! Zostało jeszcze tylko wprowadzić dla pewności choćby spację w pierwszej linii aby nie zniknęła tak jak ostatnio, przesunąć wszystko o 7 znaków w prawo i możemy powitać ten wyśmienity kawał koduy programu, napisany w starożytnym języku zwanym COBOL.

Edytor posłusznie wykonywał wszystkie zadane mu polecenia. Nie było chwili zwątpienia, nie było momentu zawahania ze strony systemu jak i samego kapitana gdy już oswoił sie z aplikacją. Nawet gdy przypadkiem nasz bohater wpisał coś gdzieś gdzie nie trzeba to wszystkie komunikaty były przejrzyste i logiczne. Twardowsky aż pod nosem zaczął cytować swojego ulubionego poetę z dawnych lat: „O kurczę jak ja kocham życie, właśnie pije sobie drinka na kapitańskim mostku, kod w edytorze sformatowany, najedzony liofilizatami z lodówki. Nic mi więcej nie potrzeba…” W skrócie, jakby systemy pokładowe Zosi miały nagrania skowronków to by właśnie teraz grały w tle, a rozmrożona reszta załogi z pewnością zaczęła by klaskać.

Cała sielanka nie trwała zbyt długo. Tuż po tym jak kapitan wydał w edytorze ostateczne polecenie SAVE, kolejna strona instrukcji i procedur awaryjnego lądowania uświadomiła naszego bohatera co go jeszcze czeka… Nigdzie w systemie przecież nie było zadania które wykorzystało by stworzony właśnie plik. Gdzie kompilacja kodu? Co z uruchomieniem programu? Systemy pokładowe Zosi już wiedziały że będzie to z pewnością długa noc w cieniu Keplera-20f. Robotyczne ramie zaczęło zawczasu ładować papier do drukarki gdzie proces JES2 będzie niedługo wypluwał nowe SYSOUT’y. Swoją drogą czemu na misje nie zdecydowali się wziąć systemu JES3? Czyżby wyższa cyferka nie była taka super? Tak czy inaczej wygląda na to, że przed kapitanem Twardowskym jeszcze niejedno wyzwanie…