July 31, 2021

Istoria iOS sau de ce este iOS atât de “special”

După ce Steve Jobs a fost forțat să plece de la Apple în 1985, a început să caute >> the “next big thing”. Rezultatul a fost o nouă companie numita NeXT Computers. Desi hardware-ul dezvoltat la NeXT s-a pierdut în analele istoriei, sistemul de operare creat atunci a constitui fundamentul pe care s-a clădit Apple pe care o cunoaștem acum. Acel sistem de operare se numea NeXT STEP și era bazat pe kernel-ul Mach (dezvoltat la Carnegie Mellon University) și pe BSD, o implementare certificata de UNIX încă din anii 1970.

Sistemul de operare NextSTEP oferea un framework orientat pe obiecte dezvoltat pe baza limbajului de programare Objective C, un limbaj de programare creat la începutul anilor 1980 și asemănător că principii cu C++. De fapt în mare asta și este, un C cu obiecte, la fel ca C++. Diferența cea mai mare între Objective C și C++ este sintaxa.

>> Pentru doritori, aici e o comparație tehnică între C++ și Objective C: https://www.educba.com/c-plus-plus-vs-objective-c/

O altă curiozitate: deși C este legat de UNIX (de fapt a fost creat pentru dezvoltarea sistemului de operare UNIX), limbajul C++ (care derivă din C) nu a ajuns atât de popular datorita UNIX-urilor ci datorită promovării extensive din partea Microsoft! Așa cum Microsoft a promovat C++, NeXT și ulterior Apple au promovat Objective C.

Revenim la NeXT (noua companie a lui Steve Jobs) care a folosit Objective C pentru a dezvolta sistemul de operare NeXT STEP. Am spus că NextSTEP oferea un framework orientat pe obiecte scris în Objective C. Acest framework este ceea ce cunoaștem astăzi ca fiind Cocoa!

Compania NeXT a eșuat în a deveni un succes comercial iar sistemul de operare NeXT STEP a cunoscut o evoluție ulterioară în OPENSTEP, care permitea (cu relativ puține modificări) posibilitatea de a fi rulat pe alte platforme. Inclusiv Sun Microsystems (compania care a inventat limbajul de programare Java) a adoptat la un moment dat OPENSTEP.

Ajungem în 4 februarie 1997 când Apple Computer achiziționează compania NeXT și începe să folosească sistemul de operare OPENSTEP ca fundament pentru ceea ce avea să devină Mac OS X. Urme ale acestei tranziții rezidă inclusiv până în ziua de azi, pentru că în framework-ul Cocoa toate clasele au prefixul “NS”.

Cele doua layere ale sistemului de operare, kernelul Mach și BSD-ul (UNIX-ul) bazat pe acest kernel, au fost “împachetate” și oferite sub o licența Apple Public Source License. Acest ansamblu a ajuns să fie cunoscut sub denumirea de “Darwin”.

Prima versiune oficială a Mac OS X a adus și o interfață grafică nouă cunoscuta sub numele de “Aqua”. Era o evoluție clară față de tot ce s-a văzut până atunci. Tot aici începe și istoria atât de bine cunoscutului Dock, launcher-ul default din MacOS!

Astăzi MacOS este unul dintre cele mai avansate sisteme de operare atât din punct de vedere al implementării tehnice cât și din punct de vedere al interfeței grafice și al interacțiunii cu utilizatorul.

În concluzie MacOS este la origine un UNIX, mai exact un BSD. Dar ce este BSD? Că tot am vorbit de el… BSD vine de la Berkeley Software Distribution și este “numele unei distribuții UNIX dezvoltată și distribuită între anii 1977 și 1995 de Computer Systems Research Group (CSRG) de la Universitatea Berkeley din California” (1).

>> ???! ?????-?? ?? ???, ?? ?? ??? ?? ?!

Bine! Să revenim la iOS. iOS este sistemul de operare care rulează pe iPhone. Dacă inițial s-a numit iPhone OS, pe 21 Iunie 2010 Apple a schimbat numele sistemului de operare în iOS, pentru că acum este disponibil pe mai multe dispozitive: iPhone, iPod și iPad.

>> ??????, ? ??????! ?? ????? ??â?? ??????? ??? ?? ??ț???? ?? ???ă???ă ??? ??? ?? ? ?? ???…

Wait, nu închide acum! One more thing…

Iar pentru asta am să îl citez pe Steve Job, din momentul în care a lansat primul iPhone:

>> ?????? ???? ?? ? !!!

Deci, iOS este construit pe fundamentul OS X! Poate de asta a fost atunci la lansare cu 5 ani peste orice alt sistem de operare pentru mobile. Și poate de asta și acum este la fel…

 

Resurse:

(1) Wikipedia:
https://ro.wikipedia.org/wiki/BSD