Využití Linuxových terminálů ve výuce i školní infrastruktuře

Václav Šmilauer, Lukáš Bernard 11. 02. 2005



1. Instalace serverových služeb

1.1. Distribuce GNU/Linuxu

Linux sám o sobě je pouze jádro operačního systému. Spolu s množstvím systémových a uživatelských programů tvoří kompletní operační systém. Sestavení a vzájemné vyladění všech komponent do fungujícího celku je záležitost tzv. distribucí. Jejich vyčerpávající přehled je možno nalézt na http://www.distrowatch.com. Některé z nich jsou placené (většina software je licencována způsobem, který výslovně zakazuje zpoplatnění software jako takového (např. licence GNU/GPL), je však samozřejmě možné platit za instalaci, servis atd.), z nichž uveďme RedHat, Novell Linux (býv. SuSe), ostatní zcela zdarma ke stažení na internetu: Debian, Fedora, Gentoo, Slackware, ...

Na všech našich serverech (kromě internetového serveru, kde je z důvod historických Suse Linux) je používána velmi kvalitní distribuce Debian (http://www.debian.org), jejíž instalace buď přímo z internetu nebo instalačních CD je popsána dostatečně v dokumentaci Debianu. Za velkou výhodu považujeme jednak obrovské množství dostupného software (cca 8000 balíčků) a možnost velmi snadné aktualizace software, včetně bezpečnostních oprav z http://security.debian.org.

Všechny síťové služby tedy byly spuštěny nainstalováním příslušného balíčku z internetu a ručními změnami konfiguračních souborů v /etc.

1.2. Základní síťové služby na serveru

1.2.1. DHCP (Dynamic Host Configuration Protocol)

DHCP je služba přidělující počítačům IP adresy (podle unikátní hardwarové MAC adresy jejich síťové karty). Statické síťové adresy zapsané přímo v každém jednotlivém počítači nejsou ve větší síti (v tomto případě cca >5 strojů) vhodné, neboť případné přečíslování sítě je velmi pracné (byť by se jednalo pouze o změnu nameserveru apod.) DHCP přiděluje totiž nejen IP adresu, ale množství dalších užitečných informací o síti: masku sítě a broadcast adresu, doménové jméno, hostname (jméno počítače), nameserver, další informace využívané klienty Windows, jméno bootovacího souboru při spouštění ze sítě atd.

V běžném případě je konfigurace velmi snadná, typicky je třeba pro každý počítač uvést jeho MAC a IP adresu (případně hostname, pokud existuje vnitřní nameserver, který obstarává oboustranný překlad mezi IP a hostname). Ostatní nastavení bývají společná všem strojům a figurují pouze na začátku konfiguračního souborou. Část konfiguračního souboru vypadá takto:

  option  domain-name             "arcig";
  option  subnet-mask             255.0.0.0;
  option  broadcast-address       10.255.255.255;
  option  routers                 10.0.0.1;
  option  domain-name-servers     10.0.0.1;
  option  netbios-name-servers    samba.arcig;
  [...]
  host ag208-1    { hardware ethernet 00:04:76:96:2C:56; fixed-address ag208-1.arcig; }
  host ag208-2    { hardware ethernet 00:01:02:DF:B2:F6; fixed-address ag208-2.arcig; }
  host ag209-1    { hardware ethernet 00:04:75:75:F5:E3; fixed-address ag209-1.arcig; }
  host ag209-2    { hardware ethernet 00:A0:24:59:51:AE; fixed-address ag209-2.arcig; }

1.2.2. DNS (Domain Name Service)

DNS zprostředkovává oboustranný překlad mezi IP adresami a jmény strojů. Existuje opět několik implementací, nejužívanější je patrně bind (v Debianu balíček bind9, http://www.isc.org/index.pl?/sw/bind/), v našem případě jsme kvůli snazší konfiguraci zvolili tinydns server (balíček djbdns-installer). Konfigurace je opět velmi jednoduchá, uveďme část příslušného souboru:

  .arcig:10.0.0.2:a:259200:
  .10.in-addr.arpa:10.0.0.2:a:259200:
  =ag208-1.arcig:10.2.8.1
  =ag208-2.arcig:10.2.8.2
  =ag209-1.arcig:10.2.9.1
  =ag209-2.arcig:10.2.9.2

1.2.3. ssh (Secure SHell)

Ssh představuje základní způsob vzdáleného připojení k počítači. Veškerá přenášení data (včetně uživatelského jména a hesla při přihlašování) jsou šifrovaná, na rozdíl od dnes již téměř (právě z bezpečnostních důvodů) neužívaného protokolu telnet, k čemuž se užívá veřejných a soukromých šifrovacích klíčů, kterými se též na počátku komunikace ověřuje identita strojů.

Ssh umí přihlašovat uživatele pomocí klíčů, tj. aniž by bylo třeba zadávat heslo a je tedy možné jej použít i pro vzdálené spouštění programů ze striptů apod. Dále umožňuje tunelování libovolných portů a tedy může sloužit jako transportní vrstva pro libovolný protokol používající stabilní porty (např. ftp, čímž vznikne často užívané Secure FTP (přípaz scp), X protokol pro grafické rozhraní), obstarávat automaticky autentikaci pro vzdálený X server, předávat Kerberos tickety atd.

Instalace je velmi triviální a po automatickém vygenerování soukromých a veřejných klíčů je možné ssh server okamžitě užívat. V defaultní konfiguraci může být však např. zakázáno tunelování X protokolu či přihlašování přes klíče.

1.2.4. NFS (Network File System)

NFS je protokol užívaný v UNIXových systémech pro síťové sdílení souborů. Jedná se o protokol relativně starý a bezpečnostně nevyhovující (NFS server zejména neověřuje identitu klientů a připojení povolí či zamítne pouze podle IP adresy, kterou se však klient může nastavit staticky; dále NFS data při přenosu nešifruje), ale jeho použití je velmi snadné. Proto bývá používán ve vnitřních sítích, kde nehrozí velké riziko bezpečnostních problém ze strany uživatelů. Alternativní síťové souborové systémy (AFS, Coda, InterMezzo, Lustre, GFS) jsou náročné na konfiguraci.

Server NFS by měl být součástí kernelu. Existuje sice i userspace NFS server, ale jeho použití je omezeno např. nepřítomností zámků atd. NFS server se konfiguruje souborem /etc/exports. Ten obsahuje na každém řádku exportovaný (sdílený) adresář, komu se sdílí a další nastavení:

  /share/mirror                   10.255.255.255/8(ro,sync) localhost(ro,sync)

V našem případě používáme NFS pro sdílení domovských adresářů mezi servery, dále pro lokální archivy balíčků Debianu (mirror) a konečně jako kořenový adresář při správě bezdiskových klientů (nfsroot).

1.2.5. Autentikační služby

Síťové ověřování uživatelů (tj. kontrola hesla) a distribuce dalších k uživateli vázaných dat (jako umístění domovského adresáře) je poměrně složité. Existuje služba poměrně stará NIS, která však není bezpečnostně vyhovující (poskytuje všechna zašifrovaná hesla libovolnému klientovi). Vyzrálejší alternativy (Kerberos + šifrovaný LDAP) jsou extrémně náročné na konfiguraci a naše experimenty s nimi jsme po krátké době ukončili. Námi použité řešení je poměrně primitivní, ale účinné: pravidelně (každou minutu) se synchronizují databáze uživatelů, hesel a skupin (tj. soubory /etc/passwd, /etc/shadow, /etc/group) mezi servery, kterých se to týká. Synchronizaci provádí rsync tunelovaný přes ssh (šifrovaný přenos). (http://www.unixadm.net/howto/rsync-ssh.html)

1.3. Další síťové služby

1.3.1. TFTP (Trivial File Transfer Protocol)

Stanice bootující ze sítě získávají systém protokolem TFTP. Instalace serveru je velmi triviální a není potřeba nic konfigurovat. Kvůli bezpečnosti obsluhuje server defaultně pouze soubory v podadresáři /tftpboot. Jméno souboru získává stanice protokolem DHCP.

1.3.2. CUPS (Common Unix Printing System

CUPS se síťový systém pro správu tisku. Jeho konfigurace se provádí přes velmi pochopitelné webové rozhraní (běží na portu 631). Výborně spolupracuje s klienty Windows (do konfigurace Samby viz níže se přidá řádek printing = cups) i Linuxovými aplikacemi. Podporuje velké množství tiskáren, síťové i lokální, se spoustou různých nastavení.

1.3.3. SMTP (Simple Mail Transport Protocol)

Mail server obstarává doručování mailů do schránek uživatelů. V našem případě jsou mail servery 2: vnější (postfix), který maily příjímá, kontroluje na viry a posílá pak vnitřnímu mailserveru (exim); ten zkontroluje, zda se nejedná o spam (program spamassassin), zkontroluje aliasy v /etc/aliases a předá zprávu procmailu. Procmail uloží zprávu do schránky příslušného uživatele (zavirované zprávy a spam do složky Spam), která je v ~/Maildir. Velmi doporučujeme používat formát Maildir (nikoliv mbox), a to jednak kvůli výkonu, v neposlední řadě ale též pro nemalou úsporu místa při inkrementálním zálohování.

Konfigurace mailserveru není úplně jednoduchá, ale dokumentace bývá v tomto směru velmi dobrá. To se týká zejména integrace s antivirem a antispamem.

1.3.4. IMAP (Internet Mail Access Protocol)

IMAP slouží e-mailovým klientům pro přístup k poště uživatele. Je podstatně lepší než dodnes bohužel stále používaný protokol POP3, neboť velmi dobře pracuje se složkami, může stahovat jen ty zprávy, které je třeba, podporuje offline režim a synchronizaci při připojení atd.

Používáme server Courier, který obsluhuje protokoly POP3 (kvůli kompatibilitě se staršími klienty), IMAP a IMAPS (IMAP šifrovaný pomocí SSL). IMAPS (port 993) tunelujeme na vnější server, aby uživatelé měli svou poštu přístupnou i zvenku. Navíc na internetovém serveru běží webmail imp, takže se k poště lze dostat i přes webové stránky školy.

1.3.5. HTTP (HyperText Transfer Protocol)

Celosvětově nejužívanější je webserver Apache (http://www.apache.org), který je velmi flexibilní (mimo jiné umožňuje spouštění CGI skriptů) a výkonný. Jeho základní instalace je opět poměrně triviální záležitostí. Pokročilejší konfigurace může působit problémy, ale celý projekt je výborně zdokumentován a mnoho zodpovězených dotazů lze najít na mailing listech nebo news skupinách.

V našem případě používáme 2 web servery: vnější obsluhující http://www.arcig.cz (kde běží redakční systém phpNuke napojený na mySQL databázi) a vnitřní (vnitřní server beta.arcig), na který se z vnějšího předávají požadavky na uživatelské adresáře (pomocí modulu Rewrite, který slouží k přepisování adres). Relevantní část konfigurace vypadá takto:

  RewriteEngine on
  RewriteLogLevel 0
  RewriteLog /var/log/httpd/rewrite_log
  ## Uzivatelske www adresare: proxy na betu
  # zmenit /~user na /~user/
  RewriteRule ^/~([^/]*)$ /~$1/ [R]
  # P=proxy, L=last (ukonci se rewrite; jinak nefunguje)
  RewriteRule ^/~(.*)$ http://beta.arcig/~$1 [P,L]

Libovolný požadavek adresa tvaru http://www.arcig.cz/~uzivatel/cokoliv.html se předává vnitřnímu serveru, který jej vyřídí. Část konfigurace webserveru na beta.arcig (vnitřní) pak vypadá takto:

  <IfModule mod_userdir.c>
          UserDir www
          UserDir disabled root
          <Directory /home/*/*/www>
              AllowOverride FileInfo AuthConfig Limit
              Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
          </Directory>
  </IfModule>

Podadresář www uvnitř každého domovského adresáře je tak zvenku přístupný. V uvedeném příkladu se tedy bude hledat soubor /home/student/uzivatel/www/cokoliv.html.

Nezanedbatelnou výhodu zde představuje to, že stránky jsou sice přístupné z internetu, aniž by však byl přímo zpřístupněn vnitřní server, na kterém jsou např. domovské adresáře uživatelů.

1.3.6. XDM (X Display Manager)

Služba XDM (v implementacích xdm, kdm, gdm) se stará o připojování grafických terminálů k aplikačnímu serveru. Na terminálu spuštěný X server se pokusí kontaktovat XDM server (zadaný buď přímo, nebo vyšle broadcast do sítě), který mu (jsou-li splněny další podmínky: např. maximální počet spojení atd.) nabídne přihlašovací okno. Po příhlášení se uživateli zobrazují na lokálním terminálu aplikace, které přitom běží na serveru.

Instalace xdm (v našem případě gdm) je triviální. V defaultní konfiguraci je (kvůli bezpečnosti) zakázáno připojení přes TCP/IP (tedy vzdálených stanic), které je třeba povolit. Obvykle bylo třeba zvýšit maximální počet současně připojených terminálů, nastavit grafickou podobu přihlašovací obrazovky atp.

1.3.7. XFS (X Font server)

XFS posílá klientům na vyžádání různé fonty, které tak není třeba instalovat individuálně na každé stanici. Jde o prostou instalaci serveru, který obvykle odpovídá na portu 7100. Existuje několik implementací, my používáme xfs-xtt, který obsluhuje vedle bitmapových a Type1 (PostScript) fontů i TrueType, známé především z platforem Windows. V Debianu se o správu fontů stará defoma (Debian font manager), který nainstalované fonty automaticky přidá k nabídce XFS.

1.3.8. Dirvish (zálohování)

Z široké nabídky zálohovacích řešení Dirvish (http://www.dirvish.org) pro naše účely vhodně kombinuje relativně jednoduchou a přehlednou konfigurac a velmi dobrou použitelnost (vedle vynikající dokumentace). Zapsáním do cronu (periodické spouštění úloh) se zálohování automatizuje. V našem případě zálohujeme všechny domovské adresáře každý den ve 22:00.

Mohlo by se zdát, že pravdivelné zálohy musí spotřebovat obrovské množství místa. Tak tomu však není, neboť dirvish (potažmo rsync, který provádí vlastní kopírování souborů) využívá možnosti některých souborových systémů (sem patří prakticky všechny široce v UNIXEch užívané: ext2 (a ext3), reiserfs, XFS, ...) dát jednomu souboru více jmen. Pokud se soubor od posledního zálohování nezměnil, vytvoří se pouze hardlink, odkaz na již uložená data, který je pro uživatele zcela transparentní. Např. zálohu souboru /home/profesori/novak/soubor.txt z 15.12.2004 lze najít (v našem případě) v adresáři /mnt/backup/home/20041215/tree/profesori/soubor.txt.

Mezi nejdůležitější nastavení patří expirace jednotlivých záloh, po jejímž uplynutí se automaticky smažou. V našem případě uchováváme všechny zálohy 15 dní, zálohy z prvního dne v týdnu 3 měsíce a zálohy prvního dne v měsíci 3 roky. Dále lze nastavit, které soubory se nezálohují --- např. adresáře nazvané Cache pomocí vzoru **/Cache/ apod. Hlavní konfigurační soubor vypadá například takto (vedle něj mají položky home, home-root-beta své vlastní konfigurační soubory, specifikující zdroj dat, kam zálohovat, logování atd.):

  bank:
          /mnt/backup
  exclude:
          lost+found/
          core
          *~
          *.tmp
          **/Cache/
          **favicon_cache/
  Runall:
          home            22:00
          home-root-beta  22:00
  expire-default: +15 days
  expire-rule:
  #       MIN HR    DOM MON       DOW  STRFTIME_FMT
          *   *     *   *         1    +3 months
          *   *     1   *         *    +3 year

Zálohování neslouží jen pro případ havárie disků, ale také (většinou) pro uživatele, kteří si svá data omylem smažou či přepíší. V současné době zvažujeme nasazení zálohování na bezpečně uložený externí disk (např. jednou z měsíc), který by přestál i případný požár apod.

1.3.9. Samba

Samba umožňuje Linuxovému serveru emulovat téměř všechny vlastnosti souborového a tiskového WinNT/2000 PDC serveru. Klienti s Windows se mohou přihlašovat, připojovat síťové disky, tisknout na síťové tiskárny, jako by pracovali v doméně s Windows serverem. Přitom je možné používat přihlašovací skripty, cestovní nebo povinné profily, případně omezovat uživatele systémovými politikami.

Změnu konfigurace samby je možné provést bez nutnosti sambu restartovat či dokonce restartovat celý počítač. Pokud se k serveru připojují počítače s různou verzí Windows, je možné sambu nastavit, aby se každému klientovi chovala jiným způsobem. (Např. jiný formát cestovních profilů pro WinNT a Win98). Údaje o uživatelích může samba přechovávat mnoha způsoby, v textovém souboru, v databázi, v LDAPu, případně se dotazovat jiného Windows serveru. Nastavení samby je snadné, spočívá v editaci souboru smb.conf. Část konfigurace vypadá třeba takto:

   [global]
      hosts allow = 10. 127.0.0.1
      workgroup = AG
      netbios name = APLIK
      server string = %h server (Samba %v)
      local master = yes
      os level = 65
      domain master = yes
      preferred master = yes
      wins support = yes
      include = /etc/samba/%a.conf
  
    [netlogon]
      comment = Network Logon Service
      path = /home/samba/netlogon
      browseable = no
      guest ok = yes
      writable = no
      write list = @root
      
   [homes]
      comment = Domovsky adresar
      browseable = no
      writable = yes	
      create mask = 0600
      directory mask = 0700
   
  [ucitele]
      comment = Adresar ucitelu
      path = /home/samba/ucitele
      create mask = 0660
      directory mask = 0770
      browseable = yes
      writable = no
      write list = @profesori

Bližší informace ke konfiguraci samby je možné získat v podrobné knize "Using Samba" od O'Reilly, český překlad Computer Press, nebo na http://www.samba.org.

V našem případě používáme sambu jako službu pro stanice, které z nějakého důvodu právě pracují s OS Windows. Uživatelům se přitom připojí jejich domovské adresáře a mohou pracovat se svými soubory stejně, jako když k nim přistupují pod Linuxem.

2. Instalace uživatelských stanic

2.1. Příprava terminálu

I tenký klient (grafický terminál) musí po spuštění počítače nějak získat program, který se na počítači spustí. To umožňují např. síťové karty schopné bootovat přímo ze sítě (mají na sobě speciální EEPROM nebo pracují s protokolem PXE (Preboot Execution Environment)). V našem případě je však neužíváme všude a proto jsme se vydali jinou cestou: projekt EtherBoot (http://www.etherboot.org) umožňuje vytvářet spustitelné programy, které ze sítě získají a spustí program poslaný ve speciálním formátu nbi (network bootable image) (tyto programy lze získat i přes webové rozhraní na http://www.rom-o-matic.net).

Na harddisku všech stanic je tedy nainstalován zavaděč LILO (umožňující např. v případě dual-bootu výběr Linuxu či lokálních Windows pohodlným menu), který načte a spustí Etherboot (má většinou 16kB), který obsahuje ovladač síťové karty. Ta si následně protokolem DHCP vyžádá operační systém (ve formátu nbi), stáhne ho protokolem TFTP, nahraje do paměti a spustí. Operační systém je obvykle nějaká minidistribuce linuxu, obsahující ovladače síťové karty, případně dalších místních zařízení (zvukové karty, disketové mechaniky) a X server, který po spuštění kontaktuje XDM server. Třešničkou na dortu je vypnutí lokálního harddisku, neboť celý systém je na ramdisku.

V našem případě obnáší instalace terminálu nabootování z diskety (s Etherbootem) do NFS-root linuxu, vytvoření diskového oddílu fdiskem, nakopírování Etherbootu pro danou síťovou kartu a spuštění LILO. Poté je terminál připraven k použití, další konfigurace se odehrává na serveru.

2.2. Konfigurace serveru

Na serveru je třeba připravit operační systém, který si terminály stahují. V našem případě používáme minidistribuci PXES (http://pxes.sourceforge.net), která umožňuje připravit nbi (network bootable image) velmi pohodlným grafickým rozhraním. Dále viz příspěvek o tenkém klientu PXES.

Protože by bylo náročné mít pro každou stanici s odlišným hardware speciální nbi, podporuje PXES konfiguraci specifickou pro každou stanici, která je uložená na serveru. Ta vypadá například takto:

  X_DRIVER=sis
  LOCAL_FLOPPY_ENABLED=0
  LOCAL_DVDCDROM_ENABLED=0
  LOCAL_USBFLASHDISK_ENABLED=1
  LOCAL_SOUND_ENABLED=1
  LOCAL_SOUND_CARD='esssolo1'

3. Hardwarová náročnost tenkých klientů

O tomto tématu bylo již mnoho napsáno, ale výsledky se velmi různí podle způsobu zatížení. Na rozdíl od benchmarkových testů např. webserverů (počet obsloužených požadavků za sekundu atd.) není žádný jednotně rozšířený benchmark simulující zatížení obvyklou uživatelskou prací; není však ani univerzálně možné, neboť grafik zatíží stanici zcela jinak než administrativní pracovní a ten opět jinak než hráč her.

3.1. Původní konfigurace

Konfigurace klientů se pohybuje kolem Pentium II 250MHz, 64MB RAM, videokarty s 2MB RAM, síťové karty 100Mbit. Zkoušeli jsme klienty 486DX2 s 32MB RAM, ale jejich rychlost (procesor a grafická karta) byla spíše pod hranicí použitelnosti, ačkoliv jinak fungovaly.

Server představovalo poměrně běžné PC Pentium 4 HT, 2.8 GHz, vybavené 2GB RAM, napojené 100Mbit linkem do switche. Systém byl nainstalován na běžných SATA discích.

Při běžné práci (Mozilla, OpenOffice či další kancelářské aplikace) byla odezva vynikající do cca 10 klientů, pak aplikace odpovídaly znatelně pomaleji. Hrdlem bylo jednoznačně CPU (v této souvislosi je třeba poznamenat, že flash programy ve webových stránkách spotřebovávají velmi mnoho procesorového času). Při pokusech s celoobrazovkovou grafikou (např. hry 1024x768, 16 bit, 25fps) jsme narazili na limit sítě (jeden klient zhltnul 80Mbit, z celkových 100Mbit).

Vidíme tedy, že běžné PC, je-li samostatně používáno pro nenáročnou kancelářskou činnost, je velmi předimenzované; rýsují se zde význačné možnosti úspor.

3.2. Nová konfigurace

Konfigurace klientů se nezměnila.

Server je 64-bitový, duální Opteron 250 (2400 MHz), 4GB RAM, 4GB swap, systémové disky jsou SCSI UltraWide320 zapojené do softwarového RAID1 (mirror; / a /var), popř. RAID0 (strip; /tmp). Je připojen 1Gbit linkem do páteřního switche. Domovské adresáře jsou přimountovány přes NFS.

Na serveru je nainstalován Debian i386. Verze pro architekturu AMD64 nebyla v době, kdy jsme ji nainstalovali (10/2004) dostatečně stabilní: to se týkalo zejm. mozilly. Do 1 roku plánujeme opět přejít na AMD64, což by mělo opět navýšit výkon serveru.

Při současné práci na 30 terminálech jsme nezaznamenali problémy s výrazným zpomalením. RAM je patrně předimenzovaná, zatížení procesorů závisí zejména na množství flashe ve webových stránkách. Jako významné hrdlo se za určitých (velmi vyjímečných) okolností ukázal NFS (silná disková aktivita na NFS serveru, který pak vyřizuje požadavky velmi pomalu); pokud by se toto opakovalo častěji, což však nepředpokládáme, bylo by třeba uvažovat o síťovém souborovém systému s masivním cachováním, případně síťovém RAID. Gbit link je zatím dostatečný, datový tok je pohybuje při 20 klientech kolem 30Mbit/s.

4. Metodika výuky a přeškolení uživatelů do prostředí Linuxu

4.1. Operační systém

4.1.1. Jiný souborový systém

Souborový strom je v Linuxu postaven jiným způsobem než ve Windows. První spíše kosmetická odlišností je používání obyčejných lomítek při zápisu cesty oproti zpětným ve Windows. Zásadnějším rozdílem je skutečnost, že Linux používá jediný souborový strom s jediným kořenem, do kterého jsou zapojena všechna fyzická zařízení i případně soubory z jiných počítačů. Neexistuje žádné C: apod., ze souborového stromu na první pohled nepoznáme, na jakém zařízení se zrovna nacházíme.

Systém souborů umožňuje vytváření více jmen téhož souboru ve struktuře (tzv hardlinky) a odkazů na soubor, tzv. symlinky. Můžeme je tvořit příkazem ln.

4.1.2. Jiná lokální média

Vzhledem k využití tenkých klientů se mění práce s lokálními médii. Každý uživatel nalezne svá lokální média v domovském adresáři v podadresáři Media. Blíže k tomuto tématu v příspěvku o tenkém klientu PXES.

4.1.3. Práva a vlastnictví souborů

Každý soubor v Linuxu má svého majitele, skupinu a práva, se kterými mohou uživatelé se souborem zacházet. Ke změně vlastnictví či práv je možné použít nějaký souborový manažer, případně příkazy chown a chmod.

4.1.4. Procesy, signály

Programy spouštěné v Linuxu se nazývají procesy, každý proces dostává číslo (PID). Vypsat právě běžící procesy můžeme programem ps, seřadit podle zátěže příkazem top. Procesy můžeme ovládat zasíláním signálů pomocí příkazu kill -cislosignalu cisloprocesu. Okamžité ukončení procesu zařídíme kill -9 cisloprocesu (signál KILL).

4.1.5. Vzhled

V Linuxu není grafické prostředí svázáno s operačním systémem. Základní vykreslování oken zajišťuje program X, ovšem vlastní tvar oken a mnoho dalšího zajišťuje běžící desktopové prostředí. Uživatel má na výběr, jaké desktopové prostředí si chce spustit, od rychlých lehkých (fvvm) až k propracovaným bohatým KDE a Gnome. Ve škole jako výchozí používáme prostředí Gnome, uživatelé si pokud chtějí mohou při přihlášení vybrat jiné prostředí.

4.1.6. Help

Nápovědu ke většině příkazů a programů v Linuxu vyvoláme příkazem man jmenoprogramu.

4.2. Souborové manažery

Základním souborovým manažerem pro Gnome na Nautilus, pro KDE Konqueror, oba velmi podobní MS Průzkumníkovi. Jako nejpoužitelnější se nám jeví souborový manažer Krusader, blízký Total Commanderu v Windows. Připojuje vzdálené filesystémy (ftp, sftp, fish, smb), pracuje transparentně s mnoha archivy, využívá záložek.

4.3. Kancelářský balík

Za kancelářský balík jsme v našem prostředí vybrali Openoffice.org. Jedná se o velmi hodnotný software, který v mnohém předčí programy od MS. V námi používané distribuci Linuxu bylo nutné ručně do Openoffice doinstalovat český slovník a českou nápovědu. Program bez problémů otevírá soubory ve majoritně rozšířených formátech doc, xls, ppt a taktéž do nich i ukládá. Kvalitní dokumentaci, nápovědu, tipy, šablony, makra v češtině je dnes možno nalézt na internetu, např. na serveru http://www.openoffice.cz. Online kurz pro začátečníky je k dispozici na serveru libereckého gymnázia F.X. Šaldy. Firma Software602 přeložila a uvolnila rozsáhlý rozdílový manuál pro středněpokročilé a pokročilé uživatele popisující srovnání Openoffice s kancelářským balíkem Microsoftu a přechod mezi nimi.

4.4. Grafika

Pro výuku grafiky potřebujeme rychlý prohlížeč obrázků, bitmapový editor a vektorový editor. Jako velmi dobré kandidáty na bitmapu používáme Kuickshow (prohlížeč, součást prostředí KDE), GIMP (editor) - tutoriál na LINUXSOFTWARE. Vektorovou grafiku vyučujeme pomocí Sodipodi nebo Inkscape.

4.5. Multimédia

K přehrávání zvuku při práci na tenkém klientu je potřeba zabezpečit transport zvukových dat po síti ze serveru na stanici. Na stanicích běží ESD démon, ke kterému se server připojuje. Většina linuxových přehrávacích programů umí s ESD spolupracovat, nám se jako velmi pěkné přehrávače zvuku osvědčily xmms, zinf nebo všechny programy využívající knihovnu gstreamer (např. RhythmBox, Totem).

Přenos videa je v principu také možný, naráží však na problém přenosové rychlosti sítě. Zkušebně jsme testovali Mplayer, xine, totem. Malá videa se zobrazují vpořádku, celoobrazovkový režim však většinou "nestíhá" a je trhaný.

4.6. Internet

4.6.1. Prohlížeč

Jako vynikající a bezpečné prohlížeče webu používáme Mozillu, Firefox, Galeon, Epiphany. Všechny jsou založeny na renderovacím jádře Mozilly, používají panely a různá další vylepšení oproti IE. Jistou komplikací zůstává obtížný tisk z těchto aplikací.

4.6.2. Pošta

Pro pro přístup k elektronické poště používáme programy Novell Evolution nebo Mozilla Mail. Oba jsou komfortní, vzhledem v mnohém připomínají MS Outlook a v některých ohledech jej předčí. Přístup je umožněn zevnitř školy protokolem IMAP, zvenku pak šifrovaným IMAPS se školním ssl certifikátem. Kdo má zájem, může školní poštu číst i přes webové rozhraní IMP libovolným prohlížečem (šifrované spojení https).

4.6.3. Další

Jako další síťové perličky které studenti i učitelé ocení můžeme uvést třeba sledování venkovní teploty ve vybraných městech.

5. Přenositelnost programů z OS Windows

Mnoho speciálních programů neexistuje ve verzi pro minoritní Linux. Protože nechceme (dlouhodobě) používat OS Windows, vyzkoušeli jsme několik technologií spouštění programů pro Windows v Linuxu. Zkušenosti s nimi se zde pokusíme popsat. Všechny zmíněné přístupy emulují nějakou část počítače s OS Windows a v pořadí podle rozsahu emulace si je představíme.

5.1. Virtuální počítače

Virtuální počítače jsou programy emulující celý počítač, tzn. procesor, disky, vstupně/výstupní zařízení atd. na velmi nízké úrovni. Pro použití je třeba nainstalovat kompletní operační systém, který (podle dokonalosti emulace) ``nepozná'', že není spouštěn na skutečném počítači.

Do této kategorie spadají programy qemu (http://fabrice.bellard.free.fr/qemu), bochs (http://bochs.sourceforge.net), případně komerční vmWare (http://www.vmware.com; ten jsme však nezkoušeli).

Obecná nevýhoda virtuálních počítačů je extrémní náročnost na CPU, komplikované nastavení komunikace se zbytkem sítě (virtuální síť přes rozhraní tun/tap atd.), z pohledu uživatele pak špatná integrace s pracovním prostředím. Mezi výhody patří možnost spustit prakticky libovolný program.

5.2. Win4lin

Tento komerční produkt (http://www.netraverse.com) neemuluje celý počítač, ale zavedením svých modulů do kernelu odchytává pouze ta volání, která je třeba emulovat a jejich emulaci provádí. Do win4lin je třeba nainstalovat operační systém. Jedna z podob win4lin je terminálový server, který umožňuje mnoha uživatelům současně pracovat na tomtéž systému a představuje tak obdobu terminálového serveru (protokol RDP) dodávaného s některými verzemi Windows.

Cena terminálového serveru je však poměrně vysoká a závisí na počtu uživatelů. Společnost Netraverse nám laskavě poskytla testovací verzi terminálového serveru win4lin pro 25 uživatelů (cena plné verze je kolem 70000Kč). Bohužel jsme při testování narazili na problémy s instalačním programem (segmentation fault) a produkt jsme nemohli otestovat. Reference porůznu roztroušené na internetu jsou však velmi dobré (umožňuje spouštět i velmi komplikované programy jako AutoCAD, Matlab atd.).

5.3. Wine

Projekt wine (http://www.winehq.com) je velmi rozsáhlý projekt usilující o re-implementaci většiny volání Windows API. Tím je umožněno spouštění programů přeložených pro Windows pod Linuxem, aniž by bylo třeba instalovat OS Windows. Vzhledem k rozsahu API a nejasnostem v jeho dokumentaci je ovšem pochopitelné, že ne vše bylo implementováno a proto některé programy používat nelze. Práce na projektu však postupuje stále vpřed. Stránky projektu uvádějí rozsáhlý přehled aplikací a stupně jejich funkčnosti.

V našem případě testovaný proram Bakaláři se nainstaloval i spustil, i když se vyskytly drobné problémy. Nefunuje např. modul evidence, pokusíme se tento problém odstranit.

(V této souvislosti upozorněme na projekt ReactOS (http://www.reactos.com), který se snaží reimplementovat kompletní operační systém zhruba kompatibilní s Windows NT. Ačkoliv zatím není prakticky použitelný, z tempa vývoje lze předvídat jeho dobrou budoucnost.)

5.4. Přenositelnost proramů MS-DOSu

Velmi staré proramy pro systém MS-DOS lze podle našich zkušeností zcela bezproblémově v některém z emulátorů tohoto systému pro Linux. Je to jednak dosemu (http://www.dosemu.org), ve kterém lze spustit dokonce Windows 3.11, dále též dosbox (http://dosbox.sourceforge.net), který se zaměřuje především na multimédia.

Některé organizace např. využívají starší aplikace pro účetnictví, které z důvodu obtížné či nemožné migrace dat není možné nahradit mladším softwarem. Často však takové programy stále postačují pro svou funkci a mirace by tedy byla jen zbytečným úsilím.

6. Další materiály