---------------------------------------------------------------------------------------------------
					ARCHI - CLARIN
				   	    BUFFER
					   
	  (protokoly sterujace mserverS, realizacja zadan przez  MAIN-LOOP-BUFFER)
---------------------------------------------------------------------------------------------------

Uwaga! mozna przypisac interface "eth0" lub "eth1" do serwerow: mserverS, mserverN, mserverF
	w tym celu nalezy otwozyc pliki w edytorze tekstowym:
	dla mserverS: /home/SYSBUF/runserverS
	dla mserverN: /home/chn21/runserverN
	dla mserverF: /home/chn22/runserver
	i wybrac odowiednia opcje ustawienia.
	
defaut: serwery nasluchuja na obydwu interfaces (opcja testowa)

---------------------------------------------------------------------------------------------------


1. SERVER-S (serwer sterujacy BUFFER) dziala automatycznie po boot OS w BUFFER
2. do przekazaywania polecen sluzy: clientS, ktory dziala w CONTROLLER ARCHI
3. Polecenia sa przekazaywane w postaci stringow: W00XXi=<dane> (opis detali ponizej)
4. Odpowiedz mozna odczytc wysylajac: clientS "<address IP>" "R00"
	np. w wersji ...
		char polecnie[]="clientS "<addr IP>" "R00";
		(FILE*cmd=popen(polecenie, "r");
			fgets(str,2048,cmd);
		pclose(cmd);
		... 

   (lub poprzez udostepniona funkcje: int clientS(const char*polecenie,char*reply));
   (clientS.o, clientS.h) //przy wystapieniu bledu zwraca kod bledu w stringu reply	

5. Polecnie dla SERVER-S zapisywane jest do: /mnt/tmp/W00 (BUFFER)
6. Odpowiedz SERVERa-S znajduje sie: /mnt/tmp/R00 (BUFFER)
7. Nalezy pamietac o sprawdzeniu czy mountRAM jest zamontowany jako ramdisk
   w celu zmniejszenia liczby operacji zapisu.
   (montowanie powinno byc automatyczne jesli dziala usluga mloopBd)  
   Przy pierwszej instalacji nalezy sprawdzic czy montowanie dziala prawidlowo. Skrypt znajduje sie:
   /home/SYSBUF/mountRAM. Zatrzymanie uslugi mloopBd (#service mloopBd stop) odmontowuje 
    automatycznie /mnt/tmp/. Katalog /mnt/tmp/ jest zakldany podczas instalacji.
8. Nalezy pamietac o przekopiowanu pliku md5 do /home/SYSBUF/ (od wersji 2 instalatora aplikacja 
   md5 jest instalowana automatycznie i nie trzeba kopiwac recznie)
9. Jesli sa bledy w aplikacjach to mozna zmienic w libtasksB.c zmienna test_mode=0 na test_mode=1
   wowczas aplikacja bedzie wypisywac wiecej informacji co robi. (default test_mode=1)
   (jesli dostaczone sa sources w C. Kompilacja: compile-ML //kompiluje main-loop
   skrypt: cp-install przenosi aplikacje main-loop do katalogu INSTALL/MAIN-LOOP)

Aplikacja instalacyjna install-buffer jest katalogu INSTALL-BUFFER

UWAGI: Po zainstalowaniu BUFFERa i po uruchomieniu uslugi moopBd (co stanie sie po boot komputera)
       zatrzymywana jest usluga Firewall (iptables stop) oraz SELinux przechodzi do 
       do stanu permisive (setenforce 0).
	
       W czasie instalacji oprogramowania BUFFERa instalowni sa uzytkownicy:
	chan21 oraz chan22. W katalogach /home/chn21 oraz /home/chn22 znajduja sie
	odpowiednio serwerwery mserverN oraz mserverF. Serwery obslugija transport 
	plikow. Do obslugi besposredniej komunikacji z klientami zewnetrznymi sluzy
        mserverF. Natomiast do komunikacji BUFFER <-> NODES sluzy mserverN. Obydwa
        serwery dzialaja jako zwykli uzytkownicy, a jedynie mserverS (sterujacy) dziala
        z prawami root (uid=0). Polaczenie z klientami zewnetrznymi jest szyfrowane oraz
        przekaz plikow nie bedzie realizowany jesli operacja nie znajduje sie na liscie:
	/home/bufR/.listRW (lista jest "hidden"). 

	Wszystkie aplikacje BUFFERa (oprocz mserverN i mserverF) znajduja sie w katalogu:
        /home/SYSBUF/ i tak:
	- mloopBUF - "main-loop" (default odczyt polecen przez petle co 1s) uruchmia ja
                      demon zainstalowany w /etc/init.d/mloopBd (dziala przy boot komputera
		      na poziomach 345 (inittable)
	- mserverS - serwer sterujacy - dziala jako demon i jest uruchaminy przez mloopBUF.
		     (servery mserverN oraz mserverF sa uruchamiane i zatrzymywane poleceniami 
   		      opisanymi ponizej w tabeli polecen)
	- buf.config - zawiera dwa parametry mozliwe do ustawienia przez admina.
		       Pierwszy to nr portu na ktorym nasluchuje polecen mserverF default=8200
		       Drugi to ograniczenie rozmiru plikow jakie przyjmowane sa do 
		       /home/bufW/ od klientow zewnetrznych. Ten parametr mozna zmieniac po
			instalacji, ale nie nalezy tego robic w pozniejszym okresie, poniewaz
			jesli byly przekazane wczesniej pliki o rozmirze wiekszym niz wprowadznie
			pozniej ograniczenie to plikie ten nie beda mogly byc przesylane 
			do pobrania poniewaz ograniczenie dziala w obie strony READ/WRITE.
	-  md5 	   - aplikacja na bazie md5sum, ktora mozna wywolac poleceniem (opis ponizej)
	
	- mountRAM - zawiera skrypt realizowany przez mloopBUF poodczas inicjalizacji po 
		     boot komputera (np. montuje tmpfs na /mnt/tmp/, montuje dyski 
		     mount /dev/sdb1 /home/bufR i /dev/sdc1 /home/bufW
		     ponadto zatrzymuje iptables i SELinux.
	
dyski 1 i 2 powinny byc zamontowane na /home/bufR oraz /home/bufW 
		    sluza do buforowania przekazu plikow client -- BUFFER -- NODES
		    bufR jest przeznaczomy dla plikow do odczytu (operacja READ from ARCHI)
		    bufW jest przeznaczony do zapisu (operacji WRITE to ARCHI)
		    klienci zewnetrzni moga przeslac lub pobierac pliki jesli zadanie 
                    przkazu znajduje sie na /home/bufR/.listRW - informacja o zapisie
		    zadania na liste znajduje sie w Serwerze Kolejki Zlecen. 

Klienci zewnetrzni maja dostep do BUFFER za pomoca aplikacji read-from-archi oraz write-to-archi,
	ktore sa skompilowanimi wraperami dla aplikacji clientR oraz clientW. Takie rozwiazanie
	zostalo przujeste w celu zapisu konfiguracji w #define a nie w skryptach. Ponadto,
	aplikacje klientow zawieraja machanizm szyfrowania i zqabezpieczenia typu:
	anti-reverse-engineering. Szczegoly uzucia tych aplikacji sa w plikach README. 

Synchornizacja czasu. W aplikacji clientnS oraz clintSS zastosowana zostala specjalna procdura
	ktora mozna wywowala przez np. clientS ",addres IP mserverS" "TRIMTIME". Po jej wywolaniu
	RT zegar komputera na ktorym dziala mserverS synchornizuje sie do czasu komputera 
	na ktorym dziala clientS lub clientSS. Osiagana dokladnosc synchronizacji byla ok. 22-25us.
 	UWAGA! mserverF (oblsugi klientow zewnetrznych) wymaga cislej synchornizacji czasu poniewaz
		 mechanizm szyfrowania jest ze zmiennym w czasie kluczem. Default jest 24 godziny,
		 ale mozna okres wymiany klucza do pojedynczych sekund (w sieciach lokalnych).  

---------------------------------------------------------------------------------------------------

				Aplikacje w katalogu CLIENT-S

"Stand-alone" aplikacje klientow znasjuja sie w katalogu CLIENT-S
1. scanner jest aplikacja ktora sluzy do wyszukania wszsytkich msserverS (SERVER-S) w sieci
   w zakrsie 0-255 (przy stosowaniu funkcji bibliotecznych zakres skanowania mozna ustawic).
   Uzycie:
	./scanner "H00" (H00 jest zadaniem podania nazw serwerow)
	zwraca liczbe dzialajacych i dostepnych serwerow

2. Aplikacja (funkcja biblioteczna ma inne parametry) clientS
	jest przeznaczona do przesylania polecen do main-loop, ktora dziala jako demon.
        Polecenie przesylane sa do bufora /mnt/tmp/W00
	main-loop po wykonaniu zadania pozostawia odpowiedz w buforze /mnt/tmp/R00
	Uzycie: 
		./clientS "<adres IP>" "<polecenie>" (polecnie opisane sa ponizej)
	np.: 	./clientS "10.0.0.101" "H00" 
		zwraca nazwe serwera (w przypadku BUFFER jest to SERVER-S)
		./clientS "10.0.0.101" "W00GP1=mserverS" 
		zwraca pid procesu mserverS np. W00GP=4755

3. Aplikacja (funkcja biblioteczna ma inne parametry) clientSS
	dziala tak samo jak clientS z ta roznica, ze zamiast parametru <addr IP>
	nalezy wpisac nazawe serwera do ktorgo wysylene jest polecenie.
	np.  jesli jest to BUFFER to:
	./clientSS "SERVER-S" "H00" "<polecenie>" (lista dostepnych polecen jest ponizej)	
Uwaga. Jesli zostanie wyslane polecnie nie znajdujace sie na liscie polecen, ktore
       moze zrealizowac main-loop wowczas zwraca blad lub nie odpowiada
	i w stringu reply znajdzie sie wyslane polecenie. Ponadto mserverS nie akceptuje 
	zadnych polecen, ktore nie znajduja sie na liscie ponizej. 



 

---------------------------------------------------------------------------------------------------
				 	PROTOKOLY KOMUNIKACYJNE 
				  	 CONTROLLER <-> BUFFER
---------------------------------------------------------------------------------------------------



				Protokol sterowania poprzez SERVER-S 
					  (LISTA ZBIORCZA)

				Polecenia przekazywane do bufora W00

--------------------------kody operacji przesylane przez /mnt/tmp/WOO -----------------------------

postac:		W00XXi
znaczenie: 	W00 	- nazwa bufora 
znaczenie:	XX 	- oznacznie zadania
znacznie:	i 	- 0 - brak parametru, 1,2,..- liczba param. w QUERY-string
---------------------------------------------------------------------------------------------------


------------------------------- start/stop SERVER-N oraz SERVER-F ---------------------------------

zadania przekazywane przez W-bufor
W00SF1=1 		- mserverF start //transfers files: mserverF <-> extrn. clients
W00SF1=0 		- mserverF stop  
W00SN1=1 		- mserverN start //transfer files: mserverN <-> NODES
W00SN1=0 		- mserverN stop
---------------------------------------------------------------------------------------------------

------------------------- operacje na liscie zadan w /home/bufR/.listRW ---------------------------

W00TW1=<QUERY-string> 	- dzialnie zapisuje QUERY-string do /home/bufR/.listRW
W00TD1=<QUERY-string> 	- kasuje QUERY-string w /home/bufR/.listRW
W00TA0   		- kasuje wszyskie zadania zapisane w /home/bufR/.listRW 
---------------------------------------------------------------------------------------------------

------------------------------- operacje na plikach w /home/bufR ----------------------------------

W00RD1=<filename> 	- kasuje plik w /home/bufR
W00RA0 			- kasuje wszystkie pliki w /home/bufR
---------------------------------------------------------------------------------------------------

------------------------------- operacje na plikach w /home/bufW ----------------------------------
W00TR1=<QUERY-string> 	- zmienia nazwe pliku w /home/bufW/
W00WD1=<filename> 	- kasuje plik w /home/bufW
W00WA0 			- kasuje wszystkie pliki w /home/bufW
---------------------------------------------------------------------------------------------------

--------- operacje sprawdzania zakonczenie transferu plikow dla SERVER-F oraz SERVER-N ------------
W00FW1=<filename> - sprawdza zakonczenie transferu pliku clientF -> BUFFER
W00FR1=<filename> - spr. zakonczenia transferu pliku BUFFER -> clientF
W00NR1=<filename> - spr. zakonczenia transferu pliku NODE -> BUFFER
W00NW1=<filename> - spr. zakonczenia transferu pliku BUFFER -> NODE
---------------------------------------------------------------------------------------------------

---------------------------------------- funkcje systemowe ----------------------------------------
W00SR1=<filename> 	- zwraca info o pliku w bufR
W00SW1=<filename> 	- zwraca info o pliku w bufW
W00TT1=<time_data> 	- sync czasu do 100usekund 
W00MD1=<filename> 	- robi md5sum [filename]
W00RB0  		- reboot
W00SH0 			- zwija system i wylacza BUFFER (shutdown -h now)
W00GP1=<filename> 	- pobierz pid procesu
---------------------------------------------------------------------------------------------------





			      SPODZIEWANE ODPOWIEDZI W BUFORZE R00
					    (DETALE)



------------------------------- start/stop SERVER-N oraz SERVER-F ---------------------------------


Polecenie:(/mnt/tmp/W00):		Odpowiedz: (/mnt/tmp/R00):

W00SF1=1 				"mserverF=ON" 
W00SF1=0 				"mserverF=OFF"  
W00SN1=1 				"mserverN=ON"
W00SN1=0 				"mserverN=OFF"

Dzialanie serwerow mozna sprawdzic przez wyslanie polecenia:
W00GP1=mserverF				"W00GP=pid_numer" (pid_numer - wartosc pid>0)
					 "W00GP=NULL" jesli serwer nie dziala
					Zwraca "Error01" jesli nie mozna wykonac operacji

W00GP1=mserverN				"W00=pid_numer" (pid_numer>0 oznacza, ze dziala)
					"W00=NULL" (jesli serwer nie dziala)
					Zwraca "Error01" jesli nie mozna wykonac operacji

---------------------------------------------------------------------------------------------------
Odczyt odpowiedzi z linii polecen: #clientS "10.0.0.x" "R00"  



------------------------- operacje na liscie zadan w /home/bufR/.listRW ---------------------------

			zapisuje dane do .listRW potrzebne do uruchomienia procesu READ/WRITE
W00TW1=<QUERY-string> 	postac QUERY-string: "MC=0022683f4852&AR=0001&ID=2211190&FN=1.jpg&SI=0"
			MC -MAC ADRESS serwera klienta dla zarejstrowanej karty np."eth0"
			AR - numer ARCHI (standardowe ARCHI jest 0001)
			ID - ID clienta skladajacego zamowienie
			FN - nazwa pliku (przy zapisie musi byc zgodna z deklaracja w zamowieniu)
			SI - rozmiar pliku (przy zapisie przesyla ta wartos clientW)
			     (W QUERY nalezy wpisac podac SI=0 (WRITE) lub 0/wiekosc pliku (READ)
			      w przypadku READ nie jest sprawdzana wartosc SI. Wartosc SI jest
				porzy zapisie i jest ona przesylana przez clientW) 
			w buforze /mnt/tmp/R00 znajduje sie nastepujaca odpowiedz
			Sukces: odpowie stringiem "W00TW=DONE" w buforze R00
			Blad:	"W00TW=Error01" jesli brak jest dostepu do /mnt/tmp/W00		


			kasuje wpis na liscie: .listRW (dokladniej- wstawia "##" na poczatku linii)
W00TD1=<QUERY-string> 	postac QUERY-string: "MC=0022683f4852&AR=0001&ID=2211190&FN=1.jpg&SI=0"
			Sukces:	"W00TD=DONE" w buforze R00
			Blad: 	"W00TD=Error01" w R00 jesli brak jest dostepu do .listRW
			


W00TA0   		kasuje wszyskie zadania zapisane w /home/bufR/.listRW 
			zwraca do R00 string "W00TA=DONE" lub przy problemie z otwrciem listy
			string "W00TA=Error01"

---------------------------------------------------------------------------------------------------

------------------------------- operacje na plikach w /home/bufR ----------------------------------

W00RD1=<filename> 	kasuje plik w /home/bufR
			filename (nazwa pliku przekazana od bufR np. 201409230056
			zwraca przy sukcesie "W00RD=DONE" do bufora R00
			lub "W00RD=Error01" jesli wystepuje z dostepem do pliku

W00RA0 			kasuje wszystkie pliki w /home/bufR
			Zwraca string do ROO:
			"W00RA=DONE" (sukces)
			"W00RA=Error01" jesli jest problem z dostepem do pliku 
			lub 
			"W00RA=Error02" jesli jest problem z uruchomieniem procesu kasowania plikow
			(problem jest zwiazany w funkcja waitpid(...))

---------------------------------------------------------------------------------------------------

------------------------------- operacje na plikach w /home/bufW ----------------------------------
W00TR1=<QUERY-string> 	zmienia nazwe pliku w /home/bufW/
			postac QUERY-string: <new_filename>&<old_filename> np.:
			"201409230056&moj_plik.jpg"
			zwraca do R00:
			Sukces: "W00TR=DONE"
			Blad: 	"W00TR=Error01" (brak pliku lub problem dostepem)

W00WD1=<filename> 	kasuje plik w /home/bufW
			nalezy podac nazwe pliku po rename i po przeniesieni do node
			lub nazwie klienta podana w zgloszeniu jesli nie bedzie ostatecznej 
			decyzji przeniesienia pliku do ARCHI
			zwraca string do R00:
			Sukces: "W00WD=DONE"
			Blad: 	"W00WD=Error01" jesli jest problem z dostepem do pliku

W00WA0 			kasuje wszystkie pliki w /home/bufW
			Zwraca do R00:
			Sukces: "W00WA=DONE"
			Blad: 	"W00WA=Error01" (blad zwiazany z plikiami)
			lub 
			Blad: 	"W00WA=Error02" (problem z wykonaniem operacji)
				(problem zwiazany jest w waitpid(...))
---------------------------------------------------------------------------------------------------

--------- operacje sprawdzania zakonczenie transferu plikow dla SERVER-F oraz SERVER-N ------------

W00FW1=<filename> - sprawdza zakonczenie transferu pliku clientF -> BUFFER
		    uzycie:
		    W00FW1=201412120005
		    Zwraca do bufora R00
			w przypadku sukcesu: W00FW=SUKCESS
			w przypadku porazki: W00FW=NULL

W00FR1=<filename> - spr. zakonczenia transferu pliku BUFFER -> clientF
		    uzycie:
		    W00FR1=201412120005
		    Zwraca do bufora R00
			w przypadku sukcesu: W00FR=SUKCESS
			w przypadku porazki: W00FR=NULL

W00NR1=<filename> - spr. zakonczenia transferu pliku NODE -> BUFFER
		    uzycie:
		    W00NR1=201412120005
		    Zwraca do bufora R00
			w przypadku sukcesu: W00NR=SUKCESS
			w przypadku porazki: W00NR=NULL

W00NW1=<filename> - spr. zakonczenia transferu pliku BUFFER -> NODE
		    uzycie:
		    W00NW1=201412120005
		    Zwraca do bufora R00
			w przypadku sukcesu: W00NW=SUKCESS
			w przypadku porazki: W00NW=NULL

---------------------------------------------------------------------------------------------------

---------------------------------------- funkcje systemowe ----------------------------------------

W00NM1=<NODE_ID> - 	zapisuje identyfikator BUFORA do /home/SYSBUF przy instalacji
			NODE_ID jest nazwa bufora, ktora nie bedze mozliwa do
			zmiany po pierwszej zmianie 
			Standardowo nazwa jest "BUFF", ale w momencie ustawienia
			RS485 nalezy ta nazwe zmienic na np."B001" (musi byc 8 znakow)

W00SR1=<filename> 	zwraca info o pliku w bufR
			zwraca do R00:
			Sukces:	"W00SR=dlugosc pliku" 
			blad: 	"W00SR=Error03" jesli nie ma pliku lub jest blad i-node
			blad: 	"W00SR=Error04" jesli wystapi blad konwersji w sprintf(...)

W00SW1=<filename> 	zwraca info o pliku w bufW
			zwraca do R00:
			Sukces:	"W00SW=dlugosc pliku"
			blad: 	"W00SW=Error03" jesli nie ma pliku lub uszkodzony jest i-node
			blad: 	"W00SW=Error04" jesli wystapi blad konwersji w sprintf(...)
			
W00TT1=<time_data> 	sync czasu do mniej niz 100usekund 
			nalezy pobrac time_t t (CONTROLLER) wartosc t=liczba sekund od 01.01.1970
			wpisac ja jako string parametr <time_data> i przezlac do bufora za pomoca
			WOTT1=t_zamieniony_na_string
			Zwraca do R00:
			Sukces: "W00TT=<sekundy>&<usekundy>"
			blad: 	"W00TT=Error01" blad zegara przy pobieraniu czasu podczas
						sprawdzania czasu po synchronizacji
				"W00TT=Error02" blad "nie jestes root"
				"W00TT=Error03 - <time_data> jest za krotki

"TRIMTIME" 		zamiast W00TT1=time mozna uzyc querry-string "TRIMTIME" wowczas
			aplikacja klienta zrealizuje ustawienie czasu komputera na ktorym
			pracuje mserverS, zgodnie z czasem jaki jest na kompterze gdzie
			dziala clientS lub clientSS. Dzialanie "TRIMTIME" nie zwraca 
			zadnych odpowiedzie natomiast mozna pobrac wartosc ustawionego czasu
			poprzez odczyt clientS "addr IP mserveraS" "R00". Odczyt jest czasu
			na serwerze jest dokonany natychmiat po "TRIMTIME".  
			
			

W00MD1=<filename> 	robi md5sum [filename]
			zwraca do R00:
			Sukces: "W00MD=RUN" co zonacza, ze proces zostal uruchomony prawidlowo 
				i dziala w tle. Nie czekamy na jego zakonczenie.
			blad: 	"W00MD=Error01" jesli nie mozna otworzyc pliku (brak pliku)
			blad:	"W00MD=Error02" jeli wystapil blad uruchomienia
				(problem zwiazny jest z waitpid(...))

W00MR1=<filename>	pobiera obliczna wartosc md5sum z /home/bufW/<nazwa_pliku>
			nie nalezy dopisywac .md5 po nazwie pliku
			odczytany rezultat jest przekazywany do bufora R00
			blad: 	W00MR=Error01" jesli taki plik nie istnieje (jeszcze)


W00RB0  		reboot
			nic nie zwraca R00
			Uwaga! przed wykonaniem tej operacji nalezy zamknac:
			W00MD - jesli byla taka operacja przeprowadzana 
				sprawdzenie zkonczenia operacji przez sprawdzenie stanu 
				[nazwa_pliku_podana_do procesu].md5 np. moj_plik.jpg.md5
			W00FS1=0 (mserverF)
			W00NS1=0 (mserverN)

W00SH0 			zwija system i wylacza BUFFER (shutdown -h now)
			nic nie zwraca do ROO
			Uwaga! przed wykonaniem tej operacji nalezy zamknac:
			W00MD - jesli byla taka operacja przeprowadzana 
				sprawdzenie zkonczenia operacji przez sprawdzenie stanu 
				[nazwa_pliku_podana_do procesu].md5 np. moj_plik.jpg.md5
			W00FS1=0 (mserverF)
			W00NS1=0 (mserverN)

W00GP1=<filename> 	pobierz pid procesu
			nalezy przeslac nazwe procesu
			Zwraca do R00:
			Sukces:	"W00GP=<pid_procesu>" lub "W00GP=NULL" jesli nie ma takiego 				procesu
			blad: 	"W00GP=Error01" jelsi jest problem z uruchominiem procesu

W00DF1=<dirname>	pobierz rozmiar wolnej przestrzeni katalogu
			np. W00DF1=/home/bufR (zwraca w bajtach)     - np. 15456245603
			    W00DF1=/home/bufW
			jesli wystepuje blad:
			Error=df1 (blad wenetrzny) oznacza ze nie zostala podana miara B,K,M,G
				   w funkcji get_df(katalog, miara, zwracana free_space) 
			Error=df2 (blad wewnetrzny) blednie podano nazwe dirname
				   np. jesli <katalog_nie_istnieje>
			NOTE: ustawienie defaut - funkcja zwraca rozmiar w bajtach
			      przetawienie wymaga zmian w libtasksB.c i kompilacji	   
			NOTE: przy porownaniach sprawdzic poprawnosc czy
			bufR oraz bufW sa katalogami dla zamontowanych dyskow BUFFERa
			tzn. mount /dev/<disk1> /home/bufR
			     mount /dev/<disk2> /home/bufW

W00IM0			pobiera obraz mimikarty flash z OS oraz aplikacjami
			i zapisuje do pliku /home/bufW/bufsys.arch
			NOTE: nalezy usunac "#"  po instalacji w pliku
			/home/SYSBUF/mk_image w linii: # dd if= ... of= 
			plik bufsys.archi musi zostac przeniesiony po pobraniu
			do wybranych NODEow

W00IR0			wykonuje regeneracje OS wraz z aplikacjami na mikikarcie flash
			plik powinien byc wczesniej przeslany z NODE do /home/bufR/bufsys.arch
			Po inatalacji nalezy usunac "#" w pliku /home/SYSBUF/regen 
			w linii: # dd if= ... of=
			Przed regeneracja plik bufsys.arch musi zostac przeniesiony
			z wybranego NODE do BUFFERa (a dokladniej do katalogu /home/bufR/)
			Plik nie bedzie dopisywny do .listRW wiec nie bedzie mozliwe jego
			pobranie przez zewnetrzenych klientow. 

H00 			tylko dla skanera adresu IP
			zwraca string "SERVER-S"



---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
