NetWare zdarma

                       Milan Keršláger, 11. května 1998

          There  once  was a  master  programmer  who  wrote  unstructured
      programs. A novice  programmer,  seeking to imitate  him, also began
      to write  unstructured  programs.  When the novice  asked the master
      to evaluate his progress,  the  master  criticized  him for  writing
      unstructured  programs,  saying: "What is appropriate for the master
      is not  appropriate  for the  novice.  You must  understand  the Tao
      before transcending structure."
                  -- Geoffrey James, "The Tao of Programming"

                                Novell NetWare

          Novell NetWare (NW) je stabilní  hvězdou na nebi lokálních sítí,
      kde  umožňuje   stanicím   sdílet  různá  zařízení   prostřednictvím
      počítačové  sítě.  Pracuje na  základě  architektury  klient-server.
      Klienty   zde   jsou   stanice,   které   sdílejí   disky   serveru,
      společné    tiskárny,    CD-ROM  a  podobně.    Servery   tak   mají
      v síti  výsadní  postavení  a  jsou u  nich  kladeny  vysoké  nároky
      na  výkon a spolehlivost.  To  vedlo  firmu  Novell k vývoji  vysoce
      specializovaného operačního  systému, který sice prakticky umí téměř
      jen  sdílet  své  disky,  ale  zato to umí  perfektně.  Staví se tak
      do zcela  vyhraněné  pozice,  kdy na rozdíl od  Unixů  nekoncentruje
      veškeré programy a prostředí pro jejich spouštění do jediného místa,
      ale přenechává  maximální  možnou  míru  povinností na stanicích. Ty
      musí mít vlastní  operační systém a NetWare se stará pouze o to, aby
      se stanicím  zdálo, že všechna  sdílená  zařízení se nacházejí přímo
      u stanice samotné.  Spuštěné programy pak běží přímo na jednotlivých
      stanicích a iluze se sdílenými  zařízeními  je pro ně tak  dokonalá,
      že s nimi dokáží pracovat téměř všechny  programy, i když pro provoz
      v síti původně vůbec nebyly napsány.

          Před tím, než může uživatel z nějaké stanice využívat  sdílených
      zařízení  poskytovaných  serverem,  musí se k němu  přihlásit,  čili
      prokázat mu svou identitu  pomocí  jména a hesla.  Pokud se uživatel
      úspěšně  přihlásí,  jsou mu na oplátku až do  odhlášení  poskytovány
      veškeré  zdroje,  které smí daný  uživatel  užívat.  Práva k užívání
      jsou   evidována   na serveru a uživatelům   je  přiděluje   správce
      (administrátor) systému.

          Linux,  se  kterým   pracujeme,  má o  mnoho   větší   možnosti,
      než  server s Novell  NetWare.  Proto se nelze  divit,  že je v jeho
      silách dokonce  emulovat  činnost  samotného NetWare  serveru. Linux
      se pak  navenek  mimo  jiné  tváří,  jako by byl  NetWare  serverem.
      Nedosahuje  sice takových  kvalit jako jeho  specializovaný  kolega,
      ale přesto ho může  nahradit  více než se ctí.  Připočteme-li k tomu
      prakticky  nulovou  cenu a mnohostrannost  samotného  Linuxu,  který
      můžeme  současně  používat na spoustu  dalších věcí, začne být tento
      rys velice zajímavý.

                             Co je Mars a Linware?

          Pokud  se Linux  chce  stát  zdánlivým  NetWare  serverem,  musí
      umět komunikovat  pomocí  protokolu IPX, je třeba  implementovat NCP
      protokol a musí se do sítě začít ohlašovat pomocí SAP protokolu. Čím
      lépe bude takto napodobovat svůj vzor, tím lépe pro nás. Tuto službu
      jsou schopny zastat dva programy: Mars a Linware.

                            Linware - český produkt

          Autorem Linware (ftp://platan.vc.cvut.cz/pub/linux/lwared-0.95/)
      je Aleš Dryák z ČVUT v Praze. S vývojem  skončil v roce 1995. V roce
      1996 tento  projekt  ožil, když se Aleš sešel s Petrem  Vandrovcem a
      Jirkou  Novákem. J. F. Chadima  pak provedl  zásadní  zásah do kódu,
      který  vedl do slepé  uličky a fakticky k zastavení  projektu.  Petr
      a Jirka pak ještě  sice  Linware  trošku  upravili, ale dnes na jeho
      dalším vývoji prakticky nikdo nepracuje. Linware je dnes ve funkčním
      stavu, ale pro jeho  další  pokračování je ho nutné  prakticky  celý
      přepsat. Zde se nabízí  možnost pro kohokoliv, kdo by měl vůli tento
      zajímavý projekt a konkurenci Marsu vést dál.

                                     Mars

          Mars  (http://www.compu-art.de/download/mars_nwe.html)   (Martin
      Stovers  NetWare  Emulator)  je  původem  z  Německa  a je  neustále
      zdokonalován. Dnes Mars poskytuje téměř  všechny  služby jako Novell
      NetWare verze  3.12. Na jeho vývoji  spolupracuje více lidí z celého
      světa a i Martin na projektu  stále  pracuje. Jak sám píše,  hlavním
      důvodem, který ho přiměl k uvolnění  Marsu do volného  užívání, bylo
      uveřejnění Linware.

                         Společné rysy Marsu a Linware

          Disky  určené ke sdílení  jsou ve  skutečnosti  určité  adresáře
      v lokálním  filesystému  Linuxu a uživatelé,  kteří se do  emulátorů
      přihlašují,  odpovídají  každý  normálnímu  uživateli  v Linuxu.  NW
      přístupová práva pak vyplývají z Unixových práv uživatele k souborům
      a adresářům, protože jsou na uživatele uplatňována stejným způsobem,
      jako kdyby pracoval přímo v Linuxu  (protože  program, který soubory
      z  disku  čte a zasílá  mu  je  na  stanici,  běží s jeho  UID/GID).
      Ve sdílených  adresářích lze použít symbolických linek, ale nelze je
      omezit na konkrétní podstrom.

          Ani  jeden  emulátor  nezavádí  implementaci  klasických NW práv
      k adresářům a souborům, se kterými  jejich  vzor  výhradně  pracuje.
      Vede  to k jistým  omezením,  ale  na  druhou  stranu  to  maximálně
      zjednodušuje  funkci  emulátorů.   Nepříjemnost  tak  může  způsobit
      program,  který  pátrá  po  právech v adresáři,  protože  díky  této
      filozofii žádná práva nenajde i přes to, že má do adresáře  přístup.
      Do budoucna se můžeme těšit na implementaci NW práv v Marsu,  kterou
      již Martin Stower v konferenci oznámil.

          Hesla  pro Linux a pro  emulátor  jsou  vedena  zvlášť,  protože
      při autentifikaci do emulátoru  nevyhovuje systém používaný v Unixu,
      kde jsou hesla šifrována tak, že z uložené  zakódované  podoby nelze
      zpětně  zjistit  původní  heslo. Výskyt dvou různých hesel na jednom
      počítači tak může být zdrojem drobných potíží pro uživatele systému.
      Na druhou  stranu oba  programy  umožňují  měnit  heslo do emulátoru
      klasickými NW utilitami přímo ze stanice pomocí funkcí protokolu NCP
      stejným způsobem, jako měníme heslo na NetWare serveru.

                     Hlavní rozdíly mezi Marsem a Linware

          Pokusím se stručně  popsat  hlavní  rozdíly mezi oběma programy,
      které jsou vidět zvenčí. Nebudu se zabývat ani vlastní  stavbou obou
      programů  ani  jejich  testováním  například na rychlost,  stabilitu
      a jiná  další  měřítka.  Spolu s vybudováním  kvalitní  metodiky  je
      to námět nejméně na jednu větší samostatnou práci.

          Mars  je  složen z více  programů,  ale  navenek  pracujeme  jen
      s jedním. Každého připojeného uživatele obsluhuje samostatný proces.
      Má  jen  jeden  konfigurační  soubor,  který  je  poměrně   obsáhlý,
      přehledný  a  jednotlivé  volby  jsou  v  něm  dobře  dokumentovány.
      Nastavit  lze téměř  vše a jen  velmi  málo  voleb je nastavitelných
      pouze při kompilaci,  což  přispívá k uživatelskému  komfortu.  Mars
      umí  vytvořit  tiskové  fronty, do kterých  můžeme  zasílat  tiskové
      úlohy a také  tiskový  server,  který může  odebírat  úlohy z jiných
      NW  tiskových  front.  Z  front  mohou  být  úlohy  směrovány  přímo
      do linuxového  tiskového  systému  nebo lze  využít  jakýkoliv  jiný
      tiskový  server,  který  se dokáže  na NW  tiskové  fronty  napojit.
      Bindery  databáze  je  uložena v  samostatných  souborech a obsahuje
      i  zakódovaná  hesla  uživatelů.  Mezi  nejsympatičtější  rys  patří
      podpora  dlouhých jmen, takže z Windows 95 lze pracovat i s dlouhými
      názvy  (v  NetWare  je  to  tzv.  OS/2  namespace)  na  NW  discích.
      Dokumentace je přiměřená, v německém jazyce obsáhlejší.

      Linware je jen jeden jediný démon, který sám obsluhuje všechny
      připojené uživatele. Potřebuje ovšem pro korektní běh dva další démony
      IPXRIPD a IPXSAPD. Konfigurační soubor je jeden a je
      oproti Marsu nepoměrně skromější. Linware nepodporuje tiskové fronty,
      nemá bindery databázi. Hesla jsou uložena v zakódované podobě ve
      speciálním souboru /etc/lwpasswd. Hlavní výhodou Linware je
      vlastnost, že umí zkracovat dlouhá jména a umožňuje tak i v prostředí
      DOSu editovat soubory s dlouhými jmény, což je výhodné například pro
      úpravy WWW stránek z Windows 3.x, které jsou na mnoha místech stále
      používány pro svoji nenáročnost. Na druhé straně neposkytuje soubory
      s dlouhými názvy pomocí OS/2 namespace, což může být na překážku.
      Dokumentace je stručná.  Linware potřebuje pro svou činnost
      patch na jádro, a tak se nevyhneme jeho kompilaci.

                        Bootování stanic pomocí BootROM

          Abychom  omezili  šíření virů ve své počítačové  síti, je vhodné
      i přes  to, že  máme v každé  stanici  harddisky,  bootovat  stanice
      pomocí   BootROMek  ze  serveru.  Obrazy   bootovacích  disket  jsou
      na serveru  chráněny  před  viry a my máme k dispozici  po  restartu
      stanice  čistý  a  hlavně  funkční  počítač.   BootROMky   používají
      k otevírání  obrazů  na  serveru  stadardní  funkce  NCP  protokolu,
      takže lze  bootovat i z obrazů  umístěných na emulátorech.  Výjimkou
      jsou  BootROMky,  které  používají  výhradně RPL  protokol. Ten není
      v Linuxu  implementován a tak máme v tomto ohledu smůlu. Bootovat je
      samozřejmě možné i bezdiskové stanice.

                 Nasazení Marsu a Linware aneb jak je mám rád

          Oba  emulátory  provozuji  již  poměrně  dlouho.  Dětské  nemoci
      mají  už za  sebou a lze je  poměrně  seriózním  způsobem  využívat.
      Linware  používám pro jeho schopnost  zkracovat dlouhá jména souborů
      pro sdílení domácích  adresářů Linuxu. Uživatelé tak mohou například
      snadno  upravovat své WWW stránky z DOSu nebo Windows 3.x. Mars jsem
      nasadil do jedné  učebny ve škole,  kde je 11  bezdiskových  stanic,
      které  bootují  pomocí  BootROM a provozuje se na nich DOS a Windows
      3.x.  Linux  nahradil  NW server,  běží na něm  WWW  server,  proxy,
      obstarává dial-up a podobně.  Subjektivním  pozorováním lze říci, že
      ani po zdvojnásobení operační paměti z 16 na 32MB a výměně procesoru
      486DX4/100  za  Pentium  120  nedosahuje   sdílení  disků  rychlosti
      původního NW serveru.  Problémy  jsou zejména v situaci, kdy stanice
      s Windows  3.x  používají  odkládací  soubor na  sdílených  discích.
      Kontrolka  HDD  se  rozsvítí a stanice  na  dlouhé  vteřiny  doslova
      ztuhnou.  Problém  bude  nejspíše  v optimalizaci  přístupu k disku,
      která pro tento účel v Linuxu asi není nejvhodnější.  Celkový přínos
      výměny OS (při  dnešních  cenách  hardware)  ovšem  považuji  přesto
      za kladný. Na ostatních  místech, kde jsem Mars instaloval,  pracuje
      více  než  uspokojivě,  protože  neplní  úlohu  jediného  serveru se
      spoustou  bezdiskových stanic, a nejsou na něj tak kladeny  extrémní
      nároky.

                                     Závěr

          Pokud si  myslíte,  že Mars  nebo  Linware  může  plně  nahradit
      NetWare   servery   od   Novellu,   zažijete    nejspíše   zklamání.
      Profesionální  řešení  od  firmy  Novell  vyniká  v mnoha  ohledech,
      zejména  však v rychlosti,  nenáročnosti  na  hardware a komplexnosi
      nabízených    služeb.    Konkurovat   však   nemůže  v   požadavcích
      na flexibilitu,  univerzálnost a hlavně  cenu. To je místo, kam Mars
      a Linware patří a kde jistě cítíte i vy sílu Linuxu. Nezbývá, než se
      smířit s daným stavem věcí a využít především silné stránky  každého
      řešení.


            výheň