Názor ke článku Windows XP se stále prodávají více než Vista od Lael Ophir - Konfiguráky se na unixech editují ručně z jediného...

  • 7. 8. 2008 17:10

    Lael Ophir (neregistrovaný)

    Konfiguráky se na unixech editují ručně z jediného důvodu: není jiný interface. Napsat konfigurační GUI pro unixy je totiž tradičně problém, protože si člověk nemůže být ani jistý, jestli na cílovém stroji najde X11, natož jaký toolkit tam bude. A napsat komentovaný konfigurák místo opravdového interface je o tolik jednodušší... Uživatel ať si trhne nohou. Na druhé straně ruční editace se týká jen věcí, které byly zavedeny před rozmachem GUI. Kolikrát jste ručně editoval konfiguraci Firefoxu, OpenOffice, KMailu, Gimpu a dalších GUI aplikací? Tipnu si, že nejspíš ani jednou.

    Vyhledání i zápis hodnoty do konfiguráku jsou velmi pomalé akce. Zkuste se na chvíli oprostit od omezeného pohledu administrátora. Aplikace otevře konfigurák /etc/cosi, a začne hledat hodnotu. Jak jí bude hledat? No projde postupně celý textový soubor, dokud hodnotu nenajde. V Registry zavolá API, a API projde danou větev Registry pomocí dělení intervalu. Navíc API vrátí přímo danou hodnotu (třeba integer nebo binární data), nikoliv její textovou reprezantaci. Vše daleko rychlejší, než v případě konfiguráku. A chce aplikace zapsat hodnotu do /etc/cosi. Bohužel je třeba kvůli jediné hodnotě celý soubor přepsat. Nic moc rychlost, že? A co když zkusí konfiguraci někdo číst, zatím co do souboru zapisujete? Také nic moc, že. Jak jsem psal, to jsou důvody, proč existuje například GConf.

    Logika Registry má být na první pohled tak zřejmá, jako logika firmwaru ve vaší mikrovlnce. Uživatel ani admin nemá v Registry co dělat. Pokud tam musí lézt, jde o nestandardní situaci. Běžně se admnistrace provádí pomocí GUI nástrojů.

    Ano, Debinan strojí na kompilaci doma, a také je to pro uživatele zatraceně nepřístupný systém. Běžná distra typu Ubuntu, Mandriva apod. pracují s binárkami. A ukažte prosím takovému blbci, jakým jistě jsem, jak vám v Debian balíčkovací systém provede aktualizaci Oracle, který jste nainstaloval z dodaného CD, nebo aktualizaci aplikace, kterou jste dostal v tarballu.
    Osobně nevidím důvod, proč by se aplikace měly překládat s podporou různých grafických karet. Od toho jsou tu drivery, které poskytují abstrakci nad grafickou kartou. Totéž u překladů s GUI a bez GUI, a podobných prasáren. To autoři neumí používat komponenty? No, jde o Linux, takže asi ne.

    Nevím, jaké komponenty nabízí Windows XP vám, ale mě třeba IIS (včetně FTP a dokumentace), indexing services, fax services atd. Na serveru je těch options ještě daleko více. V případě Windows XP Embedded si potom skládáte image podobně, jako byste vádal dohromady distro Linuxu - jen to děláte v GUI, a máte k dispozici lepší komponenty.

    Já bych věděl, že "intercept a binary hooking" je nesmysl ;). Ale rád vás uvedu do reality. Windows používají tabulky pointerů na funkce, stejně jako třeba Linux v případě dynamického linkování. Podobně existuje třeba tabulka handlerů interruptů, tabulka vstupních bodů kernelových funkcí atd. Takže necháte zavést HAL, a potom řeknete "OK, jenže A funkce HALu, na kterou je tu pointer, bude teď směřovat jinam". Totéž uděláte například s handlerem vybraného přerušení. Ve vlastní obsluze těchto funkcí a interruptů uděláte to filtrování (obsloužíte a nepustíte dál), nebo modifikaci (obsloužíte sám, a poté zavoláte původní funkci). Chcete mi fakt tvrdit, že jste nic podobného nikdy neviděl? Jak si asi myslíte, že se provádí hookování knihoven v user mode?
    Monolitický kernel se zdrojákem je daleko horší alternativa, protože při jakékoliv změně kernelu musíte své změny znovu integrovat, samozřejmě přicházíte o support původního SW atd. To je v příkrém rozporu s modulárním (a vlastně jakýmkoliv rozumným) designem.