Hlavní navigace

Názor ke zprávičce Dominance Linuxu na desktopu je prý jen otázkou času od K2 - WinNT jsou modifikovaný mikrokernel, právě z důvodu výkonu....

  • Aktualita je stará, nové názory již nelze přidávat.
  • 24. 11. 2006 18:21

    K2 (neregistrovaný)
    WinNT jsou modifikovaný mikrokernel, právě z důvodu výkonu. Syscall je celkem náročná věc, a u mikrokernelu je jejich množství výkonově neúnosné. Proto WinNT mají vybrané servery v kernel mode. Syscall se provede jeden, a pak se vše jede v kernel mode.

    Jak jsem psal, RT extensions pro Windows nevyžadují zásah do kódu. RTLinux do kódu kernelu zasahuje; nebylo by to nutné, kdyby měl Linux pokročilou modularitu Windows kernelu.

    Podporované platformy jsou problém marketingový, nikoliv technický. Svého času jely WinNT na 4 platformách, ale ukázalo se, že je po ne-Intel strojích minimální zájem. Přitom je nutné pro tyto stroje vše odladit, otestovat, a pak je podporovat. Má to smysl kvůli 1% strojů? Bohužel nikoliv. Navíc od té doby přišly x86-64 a IA-64, takže Windows efektivně běží na 3 platformách.

    Userland je na tom celkem dobře, base services zůstávají bez větších změn. Samozřejmě že zpětná kompatibilita je nutná. Dnes lze na WinXP spustit aplikace psané pro Windows 3.0 (a zřejmě i starší), plus ty psané pro DOS. Ve Windows Vista odpadne podpora 16 bitů, a do pár let čekám "uzavření věci Win32" (podpora ale bude zřejmě ještě dlouho k dispozici).

    X11 je velmi neefektivní a špatně standardizovaný protokol. Ohledně efektivity mohu doporučit připojit se přes 33.6kbps modem k Windows serveru přes Remote Desktop, a pak k nějakému unixu přes X11. X11 naprosto propadne. Plus ty problémy typu není možné session odpojit a pak znovu připojit, není možné za běhu měnit rozlišení a počet obrazovek apod.

    PostScript je pro aplikační vrstvu nevhodný. Programátor velmi ocení jeden kód, který vykreslí stránku. Potom tomu kódu jen řekne, jestli bude kreslit na obrazovku, nebo na tiskárnu. Ve Windows se kreslí přes GDI(+). GDI volá funkce device driverů. Device driver umí nějaké věci (bod, bitmapu, čáru, křivku), a GDI dá popis možností. Aplikace může kreslit pomocí GDI vždy stejně, a GDI se postará, aby výsledek na daném zařízení (obrazovce, tiskárně) byl konzistentní (GDI tiskárna umí jen tisknout bitmapy; grafická karta umí bitmapy, body, čáry a vyplněné obdélníky; Remote Desktop klient hlásí své schopnosti obdobně). Pak jsou tu GDI metafiles a dalš features... Ve srovnání s tím je dost hrozné kreslit po obrazovce pomocí X11 a po tiskárně pomocí PostScriptu.

    Aixgl problém neřeší, protože je to (pokud jsem správně postřehl) jen 3D rendrování pro X11 protokol. Navíc Vista přichází s Avalonem, což je subsystém, který je o generaci dále, než GDI (ne 3D rendrováním, ale pojetím API). Aixgl zůstává u X11, které má od začátku problémy.