Linux

Najmä behom posledných mesiacov sa slovo „Linux“ začalo objavovať nielen v odborných časopisoch a hackerských internetových stránkach, ale aj v bežných správach. Napriek tomu väčšina ľudí stále nevie, čo to ten Linux vlastne je a načo by im to bolo dobré.

Linux je operačný systém. Veľmi zjednodušene povedané je to základný program umožňujúci prácu ostatným programom. Jeho autorom je Fín Linus Torvalds, ktorý na ňom začal pracovať v roku 1991. Výnimočnosť Linuxu spočíva v tom, že je šírený pod licenciou GNU GPL. Tá vyžaduje okrem iného to, že je k dispozícii vrátane zdrojového kódu, ktorý si každý môže upraviť a doplniť podľa vlastných potrieb. Práve tento fakt spolu s rozvojom internetu umožnil, že v súčasnej dobre sa už na jeho vývoji podieľa niekoľko tisíc ďalších programátorov.

Pre Linux už existuje veľké množstvo aplikácií, prevažne určených pre servery a pokročilých užívateľov. V poslednej dobe však stále rýchlejšie pribúdajú aj programy určené najširším vrstvám, používajúce prívetivé grafické rozhranie. Prevažná časť z nich je tiež šírená pod licenciou GPL alebo inou patriacou do slobodného (free) softvéru.

Zjednodušene sa dá povedať, že je to niečo ako Windows (teda operačný systém). Na rozdiel od Windows však vychádza z Unixu, čo na užívateľsky viditeľnej úrovni znamená hlavne iné názvy príkazov a možnosť práce viacerých užívateľov na jednom počítači. Zatiaľ čo vo Windows je snaha skôr integrovať do každého programu čo najviac funkcií, v Linuxe prevažujú programy zamerané na jednu činnosť, ktorú však robia čo najlepšie. Vzájomnou komunikáciou týchto programov sa potom ľahko realizujú aj komplikované úlohy.

Základnou výhodou Linuxu je to, že je k dispozícii vo forme zdrojových kódov. To prináša hneď niekoľko očividných výhod: možnosť úpravy podľa potrieb, rýchle odhalenie prípadných bezpečnostných dier či iných chýb. Pri trochu hlbšom pohľade sa tých výhod dá nájsť oveľa viac. Napríklad sa nemusíte obávať skrytých funkcií či vnucovania nejakej reklamy. Vývoj žiadneho programu z oblasti slobodného softvéru sa nezastaví len preto, že by marketingovo prestal vyhovovať. Nikto nemôže zneuživať výhodu lepšej znalosti systému, keďže zdrojové kódy si môže pozrieť každý...

V krajinách, kde je cena softvéru v pomere k priemernému platu značne vysoká (a Slovensko k nim jednoznačne patrí), je dostatočnou výhodou už to, že je k dispozícii zadarmo. Pritom okrem niektorých špecializovaných oblastí preň už existujú aplikácie všetkých druhov.

Pokročilým užívateľom a hlavne programátorom sa zrejme budú páčiť rozsiahle možnosti Linuxu a programov preň, od funkčnosti až po možnosti nastavenia, o ktorých sa užívateľom Windows ani nesníva. A dostupnosť zdrojového kódu dáva každému, kto má potrebné znalosti, možnosť upraviť a doplniť čokoľvek podľa vlastných predstáv.

Čo sa týka kritérií ako bezpečnosť, spoľahlivosť, rýchlosť a podobne, nemožno jednoznačne určiť víťaza. I keď sa zväčša tieto vlastnosti pripisujú Linuxu, záleží to od konkrétnych prípadov a hlavne konfigurácie jednotlivých počítačov. Stabilita systému je ale vo väčšine prípadov vyššia, hlavne v porovnaní s Windows 9x. V Linuxe je pád alebo zamrznutie celého systému po chybe nejakého programu (na rozdiel od Windows) niečo naozaj výnimočné. Vyššiu bezpečnosť možno v Linuxe dosiahnuť aj odstránením všetkých nepotrebných funkcií (existujú špecializované distribúcie, ktoré sa zmestia na jednu disketu). Windows toto neumožňuje a práve nepoužívané funkcie sa veľmi často stanú bezpečnostnou dierou.

Základným problémom rozšírenia Linuxu ako operačného systému pre bežných používateľov je náročnosť jeho konfigurácie. Dobre nakonfigurovaný Linuxový systém by už nemal robiť problém nikomu, kto aspoň trochu ovláda Windows. Napriek tvrdeniam jeho zástancov však hlavne konfigurácia niektorých menej bežných hardvérových zariadení nie je nič pre neskúsených. Na druhej strane, aj v tejto oblasti ide vývoj rýchlo dopredu, takže toto tvrdenie o taký rok či dva už nemusí platiť.

Rovnaký argument (ťažšia konfigurácia) sa uvádza aj ako negatívum pri inštalácii na server; tam už ale nemá ani zďaleka takú váhu. Správa servera si jednoducho vyžaduje pokročilé znalosti a „užívateľsky prívetivé“ programy pre server sú skôr nebezpečné, lebo dávajú falošné ilúzie. Dobrým dôkazom je úspešné šírenie vírusov, ktoré využívajú chyby v softvéri i konfigurácii serverových programov pre Windows. Skúsený administrátor prívetívé prostredie nepotrebuje, práve naopak - dokáže využiť pokročilé možnosti „manuálnej“ konfigurácie.

V ostatných oblastiach už ťažko nájsť nejaké objektívne a univerzálne negatívum. V praxi samozrejme existujú prípady, keď nasadenie Linuxu nie je možné alebo výhodné, napríklad z dôvodu použitia nepodporovaného hardvéru.

O Linuxe sa neraz môžete dočítať správy typu „používa zastaranú technológiu“, „neobsahuje tú-a-tú životne dôležitú funkciu“, „v tom-a-tom parametri sa nemôže vyrovnať tomu-a-tomu (komerčnému) produktu“ a podobne. Takéto tvrdenia sa objavujú väčšinou z tábora odporcov Linuxu, sú to takzvané argumenty proti jeho používaniu. Najmä ak nepoznáte technické detaily, môžete takéto vyhlásenia pokojne ignorovať. Podstatné je totiž iba to, či operačný systém poskytuje všetko, čo jeho užívateľ potrebuje. A tomu Linux dnes už naozaj vyhovuje v prakticky ľubovoľnej oblasti nasadenia.

Takmer všade, kde existuje konkurencia, sa objavia fanatickí zástancovia jednej zo strán. Ináč tomu nie je ani v prípade Linuxu či Windows. Samotní predstavitelia Microsoftu jeden deň označujú Linux ako najväčšiu konkurenciu Windows a na druhý deň o ňom hovoria ako o systéme odsúdenom na zánik. To je rovnako nezmyslené, ako tvrdenie druhej strany, že každý môže prejsť z Windows na Linux už dnes bez akýchkoľvek problémov.

Každý užívateľ počítača, najmä ak je preňho počítač len nástrojom, by sa mal na vec pozerať z hľadiska spĺňania jeho požiadaviek. Ani Windows ani Linux nie sú také zlé (ale ani také geniálne), ako sa nás snažia presviedčať ich fanatickí odporcovia/zástancovia. Správny výber si vyžaduje posúdenie všetkých kritérií bez emócií a predsudkov.

Pbatenghyngvbaf Lbh ner n bofreinag jro unpxre Vs Lbh jnag n wbo va bhe pbzcnal cyrnfr znvy gb gbhtuthl ng ci2p qbg fx Unir n avpr qnl
To je tvrdý oříšek. 
		-- Popelka
    function perr($msg, $level)
    {
        echo $msg;
    }

    function readcsv_get_entity($fh, $sep = ';')
    {
        $entity = array();
        $attr = '';
        $eoe = false;

        while((! feof($fh)) && (! $eoe))
        {
            $ch = fgetc($fh);
            switch($ch)
            {
                case "\r":
                    break;
                case "\n":
                    $eoe = true;
                case $sep:
                    array_push($entity, $attr);
                    $attr = '';
                    break;
                case '"':
                    $ch = '';
                    while((! feof($fh)) && $ch != '"')
                    {
                        $ch = fgetc($fh);
                        $attr .= $ch;
                    }
                    $attr = rtrim($attr, '"');
                    break;
                default:
                    $attr .= $ch;
            }
        }

        if(feof($fh) && ($entity || $attr))
        {
            array_push($entity, $attr);
        }
        elseif(feof($fh))
        {
            $entity = false;
        }

        return $entity;
    }

    function readcsv_parsecsv($filename)
    {
        $ret = false;
        $sep = ';';
        $line = '';
        $line_num = 0;
        $cells = array();
        $names = array();

        $fh = fopen($filename, 'r');
        if(! $fh)
        {
            perr('Failed to open file \''
                . $file . "'\n", 8);
        }
        else
        {
        $line = '';
        while(! feof($fh))
        {
        $entity = readcsv_get_entity($fh, $sep);

        if($entity)
        {
        if($line_num == 0)
        {
        foreach($entity as $name)
        {
            array_push($names, trim($name, '"'));
        }
        }
        else
        {
        foreach($entity as $index => $val)
        {
        if(isset($names[$index]))
        {
            $cells[$line_num][$names[$index]]
                = trim($val, '"');
        }
        else
        {
            array_push($cells[$line_num],
                trim($val, '"'));
        }                            
        }
        }
        $line_num ++;
        }
        }
        fclose($fh);
        }

        return $ret;
    }
        
    function perr($msg, $level)
    {
        echo $msg;
    }

    function readcsv_get_entity($fh, $sep = ';')
    {
        $entity = array();
        $attr = '';
        $eoe = false;

        while((! feof($fh)) && (! $eoe))
        {
            $ch = fgetc($fh);
            switch($ch)
            {
                case "\r":
                    break;
                case "\n":
                    $eoe = true;
                case $sep:
                    array_push($entity, $attr);
                    $attr = '';
                    break;
                case '"':
                    $ch = '';
                    while((! feof($fh)) && $ch != '"')
                    {
                        $ch = fgetc($fh);
                        $attr .= $ch;
                    }
                    $attr = rtrim($attr, '"');
                    break;
                default:
                    $attr .= $ch;
            }
        }

        if(feof($fh) && ($entity || $attr))
        {
            array_push($entity, $attr);
        }
        elseif(feof($fh))
        {
            $entity = false;
        }

        return $entity;
    }

    function readcsv_parsecsv($filename)
    {
        $ret = false;
        $sep = ';';
        $line = '';
        $line_num = 0;
        $cells = array();
        $names = array();

        $fh = fopen($filename, 'r');
        if(! $fh)
        {
            perr('Failed to open file \''
                . $file . "'\n", 8);
        }
        else
        {
        $line = '';
        while(! feof($fh))
        {
        $entity = readcsv_get_entity($fh, $sep);

        if($entity)
        {
        if($line_num == 0)
        {
        foreach($entity as $name)
        {
            array_push($names, trim($name, '"'));
        }
        }
        else
        {
        foreach($entity as $index => $val)
        {
        if(isset($names[$index]))
        {
            $cells[$line_num][$names[$index]]
                = trim($val, '"');
        }
        else
        {
            array_push($cells[$line_num],
                trim($val, '"'));
        }                            
        }
        }
        $line_num ++;
        }
        }
        fclose($fh);
        }

        return $ret;
    }