(BAJT únor/březen 1994)
Tuto známou defanici UNIXU z knihy [1] Kernighana a Pikea lze použít i pro Linux, ale s ním nabývá novou dimenzi. Definice, vystihující podstatu Unixu jako stavebnice softwarových nástrojů s nezměrným počtem kombinací, spočívala dříve především ve spojení "s ním".
Linux, který se dodává včetně zdrojových programů, umožňuje realizovat druhou část této definice.
Skutečnost, že tento operační systém je nyní každému zájemci přístupný jako shareware, pro mnohé představuje nové možnosti využití výpočetní techniky. Zrod Linuxu je výrazem nových směrů myšlení řady programátorů a počítačových odborníků. První praktickou formou projevu těchto nových směrů bylo založení firmy Free Software Foundation v USA. Tato firma se snaží podporovat rozšiřování volného softwaru a v rámci jejího projektu GNU [2] byl kromě jiného vyvinut C-compiler gcc, kterým se Linux překládá.
Jinou skupinou je "core-team" pro vývoj XFree86. XFree86 je implementace X Window pro Linux (a další systémy).
Skupina pěti programátorů koordinuje celosvětový vývoj, testování a rozšiřování tohoto softwaru. V neposlední řadě je třeba se zmínit i o Linusi Torvaldsovi, který v dubnu 1991 celou lavinu uvedl do pohybu. Torvalds se rozhodl napsat své vlastní unixovské jádro také proto, že jím používané vývojové prostředí - operační systém MINIX - nebyl (a není) volně šiřitelný a měřitelný. V září 1991 zpřístupnil své programy ve verzi 0.01 přes Internet ostatním programátorům. Hned nato se rozeběhl celosvětový vývoj Linuxu tempem, o kterém mohou vedoucí pracovníci světových softwarových firem jen snít.
Tímto postupem, jakousi "volnou" spoluprací programátorů, se v průběhu dvou let vytvořil relativně stabilní a výkonný unixovský systém. Samozřejmě, že taková "volná" spolupráce má i své nevýhody. Např. menší stabilitu softwaru, zváště tehdy, když se software, který není řádně otestován, přebírá do základního systému. I zde se však objevuje nový přístup. Na rozdíl od "méně koordinovaného" vývoje v oblasti linuxovského jádra razí "core-team" spíše restriktivní metody vývoje s menším počtem vydání a s koordinací testů. Prosadí-li se tato metoda, pak by se Linux mohl brzy stát vážným konkurentem komerčním Unixům, jako např. SCO, AIX atp. Uvážíme-li, že cena SCO-UNIXu s vývojovým prostředím TCP/IP, NFS a X Window je kolem jednoho sto tisíc korun, pak je distribuční cena Linuxu ve výši cca 4000 Kč skutečně zanedbatelná.
Cesta k Linuxu
V počátcích vývoje Linuxu si zájemce nahrál ze sítě Internet kromě linuxovského jádra a podpůrných programů i tzv. "root" disketu, tj. soubor nejdůležitějších instalačních utilit.Pro zájemce, kteří nemají přístup k Internetu, existují tzv. "distribuce". Tyto distribuce se skládají zpravidla z jedné bootovací linuxovské diskety a množství dosovských disket. Podle návodu může zájemce Linux v různých konfiguracích nainstalovat. Např. základní systém sestávající jen ze čtyř disket zabírá na HDD zhruba 12 MB paměti, kompletní systém je obsažen na cca třiceti disketách a vyžaduje asi 100 MB paměti.
Dnes nejrozšířenější "distribucí" je soubor disket firmy SLS. Další známou distribucí je např. Yggdrasil. V zemích západní Evropy existuje celá řada dalších, většinou malých firem, které nabízejí vlastní distribuce s vlastními doplňky. Distribuce je možné objednat jak na disketách, tak na CD-ROM.
Verze Linuxu
Současná verze Linuxu, která je dostupná přes distribuci (stav k 01/94), je 0.99p112 až O 99p113. Linux sám je minimálně ve verzi 0.99p115. V únoru 1994 má být distribuována verze 1.0.Číslo 0.99 je verze, p112 uvádí tzv. "patch level", tzn. stupeň vylepšení dané verze. Bohužel nelze jednoznačně říci, která vylepšení jsou vzájemně kompatibilní ve vztahu k nějakému softwarovému dílu Linuxu. Např. pro emulaci MS-DOSu je zapotřebí verze 0.99p110 a vyšší, ale určitě lze použít instalace 0.99p19 a 0.99p17. Zrovna tak jsou některá jádra verze 0.99p113 z důvodu změn v tabulce procesu nevhodná, chceme-li používat dosovský emulátor.
Na čem instalovat
Minimální konfigurace systému vyžaduje procesor 8003868X, 2 MB paměti a mechaniku. Na HDD postačí 20 MB pro instalaci minimálnito systému. S takovouto konfigurací jde systém spustit a seznámit se sjeho základními funkcemi.Na systému s procesorem 80386SX, 4 MB paměti a HDD 33 MB je možné provozovat malé víceuživatelské aplikace.
Uživatel, který zamýšlí linuxovské jádro sám překládat a experimentovat na systémové úrovni, by měl mít konfiguraci aspoň 80386, 4 MB paměti a HDD 33 MB HDD.
Při nasazení X Window je ke kvalitní práci zapotřebí minimálně 8 MB paměti.
Základní deska musí být typu ISA, Local-bus nebo EISA, přičemž u EISA je nutno použít buď doporučený řadič nebo ISA.
Potřebné rozhraní HDD je IDE, RLL, MFM, ESDI nebo SCSI. Kromě AT řadičů existuje značný výběr řadičů pro rozhraní SCSI. CD-ROM a kazetové jednotky se připojují přes SCSI.
V textovém módu je možné použít videoadaptéry VGA, EGA, CGA a Hercules. Při použití emulace MS-DOSu nebo X Window je třeba v grafickém módu počítat s omezeními, která jsou popsána v příslušném odstavci.
Hardware pro komunikaci je podrobněji popsán dále.
Programování s Linuxem
Linux se obvykle zařazuje mezi dvě hlavní větve vývojového stromu Unixu (něco mezi Unixem SYS V a BSD 4.2).Tato skutečnost hraje roli u softwaru, který byl napsán výhradně pro určitou verzi Unixu, např. pro SCO-UNIX. Ale i zde většinou dochází k problémům při hledání knihoven, které se na rozdíl od původního systému mohou vyskytovat v jiných adresářích. Přizpůsobení takového softwaru ovšem nemůže provést úpiný začátečník.
U většiny volně šiřitelného softwaru (mapř. firmy FSF) je z velké části k dispozici "make", který obsahuje odpovídající nastavení, a umožňuje implementaci softwaru na Linux i unixovskému (linuxovskému) začátečníkovi.
Jak jsme již uvedli výše, je programátorské vybavení Linuxu z velké části produktem firmy FSF. Protože jde o novější produkty, jsou obecně rychlejší a komfortnější ve srovnání s klasickými vývojovými prostředky i "profesionálnějších" Unixů (viz [2]). Slovo komfort by ale nemělo svádět k domněnce, že pod Linuxem je možné obdržet vývojové prostředí jako např. pod Borlandem. V tomto směru zůstal Linux svým předchůdcům věrný.
MS-DOS a Linux
Linux obsahuje uživatelský program "dosemu". Tento název svádí k domněnce, že jde o emulátor MS-DOSu. To není zcela správné. Lepší označení by bylo "PC-Emulátor", protože "dosemu" pouze využívá vlastnosti jádra Linuxu a vlastnosti, které MS-DOS normálně očekává. "Dosemu" je ALPHA-software, tzn. že je ještě ve fázi testů.Proto s ním nedoporučujeme pracovat bez předchozího zálohování dat. "Dosemu" běží pod Linuxem 0.99p110 a výše. Nutný je minimálně MS-DOS 3.3. Ohraničení zůstává zejména v grafickém módu, kde je podporován pouze VGA-modus, a to pro VGA-chip ET4000 a TRIDENT.
XFree86 pod Linuxem
X Window System (krátce X11) byl vyvíjen společně firmou DEC a institutem MIT v rámci projektu Athena. X11 je síťově orientované grafické rozhraní, které umožňuje současný běh více programů v různých oknech. X11 je typická aplikace klient - server.Typickými klienty jsou např. programy "xterm" (odpovídá programu "terminal" pod MS-Windows) nebo "xcalc" (odpovídá programu "calculator"). Server je program, který se stará o grafický výstup klienta. Síťově orientovaný znamená, že pod X11 je jednoduše možné, aby klienti a server běželi na různých počítačích. Transportním protokolem je TPC/IP. V počátcích vývoje (X11-release R1) existovaly pouze servery pro stanice Apollo, IBM, SUN, DEC.
V release X11 R5 byl již také obsazen server X386-1.2 pro počítače s procesorem 80386. Ukázalo se, že tento server je pomalý a s mnoha chybami. Posléze vznikl projekt XFree86, který se snaží uvedené problémy vyřešit. Na celém projektu pracuje skupina programátorů koordinujících veškeré aktivity.
XFree86 klade na hardware značně vyšší nároky než samotný Linux. Minimálně doporučená konfigurace je 8 MB paměti (lépe pochopitelně vyhovuje 16 MB). Rozumná konfigurace vyžaduje HDD cca 20-25 MB. Myš není problémem, podporovány jsou téměř všechny dostupné typy.
Problémy začínají u grafické karty. Poměrně jednoduchá situace nastane tehdy, spokojíme-li se s malými grafickými nároky (256 barev do rozlišení 800 x 600). Při vyšším rozlišení nebo více barvách je většinou nutné konfiguraci serveru upravit ve zvláštním konfiguračním souboru. Úprava často vyžaduje řadu pokusů při nastavování tzv. "dot-clock" hodnot monitoru a jeho hodnot pro horizontální a vertikální timing. Server lze provozovat i v monochromatickém módu s libovolnou kartou VGA nebo Hercules.
Verze 2.0 podporuje tyto čipy:
Tseng | ET3000, ET4000, ET4000/W32 |
WD/Paradise | PVGA1 |
WD | WD90000, WD90C10, WD90C11. WD90C30, WD90C31 |
GENOA | GVGA |
Trident | TVGA8800CS, TVGA8900B/C/CL, TVGA9000 |
ATI | 28800-4, 28800-5, 28800-A, 28800-C |
NCR | 77C22, 77C22E |
Cirrus Logic | CLGD5420/22/24/26/28, CLGD6205/15/25/35 |
Compaq | AVGA |
Oak | OTI-067, OTI-077 |
Komunikace
Linux podporuje sériové porty COM1 a COM2, COM3 a COM4. Současně mohou být použity pouze tehdy, umožňuje-li daná sériová karta zvolit nějaký systémem neobsazený interrupt. Aby bylo možné použít více než dva sériové porty, podporuje Linux tzv. multiportkarty, které pomocí speciálního hardwaru mohou přepínat jednotlivé porty při použití jediného hardwarového interruptu. V současnosti lze použít multiport-karty typu AST, Accent Async Boards a BOCA (bez nároku na úpinost).Při použití rychlých modemů je téměř nevyhnutelné nasazení sériových karet s čipem 16650, nebo karet kompatibilních, které mají 16-bitový FIFO buffer, aby nedocházelo k chybám v přenosu.
Pro realizaci lokální sítě se nabízejí tři možnosti:
1 Pomocí sériového rozhraní lze propojit vždy dva počítače mezi sebou pomocí SLIP (TCP/IP pro sériové linky). Při propojení více počítačů dochází k problémům_ Přenos je omezen na cca 11 KB/s.
2 Druhou možností je propojení dvou sousedících počítačů přes paralelní rozhraní za pomocí PLIP (TCP/IP pro paralelní rozhraní). Lze dosáhnout přenosové rychlosti až 25 KB/s.
3 Třetí možností je použít síťové karty a protokol TCP/IP. Podporovány jsou následující síťové karty - 3com 3c503, WD8003 a kompatibilní, obzvláště SMC a Lannet, NE2000 a kompatibilní, HPLAN.
Databáze
Slabinou Linuxuje do dnešního dne nedostatek komerčních aplikací. To je způsobeno tím, že k tomuto účelu potřebný databázový software není, z pochopitelných důvodů, k dispozici. Není překvapením, že nelze obdržet např. implementaci Informixu na Linux, protože by firma Informix musela souhlasit s licenční politikou tak, jak ji razí projekt GNU, tj. možnost volného šíření databáze se zdrojovými programy. Z těchto důvodů existují pouze dva větší databázové systémy, pro které je linuxová implementace a které jsou volně šiřitelné. V obou případech je iniciátorem a vedoucí osobností bývalý spoluzakladatel a vývojový pracovník firmy Relational Technology (později Ingres), Michael Stonebraker.První z oněch dvou databází je Ingres. Jako jedna z prvních realizačních databází vůbec dosáhla od roku 1980 značného rozšíření. Volně šiřitelná verze 8.9 pro Linux je z ledna 1993.
Druhým databázovým systémem je relační databázový manager Postgres. Linuxovou implementaci provedl v Berlíně Kai Petzke - odtud si ji můžete přehrát přes internetovskou adresu ftp.cs.tu-berlin.de. Postgres je databáze s objektově orientovanými doplňky. Její první verze byla dohotovena v roce 1989 a je nasazena zhruba ve 150 vývojových pracovištích na celém světě. Obsáhlejší informace najdete v [3].
Oběma databázovým systémům je společné, že nepodporují SQL.
Výhledy
Je samozřejmé, že Linux se může stát alternativou ke komerčním systémům jen tehdy, bude-li k němu dostatek komerčního softwaru. Aplikace pod XWindow jsou sice krásné, ale z převážné části zůstávají omezené na oblast vývoje a vědy. I s nejkrásnějšími okny nenapíšeme ani jedinou fakturu, nemáme-li malý účetnický software.Důležitá je také podpora výrobců periferií, zejména zpřístupnění jejich výrobků. Řada výrobců (např. multiportových karet) zatím váhá dát k dispozici drivery pro své produkty, mění-li se tak často jádro systému.
Další vývoj je třeba alespoň zčásti koordinovat, tak jak je to činí "core-team" u XFree86.
Nedostupnost známých databázových systémů zůstane ještě nadlouho problémem pro masové rozšíření Linuxu i aplikací. Zbývá jediná možnost - že výrobci aplikací použijí databázové systémy, které se dodávají ve formě zdrojových programů (např. kompatibilní C-ISAM, Raima-RDM, FairCom-Server atd.). Dané aplikace pak sice nejsou volně šiřitelné, ale lze je už dnes získat.
Co tedy zbývá?
Na svém HDD si připravíme 20 až 30 MB paměti, například tak, že smažeme stejně nepoužívaný a často nelegálně získaný software. A nahradíme ho softwarem volně šiřitelným.Literatura:
[1] Kernighan-Pike: The UNIX Programming Environment (1984, Prentice Hall)
[2] Butenuth-Mock: Abseits vom Konunerz (CT 3/92, str. 62)
[3] Burger: Evolution contra Revolution (DC1CV93, str. 72)
(BAJT únor/březen 94)
Text vznikol ako OCR výstup zo scanov starého BAJTu, scany sú dostupné na https://imgur.com/a/SmjlcZ1