Windows 8

Am citit la Zoso că viitorul sistem de operare de la Microsoft, momentan intitulat Windows 8, va funcționa atât pe sisteme PC cât și pe sisteme embedded (ARM, folosite la telefoane mobile – iPhone fiind unul dintre ele, Motorola V8 fiind al doilea). Mă rog, Zoso nu este impresionat, unii sunt entuziasmați iar eu…

Să spunem, doar, că Linuxul merge pe sisteme embedded de mai bine de 10 ani. Telefonul meu Motorola V8 are o distribuție de Linux pe el (care ocupă 96MB, hackerit de mine), avem distribuții de Linux care merg pe cele mai ciudate arhitecturi… Faptul că Microsoft pretinde că va unifica platformele (arhitecturile digitale) mi se pare un pic ambițios și, de ce să n-o spun?, de prost gust, pentru că execuția sistemului de operare nu va putea fi niciodată optimizată (deși, s-ar putea face aplicații comerciale care să facă asta).

Vorbind strict din punct de vedere tehnic, vom avea fie o sumedenie de kernel-uri pentru diverse infrastructuri, care ne va duce în ceea ce developerii serioși cunosc ca fiind “versioning hell” (o tocană de cod în care trebuie să se știe fiecare kernel cu ce fișier funcționează, o chestie complicat de controlat la zeci și sute de mii de fișiere și zeci de kerneluri, fie câteva kerneluri generice (semi-optimizate)…

Cred, mai de grabă, în cea de-a doua variantă și anume că vor fi câteva kerneluri distincte, unele concepute pentru infrastructuri RISC (microprocesoarele ARM, de pildă), iar altele mai generice. Din punct de vedere strict tehnic, dacă acele kerneluri sunt diferite (cod, execuție, proprietăți), avem de-a face cu sisteme de operare diferite. Să vă dau un exemplu. Windows 2000 are kernelul versiunea 5.0, Windows XP îl are versiunea 5.1, Windows 2003 îl are 5.2 iar la Windows Vista este 6.0.

Ele sunt, fundamental, foarte asemănătoare. Și totuși, sunt versiuni diferite, diferă un pic la modul în care este optimizat multitasking-ul și alte câteva aspecte tehnice, dar ele sunt asemănătoare. Și totuși, aparțin de sisteme operare diferite.

De exemplu, se va face ca la DirectX unde, indiferent de microprocesorul grafic (GPU), avem de-a face cu o librărie software care implementează un nivel de abstractizare a hardware-ului (Hardware Abstraction Layer, HAL) ce, în esență, are rolul de a converti dintr-un cod generic de instrucțiuni într-un set de instrucțiuni specific plăcii video instalate în computer (ATI, nVidia, Intel) și de a converti semnalele de la placa video într-unele generice…

Apoi, sistemele de operare moderne de la Microsoft vin, deja, cu un nivel de abstractizare pentru folosirea microprocesorului, doar că nu este atât de evident și de important, întrucât codul, oricum, a fost compilat pentru arhitectura respectivă.

Așa și la Windows 8. Codul compilat pentru o teoretică arhitectură, de data aceasta nu una de PC, ci universală, foarte deșteaptă dealtfel (probabil o mașină Turing perfectă), va trece printr-un astfel de nivel de abstractizare (ceea ce este genial de făcut, pentru că e dificil spre imposibil) conceput astfel încât să fie suficient de rapid încât să nu afecteze dramatic performanța (aici e ceva tehnologie secretă la mijloc, nu-mi dau seama exact cum au făcut/ cum s-ar putea face).

De acolo, codul translatat din instrucțiuni scrise în cod generic teoretizat în cod mașină (cod specific, adică) va fi executat, la comanda kernelului. Numai că acel kernel poate să fie doar compilat în codul mașină al arhitecturii, de unde spuneam că trebuie să fie mai multe kerneluri, deci mai multe sisteme de operare. Sau, poate să fie un kernel foarte modular, o chestie mai de grabă teoretică, ce se pliază și se modifică automat în funcție de arhitectură (cine va implementa asta practic și funcțional merită un premiu Nobel), dar mi-e greu să cred. Costurile de cercetare – dezvoltare s-ar ridica la câteva miliarde de euro, doar pentru un kernel mai de grabă chel și cine știe cât  de complicat de folosit.

În fine, kerneluri diferite înseamnă sisteme de operare diferite. Deci asta cu Windows 8 este o chestie de marketing (cam ca aia cu Windows Mobile 7 lansat după Windows 7).

Lăsând asemenea aspecte la o parte, Microsoft se îndreaptă spre o piață de nișă unde, trebuie să o spunem, nu a avut prea mult succes cu Windows CE și Windows Mobile. Totuși, mișcarea asta, prin care mai multe gadgeturi vor avea cod comun, s-ar putea să fie atât de genială și de benefică pentru utilizatori, încât să le aducă venituri impresionante.

Nu știu să spun încă, nimeni nu știe. Pentru că totul depinde de implementare și de aplicațiile oferite.

2 Comentarii

  1. Mihai Todor 08 ianuarie 2011 la 02:45 - Raspunde

    Sunt tentat să cred că va da un BSOD din când în când, ca nu cumva să îl confundăm, din greșeală, cu vreo distribuție de Linux 😀

    • Robin Molnar 08 ianuarie 2011 la 19:01 - Raspunde

      Chiar mi s-ar părea normal să mai dea rateuri…

Lasa un raspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Vreau să fiu părtaș la faptă. Poți, de asemenea, să fii părtaș și fără martori.

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.