\input ln.sty

\mesic{Leden 2000}
\cislo{01/2000}


\adr{01-2000/Pics}
\hlavicka


\section{�vodem}

\autor{Pavel Jan�k ml., 27. prosince 1999}

V�no�n� shon a~stres ji� pomalu opad�, rychle na�mne padaj� probl�my v�edn�ch
dn� a~k~tomu v�emu je�t� ze v�ech stran lid� otravuj� s~dotazy: \uv{A neboj�te
se roku 2000?} Tak� si toho v�eho v��m�te? Je a� podez�el�, jak se n�kte��
lid� a~n�kter� firmy holedbaj� svoj� p�ipravenost� na�rok 2000. A~pak v�m
p�ijde z�lohov� faktura se splatnost� p�ed 100 lety. Ano, to se opravdu stalo
a~to dokonce spole�nosti, kter� m� n�co p�es jeden mili�n z�kazn�k�. A~svoji
p�ipravenost na�rok 2000 ohla�uj� i~dal�� spole�nosti, nap�. �EZ\ldots

Hmm, za�al jsem asi dost pesimisticky, tak�e rychle zp�t do�optimistisk�
sv�te�n� n�lady \smile\ Dal�� ��slo Linuxov�ch novin vznik� pr�v� na�p�elomu
roku a~t�m chceme demonstrovat nejen p�ipravenost na�eho t�mu na�rok 2000, ale
i~Linuxu a~\TeX u~samotn�ho. Pokud �tete toto ��slo na�za��tku roku 2000, tak
jsme opravdu p�ipraveni. Pokud tohle ��slo �tete v~roce 1900, je n�kde chyba
\smile

P.S.: A~nezapome�te p���t� rok slavit p��chod nov�ho tis�cilet�.\KC


\section{Vmware pro Linux}

\autor{Petr Ol��k, 10. listopadu 1999}

V~tomto �l�nku bych cht�l p�ibl��it sv� dojmy p�i instalaci a~provozu programu
{\tt vmware}. V�c najdete na�\citeurl{Vmware}{http://www.vmware.com/} a~jedn� se o~program, kter�
vytvo�� kompletn� virtu�ln� po��ta�. Virtu�ln� hardware tohoto po��ta�e si
m��ete naeditovat a~v~textov�m konfigura�n�m souboru propojit se skute�n�mi
mo�nostmi re�ln�ho po��ta�e a~re�ln�ho opera�n�ho syst�mu. Virtu�ln� stroj
nab�z� kompletn� virtu�ln� BIOS a~lze do�n�j instalovat z�ejm� libovoln�
opera�n� syst�m pro \hbox{PC�ka} v�etn� aplikac�. U�ivatelsky se jev� tento virtu�ln�
stroj jako ok�nko na�plo�e X~Window Syst�mu, ve�kter�m se odehr�v� v�e, co
bychom vid�li na�obrazovce n�mi naeditovan�ho po��ta�e.  M��eme tam instalovat
druh� Linux v�etn� kompletn�ho X~serveru a~kochat se pohledem na�to, �e m�me
Linux v~Linuxu. Nebo tam m��eme m�t i~jin� opera�n� syst�m, jako je nap��klad
MS~Woknous.

Pro �plnost dod�v�m, �e program {\tt vmware} je k~dispozici i~pro MS~Woknous
NT/2000 jako vn�j�� opera�n� syst�m a~rovn� do�n�j lze instalovat libovoln�
vnit�n� PC�kov� opera�n� syst�m. Touto variantou jsem se d�le nezab�val a~zam��il jsem se na�variantu MS~Woknous~98 v~Linuxu. Ne� se pust�m do
popisov�n� z�itk� z~obrovsk�ho mno�stv� velebn�ch modr�ch boot� tohoto pro m�
exotick�ho opera�n�ho syst�mu uvnit� Xov�ho ok�nka, pop��u mo�nosti {\tt
vmware} ve�verzi 1.1.1.

\subsection{Instalace a~konfigurace vmware}

V~dokumentaci k~programu se p��e, �e program lze pou��t pro j�dra 2.0.x p�i
jednom procesoru a~pro j�dra 2.2.x p�i v�ce procesorech. P�izn�m se, �e mi
z�vislost verze j�dra na�po�tu procesor� p�ipad� v~dokumentaci pon�kud
nejapn�.

Instalace na�RedHatu prost�ednictv�m {\tt rpm} prob�hla bez probl�m�.  Na
Slackwaru jsem instaloval z~{\tt tar}u~a~spu�t�n�m skriptu {\tt install}. Zde
cht�la instalace tvrdo�ijn� ukl�dat startovac� skript do�{\tt
/etc/rc.d/init.d/} a~nedala pokoj, dokud jsem j� ten adres�� (spole�n� s~mnoha
dal��mi adres��i {\tt rc[0123456].d}) provizorn� nevytvo�il. Pak jsem musel
ru�n� za�adit startovac� skript do�{\tt rc.local}.  V~dokumentaci se d�le
p��e, co v�e je pot�eba v~j�dru m�t. P�itom tam chyb� to nejd�le�it�j��: �e je
pot�eba podporovat moduly. Z�ejm� tv�rci po��taj� s~t�m, �e v�echna j�dra maj�
podporu modul�. Ur�it� to nen� pravda, proto�e aspo� j� si �asto a~s~oblibou
kompiluji kompaktn� j�dra bez modul�.

Program {\tt vmware} umo��uje naeditovat na�virtu�ln� IDE sb�rnice na�� nov�
hra�ky a� �ty�i virtu�ln� disky. Ka�d� z~nich m��e b�t implementov�n jako
soubor ve�vn�j��m opera�n�m syst�mu nebo jako partition skute�n�ho IDE
disku. Partition SCSI disku zat�m nen� podporov�na a~virtu�ln� SCSI sb�rnice
tak� ne. J� jsem m�l v~kompu jen \hbox{SCSI} disky, tak�e jsem na�virtu�ln� IDE
k�andu jako \uv{master} nav�sil disk reprezentovan� souborem. V~takov�m
p��pad� jsme omezeni velikost� 2~GB na�jeden disk (proto�e s~v�t��mi soubory
by mohla b�t ve�vn�j��m opera�n�m syst�mu pot��). To ov�em pro experimentov�n�
�pln� posta��.

Disk reprezentovan� souborem m� n�kolik p��jemn�ch vlastnost�.  P�edev��m p�i
jeho zaveden� vznik� ve�vn�j��m syst�mu soubor pom�rn� mal� velikosti. Teprve
pot�, co do�virtu�ln�ho disku za�ne vnit�n� syst�m zapisovat, m��eme ve
vn�j��m syst�mu pozorovat nar�st�n� velikosti tohoto souboru. D�le si po
zaparkov�n� vnit�n�ho syst�mu m��eme ��ci, �e to, co se na�virtu�ln� disk
zapsalo, je v~dan� chv�li to prav�, co tam chceme m�t a~zm�n�me pr�va
k~souboru reprezentuj�c�mu disk na�\uv{pouze ke��ten�}. Program {\tt vmware}
v~takov�m p��pad� umo�n� reprezentovat disk t�mto v�choz�m souborem a~d�le si
zakl�d� p�i ka�d�m startu virtu�ln�ho stroje p��r�stkov� soubor, kam ukl�d�
data, kter� zapisuje na�virtu�ln� disk vnit�n� syst�m. Tomuto syst�mu se tedy
disk jev� nad�le jako zapisovateln� a~nepozn� ��dn� zm�ny. P��r�stkov� soubor
se po ukon�en� aktivity virtu�ln�ho stroje m��e automaticky mazat
(nonpersistent mode). V~tomto p��pad� m��eme vnit�n� syst�m t�pnout uprost�ed
�innosti a~p�i nov�m startu nab�hne zcela stejn� jako prve a~nebude zdlouhav�
kontrolovat sv�j souborov� syst�m.  Druhou mo�nost� je zachovat p��r�stkov�
soubor pro p���t� start (undoable mode). P�i p���t�m startu se program zept�,
zda je mo�n� slou�it p��r�stkov� soubor s~v�choz�m (a~vytvo�it nov� v�choz�
soubor), nebo zda se m� p��r�stkov� soubor zachovat a~pou��t pro tento b�h bez
slu�ov�n� nebo zda se m� p��r�stkov� soubor ignorovat a~vyu��t jen
v�choz�. Nev�hodou je, �e je to hned na�za��tku pom�rn� komplikovan� ot�zka,
kterou pr�m�rn� u�ivatel t�ko ch�pe. Nav�c se program zept� v~t�ko
srozumiteln� angli�tin� (viz obr�zek na dal�� stran�).

D�le je vhodn� (zvl�t� pro instalaci vnit�n�ho syst�mu) konfigurovat
CD~ROM. Ten se objev� ve�vnit�n�m syst�mu jako standardn� ATAPI IDE
za��zen�. V~konfigura�n�m souboru mu p�i�ad�me nap��klad {\tt /dev/cdrom}, co�
prakticky m��e b�t t�eba CD�ko SCSI.  Analogicky nav�eme virtu�ln� floppy
mechaniku na�{\tt /dev/fd0}.

\Obr{vmware1}

Tak� se mus�me rozhodnout, kolik p�id�l�me virtu�ln�mu stroji opera�n�
pam�ti. Nen� vhodn� nastavit v�ce pam�ti, ne� m�me skute�n�. Je pot�eba t�
po��tat s~t�m, �e budeme virtu�ln� stroj pou�t�t sou�asn� v�cekr�t. {\tt
vmware} je vybaven pojistkou: lze nastavit, kolik pam�ti mohou v�echny
sou�asn� b��c� virtu�ln� stroje obsadit maxim�ln�. Pokus o~p�ekro�en� tohoto
limitu zp�sob�, �e se dal�� virtu�ln� stroj odm�tne spustit. J� jsem p�id�lil
vnit�n�mu syst�mu 48~MB pam�ti. Proto�e m�me na�na�em kalkul�toru 800~MB
skute�n� pam�ti, virtu�ln� stroj lze spou�t�t asi desetkr�t a~je�t� zbude
polovina pam�ti na�provoz mnoha dal��ch m�n� pam�ov� n�ro�n�ch aplikac�.

My�� kurzor se n�m uv�zn� uvnit� ok�nka v~okam�iku, kdy ve�virtu�ln�m stroji
provedeme n�jakou aktivitu. Vnit�n� syst�m my� detekuje a~pracuje s~n� jako
s~b�nou my��. {\tt vmware} nab�z� trojkombinaci Alt-Ctrl-Escape na�osvobozen�
my�i, abychom mohli pracovat s~jin�mi aplikacemi ve�vn�j��m syst�mu. Dal��
mo�nost� je instalace tzv.~{\tt vmtools} do�vnit�n�ho syst�mu. Je to
progr�mek, kter� vyd� vnit�n�mu syst�mu povel, aby pustil my�, kdykoli se
kurzor dostane na�okraj virtu�ln� obrazovky. Pak se d� my� jednodu�e osvobodit
pouh�m vystr�en�m kurzoru mimo ok�nko.

Jedin� kan�l, kter�m m��e vnit�n� opera�n� syst�m p�istupovat k~soubor�m
vn�j��ho syst�mu a~komunikovat s~ostatn�mi po��ta�i v~s�ti je virtu�ln� s��ov�
karta.  Ta se jev� jako AMD PCNET Ethernet Adapter na�PCI (a�koli ve�skute�n�m
kompu t�eba ��dnou s��ovou kartu nem�me). D� se vytvo�it odd�len� virtu�ln�
s�� jen pro sou�asn� b��c� virtu�ln� stroje a~pro vn�j�� opera�n� syst�m. Ten
dostane prost�ednictv�m speci�ln�ho modulu j�dra dal�� s��ov� rozhran� {\tt
vmnet1}, kter� neroutuje do�skute�n� s�t�, ale m��e tam v�em virtu�ln�m
stroj�m nab�zet slu�by (nap��klad sambu).  V~t�to variant� nab�z� {\tt vmware}
do�virtu�ln� s�t� vlastn� DHCP server. Druh� varianta umo�n� propojit
virtu�ln� s�� sou�asn� b��c�ch program� {\tt vmware} se skute�nou s�t� tak,
�e zaveden� modul j�dra propoj� s��ov� aktivity virtu�ln�ch stroj� s~n�kter�m
skute�n�m rozhran�m na�� s�t�. Trochu d�le mi trvalo, ne� jsem p�i�el na�to,
�e konfigurace IP routingu nen� pot�eba a~�e v�e funguje samo od sebe. Ka�d�
nov� startovan� virtu�ln� stroj si vymysl� novou jedine�nou hardwarovou adresu
virtu�ln� s��ov� karty, tak�e na�n�s le�� jen konfigurace DHCP serveru pro
Linux, aby virtu�ln� stroje dostaly p�id�leno t� jednozna�n� IP. IP pakety
z~vn�j�� s�t� ur�en� pro virtu�ln� stroje za�nou samy proch�zet na�� skute�nou
s��ovou kartou a� k~t� virtu�ln�. Neptejte se m�, pro�.

\subsection{Instalace vnit�n�ho syst�mu}

Mus�m se p�iznat, �e jsem vid�l instalaci MS~Woknous poprv� v~�ivot� a~douf�m,
�e ten z�itek nebudu muset opakovat. Po zasunut� CD�ka a~startu virtu�ln�ho
stroje m��eme ve�virtu�ln�m BIOSu nastavit, �e se bude z~CD�ka bootovat. Pak
bootujeme virtu�ln� stroj a~n�sledujeme instrukce, kter� se postupn� objevuj�
v~ok�nku na�obrazovce. Vnit�n� syst�m prov�d� rozd�len� virtu�ln�ho disku na
odd�ly. Tzv.~form�tov�n� disku a~kontrola jeho povrchu n�m vyloud� na�tv��i
�sm�v. Vnit�n� syst�m je dokonale zblbnut a~domn�v� se, �e skute�n� vykon�v�
n�jakou hardwarovou pr�ci. V~ur�it�m okam�iku dokonce syst�m p��e
\uv{instaluji nov� hardware}. To u� jsem se sm�l naplno.

Instalace MS~Woknous 98 trv� asi 98 minut. Je zaj�mav�, �e po skoro celou dobu
to nenech� u�ivatele v~klidu. �lov�k nem��e jednodu�e p�ej�t k~jin� aplikaci
vn�j��ho syst�mu a~d�lat rozumnou pr�ci. Ta instalace po n�m neust�le {\it
v~r�zn�ch �asov�ch odstupech} n�co chce. Za�velmi vtipn� pova�uji, �e asi
v~50.~minut� (tedy zhruba v~p�lce cesty) je pot�eba zadat p���ern� dlouh� k�d
licen�n�ho ��sla. Po dobu instalace to asi p�tkr�t bootuje.

Po absolvov�n� instala�n�ho mart�ria se doporu�uje instalovat do�Woknous je�t�
{\tt vmtools} nejen proto, aby n�m syst�m pou�t�l na�okraji obrazovky
my�. V~tomto bal�ku je nav�c ovlada� grafick�ho adapt�ru pro Woknous, kter� je
optimalizov�n na�vlastnosti virtu�ln� grafiky ve�{\tt vmware}. Pak m��eme
vyb�rat ve�vnit�n�m syst�mu r�zn� rozli�en� obrazovky. D�sledkem takov�ch zm�n
je pouze zm�na velikosti ok�nka.

Za�geni�ln� pova�uji skute�nost, �e virtu�ln� hardwarov� prost�ed� je stejn�
ve�v�ech virtu�ln�ch stroj�ch. Vnit�n� syst�m a~jeho aplikace se daj� tedy
instalovat jen jednou. Pak se prost� vezme soubor reprezentuj�c� virtu�ln�
disk, ud�l� se {\tt gzip}, �oupne se to do�s�t� nebo na�ZIPovou disketu, na
jin�m kompu se zcela jin�m skute�n�m hardwarem se ud�l� {\tt gunzip} a~{\tt
vmware} s~vnit�n�m syst�mem okam�it� jede. Takov� instalace pak netrv� ani dv�
minuty!  Zde si ov�em mus�me d�t pozor na�to, abychom nebyli ozna�ov�ni za
softwarov� pir�ty. K~tomu se vr�t�m na�konci tohoto �l�nku.

\subsection{Provoz virtu�ln�ho stroje}

Aby bylo lze {\tt vmware} v�bec spustit, je pot�eba vyplnit na
\url{http://www.vmware.com/} dotazn�k. Obratem p�ijde elektronickou po�tou licen�n�
soubor oprav�uj�c� k~provozu na�jeden m�s�c. Ten je t�eba m�t v~adres��i
{\tt\char`\~/.vmware}, tj.~licence je v�zan� na�u�ivatele.

P�ed prvn�m spu�t�n�m je t�eba zalo�it adres��, p�ej�t do�n�j a~tam spustit
{\tt vmware}. Program se zept� na�nejd�le�it�j�� konfigura�n� parametry a~ulo�� do�aktu�ln�ho adres��e konfigura�n� soubor, zalo�� tam soubory
realizuj�c� virtu�ln� disky a~soubor s~obsahem virtu�ln� CMOSky. V~tomto
adres��i vznik� tak� log, p��r�stkov� a~zamykac� soubory.

U�ivatel si m��e zalo�it v�ce adres��� s~virtu�ln�mi stroji r�zn�ch parametr�
(r�zn� konfigurace, r�zn� disky a~r�zn� CMOSky). Do�ka�d�ho takov�ho stroje si
m��e zkusit instalovat jin� opera�n� syst�m. Pak spou�t� jednotliv� virtu�ln�
stroje jako \hbox{\tt vmware /cesta/ke/konf/souboru}. Konfigura�n� soubor lze
vytv��et a~modifikovat pohodln� tzv.~konfigura�n�m editorem p��mo z~programu
{\tt vmware}.


Cel� ok�nko vlastn�ho virtu�ln�ho stroje je pln� grafick�. Ve�ker� fonty
vnit�n�ho syst�mu jsou tedy skute�n� starost� jen tohoto vnit�n�ho
syst�mu. S~fonty pou�it�ho X~serveru to nem� nic spole�n�ho. Po�e�t�n� Woknous
tedy funguj� skute�n� polo�esky poloanglicky (tak, jak norm�ln�). �esk� nebo
po�e�t�n� aplikace uvnit� Woknous ned�laj� probl�my jin�, ne� norm�ln�
probl�my zn�m� z~nativn�ch Woknous.


Ani kl�vesnice ned�l� probl�my. {\tt vmware} je optimalizov�no na�XFree86
servery s~PC�kov�mi kl�vesnicemi, u~nich� p�eb�r� skute�n� k�dy kl�ves. Nen�
tedy t�eba se b�t konverze na�{\tt keysym}y, kter� m��e b�t p�es {\tt xmodmap}
zkreslena. Naopak, pokud pracujeme v~X~serveru s~exotickou kl�vesnic�, {\tt
vmware} se p�eorientuje na�{\tt keysym}y. V~tom p��pad� lze editovat mapovac�
tabulku z~{\tt keysym}� do�vnit�n� reprezentace k�d� virtu�ln� PC�kov�
kl�vesnice.

\Obr{vmware2}

\looseness=-1
Virtu�ln� stroj lze spou�t�t na�vzd�len�ch X~serverech jako ka�dou jinou
X~aplikaci. Pokud ale s�� jen m�rn� zadrh�v�, jsou zn�t prodlevy. Mezi
kliknut�m my�i a~vybalen�m nab�dky, kter� m� okam�it� n�sledovat, m��e
uplynout n�jak� doba. V~re�imu vzd�len�ho X~serveru tedy asi nelze pracovat
s~aplikacemi, kter� zobrazuj� plynul� nebo prudk� pohyb. Hr���m st��la�ek by
z�ejm� tento re�im nevyhovoval.

Pokud m�te virtu�ln� stroj na�lok�ln�m X~serveru, prodlevy nejsou skoro
patrn�. Nav�c v~tomto p��pad� m�te mo�nost p�ej�t do�tzv.~\uv{Full screen}
m�du. P�i n�m se usad� cel� grafika virtu�ln�ho stroje do�n�sleduj�c�ho
voln�ho grafick�ho termin�lu (dosa�iteln�ho nap��klad pomoc�
\key{Alt-Ctrl-F8}). Nyn� je u� grafika dokonce akcelerovan� a~rozd�l v~rychlosti
mezi provozem nativn�ho opera�n�ho syst�mu a~syst�mu uvnit� virtu�ln�ho stroje
nen� v�bec zn�t.

Ve�\uv{full screen} m�du jsou rozli�en� obrazovky a~opakovac� kmito�ty
monitoru pevn� d�ny konfigurac� X~serveru. V~t�to pevn� dan� plo�e je n�kde
uprost�ed (p�i men��m rozli�en� grafiky vnit�n�ho syst�mu) vid�t aktivn�
plocha virtu�ln�ho stroje. Zm�n�me-li rozli�en� virtu�ln� grafiky na�shodn� se
skute�nou, rozt�hne se aktivn� plocha na�celou obrazovku. Kmito�ty monitoru
nem� vnit�n� syst�m n�rok m�nit, a�koli si mysl�, �e to d�l�.

P�i bootu vnit�n�ho syst�mu jede procesor naplno. V~p��pad� MS~Woknous~98
z�st�v� pln� zat��en� procesoru i~p�i zobrazen� ok�nka pro p�ihl�en�
u�ivatele. To pova�uji za�chybu tohoto syst�mu, kterou nav�c nelze odhalit bez
pou�it� {\tt vmware}, proto�e v~dob� p�ihl�en� nelze je�t� spou�t�t m���ky
procesoru ve�vnit�n�m syst�mu. Teprve po p�ihl�en� a~inicializaci v�ech
Explorer�, Word� a~ikonek na�plo�e se vnit�n� opera�n� syst�m zklidn�. {\tt
vmware} si pak bere m�n� ne� 5~\% procesoru.  MS~Woknous z�st�vaj� ale st�le
m�rn� neklidn�: virtu�ln� kontrolka IDE rozhran� k~CD~ROM mechanice neust�le
poblik�v�. Z�ejm� ten syst�m ka�dou vte�inu kontroluje, zda tam nep�ibylo
n�jak� CD�ko, na�kter�m je nutn� spustit autorun.

Vid�l jsem spou�t�t {\tt vmware} na�jin�m ne� XFree86 serveru a~uk�zalo se, �e
probl�my mohou nastat. P�edev��m program prohl�sil, �e bude m�t pot��e
s~endianitou tohoto X~serveru a~nav�c s~barevnou hloubkou, kter� byla jen
jeden byte na�pixel. Pak nabootoval vnit�n� syst�m a~v~ok�nku se za�aly d�t
r�zn� duhov� v�ci a~barevn� �mouhy v~m�stech, kudy proch�zel kurzor
my�i. Aplikace se sice ovl�dat daly, ale vy�adovalo to velkou d�vku fantazie
od u�ivatele. Ten X~server byl XWinPro. Osobn� pova�uji za�masochismus l�zt
z~Woknous do�Linuxu jen proto, aby v~n�m byly spu�t�ny zase Woknous.

\subsection{Provoz v�ce virtu�ln�ch stroj� najednou}

M�me-li v~kompu dost pam�ti, m��eme spou�t�t v�ce Woknous�tek najednou. M��e
je t� spou�t�t v�ce u�ivatel� sou�asn� na�r�zn�ch X~serverech. Aby u�ivatel
nebyl zdr�ov�n instalac� vnit�n�ho syst�mu a~abychom u�et�ili m�sto na�disku,
rozhodl jsem se sd�let mezi u�ivateli v�choz� soubor reprezentuj�c� virtu�ln�
disk. Ten je pro u�ivatele read-only a~je sd�len pomoc� hard link�. Soft link
nevyhovuje, proto�e {\tt vmware} se sna�� vytv��et p��r�stkov� soubory nikoli
v~adres��i, kde je soft link, ale v~adres��i, kam soft link ukazuje. My p�itom
pot�ebujeme, aby ka�d� u�ivatel m�l sv�j jedine�n� p��r�stkov� soubor.

Pro u�ivatele jsem vytvo�il skript�k s~n�zvem {\tt win98}, kter� zjist�, zda
u� u�ivatel m� v�ci konfigurov�ny. Pokud ne, ud�l� pot�ebnou pr�ci:

\begin{verbatim}
#!/bin/bash
if [ ! -d ~/.vmware ] ; then
  echo creating default configuration ...
  mkdir ~/vmware ~/.vmware
  mkdir ~/vmware/win98
  ln /home/vmware/license ~/.vmware/license
  cp /home/vmware/preferences\
     ~/.vmware/preferences
  ln /home/vmware/win98.dsk\
     ~/vmware/win98/win98.dsk
  cp /home/vmware/win98.cfg\
     ~/vmware/win98/win98.cfg
  cp /home/vmware/win98.nvram\
     ~/vmware/win98/win98.nvram
fi
vmware -x vmware/win98/win98.cfg
\end{verbatim}

Sd�len� jedn� CD~ROM mechaniky je mo�n�, ale sd�len� spole�n� floppy mechaniky
nikoli. Proto bylo pot�eba vyhodit flopinu z~konfigura�n�ho souboru a~ve
virtu�ln�m BIOSu za��dit, aby se z~n� hned na�po��tku nesna�il program
bootovat.

Na�Linuxu b�� DHCP server, kter� p�id�luje jednotliv�m virtu�ln�m stroj�m
jednozna�n� IP. Tak�e TCP/IP spojen� k~virtu�ln�m stroj�m je zcela bez
probl�m�. Bohu�el, Woknous~98 maj� kdesi uvnit� je�t� jeden parametr, kter� je
ozna�ov�n jako n�zev stroje. Proto�e syst�my bootuj� ze sd�len�ho virtu�ln�ho
disku, je tento n�zev stejn�. Ve�druh�ch a~dal��ch sou�asn� spu�t�n�ch Woknous
to za�ve tak, jak ukazuje dal�� obr�zek. D�sledkem toho je, �e TCP/IP je OK,
ale Microsoft� s�� je v~t�chto Woknousech paralyzov�na (nap��klad nejsou
dosa�iteln� svazky ze samby).


Odm�tl jsem zat�m probl�m syst�mov� �e�it (nap��klad programem, kter� by na
z�klad� aktu�ln�ho �asu n�hodn� generoval n�zev po��ta�e a~zapisoval jej p�i
bootu do�m�st, kde to ty Woknousy hledaj�). Pokud bude cht�t bez probl�m�
pracovat v�ce u�ivatel�, musej� si vymyslet ka�d� sv� jm�no, poklikat po
obr�zc�ch ve�Woknous, vlo�it na�ur�it� m�sto zvolen� jm�no a~zachovat sv�j
p��r�stkov� soubor i~pro p���t� start virtu�ln�ho stroje.


\subsection{Pozn�mky k~licenc�m}

Je t�eba respektovat sou�asn� licenci k~programu {\tt vmware} a~licenci
k~pou�it�mu vnit�n�mu opera�n�mu syst�mu a~k~aplikac�m v~n�m instalovan�m.

Program {\tt vmware} bohu�el nen� GPL. Pokud by byl, ozna�il bych jej za
naprosto skv�lou v�c. Licence koncov�ho u�ivatele (ozna�ovan� zkratkou EULA)
obsahuje obvykl� omezen� zn�m� z~jin�ch komer�n� ���en�ch produkt�. M�s�c si
s~t�m m��eme hr�t a~pak je pot�eba v�c koupit nebo si s~n� p�estat hr�t. Pro
akademick� pou�it� to stoj� \$99, jinak je to dra���.

\Obr{vmware3}

Nejhor�� je, �e se mi nepoda�ilo zjistit, co je mo�n� za���stku \$99
s~programem d�lat. EULA je koncipov�na jako licence pro jednoho u�ivatele na
jednom stroji. Znamen� to, �e kdy� m�m na�jednom stroji 200 u�ivatel�, mus�m
to kupovat 200~kr�t? V�t�ina t�ch u�ivatel� si to spust� jen z~legrace nebo
z~nostalgie, aby se pod�vala, jak vypadaj� MS~Woknous v~ok�nku. Rutinn� to
vyu��vat nebudou. Takov� krut� omezen� pou�it� programu na�jednoho u�ivatele
nen� pro v�t�inu komer�n�ch program� obvykl�. Kdy� se program instaluje, pak
b�v� samoz�ejm�, �e jej mohou pou��vat v�ichni u�ivatel� po��ta�e, na�kter�m
byla instalace provedena.

Polo�il jsem tedy dotaz na�{\tt info@vmware.com}, ale ani po zopakov�n� tohoto
dotazu jsem se {\it nedo�kal odpov�di}. Z�ejm� ani sami tv�rci nemaj� zcela
jasno, jak licencovat program, kter� d�ky tomu, �e se jedn� o~X~aplikaci,
umo��uje obrovskou flexibilitu pou�it� r�zn�m skupin�m u�ivatel�. Ti mohou
program spou�t�t sou�asn� na�v�ce X~serverech bez z�vislosti na�tom, kde je
fyzicky instalov�n.

Proto�e jsem nedostal odpov��, vytvo�il jsem si vlastn� interpretaci licence:
Jedna licence se vztahuje k~jedn� fyzick� instalaci a~k~jednomu pracovn�mu
u�ivateli, jeho� ��et m��e b�t z��zen jen proto, aby z~n�j �lo spou�t�t {\tt
vmware}. Nyn� z�le�� jen na�tom, kolika lidem bude zn�mo heslo od tohoto
��tu. To si mysl�m, �e nen� omezeno. Onen pracovn� u�ivatel, kter� dejme tomu
program koupil za�\$99, m��e p�ece p�j�it sv�j ��et komukoli.

V�iml jsem si, �e testovac� 30denn� verze m� licen�n� soubor psan� na�jm�no,
ov�em tento soubor se d�~\uv{p�j�ovat}. Lze jej um�stit do�domovsk�ho adres��e
jak�hokoli u�ivatele a~program pracuje. Jm�no u�ivatele, na�kter�ho je program
licencov�n, se pouze objev� v~z�hlav� r�me�ku X~aplikace.

D�le je t�eba se zab�vat ot�zkou licence vnit�n�ho opera��ho syst�mu.  Tento
�kol jsem zadal koleg�m, kte�� tento syst�m pou��vaj� i~jako vn�j��, proto�e
jsem se s�m �etbou t�to licence necht�l roz�ilovat. V�sledek je nemastn�
neslan�. Jedny Woknous mohou b�t instalov�ny na�jednom po��ta�i a~m��e se
u~nich st��dat v�ce u�ivatel�. Licence jaksi samoz�ejm� p�edpokl�d�, �e se
tito u�ivatel� budou u~t� jedn� instalace st��dat na�jedin�m po��ta�i. Program
{\tt vmware} a~protokol XDMCP n�s od takov�ho omezen� osvobozuje.

Kdybychom tedy instalovali MS~Woknous jedinkr�t do�virtu�ln�ho stroje a~datov�
reprezentace instalace by byla v~read-only souboru na�disku fyzicky um�st�na
jenom jednou (ale d�ky hard-link�m viditeln� libovoln�m po�tem u�ivatel�
z~r�zn�ch m�st), pak z�ejm� neporu�ujeme licenci. Nyn� to bude sou�asn�
pou��vat v�ce u�ivatel� na�r�zn�ch X~serverech -- fenom�n, se kter�m licence
v�bec nepo��t�. Pokud si �ekneme \uv{co nen� zak�z�no, je dovoleno}, pak se
domn�v�m, �e takov� pou�it� je v~souladu s~licenc� jednak MS~Woknous a~jednak
v�ech aplikac�, kter� jsou v~nich instalov�ny.

Zaj�malo by m�, co na�to ��kaj� pr�vn�ci. R�d se nech�m pou�it. Do�soudn�ho
sporu s~Microsoftem kv�li tomu, �e pou��v�me jednu instalaci MS~Woknous na
v�ce X~serverech, se mi ale v�bec nechce. V~takov�m p��pad� bych rad�ji
provedl unlink v�ech link� na�soubor {\tt win98.dsk} a~t�m zp�sobil rychlou
likvidaci tohoto opera�n�ho syst�mu v�etn� v�ech jeho aplikac�. My toti� na
pou�it� Microsoft�ch produkt� nejsme z�visl�.

\subsection{Shrnut�}

Za�dobu m�ho experimentov�n� se program {\tt vmware} choval zcela
bezchybn�. Je vid�t, �e programov�n� a~testov�n� produktu ud�lali auto�i
s~nejv�t�� pe�livost� u� ve�verzi~1.1.1. Dokumentace by pot�ebovala
v~n�kter�ch m�stech up�esnit, ale jinak i~ta se vymyk� �ediv�mu pr�m�ru. Za
podstatnou nev�hodu pova�uji nevyjasn�nost licenc� na�v�ceu�ivatelsk�ch
po��ta��ch a~v~s��ov�m prost�ed�. Domn�v�m se, �e ani pr�vn�ci, kte�� pro
komer�n� firmy texty t�ch licenc� vym��lej�, mnohdy nemaj� zcela jasno, o~co
jde.

\Obr{vmware4}

Na�posledn�m obr�zku vid�me pracovn� plochu X~serveru s~ok�nky n�kolika
aplikac�. V~pozad� vlevo se kr�� Netscape a~vpravo naho�e je {\tt vmware}
s~vnit�n�m syst�mem MS~Woknous98. V~tomto syst�mu je spu�t�n Explorer a~v~n�m
vid�me stejn� URL (\url{www.alt-f4.cz}), jako ve�zm�n�n�m Netscape. P��ou tam,
�e pou��v�me zapov�zen� opera�n� syst�m a~�e bychom s~t�m m�li n�co d�lat,
zat�mco v~Netscape vid�me text pon�kud odli�n�. Vpravo dole mezit�m bootuje
virtu�ln� stroj je�t� jednou. Je zachycena pozoruhodn� ��st bootu, kter� m�
nejv�ce zaujala. Z~n� je toti� patrno, �e MS~Woknous 98 nezap�e sv� p�edky a~jsou st�le �zce sv�z�ny s~DOSem! Bohu�el se mi nepoda�ilo zachytit situaci,
kde je vid�t feftina m�sto �e�tiny. Nekec�m, skute�n� i~takov� v�ci jsou
u~draze koupen�ch po�e�t�n�ch syst�m� mo�n�.

Co z~obr�zku nen� vid�t: Netscape je spu�t�n na�jin�m po��ta�i ne� oba
programy {\tt vmware}. U�ivatel sed� nav�c u~zcela jin�ho po��ta�e, p�i�em�
okenn� mana�er je spu�t�n zase odjinud. V~{\tt xterm}u, kter� na�n�s pokukuje
�ernou plochou vpravo dole, je spu�t�n \hbox{\tt ssh sun2.dante.de} a~jsou tam
v~provozu testy nov� p�ipravovan�ho CD�ka \TeX{}u. J� p�itom v�bec nev�m, ve
kter�m m�st� ten {\tt sun2} skute�n� le��, proto�e jsem byl ve׹kole v�dy
hor�� v~zem�pise. To pova�uji za�svobodn� pou�it� s�t�, kter� by nem�lo b�t
komplikov�no �patn�mi komer�n�mi licencemi.\KC





\section{�erstv� maso}

\autor{Radek Vyb�ral, 8. prosince 1999}


Po men�� pauze je tu op�t d�vka zaj�mav�ho softwaru, kter� \uv{Zm�n� V� �ivot}
:)). Pokud je �ek�n� na�dal�� vyd�n� Linuxov�ch novin p��li� dlouh�, mohu
doporu�it Softwarovou sklize� serveru Root.cz, kter� m� t�denn� periodicitu.

\subsection{Firewall pro za��te�n�ky}


Linux je mo�n� velmi dob�e vyu��t jako vstupn� br�nu firmy do�Internetu,
tzv. firewall.  Takov�to stroj je nutn� ale n�le�it� nakonfigurovat, kter�
pakety do�vnit�n� s�t� sm� a~kter� ne.  Existuje samoz�ejm� zp�sob, jak v�e
nakonfigurovat ru�n�, ale pokud chcete vyu��t n�jak�ho pomocn�ka, m�te
mo�nost. Formou ot�zek se vygeneruj� odpov�daj�c� pravidla pro provoz
firewallu \citeurl{PMFirewall}{http://www.pointman.org/PMFirewall/}.


\subsection{Heldesk jak m� b�t}

Pokud pracujete v~n�jak� softwarov� nebo hardwarov� firm�, ur�it� m�te spoustu
z�kazn�k�, kte�� �e�� stejn� probl�my, nebo pos�laj� n�jak� hl�en� o~chyb�ch. Zpracov�n� takov�chto p��pad� nen� jednoduch�, a~proto je mo�n�
vyu��t aplikaci Helpdesk \citeurl{Helpdesk}{http://www.jrobst.freeserve.co.uk/helpdesk.html}. Ta pracuje nad SQL serverem, um� zpracov�vat i~do�l�
e-mail a~v�e nab�z� v~pod�n� HTML str�nek. Jednoduch�, ale
u�ite�n�. Doporu�uj� 4 z~5 pracovn�k� technick� podpory :)



\subsection{Software pro UPS}

O~tom, �e d�le�it� server si zaslou�� i~z�lohov�n� v~podob� zdroje nap�jen�
UPS asi net�eba diskutovat. Ale co v~p��pad�, �e pot�ebujete z~takov�to UPS v~p��pad� v�padku elektrick�ho proudu korektn� ukon�it v�ce stroj�? Tu��te
spr�vn�, op�t existuje pomoc v~podob� softwaru NUT
\citeurl{NUT}{http://www.exploits.org/nut/}. Nav�c je k~tomu i~hezk� webovsk�
interface. No nekupte to, kdy� to je zadarmo, �e? Pokud pou��v�te velice
roz���en� jednotky UPS od firmy APC, m��ete si tak� ji� bez probl�mu st�hnout
ovl�dac� software PowerChute Plus pro Linux \citeurl{APC PowerChute
Plus}{http://www.apcc.com/products/management/pcp_linux.cfm}.

\Obr{helpdesk}

\subsection{Komba -- a~vid�m v�echny!}

V~dne�n� dob� je st�le �ast�j�� nasazen� Linuxu do�s�t�, kde jsou stroje s~nainstalovan�mi Billov�mi ok�nky (�t�te Windows XX). Linux podporuje sd�len�
disk� spole�n� s~t�mito stroji prost�ednictv�m bal�ku Samba \citeurl{Samba}{http://www.samba.org/}.  Pokud si
chcete prohl�dnout celou s�� v~prost�ed� X-Window a~m�te KDE mana��r, m�te
mo�nost pou��t bal��ek Komba
\citeurl{Komba}{http://zeus.fh-brandenburg.de/~schwanz/komba.html}, kter� v�e
zobraz� a~umo�n� p�ipojovat a~odpojovat vzd�len� disky.

\Obr{komba01}

\subsection{Statistika nuda je, m� v�ak cenn� �daje}

Toto samoz�ejm� plat� i~dnes, v~dob� WWW server�, kdy po pracn� tvo�iv� pr�ci
o�ek�v�te tak� pat�i�nou n�v�t�vnost. K~anal�ze log� generovan�ch HTTP
serverem se nejv�ce pou��v� program Analog, jeho� v�razn� vylep�en� v~podob�
p�ehledn�ch graf� poskytuje Report Magic for Analog \citeurl{Report
Magic}{http://www.wadsack-allen.com/digitalgroup/reportmagic/index.asp}. Tak�e
u� v�te, kter� str�nky jsou na�Va�em serveru ty nejzaj�mav�j��?



\subsection{M� pam� po��d slou��!}

Na�pom�rn� �ast� probl�my s~chybov�mi stavy, kter� jsou zp�sobeny probl�my s~hardwarem a~nejv�ce pam�t� je velmi vhodn� mal� progr�mek Memtester
\citeurl{Memtester}{http://www.qcc.sk.ca/~charlesc/software/memtester/}, kter�
otestuje pou�itou pam�.


\subsection{Diskusn� list snadno a~rychle}

P�i v�voji n�jak�ho programu nebo jen pro kl�bosen� s~p��teli je velmi
osv�d�en�m zp�sobem spole�n� komunikace diskusn� list, stejn� jako je
linux@linux.cz. Z��zen� a~veden� takov�hoto listu nemus� b�t jednoduch�, ale s~Listarem \citeurl{Listar}{http://www.listar.org/} ano. M� modul�rn� strukturu,
tak�e je mo�n� jeho roz�i�ov�n�, nemus� b�et pod privilegovan�m u�ivatelem a~nab�z� p�ehledn� administr�torsk� menu.\KC


\section{Linux Hardware}

\autor{Leo� Liter�k, 10. prosince 1999}

V~tomto �l�nku bych v�m cht�l p�edstavit server Linux Hardware \citeurl{Linux
Hardware}{http://hardware.penguin.cz}. Hlavn�m d�vodem vzniku tohoto serveru
bylo vytvo�it centr�lu pro v�m�nu zku�enost� s~nastavov�n�m nejr�zn�j��ho
hardwaru a~takto sn��it po�et dopis� v~konferenci linux. Mnoh� dotazy se st�le
opakovaly, tak pro� nedat odpov�di na�jedno m�sto, kde by byly snadno
dostupn�?  Prvn� verze byla spu�t�na na�ja�e a~siln� trp�la neuk�zn�nost�
n�kter�ch n�v�t�vn�k�. Druh� verze zavedla povinnost autorizace t�ch, kte��
vkl�daj� nov� �daje, zavedla dynamickou stromovou strukturu a~zatraktivnila
vzhled.

Co zde najdete? Za�prv� spoustu informac�, kter� jsou �len�ny do�n�kolika
des�tek odd�l�. Zp�sob prohl��en� vzd�len� p�ipom�n� pr�ci s~diskem. Prvn�
str�nka je ko�enov� odd�l, kter� obsahuje osm obecn�ch skupin. Nap��klad
Monitory, Tisk�rny �i Karty. Po vybr�n� n�kter� mo�nosti se v�m zvolen� odd�l
otev�e a~zobraz� se jeho obsah. Nap��klad pro odd�l Karty uvid�te pododd�ly
Zvukov�, S��ov� �i Grafick�. Takhle m��ete postupovat d�le do�hloubky, a�
skon��te ve�slo�ce, kter� obsahuje druhy. Nap��klad odd�l ATI obsahuje mimo
jin� druh Rage II. A~po jeho zvolen� se objev� z�znam s~informacemi, jak
zprovoznit tuto kartu pod Linuxem.

V~sou�asn� dob� je na�serveru zaregistrov�no asi sto u�ivatel�. Po�et z�znam�
se bl��� ke�sto pades�ti. Od nejr�zn�j��ch grafick�ch a~s��ov�ch karet, p�es
SCSI �adi�e a~termin�ly a� po RAID. Ned�vno server zaznamenal jubilejn� p�ti
tis�c� session a~pades�ti tis�c� zobrazenou str�nku. Douf�m, �e zde najdete
informace, kter� hled�te a~pokud jste zprovoznili n�jak� hardware, kter� v~datab�zi je�t� chyb�, �e se pod�l�te o~tyto zku�enosti s~ostatn�mi.

Na�z�v�r je�t� n�co m�lo o~budoucnosti. Brzy bude zprovozn�na dal�� slu�ba --
odkazy na�nejnov�j�� �l�nky server� Root, Linuxworld a~Underground.
P�ipravuje se poradna, kam budete moci zaslat sv�j dotaz a~na�i
spolupracovn�ci v�m -- zdarma -- porad�. Dal�� v�voj z�le�� na�va�ich p��n�ch.\KC



\section{C pro zelen��e?}

\autor{Zden�k Havelka, 10. prosince 1999}

\ObrLogo{Zelenaci}

\noindent
N�zev: Programovac� jazyk C pro zelen��e

\noindent
Autor: Petr �aloun

\noindent
Vydal: Neokortex \citeurl{Neokortex}{http://www.neo.cz/}

\noindent
ISBN 80-86330-02-X, doporu�en� cena 199~K�.

Jak u� stoj� v~podtitulu, jde o~knihu pro \uv{zelen��e}, tedy ty z~n�s, kte��
zat�m o~programovac� jazyk C ani nezavadili. Rozhodn� tedy nem��ete �ekat, �e
po jej�m p�e�ten� budete vytv��et plnohodnotn� programy a~aplikace v~tomto
jazyce -- sp�� byste d�ky t�to knize m�li z�skat dobr� z�klad pro pozd�j��
studium a~hlub�� pochopen� tohoto st�le aktu�ln�ho a~�iroce pou��van�ho jazyka
(alespo� pokud jde o~programov�n� syst�mov�ch aplikac�).

Kinha je rozd�lena na��ty�i z�kladn� ��sti. Prvn� velmi kr�tk� ��st je
v�nov�na z�kladn� terminologii, vysv�tlen� co je programovac� jazyk C, kde
jsou jeho ko�eny, k~�emu a~pro� se pr�v� tento jazyk pou��v�. N�sleduje
oblig�tn� a~nezbytn� \uv{Hello, world}, kter� nem��e chyb�t snad v~��dn� u�ebnici
programov�n�. U� by to opravdu cht�lo zm�nu\dots{}

Druh� ��st pokra�uje �vodem do�z�klad� jazyka, struktury �len�n� programu a~��zen� chodu, vytv��en� funkc� a~kon�� zpracov�n�m textov�ho vstupu a~v�stupu
a~z�kladn�mi p��kazy pro preprocesor.

T�et� ��st se v�nuje zejm�na pr�ci s~ukazateli a~jejich praktick�mu vyu�it�
p�i pr�ci s~�et�zci a~poli. N�sledn� navazuje na�pr�ci s~I/O popsanou v~p�edchoz� ��sti, tentokr�t se ale popisuje pr�ce se soubory. Kapitola
pokra�uje deklaracemi slo�it�j��ch datov�ch typ� (struct, union), bitov�mi
poli a~kon�� popisem dynamick� alokace pam�ti, seznamem a~polem ukazatel�.

Posledn� ��st knihy je v�nov�na p��loh�m -- najdete zde z�kladn� informace o~dostupn�m GNU software (gcc a~jeho DOS port DJGPP, RHIDE). Tady by mo�n� bylo
l�pe orientovat u�ivatele sp��e na�unixov� prost�ed� a~editor Emacs, ale to je
p��li� subjektivn� a~z�le�� na�tom, zda u� m� u�ivatel n�jak� p�edchoz�
zku�enosti nap�. s~v�vojov�mi prost�ed�mi pro Turbo Pascal apod.

Krom toho je�t� m��ete na�adrese \citeurl{C pro Zelen��e}{http://www.cs.vsb.cz/saloun/publik/c4zelenace}
nal�zt zdrojov� texty v~knize uveden�ch program�, soupis chyb a~dal�� u�ite�n�
odkazy.

Roz�len�n� na�kapitoly je vcelku logick� a~vhodn� zvolen�. V�echny kapitoly
obsahuj� podrobn� okomentovan� v�pisy zdrojov�ch text� pro demonstraci
popisovan�ch vlastnost� jazyka. Kde je to jen trochu mo�n�, uv�d� autor
typick� konstrukce a~zp�soby pou�it�, upozor�uje na�nej�ast�j�� chyby a~pochopiteln� neopominul ani z�kladn� rady, s~jejich� pomoc� by zdrojov� texty
m�ly b�t �iteln�j�� a~p�ehledn�j��. Na�n�kter�ch m�stech (ale je jich
poskrovnu) je u�ivatel odk�z�n na�pozd�j�� v�klad, ale tomu se vyhnout ned� a~naraz�te na�to snad ve�v�ech u�ebnic�ch programov�n�.

Po str�nce �pravy lze ocenit, �e autor se pokusil zv�raznit pomoc� grafick�ch
symbol� n�kter� m�sta v~textu.

Na�druhou stranu, jsou zde �ast� nedostatky v~typografii, kter� p�sob�
dosti ru�iv�. Jako p��klad bych mohl uv�st hned prvn� obr�zek na�stran� 19,
vyti�t�n� zrcadlov�, podivn� fonty pou�it� pro n�kter� matematick� symboly
(\&,--,/) v~cel�m textu (odli�n� typ p�sma, tlou��ka �i velikost), na�stran�
87 odkaz na׹patn� ��slo str�nky nebo na�stran� 90 zcela chyb�j�c� ��slo
str�nky -- m�sto n�j je zde pouze dvojice otazn�k�. 
Rovn� pou�it� pap�r a~vazba pon�kud sni�uj� u�itnou hodnotu, zvl�t� pokud se do�taj� jazyka C
no��te v~autobusu �i tramvaji.

Vzhledem ke�sv�mu obsahu v�m ale kniha pravd�podobn� poslou�� jen pro prvn�
rychl� �vod do�jazyka C a~pokud v�s neodrad�, nap���t� u� stejn� budete
pot�ebovat podrobn�j�� a~detailn�j�� manu�l nebo referen�n� p��ru�ku jazyka.

Pokud m�m mluvit za�sebe, ��dn� aplikace v~jazyce C nevytv���m a~st�le m�m za
to, �e pro zpracov�n� vstupn�ch dat a~z�kladn� aplikace pro komunikaci s~DB �i
jednodu��� CGI aplikace bez n�rok� na�rychlost a~co nejmen�� zat��en� OS
upot�eb�m sp��e n�jak� jazyk vy��� �rovn�, nap�. Python (o~objektov�m p��stupu
a~z�sk�n� spr�vn�ch n�vyk� nemluv�).

Jazyk C mne zaj�m� sp��e z~pohledu kompilace a~p��padn�ch �prav GNU software
na�linuxov� platform�, ale kniha je zam��en� velmi obecn� a~tud�� se
konkr�tn�mu prost�ed� z�m�rn� vyh�b� (v�dy� tak� jednou z~nejvyzdvihovan�j��ch
vlastnost� jazyka C je pr�v� p�enositenost zdrojov�ho k�du na�jin�
platformy). Nap�. GNU make bychom v~rejst��ku skute�n� marn� hledali.

Pokud jste tedy skute�n�mi zelen��i a~jazyk C V�s doposud m�jel, m��ete sm�le
za��t pr�v� s~touto knihou, ale po��tejte s~t�m, �e n�jakou dal�� dokumentaci
stejn� budete pot�ebovat.

Knihu zap�j�ilo nakladatelstv� Neokortex.\KC


\section{Kde hledat informa�n� zdroje}

\autor{Zden�k Pytela, 10. prosince 1999}

U�ivatel� se �asto obrac� na�ostatn� o~radu, ani� by se pokusili vy�e�it
probl�m sami, co� je pro n� samotn� v�t�inou mnohem u�ite�n�j��.  Mnohdy
netu��, �e maj� zdroje informac� p��mo na�dosah ruky, na�pevn�m disku sv�ho
po��ta�e nebo serveru a~u~po��ta�� p�ipojen�ch do�Internetu p��stupn� ve�sv�m
obl�ben�m prohl��e�i. Teprve po prozkoum�n� t�chto mo�nost� by se m�l tazatel
obracet do�odpov�daj�c� elektronick� konference.

Mezi neju�ite�n�j�� zdroje ov�em pat�� ti�t�n� literatura, v~ka�d�m p��pad� se
vyplat� do�n� investovat (elektronick� podoba mnoha n�vod� nesta�� nap��klad v~p��pad�, kdy se do�po��ta�e v�bec nem��ete dostat, a~�patn� se �te i~ve
vlaku). Z~t�ch, kter� vy�ly o~Linuxu v~posledn� dob�, jmenujme aspo� tyto:

\begin{itemize}
\item Michal Brandejs: UNIX -- Linux, praktick� pr�vodce. Grada, Praha 1996
\item LINUX -- dokumenta�n� projekt. Computer Press, Brno 1998
       dostupn� i~ve�form�tu PDF na�adrese \citeurl{LDP}{http://www.cpress.cz/knihy/linux/}
\item LINUX -- praktick� pr�vodce. Computer Press, Brno 1999
\item Pavel Satrapa a~Ji�� Randus:  LINUX -- Internet server. Neokortex 1996
\item Ladislav Lhotka: Server v~Internetu. KOPP 1996
viz t� \citeurl{Knihy na serveru Penguin}{http://www.penguin.cz/knihy/}
\end{itemize}

Anglicky vych�z� �asopis {\it Linux Journal\/}, p�edplatn� (asi 1500 K�
ro�n�) se d� objednat u~ApS Brno nebo IPEX �esk� Bud�jovice.
�esky {\it Linuxov� noviny\/} \smile


\subsection{Linuxov� zdroje na�dosah ruky}

\subsubsection{1. man}

	V po��dn�ch opera�n�ch syst�mech je zvykem, �e se programy
distribuuj� s~kompletn� dokumentac�. Standardem jsou manu�lov� str�nky.
V~t�chto str�nk�ch jsou pops�ny v�echny p��kazy a~dal�� d�le�it� informace.
N�kter� str�nky jsou p�elo�eny, a~v~�esk�m prost�ed� se v�m zobraz� tedy
�esky. Jsou rozd�leny do�9 sekc�:

1. U�ivatelsk� p��kazy

2. Syst�mov� vol�n�

3. Knihovn� funkce

4. Za��zen� a~ovlada�e za��zen�

5. Form�ty konfigura�n�ch soubor�

6. Hry

7. R�zn�

8. N�stroje pro spr�vu syst�mu

9. Intern� vol�n� specifick� pro Linux

Obsah manu�lov�ch str�nek si m��ete p�e��st p��kazem {\tt man};
proto�e samotn� {\tt man} nen� v�jimkou, m��ete za��t p��kazem 
{\tt man man}.
Ve�kter� manu�lov� str�nce hledat v�m napov� p��kazy {\tt apropos}
(hled� se ��st slova) nebo {\tt whatis} (hled� se p�esn� v�skyt slova --
pozor na�oh�b�n� �esk�ch slov).
Odkazy na�manu�lov� str�nky se pak obvykle p��� ve�tvaru 
{\tt ls(1)}.
co� znamen�, �e dal�� informace z�sk�te v~elektronick�m manu�lu na�str�nce
programu ls v~1. sekci.
Pokud se v�c manu�lov�ch str�nek, nap�. pro program a~syst�mov� vol�n�,
jmenuje stejn�, p��kaz {\tt man} vyvol� pouze prvn� z~nich; dal�� je t�eba
vyvolat s~uveden�m ��sla sekce nebo pou��t p�ep�na� {\tt -a}:
{\tt man 5 shadow}, {\tt man -a shadow}.

\subsubsection{2. info}

Nov�j�� programy pou��vaj� syst�m {\tt info}. Tento syst�m je o~n�co
propracovan�j�� a~umo��uje hypertextov� sledov�n� t�mat, zato m� slo�it�j��
ovl�d�n�, kter� se ale p��ru�ka k~syst�mu info pokou�� nau�it. Viz
{\tt info info}.

\subsubsection{3. p�ep�na�e}

V�t�ina program� uvede stru�nou n�pov�du nebo seznam sv�ch
p�ep�na��, pokud dostane n�kter� z~n�sleduj�c�ch p�ep�na��:
{\tt -?}, {\tt  -h}, {\tt  --help}.
Podrobn� popis, co kter� p�ep�na� znamen�, pod� manu�lov� nebo info str�nka.

\subsubsection{4. /usr/doc}

V�echny bal�ky maj� dokumentaci k~program�m v~adres��i {\tt /usr/doc} nebo
{\tt /usr/share/doc} -- pod�vejte se na�obsah adres��e
{\tt /usr/share/doc/BALIK} (Debian, distribuce podle FHS 2.0) nebo
{\tt /usr/doc/BALIK-VERZE} (RedHat)
Dokumentace je �asto rozs�hlej�� ne� popis k~program�m v~manu�lov� str�nce,
v�jimkou neb�vaj� p��klady pou�it�.

\subsubsection{5. HOWTO}

{\def\\{\hskip0dd}
Soubor neju�ite�n�j��ch n�vod� a~postup� v~konkr�tn� problematice.
{\tt /usr/\\doc/\\HOWTO} ({\tt /usr/\\share/\\doc/\\HOWTO}), aktu�ln� verzi najdete na
ka�d�m zrcadle ftp serveru {\tt metalab.sunsite.edu} (nap�. {\tt
ftp.linux.cz}, {\tt sunsite.mff.cuni.cz}) v~adres��i {\tt /pub/\\docs/\\HOWTO}.
Pozornost v�nujte i~podadres���m {\tt mini} a~{\tt unmaintained}.

}
\subsubsection{6. Informace o~bal�ku v~bal��kovan�ch distribuc�ch}

Redhat pod�v� z�kladn� informaci o~nainstalovan�m bal�ku p��kazem 
{\tt rpm -qi BAL�K}.
Debian pod�v� z�kladn� informaci o~nainstalovan�m bal�ku p��kazem 
{\tt dpkg -p BAL�K}.

\subsubsection{7. V�ci kolem j�dra}

Zdrojov� texty j�dra jsou um�st�ny v~adres��i {\tt /usr/src/linux}. Dokumentaci
najdete jednak v~adres��i {\tt Documentation} a~jeho podadres���ch, jednak
v~t�sn�m sousedstv� ovlada�� v~adres��i {\tt drivers}.


\subsection{Linuxov� zdroje na�Internetu v~�esk� republice}

1. Linux CZ \citeurl{Linux CZ}{http://www.linux.cz/}.
Z�kladn� informace o~Linuxu, distribuce, odkaz na�softwarov� archivy,
rozcestn�k k~linuxov�m slu�b�m, sdru�en� CZLUG,
p�edn�ky ze specializovan�h linuxov�ch semin���. Linuxov� noviny \citeurl{Linuxov� noviny}{http://www.linux.cz/noviny/}.
Mailing list \citeurl{Mailing-list}{http://www.linux.cz/mailing-list/}.
Kompletn� archiv konference \emph{linux@linux.c}z od doby jej�ho vzniku
s~fulltextov�m vyhled�v�n�m. Ur�en pro hled�n� pomoci s~konkr�tn�m
probl�mem.

2. Penguin \citeurl{Penguin}{http://www.penguin.cz/}.
Server pro podporu Linuxu. Zku�enosti, odkazy, zpr�vy, n�vody.
Czech-HOWTO \citeurl{Czech-HOWTO}{http://www.penguin.cz/czech-howto/}.
Jak na��e�tinu v~syst�mu i~v~aplikac�ch.
Fulltextov� prohled�v�n� serveru Penguin \citeurl{Fultextov� hled�n� na
serveru Penguin}{http://www.penguin.cz/webglimpse/}.

3. Docs.linux.cz \citeurl{Docs.linux.cz}{http://docs.linux.cz/}.
Server d��ve zn�m� jako �koli�ky -- sebran� dokumentace, n�vody, manu�ly
v~�e�tin� i~v~angli�tin�. �vody t�m�� do�v�ech po��ta�ov�ch discipl�n.
Fulltextov� vyhled�v�n�.

4. SunSite \citeurl{SunSite.mff.cuni.cz}{http://sunsite.mff.cuni.cz/}.
Nejv�t�� FTP server v~�esk� republice, nejv�t�� arch�v linuxov�ho softwaru
v�etn� star��ch verz�.

5. Linux Source Driver \citeurl{Linux Source Driver}{http://lsd.linux.cz/}
Navig�tor v~mo�i zdrojov�ch k�d� j�dra
Kompletn� zdrojov� k�dy v�ech aktu�ln�ch a~mnoha star��ch verz� j�dra,
porovn�v�n�, vyhled�v�n�, index kl��ov�ch slov.

6. Linux Hardware \citeurl{Linux Hardware}{http://hardware.penguin.cz/}.
Kter� komponenty jsou Linuxem podporovan�, kter� jsou vhodn� a~kter�
jsou v~Linuxu nepou�iteln�. U�ivatelsk� zku�enosti. Viz jin� �l�nek
v~aktu�ln�m ��sle Linuxov�ch novin.

7. Debian \citeurl{Debian CZ/SK}{http://www.debian.cz/}.
V�e o~distribuci Debian GNU/Linux.

8. P��buzn� servery:
Root \citeurl{Root}{www.root.cz}, Underground
\citeurl{Underground}{http://www.underground.cz}, Junyks
\citeurl{Junyks}{http://www.junyks.cz}.
Kr�tk� zpr�vy ze sv�ta opera�n�ch syst�m� typu unix a~otev�en�ch syst�m�

LinuxWorld \citeurl{Linuxworld}{http://www.linuxworld.cz}.
Kr�tk� zpr�vy ze sv�ta Linuxu

Nadace pro podporu free softwaru \citeurl{Nadace pro podporu free softwaru}{http://www.freesoft.cz}.
Server �esk� nadace pro podporu free softwaru.

GNU CZ \citeurl{GNU CZ}{http://www.gnu.cz/}
�esk� dom�c� str�nka projektu GNU, kter� se sna�� vytv��et voln� �i�iteln�
software na�profesion�ln� �rovni.

FreeBSD \citeurl{FreeBSD}{http://www.freebsd.cz/}.
FreeBSD je roz���en� opera�n�ho syst�mu BSD UNIX pro po��ta�e PC.

9. Vyhled�va�e:
Parker \citeurl{Parker}{http://parker.vslib.cz/}.
prohled�v� �esk� FTP servery -- kde m�te hledat n�jak� bal��ek.

ALLA \citeurl{ALLA}{http://alla.ms.mff.cuni.cz/}.
Velmi dob�e graficky a~funk�n� zpracovan� vyhled�va�.
Pravd�podobn� �zce zam��en� datab�ze (n�kdy vr�t� tis�ce odkaz�, jindy nic).

Alenka \citeurl{Alenka}{http://www.alenka.cz/}.
Rozcestn�k k~�esk�m i~zahrani�n�m vyhled�vac�m slu�b�m.

RPM2Html \citeurl{RPM2Html}{http://www.penguin.cz/rpm2html/}.
Vyhled�v�n� v~rpm bal��c�ch, kter� pou��vaj� distribuce RedHat, Caldera,
SuSE a~dal�� (podle kategorie, podle jm�na apod.; vyhled�v�n�
ve�standardn� distribuci, v~poddistribuc�ch PowerTools, Contrib apod).


\subsection{Linuxov� zdroje ve�sv�t�}

1. Freshmeat \citeurl{Freshmeat}{http://www.freshmeat.net/}.
Na serveru Freshmeat je denn� ohla�ov�no n�kolik nov�ch nebo
vylep�en�ch verz� program� pro Linux. Vyhled�v�n� je samoz�ejmost�.
Pravideln� o~vybran�ch novink�ch na�Freshmeatu informuj� Linuxov� noviny
(v~roce 1999 ��sla 01-02, 03-04, 09).
M��ete zkusit i~zrcadlo v~N�mecku \citeurl{Freshmeat v N�mecku}{http://de.eu.mirrors.freshmeat.net/}.
Freshmeat funguje i~jako distributor rpm bal��k�.

2. LinuxApps \citeurl{LinuxApps}{http://www.linuxapps.com/}.
Tot� v~bled�modr�m.

3. LinuxBerg \citeurl{LinuxBerg}{http://www.linuxberg.com/}, �esk� mirror
\citeurl{�esk� mirror LinuxBergu}{http://www.linuxberg.cz/}, LinuxToday
\citeurl{LinuxToday}{http://linuxtoday.com/}, 
Slashdot \citeurl{Slashdot}{http://www.slashdot.org/}.
Zpravodajsk� servery -- kr�tk� zpr�vy ze sv�ta Linuxu, informace o~nov�ch a~aktualizovan�ch programech.

4. Servery linuxov�ch distribuc�
RedHat \citeurl{RedHat}{http://www.redhat.com} 
Debian \citeurl{Debian}{http://www.debian.org}
Slackware \citeurl{Slackware}{http://www.slackware.com} 
SuSE \citeurl{SuSE}{http://www.suse.com}
Caldera \citeurl{Caldera}{http://www.calderasystems.com} 
Linux Router \citeurl{Linux Router}{http://www.linuxrouter.org} 

5. LinuxLinks \citeurl{LinuxLinks}{http://www.linuxlinks.com/}.
Rozcestn�k pro linuxov� informa�n� servery

6. Vyhled�vac� slu�by -- p��klady:

TuX Finder \citeurl{Tux Finder}{http://www.tuxfinder.com/}.
Vyhled�v�n� softwaru pro Linux -- arch�vy .tar, bal��ky deb i~rpm.
-- nen� p��li� chytr� ani designov� poveden�.

RPM Find \citeurl{RPM Find}{\tt http://rpmfind.net}.
Vyhled�v�n� v~rpm bal��c�ch (viz rpm2html na�Penguinovi).

FTPSearch \citeurl{FTPSearch}{http://ftpsearch.lycos.com/}.
Vyhled�va� s~rozs�hlou datab�z�.

Altavista \citeurl{Altavista}{http://www.altavista.com/}.
Univerz�ln� vyhled�va� se sofistikovan�m zad�v�n�m.
\KC


\section{�asto kladen� dotazy}

\autor{Zden�k Pytela, 13. prosince 1999}

V~odborn�ch konferenc�ch se po jist�m �ase za�nou opakovat ty stejn�
dotazy. M�lokoho z~t�ch, kte�� odpov�� znaj�, bav� ps�t odpov�di po��d dokola,
a~vyhled�v�n� v~arch�vu nen� univerz�ln� �e�en�.  Proto�e je to p��pad i~konference {\tt linux@linux.cz}, vznikaj� pro ni v~tuto chv�li odpov�di na
�asto kladen� dotazy (m��ete se setkat i~s~anglickou zkratkou
FAQ). Definitivn� podoba bude ozn�mena v~samotn� konferenci, zde jsou n�kter�
z~nich.

\subsection{Nem��u p�elo�it j�dro!}

Typick� hl�ka p�i nezda�en�m p�ekladu j�dra po zad�n� p��kazu {\tt make zImage}
vypad� asi takto:

\begin{verbatim}
make[1] as86: Command not found
make[1] ***[bootsect.0] Error 127
make[1] Leaving directory ...
\end{verbatim}

Odpov�� je jednoduch�: nen� nainstalov�n n�kter� bal�k, kter� je pro
p�eklad pot�eba. Obecn� pro p�eklad program� pot�ebujeme: zdrojov� k�dy,
p�eklada�, hlavi�kov� soubory a~knihovny.

\begin{itemize}
\item Zdrojov� k�d j�dra je um�st�n v~adres��i {\tt /usr/src/linux};
v~distribuci RedHat se nach�z� v~bal�ku {\tt kernel-source}
\item P�eklada�: {\tt gcc} je v~bal�ku {\tt egcs}, u~star��ch verz� v~bal�ku
{\tt gcc}
\item P�eklada�e assembleru: {\tt as} (bal�k {\tt binutils)}, {\tt as86}
({\tt bin86})
\item Program pro koordinaci z�vislost�: {\tt make} ({\tt make})
\item Hlavi�kov� soubory a~knihovny:
{\tt glibc-devel}, {\tt kernel-headers}
\item Pro konfiguraci pomoc� {\tt menuconfig}:
{\tt ncurses}, {\tt ncurses-devel}
\item Pro konfiguraci pomoc� {\tt xconfig}:
spr�vn� nainstalovan� X
\item Pro patchov�n� nov�ch verz�: {\tt patch}
\end{itemize}

Na�co je�t� m��ete narazit:
\begin{itemize}
\item {\tt kernel too big}. 
P�elo�te j�dro jako big ({\tt bzImage}) nebo odd�lte ��st ovlada��, kter�
nejsou pot�eba p�i startu syst�mu, do�modul�.
\item {\tt System.map}  
je soubor se jm�ny a~adresami v�ech symbol� pou�it�ch v~j�d�e.
Po p�elo�en� a~nainstalov�n� ka�d�ho nov�ho j�dra je vhodn� tento soubor
p�ekop�rovat z~adres��e {\tt /usr/src/linux} na�m�sto, kde ho najdou programy,
kter� ho budou pot�ebovat, nejl�pe
{\tt /boot/System.map-VERZEJ�DRA}.
V�ce v~manu�lov� str�nce p��slu�n�ho programu, nap�. ps(1).
\end{itemize}

Nezapome�te: po ka�d� zm�n� j�dra je t�eba upravit {\tt /etc/lilo.conf} a~spustit program {\tt lilo}.

\subsection{Linux a~velk� disk}

Na�v�t�in� po��ta�� je zavad��em syst�mu program lilo (LInux LOader). Tento
zavad�� vyu��v� pouze informac� z~\hbox{BIOSu} po��ta�e, a~pro omezen� dan� kdysi
d�vno nelze p�istupovat k~��stem disku um�st�n�m za�1024.  cylindrem. To je
p��pad v�ech disk� v�t��ch ne� 8 GB i~v~p��pad� zapnut� volby LBA.

Mo�n� �e�en�:
\begin{itemize}
\item Zajistit, aby cel� ko�enov� svazek nebo p�inejmen��m adres�� {\tt /boot,}
kde je um�st�no j�dro a~dal�� soubory nutn� ke�startu syst�mu, byl v~��sti
disku do�1024. cylindru. Nap��klad samostatn� svazek {\tt /boot} (sta��
velikost v~jednotk�ch megabajt�), zbytek syst�mu um�stit do�jin� oblasti,
kter� u� hranici 1024 cylindr� m��e p�ekro�it. Disk m��ete rozd�lit jakkoliv
jinak podle sv�ch pot�eb (nejrozs�hlej�� je obvykle adres�� {\tt /usr}, p��padn�
je�t� {\tt /var}).
\item M�sto {\tt lilo} pou��t {\tt grub}, kter� toto omezen� nem�.
\item Bootovat z~dosu pomoc� programu {\tt loadlin}.
\item Zav�d�t linux z~diskety (nouzov� �e�en�).
\end{itemize}

\subsection{Z historie}

Tabulka rozd�len� disku m��e m�t dv� podoby:

\begin{itemize}
\item ��slo cylindru, hlavy, sektoru (zkratka CHS)
z~historick�ch d�vod� je v~BIOSu omezen�: 10 bit� na���slo cylindru, 8 bit�
na��islo hlavy, 6 bit� na�po�et sektor�;
P�i velikosti sektoru 512 B lze adresovat disk maxim�ln� do�velikosti
2\^{}10 * 2\^{}8 * 2\^{}6 * 512 B = 2\^{}33 B = 8 GB
(1024 * 256 *  64 * 512 B = 8589934592 B)
\item absolutn� po�et sektor� od za��tku.
Toto ��slo m� velikost 4 byty, lze proto adresovat 2\^{}40 B (2 TB).
\end{itemize}

BIOS ov�em k~disku p�istupuje prvn� metodou, a~proto zavad��e, kter� se na
BIOS spol�haj�, na�vzd�len�j�� ��sti nemohou p�i zav�d�n� syst�mu dos�hnout.

Doporu�en� literatura:

\begin{itemize}
\item LILO mini HOWTO
\item Linux+NTLoader mini HOWTO
\item Loadlin+Win95 mini HOWTO
\item manu�lov� str�nky: lilo, lilo.conf, bootparam, initrd
\end{itemize}

Odkazy na�dal�� zavad��e:

1. grub
\citeurl{Grub}{http://www.uruk.org/grub/}

2. gag: grafick�, intuitivn� ovl�dan� zavad��
\citeurl{Gag}{http://raster.cibermillennium.com/SOFTWARE/GAG/gageng.htm}

3. mbtmgr
\citeurl{mbtmgr}{http://www.tdp.cz/martin/mbtmgr/}

%%% 3.

 \subsection{Termin�l pro Windows}

	V Linuxu se d� celkem pohodln� pracovat i~z~nep��telsk�ch prost�ed�,
jak�mi jsou opera�n� syst�my Microsoftu, sta�� m�t nainstalov�n dobr�
termin�l. M��ete si vybrat z~n�sleduj�c� nab�dky:

1. {\tt teraterm} \citeurl{teraterm}{ftp://ftp.penguin.cz/pub/win32/}.
Umo��uje spojen� p�es telnet i~ssh.
% FIXME: vlnovka v URL! podivej se do vysledku a oprav prosim v celych
% novinach
Je dob�e po�e�t�n� \citeurl{teraterm II}{http://www.fi.muni.cz/~xsmerk/}, cel� kl�vesnice funguje.
Pouze pro Win32 (95, 98, NT).

2. {\tt putty} \citeurl{putty}{http://www.chiark.greenend.org.uk/~sgtatham/putty.html}.
Umo��uje spojen� p�es telnet i~ssh.
Dobr� zobrazen�, snadno se konfiguruje.
Pouze pro Win32 (95, 98, NT).

3. Console Telnet \citeurl{Console Telnet}{http://www.clnet.cz/pub/OS/Windows95/Net/ConsoleTelnet/}.
Umo��uje spojen� pouze p�es telnet, obsahuje vzorov� INI soubor pro Linux.
Lze jej p�epnout na�fullscreen.

4. {\tt dtelnet} \citeurl{dtelnet}{http://www.dccs.com.au/~dave/dtelnet.html}.
Umo��uje spojen� pouze p�es telnet.
Sta�� nastavit fonty a~jede; jen neum� p�evod ISO 8859-2 na�CP 1250.
Bin�rka m� pouze 70 KB.

%%% 4.
\subsection{Program se nechce spustit}

	Probl�m: nejde mi spustit program z~aktu�ln�ho adres��e, i~kdy� m�
nastaven atribut pro spou�t�n� ({\tt chmod +x} {\it soubor\/}).

	Z bezpe�nostn�ch d�vod� nen� standardn� aktu�ln� adres�� p��tomen
v~cest� (prom�nn� {\tt \$PATH}). Programy, kter� chcete spou�t�t �ast�ji,
p�ekop�rujte do�adres��e, kter� u� v~cest� m�te, nap�. {\tt /usr/local/bin}
nebo {\tt ~/bin}. Jinak spou�t�jte programy s~�plnou absolutn� nebo
relativn� cestou 
{\tt ./program}.
P�id�vat aktu�ln� adres�� do�cesty se nedoporu�uje.\KC

\def\CS{\hbox{$\cal C\kern-.1667em\lower.5ex\hbox{$\cal S$}\kern-.075em $}}
\def\cstug{\CS\thinspace TUG}
\def\NTS{\hbox{\mathsurround=0pt
    $\cal N\mkern -4mu\lower .5ex\hbox{$\cal T$}\mkern -2mu S$}}

\section{NTS a~interaktivn� dokumenty na�Fakult� informatiky}

\autor{David Anto�, 14. prosince 1999}

V~sobotu 11. prosince 1999 po��dalo �eskoslovensk� sdru�en� u�ivatel�
\TeX u~\cstug\ a~Fakulta informatiky Masarykovy univerzity v~Brn� v~prostor�ch
fakulty p�edn�ky o~syst�mu \NTS . \NTS\ (New Typesetting System)
je p�ipravovan� n�sledn�k \TeX u.

P�edn�ej�c�mi byli Hans Hagen, vedouc� a~koordin�tor projektu \NTS\ a~Karel
Skoup�, program�tor, kter� se v~sou�asn� dob� pr�ci na�\NTS\ pln� v�nuje.

V~prvn�m bloku sobotn�ho dopoledne informoval Karel Skoup� o~postupech,
stavu a~probl�mech implementace \NTS . Idea vznikla p�ed t�emi lety
a~s~vlastn� implementac� se za�alo p�ed rokem. Nen� bez zaj�mavosti, �e
Karel Skoup� je jedin�m program�torem projektu. Prvn� f�z�, kterou auto�i
zam��lej� dokon�it do�poloviny roku 2000, je syst�m pln� kompatibiln�
s~\TeX em.

Pro implementaci byl zvolen jazyk Java. Pat�� toti� mezi nejl�pe
p�enositeln� programovac� jazyky v�bec a~nav�c se realiza�n�mu t�mu
zal�bil javovsk� syst�m bal��k� objekt�. \TeX\ je program v�ce ne� dvacet
let star� a~a�koli byl vytv��en podle nejlep��ch postup� sv� doby, je to
rozs�hl� monolit strukturovan�ho k�du.

\TeX\ byl tedy \uv{rozebr�n} na���sti a~ty jsou postupn� p�episov�ny v~Jav�
p��sn� objektov�. Za�hlavn� probl�m ozna�il Karel Skoup� existenci velk�ho
mno�stv� z�vislost� mezi jednotliv�mi ��stmi \TeX u, kter� jsou p�irozen�m
d�sledkem jeho architektury, zato se v�ak nesm�rn� obt��n� modeluj�
pomoc� objekt�. A�koli \TeX\ pat�� mezi nejl�pe dokumentovan� programy,
\hbox{\TeX book}
popisuje jeho �innost pouze ve�standardn�ch situac�ch. Pro dosa�en� �pln�
kompatibility je t�eba prov�d�t mnoho pokus�, kter� odhaluj� jeho chov�n�
v~neobvykl�ch podm�nk�ch.

\hskip0dd\NTS\ v~sou�asn� dob� zvl�d� expanzi maker, odstavcov� zlom a~v�stup, co�
dosta�uje k~tomu, aby n�m byla jeho funkce demonstrov�na.
Karel Skoup� pomoc� \NTS\ zalomil t�i odstave�ky textu, pak tot� provedl
\TeX em a~v�sledky porovnal. Nejen �e byly stejn� napohled, ale v�sledn�
{\tt dvi} soubory se shodovaly do�posledn�ho bitu.

Ur�it� �ten��e napad� ot�zka, zda takov� �sil� stoj� za�to, aby vznikl
\uv{\hbox{\TeX\ II}}, jen�e objektov�, v~Jav� a, jak jsme
vid�li, tak� mnohokr�t
pomalej��. Odpov�� poskytla p�edn�ka Hanse Hagena pod n�zvem

\subsection{What things do�we want NTS to do?}

\NTS\ nen� prvn�m n�sledn�kem \TeX u. Jmenujme t�eba ee\TeX , nebo zn�m�j��
pdf\TeX . V�echny dosavadn� deriv�ty \TeX u~stoj� na�p�vodn�m
Knuthov� k�du, ve�kter�m je ��st p�eps�na �i upravena. To nen� jednoduch�,
zdrojov� k�d obsahuje mnoho
velmi ��inn�ch optimalizac�, kter� ov�em vedou k~naprost� nep�ehlednosti.
Po�et lid� na�sv�t�, kte�� se v~{\tt tex.web} skute�n� vyznaj�, se odhaduje
na�n�kolik des�tek.

C�lem zvolen� architektury \NTS\ je maxim�ln� modularita. T�m se auto�i projektu sna�� d�t
prostor program�tor�m, kte�� by cht�li p�epracovat a~vylep�it ��st syst�mu. Po��t� se s~t�m, �e
se objev� nov� v�stupn� form�ty, jako se to t�eba ned�vno stalo s~PDF, tak�e by m�lo b�t
umo�n�no zpracov�vat jin� vstupy, ne� ty, na�kter� jsou \TeX ist� zvykl�, nap��klad SGML.
A�koli ur�it� nen� pochyb o~tom, �e kup��kladu ��dkov� zlom \TeX u~pat�� k~nejlep��m, mus�me si
tak� p�iznat, �e i~\TeX\ m� sv� slabiny. Sazba na rejst��k, v�cesloupcov� sazba se zarovn�n�m
nebo t�eba obt�k�n� obr�zk� jsou sice �koly �e�iteln�, ale nep��li� pohodln�, p�esn�ji �e�eno
velmi obt��n�.

Tyto probl�my by postupn� m�ly �e�it dal�� verze \NTS , tak� iniciativ�
program�tor� mimo zat�m pon�kud uzav�en� t�m se meze nekladou.
K�d bude voln� dostupn� a~\NTS\ bude ���en
podobn� jako \TeX . P�edpokl�d� se, �e jeho jednotliv� moduly budou moci b�t
vyu�ity i~samostatn�, nap��klad v� WWW browser si p�e�te zdrojov� k�d
dokumentu t�eba v~\LaTeX u~a~zobraz� jej pomoc� \NTS\ jako typograficky
kr�sn� d�lo.

% FIXME: \METAFONT????? a ne METAFONT
Mezi dal�� kroky pat�� integrace \NTS\ a~METAFONTu. Vych�z� se z~toho, �e \TeX\
dnes v�bec nebere v~�vahu tvary znak�, kter� s�z�. Prost� jen skl�d� boxy a~\uv{nev�}, jestli znak t�eba box nep�esahuje.
Auto�i rovn� uva�uj� o~vytvo�en� interaktivn�ho prost�ed�, ve�kter�m by
bylo mo�no (slovy Hanse Hagena) \uv{sed�t s~rukama na���d�c�ch p�k�ch},
m�nit parametry zlomu a~sledovat, co se s~dokumentem d�je.

\hskip0dd\NTS\ je velmi zaj�mav� projekt zam��en� do�bl�zk� i~vzd�len�j�� budoucnosti.
N�m tedy nezb�v�, ne� cel�mu t�mu pop��t mnoho �sp�ch�.

\subsection{Tvorba interaktivn�ch dokument�}

Hans Hagen vedl na�p�d� Fakulty informatiky v~pozdn�m odpoledni
13.~12.~1999 op�t pod z�titou \cstug
u~a~Fakulty informatiky
�ty�hodinov� tutori�l s~n�zvem Advanced Interactive Documents.
Jak ji� pravila pozv�nka, \TeX\ je jeden z~m�la program� schopn�ch vytv��et
sofistikovan� dokumenty v~PDF. Cht�lo by se dodat, �e zvl�t� tehdy, kdy�
se \TeX\ a~PDF spoj� s~Hansem Hagenem, co� dokazovaly jeho lehce avantgardn�
navr�en� a~zpracovan� prezentace.

Pan Hagen rozebral v~�vodu v�hody a~nev�hody form�tu PDF jako prost�edku
pro p�enos informac� a~d�le se v�noval probl�mu, kdy (ne)pou��t \TeX .
\TeX\ se ukazuje jako velmi vhodn� prost�edek pro kvalitn� typografick�
zpracov�n� dokument� pravideln� struktury, jejich� sazbu lze dob�e
algoritmizovat.

D�le byly rozebr�ny z�kladn� charakteristiky (p�ed n�kolika lety se u~n�s
��kalo \uv{�pecifik�}) interaktivn�ch dokument�. Je t�eba po��tat
s~omezen�mi, kter� p�in�� pou�it� technologie a~na�druh� stran� je �koda
nevyu��t mo�nost�. Pak lze t�ko rozli�it, co je je�t� dokument a~co je
program. P�edstavte si zkou�ku z~angli�tiny, p�i kter� v�m \hbox{PDFko} nab�z�
mo�nosti dopl�ov�n� slov, a~kdy� slovo vyberete, je do�dokumentu nejen
vlo�eno (to by nebylo nic moc), ale odstavec je vysazen, tak�e vypad� zcela
dokonale, i~kdy� jste vybrali nejm�n� dobrou ze v�ech mo�nost�.

Zbytek tutori�lu byl v�nov�n t�mat�m d�le�itosti
strukturovan�ho a~flexibiln�ho k�dov�n� dokument� a~tomu, jak si m��eme
takov� dokumenty navrhnout a~vytvo�it sami.

Hans Hagen si vzal za�c�l touto p�edn�kou uk�zat, �e u�ivatel� \TeX u~se
mohou dostat a� na�hranice mo�nost� tvorby dokument�. Mysl�m, �e se mu to
poda�ilo, stejn� jako se poda�ilo \cstug u~p�ipravit dva dny pln�
zaj�mav�ch informac�.\KC

\section{Po��ta�ov� bezpe�nost a~Linux II -- bezpe�n� SMTP slu�by}

\autor{Jarda Cmunt}

\subsection{�vod}

V~minul�m d�le jsem sl�bil, �e se dnes budeme zab�vat n�hradou standardn�ch
slu�eb jejich zabezpe�en�mi alternativami (dnes slu�bou SMTP). Tomuto t�matu
se v�nuji v~druh� ��sti �l�nku. Na��vod se bude dobr� sezn�mit s~metodami,
kter� cracke�i pou��vaj� k~pronik�n� do�syst�m� pomoc� softwarov�ch chyb v~r�zn�ch programech.

Prvn� �asto vyu��vanou chybou je buffer overflow. Princip byl pops�n v~
Linuxov�ch novin�ch v~b�eznu roku 1998 a~z�jemci najdou komplexn� popis v~
�asopise Phrack \citeurl{Phrack}{http://www.phrack.com} v~�l�nku Smashing the stack for fun 
and profit, kter� napsal Aleph One a~najdete ho v~��sle 49, soubor 14. V�hodou 
t�to chyby, samoz�ejm� z~pohledu �to�n�ka, je, �e mu dok�e zajistit pr�va
programu, ve�kter�m ji dok�e vyvolat. Ter�em lok�ln�ch �tok� (�to�n�k ji�
z�skal neprivilegovan� ��et) jsou suid (p��padn� sgid) root programy (v~minulosti nap�. ping nebo mount), ter�em vzd�len�ho �toku se st�vaj� d�moni
zaji��uj�c� jednotliv� slu�by, zejm�na ti, kte�� b�� s~pr�vy u�ivatele root.
Ned�vn�mi ob�mi byli nap�. bind (nejr�zn�j�� druhy chyb),
wu-ftpd (p�ete�en� bufferu p�i maz�n� p��li� dlouh�ho adres��e, tato vadn�
verze je sou��st� nap�. Redhat 5.0), mezi vd��n� slu�by pat�� tak� pop3, imap, 
RPC slu�by obecn� a~dal��.

Dal�� b�nou chybou je nedostate�n� kontrola po�adavku u~slu�eb, kter�
umo��uj� z�sk�vat ze serveru soubory, nebo je na�n�j zapisovat. Jde
zejm�na o~ftp a~http (budeme mluvit pouze o~softwarov�ch chyb�ch, nikoliv
o~chybn� konfiguraci). Asi nejstar��m druhem �toku je pokus o~z�sk�n�
souboru {\tt /etc/passwd} n�jakou takovouto konstrukc�: 
{\tt http://www.obet.cz/../../../../etc/passwd}. Tyto chyby by m�ly b�t
u~sou�asn�ch b�n� pou��van�ch d�mon� (Apache a~dal��) minulost�.
Mnohem zaj�mav�j�� variantou jsou �toky na�CGI skripty. P�ekvapiv�
mnoho CGI skript� m� nejr�zn�j�� chyby, kter� umo�n�
z�skat kl��ov� syst�mov� soubory. Samostatnou kapitolu potom tvo��
PERL skripty. PERL je velmi mocn� jazyk pro zpracov�n� text�, a~proto
se v~t�to oblasti �asto pou��v�. Program�to�i bohu�el maj� jen mal�
pov�dom� o~bezpe�nosti, a~proto bezstarostn� vytv��ej� r�zn� nebezpe�n�
konstrukce, co� speci�ln� v~PERLU nen� ��dn� probl�m. Zaj�mav� �l�nek
v�novan� tomuto t�matu vy�el op�t v~Phracku, ��slo 55, soubor 07. Jsou
zde mimo jin� i~rozbory n�kolika ve�ejn� dostupn�ch skript� s~uk�zkami
b�n�ch chyb p�i zpracov�n� parametr� atd.

Lehkou pr�ci bude �to�n�k m�t, m��e-li na�disk neprivilegovan� zapisovat,
v~ide�ln�m p��pad� p�ipojit z�znam o~nov�m u�ivateli s~uid 0 do�{\tt /etc/passwd},
p�idat z�znam do�cronu, inetd, nebo vytvo�it soubor {\tt .rhosts} v~adres��i
n�kter�ho u�ivatele, nejl�pe roota. V~tomto p��pad� jsou mo�nosti netu�en�, a~z�le�� jen na�fantazii �to�n�ka, jakou metodu pou�ije, zda si nech� po�adovan�
soubory poslat e-mailem, nebo si vytvo�� do�syst�mu zadn� vr�tka.

Dal�� mo�nost�, kter� souvis� s~t�matem tohoto �l�nku, jsou n�kter�
potenci�ln� nebezpe�n� vlastnosti (tedy nikoliv chyby) r�zn�ch program�.
Mo�nosti jejich vyu�it� z�vis� zcela na�okolnostech, konfiguraci serveru atd.
Jako p��klad uve�me mo�nost spou�t�t p��kazy v~souboru .forward (pou��v�n
sendmailem). Pokud se �to�n�kovi poda�� tento soubor vytvo�it v~dom�c�m
adres��i n�kter�ho u�ivatele, s~obsahem nap�. {\tt "echo /etc/passwd | 
mail hacker@crack.cz"}, po zasl�n� e-mailu tomuto u�ivateli obdr�� soubor
s~hesly. Dal�� nebezpe�nou vlastnost�, kterou jsme zm�nili v~minul�m �l�nku,
je pos�l�n� d�v�rn�ch �daj� po s�ti v~ne�ifrovan� podob�, ev. slab�
�ifrovan�, co� umo��uje jejich odposlech. Sem pat�� ftp, telnet a~mnoho
dal��ch slu�eb. Proto�e u�ivatel� v�t�inou pou��vaj� v�ude stejn� hesla,
jsou tyto informace pro �to�n�ka velmi u�ite�n�.

D�le jen kr�tce n�kter� dal�� mo�nosti: nap��klad v~PERLU m��e �et�zec
obsahovat znak {\tt '\char92 0'}, co� je v~C konec �et�zce. Takov�to znak vlo�en� do
parametru CGI skriptu bude ov�em ni��� vrstvou (standardn� knihovna nebo
kernel) interpretov�n zp�sobem, kter� nebyl autorem skriptu o�ek�v�n, n�kter�
programy vytv��ej� do�asn� soubory v~/tmp a~ochotn� n�sleduj� linky, kter� jim
tam podstr��te, tak�e lze fal�ovat jejich pracovn� data, zapisovat do�nebo
��st z~n�mi po�adovan�ch soubor� apod, zkou�en� hesel na�pop3 serveru, chyby ve
standardn� knihovn� nebo kernelu, se kter�mi nepo��t�te atd.

Proti n�kter�m v�cem, jako nap�. fal�ov�n� obsahu DNS nebo ARP cache, se lze
br�nit opravdu t�ko, a~proto�e nespadaj� do�dne�n�ho t�matu, budeme se jimi
zab�vat n�kdy pozd�ji.

Pokud jste do�etli a� sem a~z�skali dojem, �e za�takov�ho stavu v�c� lze server
ochr�nit jen velmi t�ko a~s~vynalo�en�m p��li� velk�ho mno�stv� energie,
neh�zejte je�t� flintu do׾ita. Skute�nost je takov�, �e proti naprost�
v�t�in� cracker� se dok�ete br�nit za�relativn� p�ijatelnou cenu, nebo� ve
v�t�in� p��pad� jde o~u�ivatele nejr�zn�j��ch b�n� dostupn�ch crackersk�ch
n�stroj� bez valn�ch technick�ch znalost�. P�i dodr�en� ur�it�ch pravidel
dok�ete zabezpe�it server tak, �e skute�nou hrozbou pro v�s bude pouze mal�
skupina profesion�l�. I~proti nim lze podniknout mnoh� a~k~t�mto pokro�il�m
metod�m zabezpe�en�, kter� zahrnuj� i~takov� v�ci, jako odolnost proti
soci�ln�mu in�en�rstv�, fal�ov�n� v�eho druhu apod., se dostaneme n�kdy
pozd�ji.

A~nyn� m��eme p�istoupit k~na�im program�m a~d�mon�m.

\subsection{Bezpe�n� SMTP slu�by}

SMTP pat�� mezi z�kladn� slu�by, kter� bude provozovat potenci�ln� ka�d�, kdo
se p�ipoj� k~Internetu, a~i~mnoho t�ch, kte�� je budou provozovat pouze v~r�mci lok�ln� s�t�. Pat�� tedy mezi prvn� kandid�ty na�zabezpe�en�. V~tomto
p��pad� m�me na�t�st� na�v�b�r ze dvou kvalitn�ch �e�en�.

V~Linuxu b�v� �asto jako defaultn� SMTP d�mon instalov�n a~pou��v�n sendmail,
kter� nen� pova�ov�n za�p��li� bezpe�n�, a~kter� nav�c trp� n�kter�mi
koncep�n�mi nedostatky. Kv�li jeho roz���enosti si na�n�m ov�em mnoho
u�ivatel� vyp�stovalo takovou z�vislost, �e ho prost� nemohou nahradit n���m
jin�m bez vynalo�en� zna�n�ho �sil� (zejm�na v~prost�ed�, kde se star� o~doru�ov�n� po�ty pro stovky nebo tis�ce klient� v~r�zn�ch dom�n�ch apod.),
proto se nejprve budeme zab�vat mo�nostmi jeho zabezpe�en�.

V~prvn� �ad� byste m�li udr�ovat sendmail na�nejnov�j�� verzi. Bezpe�nost k�du
se zlep�ila, a~je �ance, �e nov� objeven� chyby budou odstran�ny d��ve, ne� je
n�kdo vyu�ije k~pr�niku zrovna do�va�eho serveru.

Druhou, u~sendmailu v�cem�n� teoretickou, mo�nost� je jeho provozov�n� v~chroot() prost�ed�. To m� ov�em n�kolik nev�hod. Prvn� je obt��nost jeho
zprovozn�n�, druhou mo�nost jeho prolomen�, nebo� sendmail je jeden
monolitick� program b��c� se superu�ivatelsk�mi pr�vy. Jedinou v�hodou je
mo�nost oklam�n� naivn�j��ch cracker�. Pracnost t�to metody se m��e vyrovnat
pracnosti p�echodu na�jin� SMTP server.

Kone�n� t�et� mo�nost� je filtrov�n� p��stupu k~sendmailu z~Internetu nebo
lok�ln� s�t� podle zp�sobu jeho pou�it�. T�m se sn��� po�et mo�n�ch �to�n�k�.

�tvrtou, nejbezpe�n�j��, v~mnoha p��padech v�ak nejm�n� sch�dnou, volbou je
postupn� p�echod na�jednu z~d�le uveden�ch alternativ.

\subsection{Postfix}

Postfix je prvn�m bezpe�n�m SMTP serverem, kter�m se budeme zab�vat. Byl ps�n
p��mo jako n�hrada sendmailu, a~tak se vyzna�uje zna�nou kompatibilitou. Je
produktem firmy IBM a~byl naps�n Wietse Venemou. Vzhledem k~tomu, �e se auto�i
sna�� o~co nejv�t�� roz���en�, byl zve�ejn�n pod Open Source licenc�.
Bezpe�nost pat�ila p�i v�voji na�prvn� m�sto, a~tak pat�� mezi to nejlep��, co
m��ete naj�t.

Mezi jeho v�znamn� vlastnosti pat��:

-- bezpe�nost -- Postfix je roz�len�n na�n�kolik mal�ch program�, z~nich� ka�d�
d�l� pouze jednu v�c a~dok�e spolupracovat s~ostatn�mi. A� na�d�mona
zaji��uj�c�ho lok�ln� doru�ov�n� b�� v�echny ��sti se sn��en�mi pr�vy a~mohou
pracovat v~chroot() prost�ed�. ��dn� program nen� setuid. Nav�c jednotliv�
komponenty ned�v��uj� ��dn�m informac�m z�skan�m z~okol� (v�etn� zpr�v
slou��c�ch ke�vz�jemn� komunikaci) a~v�e pe�liv� ov��uj�.

-- v�kon -- Postfix pat�� mezi nejv�kon�j�� SMTP servery. Be�n� desktopov� PC
dok�e zpracovat a� mili�n r�zn�ch zpr�v denn�. Ke�sn��en� z�t�e syst�mu p�i
vytv��en� nov�ch proces� pou��v� podobn� triky jako HTTP servery.

-- kompatibilita -- jak jsme ji� uvedli, Postfix se sna�� o~maxim�ln�
kompatibilitu se sendmailem. Proto�e se auto�i sna�ili o~co nejv�t�� snadnost
konfigurace, nen� kompatibiln� se {\tt sendmail.cf}. Nicm�n� podporuje form�t
mailbox, soubory {\tt /etc/aliases}, {\tt .forward} atd.

-- flexibilita -- vzhledem ke�zm�n�n�mu rozd�len� funk�nosti mezi r�zn� d�mony
je mo�n� selektivn� p�id�vat nebo ub�rat ur�it� funkce. P�i specifick�ch
po�adavc�ch je mo�n� n�kter� d�mony zcela nahradit jin�mi.

-- Postfix d�le podporuje virtu�ln� dom�ny a~dal�� pokro�il� vlastnosti, kter�
se od program� tohoto typu o�ek�vaj�.

Postfix najdete na�adrese \citeurl{Postfix}{http://www.postfix.org}.

V~p��pad�, �e uva�ujete o~n�hrad� sendmailu, m��e b�t Postfix tou nejm�n�
bolestnou cestou vzhledem k~jeho zna�n� kompatibilit�, dosa�enou bezpe�nost
lze p�itom pova�ovat za�velmi kvalitn�. Pokud je pro v�s bezpe�nost t�m
nejd�le�it�j��m, m��ete nasadit kalibr nejv�t�� dostupn� r�e: qmail.

\subsection{Qmail}

P�i vytv��en� qmailu na�n�j byly kladeny je�t� p��sn�j�� po�adavky ne� na
Postfix, co� vedlo k~vytvo�en� velmi kvalitn�ho produktu. O~d�v��e, kterou k~n�mu autor Dan Bernstein m�, sv�d�� i~to, �e po jeho uveden� byla vyps�na
odm�na ve�v��i 1000\$ za�nalezen� chyby. Tuto odm�nu se nepoda�ilo nikomu
z�skat.

Pou�it� qmailu v�ak m��e m�t n�kter� �skal�, zejm�na pokud p�ech�z�te ze
sendmailu. P�edev��m, qmail nen� p��li� kompatibiln�. V�t�� kompatibility
m��ete dos�hnou pomoc� n�kter�ch bal�k� (nap�. podpora soubor� .forward),
pokud ho v�ak chcete vyu��t naplno, nebude pro v�s p�echod snadn�. Qmail mimo
jin� pou��v� jin� form�t pro ukl�d�n� zpr�v -- maildir -- kter� zaru�uje
stoprocentn� spolehlivost p�i jejich zpracov�n�. Tento form�t zat�m nen�
podporov�n zdaleka v�emi MUA (uve�me, �e qmail dok�e pracovat i~se
standardn�m form�tem mailbox). Dal��m nedostatkem m��e b�t nep��li� rozs�hl�
dokumentace, vzhledem k~jeho roz���en� lze v�ak o�ek�vat podporu formou
mailing list� apod. A~kone�n�, pro qmail neexistuje ��dn� bin�rn� distribuce.

A~nyn� se pod�vejme na�vlastnosti, kter� z~n�j d�laj� tak kvalitn� produkt:

-- bezpe�nost -- stejn� jako u Postfix je jeho funk�nost rozd�lena mezi n�kolik
mal�ch program�. Pokud jde o~d�v�ru ve�sv� okol�, je zna�n� paranoidn�.
Ned�v��uje p��li� ani standardn� knihovn�, a~jej� funkce bu�to zcela
nahrazuje, nebo se alespo� nesna�� spol�hat na�jejich spr�vnou funk�nost.

-- spolehlivost -- jak bylo �e�eno, qmail pou��v� pro ukl�d�n� zpr�v form�t
maildir. Ka�d� zpr�va je ukl�d�na do�jin�ho souboru, co� odstra�uje pot��e se
zamyk�n�m v~p��pad� standardn�ho mailboxu, a~mo�nost jeho po�kozen� v~p��pad�
v�padku syst�mu. Zpr�vy jsou potvrzov�ny a� po kompletn�m z�pisu na�disk,
tak�e i~jejich doru�ov�n� je spolehliv�.

-- rychlost -- d�ky inteligentn�mu n�vrhu je qmail rychlej�� ne� sendmail.

-- POP3 -- qmail obsahuje bezpe�n� POP3 server, kter� vych�z� ze stejn�
filosofie n�vrhu, jako cel� qmail.

-- mailing listy -- i~p�i z�kladn� instalaci maj� u�ivatel� mo�nost konfigurovat 
si vlastn� jednoduch� mailing listy. Pro pokro�ilou spr�vu slou�� bal�k ezmlm.

-- a~samoz�ejm� jsou tu dal�� vlastnosti jako virtu�ln� dom�ny, detekce smy�ek,
dal�� bal�ky roz�i�uj�c� funk�nost atd.

Dom�c� str�nkou qmailu je \citeurl{Qmail}{http://www.qmail.org}.

\subsection{Dal�� zabezpe�en�}

I~kdy� oba uveden� programy jsou samy o~sob� bezpe�n�, chybou u�ivatele m��e
doj�t ke�sn��en� dosa�en� bezpe�nosti. Oba umo��uj� u�ivateli definovat n�jak�
akce, kter� se automaticky provedou nad do�l�m e-mailem. U~Postfixu je lze
definovat v~souboru {\tt ~/.forward} a~u~qmailu v~souboru {\tt ~/.qmail} (a~dal��ch).
Nejnebezpe�n�j�� akc� je samoz�ejm� spou�t�n� dal��ch program�, kter� nemus�
b�t p��li� d�v�ryhodn�, nebo se autorovi poda�� vytvo�it ne�mysln� n�jakou
nebezpe�nou konstrukci, kterou dok�e �to�n�k zasl�n�m mailu zneu��t, a~kompromitovat tak konto tohoto u�ivatele.

To sam� plat� pro MUA, zejm�na textov�, kter� �asto volaj� {\tt metamail} pro
zpracov�n� mime z�silek. Soubor {\tt /etc/mailcap}, kter�m je {\tt metamail} ��zen, je tak
ide�ln�m m�stem pro vytv��en� r�zn�ch nebezpe�n�ch konstrukc�.

V~obou t�chto p��padech nejde o~teoretick� mo�nosti, jsou to zp�soby, kter�
jsou crackery skute�n� ob�as pou��v�ny.

D�le je vhodn� pamatovat na�mo�nost vyu�it� va�eho syst�mu spammery. ��st 
odpov�dnosti v~tomto p��pad� pad� i~na�v�s, a~i~kdy� pravd�podobn� nep�jde o~
pr�vn� postih, d�v�ryhodnosti v�m to nep�id�. Ka�d� z~uveden�ch program� 
poskytuje n�jak� zp�sob ochrany proti spamu a~pou��v�n� neopr�vn�n�mi 
u�ivateli. Je vhodn� je pou��t. Podle m�ch zku�enost� je tento aspekt (nejen u~
n�s) podce�ov�n, a~m��ete bezstarostn� pos�lat po�tu p�es snad ka�d� druh� 
SMTP server, na�kter� naraz�te.

P���t�: DNS a~vzd�len� spr�va.\KC

\section{Netfilter a~iptables}

\autor{Jarda Cmunt}

Pokud jste se ji� vzpamatovali z~p�echodu z~ipfwadm na�ipchains, �ek� v�s s~
p��chodem kernelu 2.4 dal�� velk� zm�na. Firewalling k�d v~kernelu byl zcela 
p�eps�n a~nov� n�stroj pro spr�vu filtrov�n� packet� se jmenuje iptables.

Hned na��vod jedna dobr� zpr�va. Nov� k�d je zp�tn� kompatibiln� jak s~
ipchains, tak s~ipfwadm (filtrovac� pravidla lze spravovat pomoc� t�chto 
n�stroj�), a~autor je podle sv�ch slov hodl� podporovat a� do�roku 2003. I~
kdy� jste s~ipchains pln� spokojeni, m��ete si p�e��st n�sleduj�c� �l�nek, 
nebo� iptables p�in�ej� n�kter� nov� a~zna�n� v�znamn� mo�nosti, jako nap�. 
stavov� filtrov�n� (jinak tak� dynamick� filtrov�n�).

Pro� byl k�d op�t p�eps�n? Funkce jako filtrov�n� paket�, ma�kar�da nebo 
transparentn� proxy jsou v~nyn�j��ch j�drech spojeny, a~to nejen v~tom smyslu, 
�e jsou spravov�ny jedn�m n�strojem, ale i~na��rovni implementace. To zvy�uje 
mo�nost zav�d�n� necht�n�ch chyb do�filtrovac�ch pravidel p�i sou�asn�m 
pou�it� filtrov�n� packet� a~ma�kar�dy (iptables nyn� skute�n� pouze filtruj� 
a~packety nijak nem�n�).

Odd�len� t�chto v�c� v~j�drech 2.4 m� za�n�sledek jednodu��� pou��v�n�
n�stroje iptables a~vytv��en� pravidla jsou pr�hledn�j��. To mimo jin� sni�uje
i~mo�nost zavle�en� chyb p�i konfiguraci firewallu. Dal�� v�znamnou zm�nou je
roz�i�itelnost v�ech t�chto n�stroj�.

NAT, ma�kar�da, port forwarding, reverse NAT (load sharing) a~dal�� jsou nyn� 
spravov�ny n�strojem ipnatctl, kter� op�t slou�� pouze k~tomuto ��elu.

\Obr{netfilter}

Vzhledem k~tomu, �e architektura se zcela li�� od ipchains popsan�ch v~
Linuxov�ch novin�ch v~b�eznu roku 1998, bude vhodn�, kdy� se na�n� pod�v�me 
trochu detailn�ji.

\subsection{Netfilter}

Z�kladem je netfilter framework, kter� je sou��st� j�dra. Ten definuje na�
cest� packetu TCP/IP stackem p�t bod�, ve�kter�ch se mohou moduly j�dra 
p�ihl�sit k~jejich odb�ru a~rozhodnout, zda packetu daj� �anci postoupit d�l, 
nebo zda bude zlikvidov�n. V~ka�d�m bod� m��e b�t p�ihl�eno libovoln� 
mno�stv� modul�, a~packety, pokud nejsou n�kter�m zlikvidov�ny, jsou p�ed�ny 
postupn� v�em. Pro v�t�� n�zornost si cestu packetu uk�eme na�obr�zku.

%\Obrazek NetFilter

A~to je v�e, co se d�je na�t�to z�kladn� �rovni. Netfilter krom� toho nab�z� 
u� jen z�kladn� infrastrukturu pro komunikaci userspace vs. kernel, kterou lze 
pou��t k~p�ed�v�n� parametr� do�modul� a~zp�tn�mu z�sk�v�n� stavov�ch 
informac�. Stejn� jako u~ipchains lze p�ed�vat packety do�userspace k~dal��mu 
zpracov�n�, op�t je to ov�em implementov�no jinak (cena za�v�echna tato 
zlep�en�).

\Obr{iptables}

\subsection{Iptables}

Nyn� k~vlastn�mu filtru packet�. Ten je implementov�n sadou modul� j�dra, 
kter� je nutno zav�st p�ed vlastn�m vytv��en�m filtrovac�ch pravidel. 
Roz�len�n� na�moduly r�zn�ho druhu m� n�kolik v�hod. Jednak m��ete zav�d�t 
pouze ty, kter� opravdu pot�ebujete, jednak samotn� iptables jsou navr�eny 
jako roz�i�iteln� pr�v� pomoc� modul� j�dra. Jako moduly lze p�id�vat jednak 
c�le (na�rozd�l od ipchains zde nejsou pouze z�kladn� c�le DENY, REJECT, 
ACCEPT a~u�ivatelem vytvo�en� �et�zce, lze p�id�vat libovoln� dal��), a~tak� 
filtrovac� pravidla.

Aby tyto moduly byly spravovateln� pomoc� n�stroje iptables, je i~tento 
program navr�en jako roz�i�iteln�, a~to pomoc� dynamick�ch knihoven. Ka�d� 
netrivi�ln� modul, kter� vy�aduje p�edat n�jak� parametry, m� sv�j dopln�k v~
dynamick� knihovn� pro iptables. V�e je navr�eno tak, aby implementace byla co 
nejjednodu���, a~dosti kvalitn� zdokumentov�no.

Roz�len�n� na�moduly m� i~dal�� kladn� dopad. K�d pro stavov� filtrov�n�, 
kter� byl p�vodn� sou��st� NAT (connection tracking) a~implementov�n rovn� 
pomoc� modul�, je nyn� sd�len s~iptables.

Cesta packetu filtrovac�m k�dem se li�� od ipchains a~poskytuje v�t�� 
nez�vislost filtrovac�ch pravidel na�interfacech. Bude dobr�, kdy� ji op�t 
zobraz�me graficky (viz druh� obr�zek).

%\Obrazek IPTables

�et�zec INPUT odpov�d� bodu NF\_IP\_LOCAL\_IN z~p�edchoz�ho obr�zku, �et�zec 
FORWARD bodu NF\_IP\_FORWARD a~kone�n� �et�zec OUTPUT bodu NF\_IP\_LOCAL\_OUT.

V�hodou oproti p�edchoz�m implementac�m je, �e packet proch�zej�c� �et�zcem 
FORWARD, ve�kter�m se v~b�n�ch p��padech bude odehr�vat v�t�ina filtrov�n�, 
v�, jak o~vstupn�m, tak o~v�stupn�m rozhran�, nebo� ji� bylo rozhodnuto o~jeho 
sm�rov�n�.

Vzhledem k~tomu, �e vytv��en� filtrovac�ch pravidel se nijak zvlṻ neli�� od 
ipchains (jsou zde syntaktick� zm�ny, koncepce funkce je ale podobn�), budeme 
se d�le zab�vat pouze funkcemi, kter� iptables nab�zej� nav�c. Popis p��kazu 
iptables (a~ipnatctl) naleznete v~bal�ku netfilter, kter� najdete na�adrese 
\citeurl{netfilter}{http://www.samba.org/netfilter/}.

Prvn� v�znamnou, a~z�ejm� nejd�le�it�j�� zm�nou, je stavov� filtrov�n�. P�i 
konstrukci filtrovac�ho pravidla m��ete zohlednit stav socketu, ke�kter�mu 
proch�zej�c� packet pat��. Rozli�ovan� stavy jsou tyto:

-- NEW -- jde o~packet, kter� vytv��� nov� socket.

-- ESTABLISHED -- packet, kter� lze p�i�adit n�kter�mu ji� prob�haj�c�mu spojen�.

-- RELATED -- packet, kter� se vztahuje k~n�jak�mu prob�haj�c�mu spojen�, ale 
nen� jeho sou��st� (nap�. ICMP zpr�va o~chyb�).

-- INVALID -- packet, kter� nelze p�i�adit ��dn�mu spojen�. Tyto packety by m�ly 
b�t likvidov�ny.

Budeme-li tedy nap�. cht�t zv��it odolnost syst�mu proti stealth port scan�m, 
m��eme to zajistit t�m, �e budeme likvidovat packety s~nastaven�m FIN flagem a~
stavem INVALID.

Dal�� mo�nost je zm�n�na v~p�edchoz�m odstavci. iptables umo��uj� rozli�ovat 
jednotliv� flagy v~TCP hlavi�ce a~filtrovat packety podle nich. V~ipchains 
bylo mo�n� detekovat pouze nastaven� SYN flag.

D�le je mo�n� filtrovat podle TCP options nebo MAC adresy.

A~kone�n� je zde pravidlo limit, kter� je mo�n� pou��t nap��klad k~omezen� 
logov�n� v~n�kter�m �et�zci. U~toho pravidla m��eme nastavit maxim�ln� po�et 
shod za�sekundu a~omezit tak p�epl�ov�n� logu v~�et�zci, u~kter�ho lze 
o�ek�vat velk� po�et shod.

V~sou�asn� dob� jsou iptables ve�v�voji, tak�e je mo�n�, �e po�et nov�ch 
vlastnost� se p�ed uveden�m jader �ady 2.4 je�t� zv�t��.

Netfilter je sou��st� sou�asn�ch v�vojov�ch jader 2.3, tak�e pokud ho chcete 
vyzkou�et, p��padn� za��t vyv�jet vlastn� moduly, pot�ebujete instalovat 
nejnov�j�� j�dro t�to �ady a~bal�k netfilter v~v��e uveden� adresy, kter� 
obsahuje implementaci iptables, ipnatctl a~dokumentaci.

Informace o~mailing listu pro netfilter naleznete na�t�e adrese (jde sp��e o~
v�voj��sk� list ne� o~technickou podporu).\KC

\def\ps{Post\-Script}
\def\gs{Ghost\-script}

\section{Tisk�rny v~Unixu}

\autor{Petr Ol��k, 4. ledna 2000}

Na konci roku 1999 koupila na�e katedra n�kolik nov�ch tisk�ren a j� jsem
je p�ipojoval do na�� heterogenn� s�t� postaven� na unixov�ch serverech.
Rozhodl jsem se sepsat zku�enosti s~t�m spojen� do �l�nku, kter�
m��ete pou��t jako jak�si haut�, ov�em forma �l�nku je ur�ena pro Linuxov�
noviny.

\subsection{Teorie}

Star� unixov� aplikace vytv��ely pouze hol� textov� v�stup a
p�edpokl�dalo se, �e ten m��e b�t ti�t�n na tisk�rn�ch. ��dkov�
tisk�rny (Line PRinter, proto program lpr) hol� texty tiskly bez
probl�m� a nic v�ce se ne�e�ilo. Jakmile vznikly modely tisk�ren,
kter� um�j� tisknout grafiku, v�voj��i firmy Adobe navrhli velmi dobr�
standard, kter� popisuje pokyny pro tisk grafiky~-- jazyk
\ps{}. Jedn� se o~lidsky �iteln� programovac� jazyk.  Unixov�
tiskov� spoolery tedy nad�le obsahuj� textov� soubory: bu� skute�n�
hol� texty ur�en� pro ��dkov� tisk�rny nebo \ps{}, ur�en� pro
grafick� tisk�rny. Pokud unixov� aplikace nab�zej� mo�nost tisknout
grafiku, musej� m�t v~sob� zabudov�n gener�tor \ps{}u. ��dn�
rozhran� se syst�mem p�i programov�n� tiskov�ch algoritm� v~aplikac�ch
se nevyu��v�.

\ps{} by m�la um�t zpracovat ka�d� tisk�rna schopn� grafick�ho
provozu. To je bohu�el jen sen. N�kter� tisk�rny rozum�j� pouze sv�mu
vlastn�mu jazyku, kter� je od mezin�rodn�ho standardu (jak�m je
\ps{}) na hony vzd�len. V~lep��m p��pad� je tento jazyk tisk�rny
v�robcem zve�ejn�n a program�to�i z~komunity voln�ho software pro n�j
nap��� modul do \gs{}u. Pak je mo�no za�adit do tiskov�ho
spooleru filtr, kter� vol� program \gs{}. Ten um� interpretovat
\ps{} a prost�ednictv�m zm�n�n�ho modulu jej p�evede na jazyk
tisk�rny. Tento v�stup se po�le p��mo na port tisk�rny. Tisk�rna se
z~pohledu unixov�ho u�ivatele jev� jako schopn� zpracovat \ps{}. �e
probl�m �e�� n�jak� \gs{} na tiskov�m serveru nemus� u�ivatele
zaj�mat.

V~hor��m p��pad� v�robce hardwaru nezve�ejn� jazyk tisk�rny, ale
n�kter� program�tor voln�ho software se p�esto pokus� experimenty, pokusy
a omyly zjistit, jak se d� s~tisk�rnou domluvit, a nap��e k~tomu modul
do \gs{}u. T�m je �loha p�evedena na p�edchoz� p��pad, ov�em
s~t�m, �e se z�ejm� nepoda�� vyu��t v�echny hardwarov� schopnosti
tisk�rny. V~je�t� hor��m p��pad� se program�to�i voln�ho software danou
tisk�rnou v�bec nezab�vaj� a nehodlaj� zab�vat (proto�e nap��klad
v�robce nezve�ejn� technickou specifikaci za��zen� a oni nemaj�
pot�ebu na n�m tisknout). V~takov�m p��pad� existuje 
jedin� rada: takovou tisk�rnu {\it nekupujte\/}!

To je ov�em rada za v�echny pen�ze. Zkuste zaj�t za prodava�em
po��ta�ov�ho vybaven� s~dotazem, zda pro jazyk nab�zen� tisk�rny
existuje modul do \gs{}u. Z~nejvy��� pravd�podobnost� v�m
prodava� nebude rozum�t. Kdy� mu vysv�tl�te, �e je to velmi d�le�it�,
proto�e jinak na t� tisk�rn� nep�jde v�bec tisknout, bude prodava�
argumentovat, �e p�ece v~dod�vce je CD�ko s~ovlada�em pro Woknous,
tak�e jak�pak probl�m. Je tedy pot�eba vyka�lat se na prodava�e a
d�kladn� prohl�dnout informace o~\gs{}u na Internetu v�etn�
mo�nost� jeho modul� s~n�vaznost� na typ tisk�rny, kterou zam��l�te
zakoupit. Je tak� mo�n� se pl�cnout p�es kapsu a koupit tisk�rnu,
kter� sama um� \ps{}. Pak jste p�i p�ipojen� k~Unixu zcela bez
probl�m�.

\subsection{Nahl�dnut� do oken}

Proto�e v~na�� katedern� s�ti existuj� st�le zatvrzel� u�ivatel�
pou��vaj�c� MS Woknous, kr�tce se zm�n�m o~technick�ch principech tisku
z~tohoto opera�n�ho syst�mu.

Aplikace, kter� m� vytv��et tiskov� v�stup, mus� d�vat pokyny
o~vzhledu str�nky p��mo opera�n�mu syst�mu prost�ednictv�m aplika�n�ho
interfejsu (API). Je to n�co podobn�ho jako syst�mov� vol�n�
v~Unixu. T�m se aplikace st�v� sice nez�vislou na typu p�ipojen�
tisk�rny, ale z�rove� se st�v� t�ce z�vislou na Woknous. Pro srovn�n�
p�ipomeneme, �e unixov� aplikace generuje \ps{}, co� je jazyk
zcela nez�visl� na pou�it�m opera�n�m syst�mu. Tiskov� algoritmy
unixov� aplikace m��eme tedy snadno p�en�st na libovoln� jin� opera�n�
syst�m (s~v�jimkou Woknous). P�epsat ale programov� k�d tisku ve
Woknousov� aplikaci znamen� napsat v�e zcela znovu. Nez�vid�m
program�tor�m, kte�� vsadili na Woknous a nyn� musej� p�episovat
rozs�hl� kusy sv�ch program� pro pou�it� v~rozumn�j��ch opera�n�ch
syst�mech.

Tiskov� pokyny z~aplikace jsou zpracov�ny syst�mem Woknous a jsou d�le
p�ed�v�ny jednotn�mu rozhran� v�ech tiskov�ch ovlada�� pro
Woknous. Tiskov� ovlada� (dod�van� v�robcem tisk�rny) z~nich
vygeneruje jazyk, kter�mu rozum� dan� tisk�rna a v�sledek po�le do
spooleru. Odtud se �loha vytiskne. Vid�me tedy dal�� rozd�l.  Zat�mco
v~unixov�ch spoolerech m�me pro grafick� tisk pouze \ps{} bez
z�vislosti na typu tisk�rny, ve Woknousov�ch spoolerech je v�dy �loha
p�ed�vejkan� do jazyka tisk�rny. Takov� �loha m��e b�t mnohon�sobn�
objemn�j��, ne� kdyby z�stala v~\ps{}u. Na Woknousov� spoolery je
tedy �asto pot�eba vymezit v�ce m�sta. Dal�� nev�hodou je, �e p�i
probl�mech s~tiskem se ned� ve Woknous snadno p�ij�t, kde je chyba. 
V~Unixu m��eme p�i probl�mech zachytit \ps{} ve spooleru a d�kladn�
si jej prohl�dnout (textov�m editorem a \gs{}em). Ve Woknous
m��eme sice tak� zachytit soubor ve spooleru, ale nebude n�m to nic
platn�, proto�e jazyk tisk�rny je v�t�inou bin�rn� a �lov�ku zcela
nesrozumiteln�.

V�imneme si dal��ho d�le�it�ho rozd�lu mezi Unixem a Woknous. Ka�d�
stanice s~Woknous mus� m�t instalov�ny v�echny ovlada�e
pro v�echny s��ov� viditeln� tisk�rny. Do s�t� pos�l� p�ed�vejkanou �lohu
u� v~jazyce tisk�rny. N�kup nov� tisk�rny p�ipojen� do s�t� tedy obn��
obej�t {\it v�echny\/} Woknousov� klienty s~disketou nebo CD�kem a
do zblbnut� instalovat ovlada�. Na druh� stran� unixov� filtr, kter� spou�t�
\gs{} pro p�eveden� \ps{}u do jazyka tisk�rny, je instalov�n a�
{\it na konci �et�zce}, tedy na tiskov�m serveru, ke kter�mu je tisk�rna
p�ipojena. Jednotliv� unixov� klienti nepot�ebuj� instalovat ��dn�
doprovodn� software pro danou tisk�rnu. U�ivatel�m po�leme jen e-mail, �e
maj� do sv�ho {\tt printcap}u p�idat jeden nov� ��dek, a o v�ce se nestar�me.
M�n� pou�en�m u�ivatel�m to ud�l�me sami pomoc� {\tt ssh}, ani� bychom
museli zvednout zadek ze �idle.

Dal��m probl�mem ve Woknous je skute�nost, �e za�aly zcela ignorovat
mo�nost tisku na star�ch ��dkov�ch tisk�rn�ch. Nelze jednodu�e poslat
tisk�rn� prost� textov� soubor k~vyti�t�n� bez toho, aby jej Woknousy
nep�elo�ily do sekvence grafick�ch pokyn�. Vid�l jsem, jak
u�ivatel Woknous zpracoval \ps{}ov� soubor pro \ps{}ovou
tisk�rnu. �eknu v�m, byl to z�itek. Nejprve nat�hl \ps{}ov�
soubor do Woknousov�ho GhostWiew a dal po�adavek k~tisku. GhostView byl
konfigurov�n tak, �e spustil \gs{} pro interpretaci \ps{}u
a vytvo�il sekvenci grafick�ch pokyn� na �rovni API. Woknousy to
zpracovaly a p�edaly ovlada�i pro tisk�rnu. Ovlada� z~toho
vygeneroval nov� \ps{}, kter� p�edal tisk�rn�. Tisk�rna ten \ps{}
interpretovala znovu. Skute�nost, �e to v�bec fungovalo, je p�ece ��asn�!

U�ivatel Woknous m� jist� dal�� mo�nosti. Objevil jsem tuto: na velmi
nelogick�m m�st� v~syst�mu konfigura�n�ch nab�dek se najde prov�z�n�
skute�n�ho v�stupn�ho portu tisk�rny s~DOSo\-v�m logick�m portem LPT1 a�
LPT nev�m kolik. Ten skute�n� v�stupn� port m��e b�t fyzicky na
tisk�rn� nebo to m��e b�t odkaz na s��ov� server a tisk�rnu na n�m.
Z~DOSu ve Woknous se pak daj� pos�lat data do uveden�ho logick�ho portu,
kter� jsou p�esm�rov�na do v�stupn�ho portu {\it bez ��dn�
interpretace}, prost� tak, jak jsou. Tak�e u�ivatel Woknous m��e
v~DOSu poslat text na ��dkovou tisk�rnu pomoc�
\hbox{\tt copy soubor.txt lpt1} nebo m��e \ps{}ov� soubor vytisknout
p��mo bez drb�n� se pravou rukou za lev�m uchem povelem
\hbox{\tt copy soubor.ps lpt2}.

\subsection{V��n� DOS}

U~DOSo\-v�ch aplikac� se p�edpokl�dalo, �e ka�d� aplikace bude
um�t vygenerovat jazyk v�ech tisk�ren, kter� jsou na trhu. To je velmi
�patn� koncepce, kter� �in� DOSo\-v� aplikace z�visl� na typu
tisk�rny. DOS je tedy pou�iteln� jen pro v�stup na ��dkov�ch
tisk�rn�ch nebo p�i pou�it� aplikac�, kter� n�hodou generuj� jazyk
shodn� s~jazykem na�� tisk�rny.

P�i propojen� DOSo\-v�ch klient� s~Unixo\-v�mi
tiskov�mi servery existuje je�t� jeden probl�m, na kter� jsem u� kdysi
d�vno narazil p�i p�ipojov�n� DOSo\-v�ch klient� p�es PCNFS.
Zat�mco Unixo\-v�
program {\tt lpr} vytvo�� kompletn� \uv{zapouzd�enou} tiskovou �lohu
(m� jasn� definovan� za��tek a konec), DOSo\-v� aplikace nic takov�ho
ned�l�. Ta prost� pos�l� do portu tisk�rny data. N�kdy se odml��,
proto�e se t�eba zamysl� nad n�jak�m meziv�po�tem, a pak pokra�uje
v~zas�l�n� dat do portu. 
Ot�zka, kde kon�� jedna �loha a za��n� druh� je
pro DOS nezaj�mav�. Ve v�ceu�ivatelsk�ch a v�ce�lohov�ch syst�mech n�s
ale tato ot�zka siln� zaj�m�. Proto tiskov� servery, kter� p�ij�maj�
�lohu z~DOSu, maj� mo�nost konfigurace �asov� prodlevy, po jej�m�
p�ekro�en� server shled� �lohu za ukon�enou a zapouzd�� ji.  Prodleva
b�v� nastavena zhruba na p�l minuty. U�ivatel tisknouc� z~DOSu pak
jako st�ela vyb�hne ze sv� kancel��e k~tisk�rn�, kde p�l minuty mus�
p�e�lapovat, ne� server ukon�� p��jem �lohy a �lohu za�ne tisknout. U�ivatel
p�i p�e�lapov�n� mudruje n�co o~tom, �e informace by se po
s��ov�ch kabelech m�ly ���it rychlost� sv�tla. Del�� �asov� prodleva
by znamenala del�� p�e�lapov�n� DOSo\-v�ch u�ivatel� p�ed tisk�rnami a
v�ce mudrov�n�. Na druh� stran� krat�� prodleva by mohla znamenat 
nep��jemn� roztr�en� �lohy v~m�st�, kde se DOSo\-v� 
aplikace pouze zamysl�, proto�e je tak
blb� naprogramovan�. Druh� ��st �lohy by pak nemusela m�t spr�vn�
definovanou hlavi�ku a mohla by zp�sobit, �e by byl p�e�lapuj�c�
a mudruj�c� u�ivatel zavalen tunami nespr�vn� poti�t�n�ch pap�r� 
a jeho d�v�ra v~po��ta�ovou techniku by klesla na nulu.

\begin{vypis}[dt]
\begin{verbatim}
# printcap
# ��dky za��naj� bez mezer a pokra�ovac� ��dky za��naj� tabel�torem

lj4|LaserJet4:\
        :lp=/dev/lp0:\
        :mx#50000:rw:sh:\
        :sd=/var/spool/lj4:\
        :lf=/var/adm/lj4-errs:\
        :rg=lj4user:

dj8|dj880c|DeskJet880Color:\
        :lp=/dev/null:\
        :mx#50000:sh:\
        :sd=/var/spool/dj8:\
        :if=/etc/tisky/filter-dj8:\
        :rg=dj8user:
dj8raw:\
        :lp=:rm=printservrik:mx#50000:rp=L2:sd=/var/spool/dj8raw:rg=daemon:

ep24:\
        :lp=:rm=starysun:mx#50000:rp=ep24:sd=/var/spool/ep24:rg=ep24user:
lj3:\
        :lp=:rm=starysun:mx#50000:rp=lj3:sd=/var/spool/lj3:rg=lj3user:

lp|fs1|FS1750:\
        :lp=/dev/null:\
        :mx#50000:sh:\
        :sd=/var/spool/fs1:\
        :if=/etc/tisky/filter-fs1:\
        :rg=fs1user:
fs1raw:\
        :lp=:rm=printservrik:mx#50000:rp=L1:sd=/var/spool/fs1raw:rg=fs1user:

cp6|cp660|CanonCP660:\
        :lp=:rm=cp660:mx#50000:rp=xjprint:sd=/var/spool/cp6:rg=cp6user:
cp6d|cp6dup|cp660dup:\
        :lp=/dev/null:\
        :mx#50000:sh:\
        :sd=/var/spool/cp6d:\
        :if=/etc/tisky/filter-cp6d:\
        :rg=cp6user:
cp6m|cp6manual|cp660manual:\
        :lp=/dev/null:\
        :mx#50000:sh:\
        :sd=/var/spool/cp6m:\
        :if=/etc/tisky/filter-cp6m:\
        :rg=cp6user:
\end{verbatim}
\captionv{V�pis 1}
\label{obr1}
\end{vypis}

\subsection{S��ov� propojen� tisk�ren}

Unixov� tiskov� d�mon {\tt lpd} um� p�ijmout tiskovou �lohu ze s�t�
nebo z~lok�lu, ulo�it ji do spooleru, aplikovat na jednotliv� �lohy ze
spooleru p��padn� filtr, p�eposlat �lohu kolegovi d�monovi z~jin�ho
po��ta�e kdekoli v~TCP/IP s�ti a kone�n� poslat �lohy na lok�ln� port,
ke kter�mu je p�ipojena tisk�rna. Programem {\tt lpr} m��e u�ivatel
tiskovou �lohu vytvo�it a pokud se nesta�ila vytisknout, m��e ji
u�ivatel zru�it pomoc� programu {\tt lprm}. Kone�n� program {\tt lpc}
je ur�en pro spr�vu tisk�ren (pozastaven� tisku, p�erovn�n� tiskov�
fronty, restart d�mona atd.) a v�t�inu sv�ch funkc� umo��uje jen
spr�vci syst�mu. Toto programov� vybaven� je star� jak Metuzal�m, ale
je st�le nenahraditeln�.

Na na�� kated�e je �est ve�ejn� pou��van�ch tisk�ren um�st�n�ch ve
spole�n� m�stnosti. Jedna je p�ipojena p��mo na linuxov� server
paraleln�m kabelem (kter� vede krz ze� a je pon�kud del��, ne�
p�ipou�t� norma ajtripl-�, ale probl�my se nedostavily). Dal�� dv�
tisk�rny jsou p�ipojeny ke star��mu SUNu jednou paraleln� a jednou
seriov� krz ze�, dal�� tisk�rna m� vlastn� s��ovou kartu a k~posledn�m
dv�ma jsme dokoupili s��ov� printserv��k.

Printserv��k je takov� sympatick� tich� a malink�
krabi�ka, na n�� z~jedn� strany kouk� konektor pro p�ipojen� ke 100MB
s�ti a na druh� stran� vid�me t�i paraleln� porty. Vyu�il jsem z~nich
zat�m jenom dva. P�i n�kupu tohoto za��zen� jsem se neobe�el bez
probl�m�. Na m�j dotaz, zda nab�zen� printserv��k um� po s�ti
komunikovat stejn� jako unixov� lpd, mi ��dn� prodava� nebyl schopen
odpov�d�t. N�kte�� z~nich za�ali dokonce pl�cat n�co o~tiskov�ch
ovlada��ch k~jednotliv�m tisk�rn�m, ��m� nazna�ili, �e tot�ln� nev�d�,
kter� bije. Je pravda, �e jsem si mohl technickou specifikaci r�zn�ch
v�robk� p�e��st na Internetu, ale cht�l jsem si vyzkou�et pohotovost
prodava��. Jedna firma n�m nab�dla, �e n�m za��zen� na kr�tkou dobu
zap�j��. Jakmile jsem otev�el manu�l, v�d�l jsem, �e printserv��k m�j
po�adavek o~unixov�m {\tt lpd spl�uje}. �lo o~Micronet \hbox{PSHX3P-B}.

\begin{vypis}[dt]
\begin{verbatim}
#!/bin/bash

# This filter runs gs if the '%!' are first two chars on input.
# Nov 1999                                    Petr Olsak

dd of=/tmp/pprint.$$ count=1 bs=2 2> /dev/null

if echo -n '%!' | cmp - /tmp/pprint.$$ > /dev/null ; then
# The PrintJob is in PostScript, we start GhostScript filter:
  cat /tmp/pprint.$$ - | \
    gs -q -sDEVICE=cdj880 -sPAPERSIZE=a4 -dNOPAUSE \
       -dSAFER -dBATCH -sOutputFile=- - | lpr -U $5 -Pdj8raw
else
# The PrintJob contains raw data, no changes are needed:
  cat /tmp/pprint.$$ - | lpr -U $5 -Pdj8raw
fi

rm /tmp/pprint.$$
\end{verbatim}
\captionv{V�pis 2}
\label{obr2}
\end{vypis}

�katulka nab�hne v~re�imu, kdy sice nezn� sv� IP ��slo, ale d� se j�
toto ��slo vnutit na libovoln�m Unixu
pomoc� \hbox{\tt arp -s IP.��slo hw:ad:re:sa}. HW adresa je 
odvozena od s�riov�ho ��sla, kter� lze naj�t na spodn� stran� krabi�ky.
Pak u� se d� z~krabi�ky pomoc� FTP z�skat textov� konfigura�n� soubor, upravit
jej a poslat zp�t. Bylo pot�eba dizejblovat SMB protokol, aby mi na
krabi�ku nepos�laly Woknousy �lohy p��mo. D�le jsem NEkonfiguroval br�nu
(gejtwej), proto�e lpd server v~krabi�ce neum� spolupracovat se zn�m�m
souborem {\tt hosts.lpd}, tj. nelze omezit tisk jen z~vybran�ch
ma�inek. Proto�e nechci, aby mi na tom tisknul kdokoli z~Internetu,
z�st�v� krabi�ka d�ky nekonfigurovan� br�n� mimo segment s�t� na��
katedry neviditeln�. Kdo chce tisknout z~v�t�� vzd�lenosti, po�le
�lohu na lpd b��c� na na�em linuxov�ho serveru, ten ji po kontrole 
v~{\tt hosts.lpd} odm�tne nebo akceptuje a v~druh�m p��pad� ji p�epo�le
na lpd do printserv��ku.

Na linuxov�m serveru mi b�� samba, kter� nab�z� u�ivatel�m MS
Woknous tisk na v�ech ve�ejn�ch tisk�rn�ch. Pokud u�ivatel na
klientovi konfiguruje v�stupn� port t�eba ve tvaru
{\tt\char`\\\char`\\masina\char`\\fs1}, samba na serveru {\tt masina}
provede autentizaci u�ivatele a spust� {\tt lpr -Pfs1}. Tiskov� �loha
je d�le zpracov�v�na unixov�m lpd pro tisk�rnu s~n�zvem {\tt fs1}. Na
serveru m�m {\tt printcap} zhruba ve tvaru, jak ukazuje \ref{obr1}.


\subsection{Jednoduch� filtr}

Z~\ref{obr1} je patrn�, �e u�ivatel� maj� v�ce logick�ch jmen, ne�
vlastn�ch tisk�ren. Zab�vejme se nejprve tisk�rnou HP~DeskJet880,
kter� m� logick� jm�na {\tt dj8} a {\tt dj8raw}. P�i pou�it� jm�na
{\tt dj8} je tiskov� �loze vlo�en do cesty filtr specifikovan�
parametrem {\tt if}. Obsah tohoto skriptu vid�me na
\ref{obr2}. Na druh� stran� jm�no {\tt dj8raw} je pou�ito pro p��mou
komunikaci s~tisk�rnou bez aktivace filtru.
Proto�e u�it� tisk�rny {\tt dj8raw} je dovoleno jen
skupin� daemon, nemohou na ni b�n� u�ivatel� tisknout p��mo. D�ky
inteligenci filtru to ani nepot�ebuj�. Vlastnosti filtru si nyn�
pop��eme.

\looseness=1
Proto�e je tisk�rna HP~DeskJet880 p�ipojena na printserv��k, pou�it�
filtr vlastn� nen� v~prav�m slova smyslu 
filtrem s~v�stupem na standardn� v�stup.  Pokud
by byla tisk�rna p�ipojena dejme tomu na {\tt/dev/lp1}, zru�ili bychom
v~{\tt printcap}u jm�no {\tt dj8raw} a pro tisk�rnu {\tt dj8} bychom
konfigurovali p��mo {\tt lp=/dev/lp1}. Ve skriptu bychom umazali na
dvou m�stech text \uv{\hbox{\tt | lpr -U \$5 -Pdj8raw}} a mohli bychom
tisknout lok�ln�. Tehdy by filtr skute�n� �etl standardn� vstup a
p��padn� modifikovan� data p�ed�val na standardn� v�stup. D�mon 
{\tt lpd} nasm�ruje tento v�stup do za��zen� specifikovan�ho parametrem 
{\tt lp}.

Pt�te se, pro� nelze za�adit filtr p��mo pro tisk�rnu, kter� m� 
v~{\tt printcap}u konfigurov�no {\tt rm=jinam} pro p�esm�rov�n� �lohy
jin�mu {\tt lpd} d�monovi? Jednodu�e proto, �e v~tomto p��pad� d�mon
filtr do �lohy za�adit nemum�. Pt�te se pro� neum�? To j� nev�m.


Filtr z~\ref{obr2} m� n�sleduj�c� vlastnosti. Sejme pomoc� {\tt dd}
z~tiskov� �lohy prvn� dva bajty a zkontroluje, zda tyto bajty
neobsahuj� text {\tt\%!}. Pokud ano, jedn� se o~\ps{}ovou �lohu.
Ka�d� \ps{}ov� �loha mus� za��nat t�mito znaky. V~takov�m p��pad�
filtr nasad� \gs{}. Inkoustov� tisk�rna HP~DeskJet880 toti� sama
\ps{} neum�. Pokud ale prvn� dva znaky jsou jin�, jedn� se
o~�lohu, kter� je z�ejm� p��mo v~jazyce tisk�rny (vytvo�il ji asi
Woknousov� klient). Filtr proto p��kazem {\tt cat} spoj� odloupnut�
dva bajty se zbytkem �lohy a bez interpretace po�le �lohu na
v�stup. V�stupem je v~p��pad� p�ipojen� tisk�rny na printserv��k povel
{\tt lpr -U \$5 -Pdj8raw}, co� zp�sob� p�esm�rov�n� �lohy do
printserv��ku. P�itom vlastnictv� �lohy z�st�v� d�ky parametru {\tt-U}
p�vodn�mu u�ivateli, kter� ji m��e pomoc� {\tt lprm} ve front� 
{\tt dj8raw} p��padn� likvidovat.

\begin{vypis}[dt]
\let\begintt=\beginttnoend
\begin{verbatim}
#!/bin/bash
# Nov 1999                                    Petr Olsak

dd of=/tmp/pprint.$$ count=1 bs=2 2> /dev/null

if echo -n '%!' | cmp - /tmp/pprint.$$ > /dev/null ; then
# The PrintJob is in PostScript, we insert a duplex command:
  echo `date '+%X, %d.%m %Y'`: $5 "PS-duplex" >> /var/log/fs1-use
  cat /etc/tisky/duplex.ps /tmp/pprint.$$ - | lpr -U $5 -Pfs1raw
  rm /tmp/pprint.$$
  exit
fi

# Ten dvojznak ^[ n��e je ve skute�nosti jedin� znak Escape (k�d 27)
if grep '^[' /tmp/pprint.$$ > /dev/null; then
# The PrintJob contains raw data from Windows, no changes are possible:
  echo `date '+%X, %d.%m %Y'`: $5 "MS-Win" >> /var/log/fs1-use
  cat /tmp/pprint.$$ - | lpr -U $5 -Pfs1raw
  rm /tmp/pprint.$$
  exit
fi

cat /tmp/pprint.$$ - > u$$.txt

if cat u$$.txt | tr 'X\000-\010\016-\031\033-\037' 'B[X*26]' |\
   grep -l X >/dev/null; then
#  Binary data?
   echo `date '+%X, %d.%m %Y'`: $5 "Binary" >> /var/log/fs1-use
   lpr -U $5 -Pfs1raw u$$.txt    
   rm /tmp/pprint.$$ u$$.txt
   exit
fi
\noend{verbatim}
\captionv{V�pis 3}
\label{obr3}
\end{vypis}


 
Tisk�rna HP~DeskJet880 nem� v~sou�asn� dob� modul do \gs{}u
p��mo v~jeho distribuci. Modul na�t�st� existuje zvlṻ na

{\center 
\hskip0dd\url{http://www.proaxis.com/mgelhaus/linux/software/hp880c/hp880c.html}. 

}
\noindent
Lze postupovat podle n�vodu z~t�to str�nky a zakompilovat
do \gs{}u~5.50 nov� za��zen� {\tt cdj880}. Nebyly s~t�m ��dn� probl�my.
V~t�to souvislosti upozor�uji na to, �e nap��klad k~tisk�rn�m
HP~DeskJet7xx jsem nikde modul do \gs{}u nena�el, tak�e tyto
modely jsou pro Unix nepou�iteln�. Jeden takov� model na kated�e u�
n�jakou dobu m�me a je p�ipojen lok�ln� v~kancel��i u�ivatele
pou��vaj�c�ho v�hradn� Woknous. Nic jin�ho se s~takovou tisk�rnou
d�lat ned�.

P�i n�vrhu filtr� je nutno nezapomenout na �vodn� specifikaci shellu
pomoc� dvojznaku {\tt \#!}. Jednou jsem byl leniv� tak u�init, proto�e
jsem navrhoval jedno��dkov� filtr a krut� jsem na to doplatil.  P�itom
ti mezci, co psali manov� str�nky pro {\tt lpd} a {\tt printcap}, se
ani sl�vkem nezm�nili o~tom, �e specifikace shellu je ve filtru
povinn�. St�lo m� to n�kolik hodin zbyte�n�ho �asu.

\subsection{Slo�it�j�� filtr}

Pop��eme nyn� zaj�mav�j�� filtr pro tisk�rnu {\tt fs1}. Jedn�
se o~�ernob�lou laserovou tisk�rnu Kyocera, kter� um� \ps{} a m�
duplexn� podava� (tj. um� tisknout oboustrann�). Proto�e to je
tisk�rna s~nejlevn�j��m provozem, rozhodl jsem se na ni p�en�st hlavn�
z�t� tisk� na na�� kated�e. Proto jsem ji ztoto�nil se jm�nem 
{\tt lp}, n�sledkem �eho� ve�ker� tisky, ve kter�ch u�ivatel nespecifikuje
tisk�rnu, jsou p�esm�rov�ny na Kyoceru. Tisk�rna tedy mus� zvl�dnout jednak
p�ed�vejkanou �lohu z~MS~Woknous, jednak \ps{} z~Unixu a jednak
mus� emulovat ��dkovou tisk�rnu pro tisk \uv{hol�ch} textov�ch
soubor�. P�itom tyto textov� soubory mohou b�t k�dov�ny v~r�zn�ch
�e�tin�ch a filtr by to m�l zjistit a za v�ech okolnost� vytisknout
spr�vn�. U�ivatel se nemus� zab�vat, v~jak� �e�tin� m� textov� soubor
p�ipraven.


Filtr k~t�to tisk�rn� vid�me na \ref{obr3}. Pokud je �loha
\ps{}ov�, filtr k~n� p�ipoj� \ps{}ov� pokyn pro oboustrann�
tisk a �lohu p�epo�le na v�stup. Proto�e i tato tisk�rna je p�ipojena
na printserv��k, je v�stupem nov� povel {\tt lpr}, ov�em to n�s u�
nep�ekvapuje. Soubor {\tt duplex.ps} vid�me na \ref{obr4}. Pokud by n�kdo
cht�l m�n� �asto orientovan� duplex (p�evracen� str�nky p�es krat�� 
hranu), musel by s�m \ps{}ov� pokyn do v�stupn�ho souboru
naeditovat. M�sto {\tt false settumble} by napsal {\tt true settumble}
a v�stup by pustil p��mo na {\tt fs1raw}, aby obe�el filtr.

 
Je-li mezi prvn�mi dv�ma znaky �lohy znak iskejp (k�d~27), 
jedn� se o~�lohu z~Woknous. Pozorov�n�m jsem zjistil,
�e a�koli ovlada� ve Woknous generuje \ps{}ov� k�d, neodpust� si
na za��tku �lohy pon�kud zbyte�nou iskejp sekvenci o~tom, �e tiskov�
�loha je p�ipravena v~\ps{}u. Tisk�rna t�to sekvenci rozum�,
tak�e �lohu bez interpretace filtrem p�ed�me p��mo tisk�rn�. U�ivatel
Woknous m��e v~grafick� nab�dce ovlada�e zatrhnout, zda chce duplexn�
tisk a jak�, tak�e ani tuto ot�zku ne�e��me a po��d�me v�echny
u�ivatele Woknous, aby si v~ovlada�i zatrhli implicitn� duplex,
proto�e �et��me p�i tisku pap�rem.

\begin{vypis}
\begin{verbatim}
%!PS-Adobe
statusdict begin true setduplexmode false 
settumble end
\end{verbatim}
\captionv{V�pis 4}
\label{obr4}
\end{vypis}

\begin{pokvypis}
\let\begintt=\beginttnoend
\begin{verbatim}
# The PrintJob contains ASCII text, we will test encoding of CZ
# T�i te�ky n��e (...) znamenaj� "atd". Ve skute�n�m skriptu jsou
# d�sledn� vyps�ny v�echny k�dy, kter� do testovan�ho k�dov�n� nepat��
# v osmi�kov�m tvaru, co� se ned� do �asopisu tisknout, nebo� ��dky
# jsou pak p��li� dlouh�. 
# Pro jednoduchost jsem ponechal pouze rozli�en� mezi k�dov�n�m
# Kamenick�ch a ISO8859-2.
if cat u$$.txt | tr 'X\200-\377' 'B[X*128]' | grep -l X >/dev/null; then
#  �loha obsahuje znaky nad k�d 128
   if cat u$$.txt | tr \
      'X\200-\214\216-\227\231-\233...\367\373' 'B[X*128]' |\
      grep -l X >/dev/null; then
#     K�dov�n� nen� podle ISO8859-2
      if cat u$$.txt | tr 'X\260-\377' 'B[X*128]' |\
        grep -l X >/dev/null; then
#       K�dov�n� nen� ani podle Kamenick�ch
#       Nezn�m� k�dov�n�, ponech�me ISO8859-2
        trfile=il2-cs
      else
#       K�dov�n� je podle Kamenick�ch
        trfile=kam-cs
      fi
   else
#     K�dov�n� je podle ISO8859-2
      trfile=il2-cs
   fi
else
#  �loha neobsahuje znaky nad k�d 128
#  K�dov�n� US ASCII text
   trfile=il2-cs
fi

# We make PostScript via TeX
ln -s /usr/local/share/texmf/tex/plain/misc/verbtisk.tex u$$.tex
tex -fmt=csplain -translate-file=$trfile \
   \\def\\user{$5@$7}\\def\\file{u$$.txt}\\input u$$ \\act\\end >/dev/null
echo `date '+%X, %d.%m %Y'`: $5 "Plain-text" [$trfile] >> /var/log/fs1-use
dvips -h duplex.ps -o - u$$ | lpr -U $5 -Pfs1raw
rm /tmp/pprint.$$ u$$.tex u$$.dvi u$$.log u$$.txt
\noend{verbatim}
\captionv{V�pis 3 -- pokra�ov�n�}
\label{obr31}
\end{vypis}


Pokud se v~�loze vyskytuj� znaky nepou��van� v~hol�ch
textov�ch souborech, p�edpokl�d�me, �e se jedn� o~bin�rn� soubor,
kter� z�ejm� vygeneroval n�jak� zmaten� ovlada� ve Woknous. Pokus�me
se �lohu bez interpretace vytisknout, ov�em na zodpov�dnost u�ivatele,
kter� to sp�chal.

V~ostatn�ch p��padech se d� p�edpokl�dat, �e �loha obsahuje hol�
textov� soubor a filtr bude emulovat ��dkovou tisk�rnu prost�ednictv�m
\TeX{}u. Nejprve se filtr pokus� zjistit, v~jak� �e�tin� je 
�loha p�ipravena. V�sledek ulo�� do prom�nn� {\tt trfile}. �loha je
konvertov�na do \ps{}u pomoc� \TeX{}ov�ho form�tu {\tt csplain} za 
pou�it� konverzn� TCX tabulky {\tt trfile}. 


Na \ref{obr5} vid�me \TeX{}ov� soubor {\tt verbtisk.tex}, kter� bude
zaj�mat zvl�t� \TeX{}ov� fajn�mekry. Makro \TeX{}u zde �e��
kompletn� verbatim tisk souboru v�etn� pati�ky se jm�nem u�ivatele a
�asu tisku a v�etn� interpretace tabel�tor�, kter� maj� vytvo�it jednu
nebo v�ce mezer tak, aby dal�� znak za��nal v~nejbli���m sloupci,
kter� je n�sobkem osmi.


Font {\tt cc} (Courier Condensed) jsem pro \TeX{} p�ipravil pomoc�
povel� z~\ref{obr6}. V�sledn� \ps{} tedy neobsahuje ��dn� p�edloudovan�
fonty a vyu��v� pouze fonty vestav�n� do \ps{}ov�ho interpretu ka�d�
tisk�rny. Program {\tt dvips} p�iprav� v�stup tak, �e fonty v~tisk�rn�
nemusej� v�bec b�t �esk�; akcentovan� znaky jsou v~\ps{}ov�m k�du sestaveny
pomoc� komponent. Je to tedy robustn� �e�en�. Vid�me tak�, �e v~z�jmu
�et�en� pap�rem za�azuji programem dvips do �lohy pokyn pro duplexn�
tisk, tak�e n�m emul�tor ��dkov� tisk�rny bude tisknout jednak �hledn�
a jednak oboustrann�.

\subsection{V�ce podava��}

Dal�� tisk�rna, kterou bylo pot�eba p�ipojit, byla tisk�rna
Canon~CP660, barevn�, laserov� s~mo�nost� tisku na A3 s~duplexn�m
podava�em a \ps{}em level~3. Tato tisk�rna se dod�v� se s��ovou
kartou a diskem. Je to pom�rn� velk� monstrum. Na ovl�dac�m panelu
tisk�rny se d� nakonfigurovat IP p�ipojen�. Dizejbloval jsem SMB a IP
br�nu ze stejn�ch d�vod�, jako u~printserv��ku. Tisk�rna automaticky
startuje WWW server, tak�e plno administrativn�ch �kon� lze d�lat z~WWW
brous�tka. Netskejp ale v~n�kter�ch u�ivatelsk�ch konfigurac�ch padal;
zat�m se mi nepoda�ilo odhalit pro�. Ov�em to nen� pro p�ipojen�
tisk�rny do s�t� nejd�le�it�j��. Podstatn� je, �e tisk�rna m� sv�j
{\tt lpd}, kter� dok�e akceptovat unixov� tiskov� �lohy ze s�t�.

Tisk�rna m� dva spodn� z�sobn�ky, jeden na A4 a druh� na A3. Pokud
tiskov� �loha obsahuje \ps{}ovou instrukci o~form�tu pap�ru A3,
tisk�rna si automaticky vezme pap�r ze z�sobn�ku A3, jinak
(implicitn�) bere pap�r ze z�sobn�ku A4. Povel 
{\tt dvips -tA3 -Pcp6 soubor} tedy zp�sob� tisk na pap�ry A3, zat�mco
{\tt dvips -Pcp6 soubor} vyjede �lohu na pap�rech A4.

\begin{vypis}
\let\begintt=\beginttnoend
\begin{verbatim}
%% Fonty
\font\tt=cc at 10pt
\font\it=ptmri8z at 7pt

%% V�po�et hodiny a minuty
\newcount\hour \newcount\minute \newcount\hhour
\hour=\time \minute=\time
\divide\hour by 60
\hhour=\hour \multiply\hhour by 60
\advance\minute by -\hhour

%% Paticka
\csaccents
\footline={\it u\v zivatel: \user,\hskip4em
           dne: \the\day. \the\month. \the\year, 
           \the\hour:\ifnum\minute<10 0\fi
           \the\minute 
           \hfill strana: \the\pageno \hskip1cm}

%% Rozm�ry zrcadla
\hoffset=-1in \advance\hoffset by 2cm
\voffset=-1in \advance\voffset by .8cm
\advance\hsize by 2.7cm \advance\vsize by3.3cm
\baselineskip=11.7pt
\parindent=0pt

%% Makro pro tabel�tor
\newdimen\lastlinewidth  \newcount\tabwidth
\setbox0=\hbox{\tt xxxxxxxx} 
\tabwidth=\wd0 %% kazdych 8 znaku je zarazka
\predisplaypenalty=10000 
\postdisplaypenalty=10000
\def\tab{$$\advance\predisplaysize by-2em
         \global\lastlinewidth=\predisplaysize
         \abovedisplayskip=-\baselineskip 
	 \belowdisplayskip=-\baselineskip
         \predisplaysize=\maxdimen$$
         \divide\lastlinewidth by\tabwidth
         \advance\lastlinewidth by1sp
         \multiply\lastlinewidth by\tabwidth
         \hskip\lastlinewidth\null}

%% P��prava na verbatim
{\obeyspaces 
 \gdef\activespace{\obeyspaces\let =\ }
 \catcode`\^^I=13 \catcode`\^^L=13
 \gdef^^I{\tab}
 \gdef^^L{\endgraf\vfill\break}
}
\def\setverb{%
\def\do##1{\catcode`##1=12}\dospecials}

%% Na�ten� souboru jako verbatim: 
%% csplain \def\file{nazev.txt}
%%    \def\user{uzivatel}\input verbtisk \act\end
\def\act{\bgroup \setverb \activespace 
  \catcode`\^^I=13 \catcode`\^^L=13
  \def\par{\endgraf\leavevmode} 
  \obeylines \tt
  \input\file\space
  \egroup} 
\noend{verbatim}
\captionv{V�pis 5}
\label{obr5}
\end{vypis}

Mimoto m� tisk�rna postrann� z�sobn�k (tzv. manu�ln� podava�) a d� se
j� \ps{}ov�mi instrukcemi ��ci, aby pap�r vyj��d�l nikoli naho�e
potiskem dol�, ale naproti postrann�mu z�sobn�ku potiskem
nahoru. Pap�r pak m��e projet z~manu�ln�ho podava�e krz tisk�rnu zcela
rovn� a bylo vyzkou�eno, �e t�mto zp�sobem lze prot�hnout tisk�rnou
velmi tvrd� pap�ry, kter�m j� z~legrace ��k�m p�ekli�ky. 
Tato dr�ha by se m�la volit t� p�i tisku na transparentn� f�lie.

Proto�e unixov� u�ivatel nem� k~dispozici Woknousov� ovlada� se
za�krt�v�tky, kde by si mohl nastavit cestu pap�ru, zavedl jsem pro n�j
krom� logick�ho jm�na {\tt cp6} je�t� jm�na {\tt cp6m} a 
{\tt cp6d}. P�i tisku na {\tt cp6m} (CP660-manual) p�id� filtr na
za��tek �lohy \ps{}ov� instrukce k~\uv{ru�n�mu} tisku,
tj. tisk�rna vezme pap�r z~manu�ln�ho podava�e a vyplivne jej naproti
potiskem nahoru. Varianta {\tt cp6d} (CP660-duplex) aktivuje jin� 
filtr, kter� p�id� na za��tek �lohy \ps{}ov� pokyny pro 
oboustrann� tisk.

U�ivatel� tedy nemusej� volit zp�sob pod�v�n� pap�ru z~panelu na tisk�rn�,
ale ka�d� tiskov� �loha si nese s~sebou definici o~tom, kudy m� pap�r
proch�zet. U�ivatel� si tak vz�jemn� nekonkuruj�. Jeden
u�ivatel m��e zalo�it pr�svitn� f�lie do manu�ln�ho podava�e, zat�mco
jin� u�ivatel tiskne b�nou �lohu ze spodn�ho z�sobn�ku. Na na��
star�� tisk�rn� p�ipojen� k~s�ti se mohlo st�t, �e u�ivatel p�epnul na
panelu manu�ln� pod�v�n�, zalo�il f�lie a ne� se sta�il vzpamatovat,
jin� u�ivatel mu je potisknul. To nep�isp�valo k~vz�jemn� pohod� mezi
u�ivateli. Proto jsem kdysi vyr�b�l speci�ln�
\uv{p�ivlast�ovac�} skript {\tt lpown}, kter� zp�sob�, �e tisk na
tisk�rn� m��e realizovat jen u�ivatel, kter� skritp spustil, zat�mco
�lohy ostatn�ch u�ivatel� z�staly zablokov�ny. Proto�e 
tisk�rnu ob�as n�kdo zapomn�l odblokovat, ani toto �e�en� 
nep�isp�valo p��li� k~pohod� mezi u�ivateli. 

Tisk�rna CP660 m� pon�kud samorostl� {\tt lpd} d�mon, kter� ka�le na
to, kter� u�ivatel �lohu zaslal. Jm�no u�ivatele ka�d� �lohy se d�mon
pokou�� p�e��st ze z�hlav� �lohy v~\ps{}ov�ch koment���ch. Pokud
tam jm�no u�ivatele nenajde, �loha se ve front� v~tisk�rn� tv���,
jakoby pat�ila u�ivateli UN\-KNOWN. Pova�uji to za chybu v~implementaci
d�mona v~tisk�rn�, ale zase m� to tak moc nevad�. Tisk�rna vytv���
podrobn� logovac� soubor, kde je �e�eno, kdo co a kolik �ernob�l�ch a
kolik barevn�ch str�nek a jak� velikosti kdy natisknul. Unixov�
u�ivatel� ale z�st�vaj� z~hlediska tohoto souboru v~p��jemn� anonymit�
skryti pod spole�n�m jm�nem UN\-KNOWN. Woknousov� u�ivatel� jsou ov�em
logov�ni se v�emi detaily, proto�e jejich ovlada�e vytv��ej�
\ps{}ov� koment��e p�esn� podle p�edstav tisk�rny. Mohl bych
sice za�adit do tisku filtr, kter� by p�id�val do tiskov� �lohy tyto
\ps{}ov� koment��e i pro unixov� u�ivatele, ale zat�m m�
okolnosti netla�� toto d�lat.

\begin{vypis}[dt]
\begin{verbatim}
$ cd ~/prac
$ cp /usr/lib/a2ac/cscorr.tab .
$ cp /usr/lib/a2ac/xt2.enc .
$ ftp ftp.adobe.com
    ... z�sk�me soubor com_____.afm
$ mv com_____.afm courier.afm
    ... font courier se v Ghostscriptu nahrazuje fontem NimbusMonL-Regu.
        Je tedy mo�n� soubor courier.afm z�skat t� takto:
$ cp /usr/share/ghostscript/fonts/n022003l.afm courier.afm
$ vi cscorr.tab
    ... Upravit, aby ���ka � a � byla stejn� jako ���ka ostatn�ch p�smen
        prakticky to znamen� zru�it ��dky RWX
$ a2ac courier.afm cscorr.tab cscourier.afm
$ afm2tfm cscourier.afm -e 0.8 -t xt2.enc -v cc rcc
$ vptovf cc.vpl cc.vf cc.tfm
$ su
# vi /usr/share/texmf/dvips/config/psfonts.map
    ... P�idat ��dek:
        rcc Courier ".8 ExtendFont"
# cp rcc.tfm /usr/share/texmf/fonts/tfm/adobe/raw/
# cp cc.tfm /usr/share/texmf/fonts/tfm/adobe/a2ac/
# cp cc.vf /usr/share/texmf/fonts/vf/adobe/a2ac/
# mktexlsr
\end{verbatim}
\captionv{V�pis 6}
\label{obr6}
\end{vypis}

\subsection{Ostatn� tisk�rny}

P�i pohledu do {\tt printcap}u z~\ref{obr1} vid�me, jak jsou k~linuxov�mu
serveru p�ipojeny ostatn� tisk�rny. Lejzrovka HP Laserjet4 je
p�ipojena p��mo na paraleln� port {\tt/dev/lp0}. Proto�e tisk�rna um�
\ps{} a nen� na ni pot�eba emulovat ��dkovou tisk�rnu, nen�
v~tomto p��pad� pou�it ��dn� filtr.

Posledn� dv� tisk�rny jsou p�ipojeny ke star�mu SUNu. Tisk�rny i komp
jsou muzejn� expon�ty, ov�em st�le funk�n�. M�me je v~provozu asi od
roku 1993. Ob�as je pot�eba ze SUNa ut��t prach a kabely osvobodit od
pavu�in. ��dnou jinou �dr�bu toto za��zen� nepot�ebuje. Cel� roky ani
nev�me, �e si to tam v~koute�ku po��d spokojen� fun�. Na SUNovi jsem
kdysi instaloval \gs{} (kdybych se tam pod�val, asi bych se
zhrozil, jak starov�k� verze to je). Ob� tisk�rny maj� konfigurov�n
inteligentn� filtr, kter� podle prvn�ch dvou znak� �lohy ({\tt\%!})
pozn�, zda se jedn� o~\ps{} nebo ne. Pokud ano, za�ad�
\gs{} a p�elo�� �lohu podle c�lov� tisk�rny bu� do jazyka
Epsonky (24~jehlov� tisk�rna) nebo do jazyka PCL (tisk�rna
LaserJet~3).

\subsection{Monitorov�n� tisk�}

Jak jsem ji� uvedl v��e, tisk�rna CP660 monitoruje tiskov� aktivity
Woknousov�ch u�ivatel� d�kladn�. Bohu�el, proto�e unixov� {\tt lpd} je
software star� jak Metuzal�m, nem� zm�knut� monitorov�n� str�nek
grafick�ho tisku. Po��t�n� ��dk� textov�ch tiskov�ch �loh je n�m
v~dne�n� dob� k~ni�emu. Proto�e jsou ale tiskov� �lohy mnohdy ve
spooleru u� p�ed�vejk�ny Woknousov�mi ovlada�i do jazyka tisk�ren, je
zhola nemo�n� zjistit po�et vyti�t�n�ch str�nek, ani� bychom museli
programovat interpret jazyka tisk�rny. Kdyby v�echny tiskov� �lohy
byly v~\ps{}u, �lo by teoreticky interpretovat je \gs{}em a
zjistit tak po�et vyti�t�n�ch str�nek. Domn�v�m se ale, �e to je
p��li� n�kladn� monitoring, zvl�t� pokud tisk�rna je \ps{}ov� a
�lohu by musela interpretovat je�t� jednou.

Kdysi d�vno jsem ud�lal v~r�mci tiskov�ch filtr� na star�ch SUNech
jednoduch� monitoring tisku. Po��tal jsem jednotliv� �lohy ka�d�ho
u�ivatele a dobu trv�n� tisku ka�d� �lohy. Celkov� po�et �loh a sou�et
doby trv�n� tisku ka�d�ho u�ivatele jsem pak automatem zpracoval a
jednou m�s��n� (prvn�ho v~m�s�ci, 13 minut po p�lnoci) automat poslal
report �-mejlem na�i pan� ��fov�. Po�et vyti�t�n�ch str�nek se bohu�el
t�mto zp�sobem nedozv�d�la.\KC

\vfil

\section{Zasm�li jsme se!}

\autor{Pavel Jan�k ml., 27. prosince 1999}

V�no�n� sv�tky, oslavy nov�ho roku a~pon�kud p�ed�asn� oslavy \uv{nov�ho
tis�cilet�} do�asn� utlumily provoz v~emailov�ch konferenc�ch, ze kter�ch
�erp�m p��sp�vky do�rubriky Zasm�li jsme se!, a~proto snad jen n�kolik obr�zk�
s~koment��i. Stejn� v~t�chto hektick�ch dnech nem� nikdo �as ��st Linuxov�
noviny \smile

\Obr{MediaPlayer}

Je a� neuv��iteln�, jak katastrof�ln� chybu m��e splodit Microsoft Media
Player. Chcete zn�t detaily?

\Obr{Hlaska_Microsoft}

Nejsem si v�dom toho, �e by byl opera�n� syst�m Microsoft Windows 95
lokalizov�n do�slovensk�ho jazyka, ale kdo v�, pen�ze na�to Microsoft m�.

\Obr{Word}

A~do�t�etice v�eho zl�ho se m��ete pod�vat na�posledn� obr�zek, kter� pro n�s
ve�Windows nachytali na�i �ten��i. O~Wordu se tvrd�, �e je to opravdu vhodn�
n�stroj pro tvorbu pamflet� velmi n�zk� typografick� kvality. Zat�m mi v�ak
nikdo netvrdil, �e by se ve�Wordu dalo pracovat i~s~del��mi dokumenty. Najde
se n�kdo takov�?

\Obr{BSD}

Tak tento obr�zek jsem dostal od Petra Mach��ka. H�dejte, jak� opera�n� syst�m
pou��v� na�sv�ch po��ta��ch\ldots\ Neuhodli jste, je to Linux!

\Obr{LinuxWorld}

Marketing Microsoft je opravdu ��asn�. Jenom dva prst��ky tam str��me a~hned
zase p�jdeme. A~opravdu �li, nyn� je na�LinuxWorldu jin� reklama.

\Obr{Penguin}

Krvela�n�ho ��bl�ka jsme tu ji� m�li, ale o~tu���kovi to zat�m nikdo
nev�d�l. To je p�kn� mr�ka!

A~na�z�v�r mal� seznamka. V�nujete se po��ta��m a~zvl�t� Linuxu tak, �e ji�
nem�te �as na�p�itelkyni, milenku �i man�elku? Nezoufejte, je tu Secret
Squirrel se svoj� nab�dkou:

\begin{quote}
\begin{verbatim}
From: Secret Squirrel
 <secret_squirrel@nym.alias.net>
Subject: Inflatable penguins for sale!
To: linux-kernel@vger.rutgers.edu
Date:   20 Nov 1999 17:37:36 -0000

Hey boys!

I have some inflatable penguins, 
with fully operatable orifices so
you can fullfill that dream of 
having sex with a penguin!! 

Love and kisses

--
To unsubscribe from this list: 
send the line "unsubscribe linux-kernel" 
in the body of a message 
to majordomo@vger.rutgers.edu
Please read the FAQ 
at http://www.tux.org/lkml/
\end{verbatim}
\end{quote}

Bez koment��e.

P.S. J� jsem si zat�m v�dy �as na�p��telkyni dok�zal ud�lat. A~vy? PF '00.\KC


\OLN
\section{Linuxov� noviny a~jejich ���en�}
\label{OLN}

\autor{}

Linuxov� noviny vyd�v� �esk� sdru�en� u�ivatel� opera�n�ho syst�mu
Linux~\citeurl{�esk� sdru�en� u�ivatel� opera�n�ho syst�mu
Linux}{http://www.linux.cz/czlug} pro sv� p��znivce
a~sympatizanty. Vlastn�kem autorsk�ch pr�v k~tomuto textu jako celku
je Pavel Jan�k~ml. \hbox{(\PJemail)}.  Autorsk� pr�va k~jednotliv�m
�l�nk�m z�st�vaj� jejich autor�m.

Tento text m��e b�t ���en a~ti�t�n bez omezen�. Pokud pou�ijete ��st
n�kter�ho �l�nku zde uve�ejn�n�ho v~jin�ch d�lech, mus�te uv�st jm�no
autora a~��slo, ve�kter�m byl �l�nek uve�ejn�n.

Linuxov� noviny jsou otev�eny ka�d�mu, kdo by cht�l na�im �ten���m sd�lit
n�co zaj�mav�ho. P��sp�vky (ve�form�tu �ist�ho textu v~k�dov�n� ISO~8859-2)
pos�lejte na�adresu \citeurl{Adresa redakce}{mailto:noviny@linux.cz}. Autor
nem� n�rok na�finan�n� odm�nu a~souhlas� s~podm�nkami uveden�mi v~tomto
odstavci.  Vydavatel� si vyhrazuj� pr�vo rozhodnout, zda V� p��sp�vek
uve�ejn�, �i nikoli.

Registrovan� zn�mky pou�it� v~tomto textu jsou majetkem jejich
vlastn�k�.

Cht�l bych pod�kovat Fakult� informatiky Masarykovy university v~Brn�,
INET, a.s., Juraji Bedn�rovi, Milanu �ormovi za�poskytnut� diskov�ho
prostoru pro Linuxov� noviny.

Linuxov� noviny m��ete naj�t na�akademick� s�ti TEN-34 CZ
\citeurl{Linuxov� noviny na�s�ti
TEN 34-CZ}{ftp://ftp.fi.muni.cz/pub/linux/local/noviny}, na�s�ti Global One
na�adrese \citeurl{Linuxov� noviny na�s�ti IBM Global
One}{ftp://ftp.inet.cz/pub/People/Pavel.Janik/noviny}, na�serveru Gymn�zia
V�de�sk� v~Brn� \citeurl{Linuxov� noviny na�komer�n� s�ti
CESNET}{http://www.gvid.cz/linux/noviny/} a~na�serveru �asopisu Net��ik
\citeurl{Slovensk� zrcadlo Linuxov�ch
novin}{ftp://netacik.sk/pub/linux/cz-noviny}, kter� je p�ipojen do
slovensk�ho SIXu.

Linuxov� noviny jsou k~dispozici tak� ve�form�tu HTML na�adrese
\citeurl{Linuxov� noviny ve�form�tu HTML}{http://www.linux.cz/noviny}.\KC
\KOLN

\tableofcontents

\bbye


