Este Navigatorul Web Parte a Sistemului de Operare?

Articolul original este disponibil pe world.std.com

Un exercițiu de trimitere într-o direcție greșită 

În 1998, Guvernul Federal al Statelor Unite a învinuit compania Microsoft de violarea reglementărilor antitrust. Una din plângeri era că Microsoft a început să ofere propriul navigator web Internet Explorer (IE) la pachet cu sistemul său de operare (SO) Windows. Din punctul de vedere al consumatorului, IE venea gratuit împreună cu SO. Întrucât Windows la acea vreme avea o cotă de piață de peste 95%, aceasta însemna că oricine cumpăra un calculator, obținea și browserul IE. Aceasta a redus dramatic popularitatea unicului concurent al IE de pe piață – a browserului comercial Netscape și a dus la declinul ulterior al Netscape Communications Corporation.

În apărarea sa, Microsoft afirma că navigatorul web era de fapt parte componentă a sistemului său de operare. Prin urmare, nu avea sens de discutat despre oferirea ”la pachet” a navigatorului web; este de așteptat în mod natural ca un vânzător de SO să includă și un browser în produsul său. 

 La prima vedere, acesta este un argument valabil. Toate produsele constau din anumite componente și nu putem învinui producătorii pentru includerea în produsul lor a acelor părți pe care le consideră necesare. Când cumpărăm o mașină, ea vine cu un motor la pachet. Aceasta îngreunează foarte mult vânzarea motoarelor de automobil cumpărătorilor de rând de către producători independenți de motoare. Dar nu putem acuza companiile de producere a autoturismelor de faptul că oferă motoare la pachet cu  automobilele vândute pentru a elimina producătorii independenți de motoare de pe piață: pur și simplu acceptăm că motorul este o parte componentă a automobilului.

Așa că învinuirea în adresa Microsoft s-a redus la o întrebare tehnică: este oare navigatorul web parte a sistemului de operare? Evident, procesul a avut parte de numeroase mărturii și dezbateri. Urmăream acest proces ocazional; pentru mine, întrebarea părea opacă și nu auzeam printre argumente decât afirmații de genul ”este așa” sau ”nu este așa”.

Spre final, Microsoft a fost acuzat de monopolizare, dar a primit o pedeapsă minimă. Microsoft încă oferă IE la pachet cu Windows, deși astfel de navigatoare independente ca FireFox au câștigă teren între timp. Întrebarea, însă, rămâne valabilă și azi: este browserul parte componentă a sistemului de operare?

Ei bine, este oare???

Aici există (cel puțin) patru întrebări distincte corelate, iar Microsoft a lucrat din greu   mulți ani la rând ca să ne zăpăcească și să ne facă să le confundăm. Ei nu vor ca oamenii să aibă o viziune clară asupra întrebării întrucât aceasta nu le-ar servi deloc cauza. Haideți să abordăm întrebările pe rând și să vedem dacă putem să le clarificăm. Iată care sunt acele întrebări: 

1. Așteaptă oare clientul ca calculatorul să includă un navigator web?

2. Cine ar trebui să aleagă browserul și să-l integreze cu calculatorul?

3. Este navigatorul web parte a colecției vaste de software cu numele de ”sistem de operare”?

4. Ar trebui ca codul care implementează browserul să fie integrat cu nucleul sistemului de operare (kernel)?

Așteaptă oare clientul ca calculatorul să includă un navigator web?

Aceasta este o întrebare despre comportamentul și așteptările consumatorului. Când un consumator de rând sau un om de afaceri de rând cumpără un calculator, îl despachetează și îl include, așteaptă ei oare să găsească și un navigator web preinstalat? Pentru a afla răspunsul, trebuie să vorbim cu consumatorii și să le urmărim comportamentul. Răspunsul se dovedește a fi da.

În discuțiile cu guvernul care au precedat acest proces, un avocat al Microsoft a spus despre sistemul de operare Windows:

Noi am fi putut oferi un sandviș cu șuncă, dar nimeni nu l-ar cumpăra.

Partea cu șunca a fost scoasă din context și folosită ca exemplu al aroganței demonstrate de Microsoft; însă, ceea ce voia să spună avocatul era că Microsoft este sensibil la așteptările consumatorilor, iar consumatorii așteaptă ca calculatoarele lor să aibă și un navigator web preinstalat.

Răspunsul la întrebarea această este în favoarea Microsoft.

Cine ar trebui să aleagă browserul și să-l integreze cu calculatorul? 

Aceasta este o întrebare despre organizarea industrială: cum ar trebui organizată producerea și distribuirea calculatoarelor? În Statele Unite, noi lăsăm piața să decidă majoritatea întrebărilor de acest gen. 

Industria calculatoarelor personale are aproximativ 25 ani. Au avut loc anumite evoluții în această perioadă, însă elementele esențiale au rămas neschimbate și clar stabilite. Calculatoarele sunt create de către producătorii de echipamente originale (original equipment manufacturer sau OEM) – companii ca Dell, Gateway și Hewlett-Packard. Aceste companii:

  • cumpără componentele (șasiuri, transformatoare electrice, plăci de bază, harddiskuri, etc)
  • asamblează calculatoarele utilizând aceste componente 
  • instalează software-ul
  • creează un ghid de exploatare și oferă un talon de garanție
  • le pune pe toate într-o cutie
  • își imprimă numele pe cutie
  • vinde produsul direct consumatorilor sau intermediarilor 

Producătorii de echipamente originale au responsabilitatea de a integra tot software-ul instalat pe calculator cu o excepție. Microsoft dictează ca producătorii (OEM) care instalează Windows să instaleze și IE pe toate calculatoarele. Microsoft impune aceste condiții prin intermediul licenței care însoțește Windows.

Dacă Microsoft nu și-ar impune puterea sa de monopol, există tot temeiul să credem că producătorii de echipamente originale (OEM) ar fi cei care aleg ce browser să instaleze, fix așa cum selectează celelalte componente.

Răspunsul la această întrebare este în defavoarea poziției adoptate de Microsoft.

Este navigatorul web parte a colecției vaste de software cu numele de ”sistem de operare”?

Această întrebare fie ține de opinia fiecăruia, fie nu are un răspuns cert. Explicația constă în faptul că termenul ”sistem de operare”, așa cum este utilizat aici, nu este definit clar în termeni tehnici. O analogie ar fi termenul ”oraș”.

Orașele sunt mari și se întind pe teritorii mari, iar hotarele lor pot fi greu de deslușit. Este adevărat că orașele au hotare geografice clar delimitate din punct de vedere legal, dar câți oameni cunosc exact pe unde trec acestea și cui îi pasă prea mult de asta?

Să întrebi dacă browserul este pare a sistemului de operare este ca și cum ai întreba dacă o linie de autobuz este parte a orașului. În final, depinde de ce avem în vedere prin ”oraș”.

Răspunsul la această întrebare este irelevant pentru procesul cu implicarea Microsoft.

Ar trebui ca codul care implementează browserul să fie integrat cu nucleul (kernel) sistemului de operare? 

Aceasta este o problemă inginerească. Spre deosebire de termenul ”sistem de operare”, termenul “nucleu al sistemului de operare” are o semnificație tehnică clar definită, iar întrebarea are un răspuns cert.  Din punct de vedere ingineresc, răspunsul este un ”Nu” sigur.

Sistemele de operare sunt organizate în straturi, la fel ca ceapa. Stratul cel mai adânc este numit de regulă nucleu (kernel).

Nucleul este prima componentă a SO care este încărcată când calculatorul este pornit și primul lucru pe care îl face nucleul este să preia controlul asupra tuturor componentelor fizice ale calculatorului (hardware).

  • procesorul 
  • memoria
  • discurile (harddiskurile, discurile optice, etc.)
  • monitorul
  • tastatura/ mouse-ul
  • conexiunile în rețea 

Toate celelalte aplicații rulează sub controlul nucleului. Nucleul:

  • determină orarul de execuție al aplicațiilor 
  • alocă resurse aplicațiilor 
  • recuperează resursele alocate aplicațiilor atunci când acestea nu mai au nevoie de ele 
  • elimină aplicațiile din sistem atunci când ultimele sunt oprite.

În mod crucial, hardware-ul calculatorului asigură posibilitatea ca nucleul să poată prelua din nou controlul în caz că o aplicație îngheață, se prăbușește, sau rulează într-un mod greșit. Când se întâmplă așa ceva, nucleul oprește aplicația, face curățenie, și rulează mai departe.

Atâta timp cât nucleul funcționează normal, SO poate să se restabilească după orice eroare produsă în orice altă aplicație. Spre deosebire, dacă nucleul este compromis de către:

  • erori 
  • programe dăunătoare
  • intruși

atunci aplicațiile în care se produc erori pot:

  • să interfereze cu alte aplicații
  • să blocheze calculatorul 
  • să corupă datele.

De regulă, unica modalitate de a restabili calculatorul după o problemă cu nucleul este resetarea. Dacă coruperea datelor se extinde și asupra harddiskului, poate fi necesară reinstalarea SO. 

În lumina tuturor celor menționate mai sus, o practică inginerească bună este crearea unui nucleu cât mai mic și mai simplu. Cu timpul, nucleele tind să devină mari și complicate întrucât ele efectuează o multitudine de operațiuni complexe. Însă principiul următor rămâne valabil: nimic nu trebuie introdus în nucleu fără o scuză bună.

Scuzele bune

Niște scuze bune pentru includerea anumitor componente în nucleu sunt:

  • necesitatea
  • performanța
  • securitatea

Necesitatea

Unele aplicații pur și simplu nu pot fi făcute să lucreze dacă nu sunt în interiorul nucleului. Navigatorul web nu este nicidecum printre ele. Multe navigatoare folosite pe larg au funcționalitate avansată și pot rula pe Windows nefiind parte din nucleu. Acestea includ:

Existența acestor navigatoare demonstrează că nu este necesar ca browserul să fie parte din nucleu.

Performanța

Unele aplicații rulează mai rapid sau mult mai rapid dacă sunt parte din nucleu. Browserul, iarăși, nu aparține acestei categorii. Browserul Internet Explorer al Microsoft nu rulează deloc mai rapid fiind parte din nucleu comparativ cu alte browsere care nu sunt parte din nucleu. Pe lângă aceasta, considerând tehnologiile actuale cât și modul de utilizare, navigatoarele web  petrec mai mult timp în așteptarea operațiunilor de încărcare și descărcare a datelor din rețea decât în așteptarea execuției operațiunilor de către procesor. 

Securitatea

Unele aplicații rulează în interiorul nucleului pentru că e necesar ca acestea să se afle în interiorul granițelor de securitate ale nucleului. Un exemplu bun este sistemul de fișiere. Iar browserul nu este un exemplu bun. Navigatoarele web listate mai sus care rulează în afara nucleului sunt sigure – conform multor estimări, mult mai sigure ca Internet Explorer, care rulează în interiorul nucleului. Securitatea nu este un motiv bun pentru a rula un browser în interiorul nucleului. 

Integrarea

Uneori este menționată altă justificare pentru includerea browserului în nucleul SO și anume integrarea. ”Integrarea” este doar un cuvânt frumos care semnifică că ceva ”reprezintă o parte componentă” a altceva, așa că avem parte aici de un argument circular. 

Inspectând îndeaproape beneficiile proclamate ale integrării, aceste deseori se dovedesc a fi afirmații despre un nivel superior de performanță, securitate sau comoditate. Deja ne-am convins că argumentele privind performanța și securitatea nu justifică includerea browserului în nucleu. Mai jos vom discuta aspectele ce țin de comoditate.

Păstrarea în afară

Pentru că nu există niciun motiv serios pentru includerea browserului în nucleu, practicile inginerești bune recomandă păstrarea acestuia în afara nucleului. Dar nu este vorba doar de practici bune: există beneficii reale care justifică păstrarea browserului în afara nucleului. Cele mai importante două motive sunt:

  • stabilitatea
  • securitatea

Stabilitatea

Oamenii creează nuclee pentru sisteme de operare deja de mai bine de jumătate de veac. Noi știm cum:

  • să le proiectăm
  • să le ”scriem”
  • să le facem stabile și sigure

La fel, dezvoltatorii creează browsere de zeci de ani. Cunoștințele despre proiectare, implementare, cerințele de bază încă evoluează. Dar este binecunoscut faptul că includerea browserului în nucleu îl destabilizează în mod semnificativ.

Securitatea

Nucleul impune granițe de securitate la interfețele sale. Orice date care trec prin aceste interfețe trebuie verificate pentru a constata dacă nu încalcă cerințele de securitate ale nucleului. Nucleul poate fi complex, dar interfețele sale sunt:

  • bine definite
  • bine înțelese
  • relativ simple.

Aceste proprietăți sunt cruciale pentru crearea unor nuclee sigure. Dacă interfețele sunt prost definite, prost înțelese, sau pur și simplu prea complicate, atunci asigurarea securității nucleului devine o sarcină imposibilă.

Dacă nucleul include un browser, atunci granițele sale de securitate se extind la interfața dintre browser și Internet. Această interfață include:

  • pagini web (text, HTML, XML, …)
  • reguli de stil (style sheets)
  • aplicații încorporate (Java, JavaScript, ActiveX, …)
  • imagini (GIF, JPEG, PNG, …)
  • linkuri (URL-uri)
  • pluginuri (Flash, …).

Cuvintele “World Wide Web” descriu foarte elocvent cât de abundente, complexe și vagi sunt datele pe care browserul trebuie să le mânuiască. Validarea acestor date este imposibilă și încadrarea browserului în nucleu compromite securitatea în mod iremediabil. 

Recapitulare

Pentru referință, aici sunt răspunsurile pe care le-am obținut la cele patru întrebări ale noastre:

1. Așteaptă oare clientul ca calculatorul să includă un navigator web?

DA

2. Cine ar trebui să aleagă browserul și să-l integreze cu calculatorul?

Producătorul de echipamente originale (OEM)

3. Este navigatorul web parte a colecției vaste de software cu numele de ”sistem de operare”?

Depinde de ce se are în vedere prin ”sistem de operare”

4. Ar trebui ca codul care implementează browserul să fie integrat cu nucleul sistemului de operare (kernel)?

În niciun caz

Acum, haideți să vedem ce face de fapt Microsoft cu Internet Explorer.

  1. Microsoft furnizează Internet Explorer la pachet cu sistemul de operare Windows. 

Destul de corect – clienții așteaptă să obțină și un browser la pachet cu calculatorul.

  1. Microsoft impune producătorii de echipamente originale (OEM) să instaleze anume IE și nu oricare alt browser pe calculatoarele care sunt livrate cu Windows.
    Joc murdar și ilegal apropo. Din păcate, OEM-urile sunt prea dependente de Microsoft pentru a se plânge iar guvernul SUA refuză să aplice pedepse pe măsură companiei Microsoft, aparent, din motive politice.
  2. Microsoft spune că browserul este parte componentă a sistemului de operare.
    Ei au dreptul la această opinie.
  3. Microsoft integrează codul de implementare al Internet Explorer în nucleul SO Windows.
    Aoleu!!!!!!!

Este chiar atât de rău totul?

Este cu adevărat foarte rău.

Discuția de mai sus este tehnică și într-o măsură anume abstractă, dar problemele la care se refer nu sunt deloc abstracte. Includerea navigatorului web în nucleu cauzează probleme reale utilizatorilor de rând.

Toate navigatoarele web produc erori; toate browserele  îngheață sau fac colaps ocazional. Când aceasta se întâmplă cu un browser ca Firefox, utilizatorul pur și simplu pierde pagina web accesată. Pentru a fi vizualizată din nou, trebuie doar pornit browserul și reintrodus URL-ul. Când Internet Explorer face colaps, ia după el și nucleul, sistemul de operare și calculatorul. Restabilirea, de regulă, necesită o resetare iar pierderea datelor în alte aplicații deschise la moment nu este o raritate.

Toate navigatoarele web au breșe de securitate; toate browserele sunt supuse atacurilor din partea paginilor web ostile. Când un browser ca FireFox este compromis, atacatorul obține controlul doar asupra browserului. Când Internet Explorer este compromis, atacatorul obține controlul asupra nucleului și prin intermediul său, asupra întregului calculator.

De ce ei continuă să o facă?

Dacă integrarea browserului cu nucleul SO este o idee atât de proastă, ne întrebăm în mod natural de ce Microsoft continuă să o facă. Răspunsul constă din două părți:

  • de ce o fac conform spuselor lor
  • de ce o fac în realitate

De ce o fac conform spuselor lor

Primul răspuns al Microsoft este, desigur, că browserul este parte componentă a sistemului de operare. Totuși, răspunsul se bazează pe o confundare a întrebărilor examinate în detaliu anterior. Nimeni nu are obiecții la afirmația că termenul de ”sistem de operare” poate fi suficient de vast ca să includă și un navigator web. Întrebarea este ce a dat peste cei de la Microsoft ca să includă browserul în nucleul SO. Microsoft preferă să nu vorbească prea multe la acest subiect, dar dacă citim literatura lor de marketing și conținutul reclamelor, putem identifica și alte afirmații în acest context. 

Microsoft declară în gura mare despre comoditatea și utilitatea care rezultă din integrarea IE cu nucleul SO. Este întotdeauna acolo; rulează fără întrerupere. Conținutul din orice sursă de pe net poate fi transferat fără probleme oricărei aplicații de pe calculator. Datele din orice aplicație pot fi afișate ca o pagină web. Distincția sâcâitoare dintre propriul calculator și Internet dispare: Windows are grijă de toate pentru dumneavoastră.

În mod ironic, este exact acest tip de integrare care fac din Internet Explorer un vector atât de eficient pentru programe dăunătoare. ”Comoditatea” pe care Microsoft o oferă vine la un preț colosal în ceea ce privește securitatea și stabilitatea. 

De ce o fac în realitate?

Când abia totul începea, Microsoft vindea produse bazându-se pe caracteristicile, performanța și comoditatea lor și compania încă pretinde să acorde atenție acestor beneficii orientate spre consumatori. Spre deosebire, în ziua de azi, strategia primară de vânzare a produselor de către Microsoft este de a priva clienții săi de oricare alternative. 

Una din metodele utilizate este prin eliminarea afacerilor concurenților săi, de exemplu, prin includerea ”la pachet” a unor produse. Dar simpla includere a IE în aceeași ”cutie” cu Windows nu este suficientă: dacă tot ce făcea Microsoft era pur și simplu să o includă în ”cutie”, oricine ar fi fost liber pur și simplu să o ”scoată” de acolo.

  • Dacă judecătorii în procesul antitrust ar fi putut elimina IE din Windows, ar fi fost mult mai dificil pentru Microsoft să-și susțină afirmația precum că IE este parte din Windows.
  • Dacă utilizatorii ar fi putut elimina IE din Windows, ei ar fi putut opta cu o probabilitate mare pentru alte browsere. 

Există la fel și o cauză istorică pentru includerea IE în Windows. Până la începutul anilor 1990, Internetul era în esență un proiect de cercetare finanțat de guvern și limitat la universități și corporații mari. Ulterior, un ansamblu de evoluții l-au făcut practic pentru utilizatorii de rând. 

Acestea includeau:

  • micșorarea prețurilor la hardware 
  • extinderea rețelelor 
  • dezvoltarea interfețelor grafice
  • deciziile politice de a comercializa Internetul și de a lărgi accesul la el.

Când aceasta s-a întâmplat, Internetul, dintr-o dată a fost propulsat în conștiința publicului larg. Pentru o perioadă scurtă de timp, existau speculații serioase că browserul va înlocui sistemul de operare ca interfață primară de interacțiune a utilizatorului cu calculatorul.

O atare perspectivă înspăimânta compania Microsoft. Dacă utilizatorii ar petrece tot timpul în navigatorul web, nu le-ar păsa prea mult ce sistem de operare rulează pe fundal. În așa caz, producătorii de echipamente originale (OEM) ar fi fost liberi să vândă calculatoare cu sisteme de operare produse de concurenți, iar monopolul Microsoft s-ar fi evaporat. 

E binecunoscut că Microsoft erau absolut nepregătiți pentru comercializarea Internetului. Primul lor răspuns a fost să-și creeze propriul navigator web, dar ei la fel s-au asigurat că acesta era integrat direct în sistemul de operare. În acest fel, chiar dacă browserul devenea cumva sistem de operare, utilizatorii oricum ar fi rulat Windows, iar Microsoft ar fi continuat să controleze industria calculatoarelor staționare. 

Lucrurile nu au urmat acest scenariu. Consumatorii navighează în rețea de ani buni,  nu își petrec tot timpul în interiorul navigatorului web și încă le pasă mult ce sistem de operare utilizează. Dar Microsoft nu a făcut un pas înapoi de la decizia sa inițială de a integra browserul cu sistemul de operare – ba chiar din contra, le-au făcut pe ambele inseparabile, împrăștiind codul de implementare a browserului în multiple fișiere ce se regăsesc în diverse locații ale sistemului de operare și estompând distincția dintre rețea și desktop la interfața utilizatorului.

Remarci

Netscape Communications Corporation

Wikipedia oferă o scurtă istorie a Netscape Communications Corporation. Numele Netscape supraviețuiește ca o marcă înregistrată de AOL.

nucleu al sistemului de operare

Această discuție se referă în mod special la sistemele de operare cu nuclee monolitice, așa ca GNU/Linux și Windows 95/98/ME. Pentru sisteme de operare cu arhitectură micro-nucleu așa ca GNU/Hurd și Windows NT/2000/XP, terminologia și detaliile sunt întrucâtva diferite; totuși elementele esențiale sunt similare.

caracteristici, performanță și comoditate

Am utilizat compilatorul C excelent al Microsoft practic pe întreg parcursul anilor 1980.

un pas înapoiJoel Spolsky susține că Microsoft a neglijat în mod intenționat dezvoltarea IE, din frica că un browser mult mai capabil, fie chiar și al lor, le-ar fi putut încă amenința monopolul pe piața sistemelor de operare.