Nejednotnost kernelů a rozhraní, nestabilita nástrojů a aplikací
Kapitoly článků
3. kotva: nejednota kernelů a rozhraní odrazuje výrobce hardwaru
Nejednotnost se týká i té nejdůležitější části operačního systému, se kterou běžný uživatel nikdy nepřijde do styku: systémového kernelu (to je ta věc, která se opravdu jmenuje "Linux"). Máme zde Ubuntu, Fedoru, openSUSE, Debian, Mandrivu, Arch, Slackware, RHEL (CentOS) a třeba Gentoo a všichni tito používají nějaký ten kernel.
Samotný linuxový kernel je něco jako neskutečně chaotický systém kočírovaný relativně úzkou skupinkou "polobožských hackerů", kteří snad musejí žít mimo běžnou realitu, protože tyto dva světy dohromady snad ani nemůže lidská duše zvládat. Běžnému uživateli, pokud se s tím někdy setkal, musí vývoj linuxového jádra připadat jako snaha o řízenou jadernou reakci, kterou předvedl tým Enrica Fermiho na Chicagském univerzitním stadionu v roce 1942, jenž měl případnou vymknuvší se jadernou reakci uhasit kadmiovým roztokem vylévaným z kýblů na žebřících přímo do reaktoru. Ale jakkoli to vyznívá šíleně, Linuxový kernel stále pravidelně vychází v jednotlivých verzích.
Problém ale je, že tvůrci distribucí nejsou s to se sjednotit v tom, aby vždy pro blížící se vydání nové verze použili shodný kernel. Nejenže se liší ve verzích jako takových, ale často si do svých "distribučních kernelů" backportují věci z verzí vyšších, nebo přidávají specifické úpravy ("hacky"), které zapříčiňují to, že nikdy nenastane situace, aby se dalo říci, že "na všech hlavních linuxových distribucích náš software poběží, protože mají stejný kernel a stejné základní knihovny a vše je stejně zkonfigurováno".
Toto je daň za konkurenční boj, který mezi firmami jako Red Hat, Novell či Canonical pochopitelně probíhá a je třeba si i přiznat, že Linux jako kernel i celá linuxová distribuce ve své definici z toho všeho těží. Ne nadarmo je většina linuxových vývojářů včetně oněch "polobohů" zaměstnanci některé z těchto velkých linuxových firem a právě tyto firmy tak v podstatě platí valnou část vývoje Linuxu.
Ale pravdou je, že tato neshoda v kernelech a rozhraních působí tvůrcům programů, ale také třeba programátorům ovladačů pro firemní hardware (např. Nvidia), značné problémy a vrásky na čele. Často pak i takové, že si výrobce řekne "proč zdvojnásobovat velikost ovladačového týmu, abychom podporovali tenhle OS, který nemá ani 1% podíl na desktopech?" a tím vlastně "linuxové distribuce jako takové" svým způsobem odrazují výrobce hardwaru v tom, aby tento OS podporovali.
Linuxoví polobozi i běžní programátoři, kteří k vývoji "linuxu jako takového" přispívají, často argumentují tím, že když výrobce poskytne specifikace svého hardware, linuxová komunita mu ráda ovladače sama napíše, a to zcela zadarmo. Mnozí to takto dělají, ale faktem je, že řada významných výrobců hardwaru dokumentaci jednoduše nemůže uvolnit vůbec, či může uvolnit jen malou část, protože jejich hardware obsahuje i licencované duševní vlastnictví třetích stran, nebo by odhalením specifikací zničili technologickou výhodu, kterou mají nad konkurencí.
Příkladem tohoto je kupříkladu společnost Nvidia, která nejenže v některých částech GPU používá cizí intelektuální vlastnictví (např. věci kolem video formátů), ale navíc 90% kódu svého linuxového ovladače sdílí s windowsovým a s ohledem na konkurenční boj tak nemůže ani uvolnit specifikace hardwaru, ani vypustit zdrojový kód ovladačů pod GPL kompatibilní licencí. Druhá a třetí kotva jí pak způsobuje problémy při vývoji linuxového ovladače, kdy mj. musejí své ovladače linkovat vůči velice starým verzím systémových knihoven, aby tak měli jistotu podpory v co největším množství linuxových distribucí, tím se ale pochopitelně okrádají o část inovací a benefitů z lépe implementovaných věcí v linuxovém systému, na čemž pochopitelně opět tratí uživatelé.
4. kotva: nestabilita nástrojů a aplikací
Na linuxové distribuci Ubuntu, asi jako vůbec první v historii (snad mě za toto mnozí nebudete kamenovat), je skvělá jedna věc: pokud se poštěstí, je zde velmi vysoká šance, že ji dokáže nainstalovat i vaše babička a nepotká ji ani žádný problém po instalaci ani během mnoha měsíců užívání. Vše prostě poběží bezva.
Jenže ono to není pravidlo. Pokud bychom si řekli, že průměrná linuxová distribuce bez ohledu na to, jestli se jmenuje Ubuntu, Mandriva, nebo openSuse, se skládá z 1000 různých součástí, pak jen málokomu jich všech tisíc poběží bezchybně.
Někomu se bude sypat zvukový systém PulseAudio a zvuk bude různými způsoby zlobit, jinému poběží naprosto perfektně, zato mu nepojede TV tuner, který sousedovi ve stejné distribuci běží bez problémů. A takto by se dalo pokračovat přes grafickou kartu, hry, 3D GUI nadstavbu Compiz či "Kwin versus Nvidia ovladače", kontrolu pravopisu v OpenOffice, přijímání nových mailů v Empathy až po dalších 992 prvků.
Zdá se vám, že některé z vyjmenovaných přece musejí běžet bez chyby naprosto všem? Pak jste obětí náhody, že jste ve 20 z 20 případů viděli vždy perfektně běžící systém. Nebo jich bylo 200, 2000, to je jedno. Pravidlem ale je, že vždy se něco může pobláznit a zrovna tahle konkrétní věc může konkrétního uživatele otrávit. A zatímco u Windows s jejich uživatelskou základnou možná 1 miliardy lidí se rada či pomocná ruka vždy najde, zejména když výrobci softwaru ladí vlastně jen na dvě verze (Vista, 7), v Linuxu to tak být nemusí, případně takový rozčarovaný uživatel dostane při pokusu vyhledat pomoc v komunitě uživatelů další rozčarování přesně v duchu první kotvy. A o to horší to je, že rada (kdyby se jí náhodou člověku dostalo) od uživatele openSuse je uživateli Ubuntu často k ničemu, protože oba systémy jsou co do balíčkovacího systému a "architektury" víceméně nekompatibilní.