home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1997 #3
/
amigamamagazinepolishissue03-1
/
ma_1995
/
11
/
ami026.txt
< prev
next >
Wrap
Text File
|
1997-04-07
|
10KB
|
189 lines
/* jak na snoopdos 3.0 to troszke chyba za dlugie... mozna uciac
sporo lania wody, nawet ja bym sie zmiescil w 5kb -> jarek */
SNOOPDOS 3.0
<a>Kamil Iskra
<txt>SnoopDOS jest programem, sîuûâcym do "podglâdania".
Umoûliwia on monitorowanie niektórych czynnoôci, wykonywanych
przez inne programy.
Zacznijmy moûe jednak od krótkiego "rysu historycznego".
Na poczâtku byî Chaos. Programy, aby sië uruchomiê, potrzebowaîy
przeróûnych zewnëtrznych plików. Gdy tych plików nie znajdowaîy,
po prostu sië nie uruchamiaîy, nie informujâc uûytkownika, czego
im brak, czasami na dodatek zawieszajâc komputer. Uûytkownicy
klëli, na czym ôwiat stoi... Aû znalazî sië w koïcu Jeden
Sprawiedliwy. Wpadî on na tyleû genialny, co banalny pomysî. Jak
chyba wszyscy wiedzâ, system Amigi to przede wszystkim
biblioteki, zawierajâce funkcje. Dostëp do tych funkcji jest
rozwiâzany za pomocâ tzw. tablic skoków. Sprytny program moûe
"wskoczyê" we fragment takiej tablicy, odpowiedzialny za
wywoîywanie pewnej funkcji systemu operacyjnego, i wykrywaê próby
uûycia tej funkcji przez inne programy. Tym sprytnym programem
byî wîaônie SnoopDOS, a "Sprawiedliwym" -- jego autor, Eddy
Carroll z Irlandii.
SnoopDOS w wersjach 1.x byî programem bardzo prostym: wyôwietlaî
w oknie typu CON: informacje o wîaônie wykonywanych funkcjach
biblioteki dos.library, która jest odpowiedzialna za wszelkie
operacje na plikach, katalogach itp. Program byî prymitywny, miaî
znikome moûliwoôci konfiguracyjne. Zaczëîy wiëc powstawaê pisane
przez Naôladowców programy-monitory, podobne do SnoopDOS-a, ale
bardziej rozbudowane i wygodniejsze w obsîudze. Bardzo popularny
staî sië np. DOSTrace, napisany przez Petera Stuera. Program ten
miaî okno z gadûetem przewijania, dziëki któremu moûna byîo
sië cofnâê do wczeôniej wykonywanych funkcji. Konkurencja byîa
wiëc dla uûytkowników, jak to zwykle bywa, korzystna. Oprócz
Naôladowców pojawili sië jednak równieû Podszywacze. Ûycie
uîatwiaî im fakt, ûe SnoopDOS byî rozpowszechniany wraz z kodem
úródîowym -- wystarczyîo wiëc zmieniê numer wersji, dopisaê
w dokumentacji jakieô bzdury o tym, co sië w programie zmieniîo,
i "wypuôciê" go w ôwiat jako najnowszâ wersjë. Co gorsza, te
"nowe wersje" czësto byîy "wyposaûone" w róûne zîoôliwe wirusy.
To spowodowaîo, ûe nigdy nie pojawiîa sië wersja oznaczona
symbolem "2" -- po 1.7 nastâpiîa od razu 3.0. No, nie tak
od razu, bo prace nad niâ trwaîy niemal rok (a prace nad wersjâ
1.0 -- niecaîy tydzieï).
Wersjë 3.0 znalazîem w Aminecie, w katalogu "util/moni". Archiwum
o nazwie "snoopdos30.lha" zajmuje 128 KB. Pomimo niemiîych
doôwiadczeï z przeszîoôci, autor postanowiî opublikowaê równieû
kod úródîowy -- znajduje sië on w archiwum "snoopdos30_src.lha" o
dîugoôci 228 KB. Program ten nie jest juû wîaôciwie nowoôciâ --
liczy sobie ponad rok -- nie widziaîem jednak dotychczas ûadnej
wzmianki na jego temat...
Muszë przyznaê, ûe po rozpakowaniu archiwum byîem przeraûony --
dokumentacja programu liczy bowiem 238 KB! Po pierwszym
uruchomieniu programu zrozumiaîem jednak, dlaczego. Jego
moûliwoôci sâ olbrzymie!
SnoopDOS 3.0 zostaî napisany zgodnie z obecnie panujâcymi w
ôrodowisku Amigi trendami -- program wymaga OS 2.0, ma GUI
przystosowujâce sië do uûywanej na ekranie czcionki, dokumentacjë
w standardzie AmigaGuide, jest zlokalizowany jëzykowo (w pakiecie
"WFMH Locale PL" znalazîem wykonany przez Konrada Dubiela polski
"catalog").
Po uruchomieniu otwiera sië okno, jak na rysunku 1. Przewaûajâca
jego czëôê jest zapeîniona informacjami o wykonanych bâdú wîaônie
wykonywanych funkcjach systemowych. W tym wypadku wyôwietlane
byîy nastëpujâce informacje: liczba porzâdkowa, nazwa procesu
wywoîujâcego funkcjë, nazwa funkcji, nazwa obiektu, dla jakiego
funkcja zostaîa wywoîana (np. nazwa pliku do skasowania), opcje
(np. czy plik ma byê otwarty do odczytu, czy do zapisu) oraz
rezultat wykonania funkcji.
Przeznaczenie wiëkszoôci gadûetów, znajdujâcych sië poniûej, jest
chyba oczywiste -- nie jest zresztâ moim celem opisanie obsîugi
programu, a raczej wskazanie cech wyróûniajâcych go spoôród
innych tego tupu. Warto wiëc zwróciê uwagë na gadûet Pauza. Jego
uûycie pozwala monitorowaê programy krok po kroku. Program
wywoîujâcy którâô z monitorowanych przez SnoopDOS funkcji jest
zatrzymywany, w oknie jest wypisywane, co program usiîuje zrobiê.
Dopiero po naciôniëciu spacji SnoopDOS wykonuje danâ czynnoôê --
bywa to bardzo przydatne, gdy chcemy spokojnie przeôledziê, co
program "kombinuje", albo gdy np. program jest tak úle napisany,
ûe przy braku jakiegoô pliku natychmiast resetuje komputer -- bez
Pauzy nie zobaczylibyômy, jakiego pliku mu brak... Interesujâcâ
moûliwoôciâ jest równieû tworzenie tzw. logu -- bieûâcego raportu
z pracy. Moûna go skierowaê zarówno do pliku, jak i na drukarkë
bâdú do portu szeregowego.
SnoopDOS jest w bardzo szerokim stopniu konfigurowalny, co
przedstawia rysunek 2. Aby zmieôciê wszystkie okna naraz,
musiaîem zwiëkszyê rozdzielczoôê ekranu, zmniejszajâc
równoczeônie czcionkë. Konfiguracja dzieli sië na dwie czëôci:
Ustawienia i Funkcje. Pierwsza czëôê umoûliwia skonfigurowanie
ôrodowiska pracy. Szczególnie interesujâce wydajâ sië byê tu dwie
opcje: moûliwoôê wybrania czcionki dla tekstów wyôwietlanych w
gîównym oknie (opîaca sië wybraê czcionkë maîâ, aby jak najwiëcej
informacji na raz w oknie sië zmieôciîo) oraz moûliwoôê
ustawienia formatu wyôwietlanych informacji. Dla komfortowego
przeprowadzenia tej drugiej czynnoôci mamy zresztâ specjalne okno
-- Edytor formatu. Umoûliwia ono ustalenie, jakie informacje
chcemy mieê wyôwietlane (szerokâ gamë moûliwoôci widaê na
rysunku, niektóre z nich mogâ byê przydatne przede wszystkim
programistom) i jakâ szerokoôê majâ mieê poszczególne pola. Ja
zdecydowaîem sië usunâê liczbë porzâdkowâ, gdyû mnie przynajmniej
wydaîa sië ona zbëdna. Dziëki temu mogîem jeszcze trochë
poszerzyê pole Nazwa obiektu.
Okno Funkcje uîatwia ustalenie, co ma byê monitorowane. Wersja
3.0 SnoopDOS umoûliwia nie tylko monitorowanie funkcji z
biblioteki dos.library, ale równieû kilku funkcji z innych
bibliotek (exec.library, intuition.library, icon.library i
rexxsyslib.library). Szczególnie monitorowanie icon.library bywa
przydatne -- umoûliwia wykrycie, jakich to tooltype'ów poszukujâ
programy... Na ustaleniu, które funkcje majâ byê monitorowane,
rola okna Funkcje sië nie koïczy. Gadûet Filtr programów
umoûliwia ustalenie nazw procesów, które majâ byê monitorowane --
program akceptuje standardowy pattern AmigaDOS-u, umoûliwiajâc
tym samym monitorowanie kilku wybranych procesów naraz:
"(proces1|proces2|proces3)" bâdú niemonitorowanie jakiegoô
procesu: "~(proces)". Bardzo przydatne jest równieû to, ûe
standardowo wyîâczone jest monitorowanie ROM-u i
Workbencha/Shella -- zmniejsza to znacznie liczbë informacji,
wyôwietlanych przez program. Jeôli komuô jednak na tym
szczególnie zaleûy, moûe to, oczywiôcie, wîâczyê.
Dla ludzi czësto uûywajâcych programów, które korzystajâ z
ixemul.library (a wiëc zwykle róûnych programów przeniesionych z
Unixa, jak np. kompilatora GNU C), przydatna moûe byê takûe
moûliwoôê monitorowania pakietów. ixemul.library komunikuje sië z
systemem zapisu bez poôrednictwa dos.library, bezpoôrednio za
pomocâ tzw. pakietów. Powoduje to, ûe inne programy monitorujâce
"nie widzâ", co robiâ programy korzystajâce z IXEmul -- w
SnoopDOS wystarczy zaznaczyê jeden gadûet, aby problem zniknâî.
Dla tych, którym monitorowanie trzynastu funkcji dos.library nie
wystarcza, autor dodaî równieû tzw. debugger pakietów --
umoûliwia on podglâdanie wszelkiego rodzaju aktywnoôci, zwiâzanej
z systemami zapisu. Trzeba jednak byê niezîym guru, aby coô z
tego zrozumieê, gdyû program wyôwietla informacje w formie
niewiele mówiâcych liczb bâdú adresów pamiëci.
Ciekawe moûliwoôci konfiguracyjne moûna znaleúê równieû w górnym
menu. Szczególnie cenna wydaje sië moûliwoôê wyrównywania nazw
obiektów do lewej bâdú do prawej krawëdzi. Choêbyômy nie wiem ile
miejsca przeznaczyli na pole Nazwa obiektu, to i tak znajdâ sië
nazwy dîuûsze -- zwykle zaleûy nam na zobaczeniu koïca ôcieûki
dostëpu, wiëc ustawiamy wyrównywanie do prawej krawëdzi. Gdy
chcemy jednak zobaczyê poczâtek ôcieûki dostëpu do jakiegoô
"tasiemca", to wystarczy przeîâczenie jednej opcji w górnym menu
i juû widzimy to, co chcemy widzieê. Moûna równieû, co zresztâ
widaê na rysunku 2., wyîâczyê pokazywanie tzw. linii stanu i
gadûetów -- wtedy caîa przestrzeï gîównego okna jest przeznaczona
na cenne informacje o monitorowanych programach... Osobne menu
Bufor umoûliwia równieû zapisanie zawartoôci bufora z
informacjami o monitorowanych funkcjach bâdú tylko widocznego w
danym momencie jego fragmentu do pliku lub do clipboardu, jak
równieû wyczyszczenie bufora.
SnoopDOS ma równieû rozbudowany interfejs ARexxa z ponad 100
komendami.
Z tego artykuîu nietrudno sië chyba zorientowaê, ûe uwaûam
SnoopDOS za wspaniaîy program. Bardzo cennâ jego cechâ jest
pewnoôê dziaîania. Podczas kilkugodzinnych eksperymentów, które z
nim przeprowadzaîem, czytajâc równoczeônie instrukcjë i robiâc
piëê innych rzeczy, jak to mam w zwyczaju, system operacyjny
pozostawaî w doskonaîej stabilnoôci, a SnoopDOS ani razu nie
zachowaî sië niezgodnie z oczekiwaniami. Jest to po prostu
doskonale przetestowany program. Jedynâ, moim zdaniem, jego wadâ
jest wielkoôê -- program zajmuje niemal 100 KB. Nie jest to duûo,
zwaûywszy na jego moûliwoôci, ale trudno nie oprzeê sië wraûeniu,
ûe mógîby byê znacznie krótszy, gdyby nie miaî interfejsu
ARexxa (którego przydatnoôê w tego typu programie jest bardzo
dyskusyjna), nie zaszkodziîoby teû, gdyby caîa czëôê
konfigurujâca byîa wydzielona w osobnym programie. SnoopDOS jest
(IMHO) rolls-roycem wôród programów monitorujâcych, tak samo
jak Directory Opus wôród manipulatorów plikowo-katalogowych i
MUI wôród interfejsów uûytkownika. Takie programy majâ to do
siebie, ûe polaryzujâ opinie: zwykle albo sië je uwielbia, albo
sië ich nie cierpi. Ja zaliczyîbym siebie do mniej radykalnego
skrzydîa tej pierwszej grupy.