280 likes | 531 Views
Universitatea Politehnica Bucureşti Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei. Arhitectura sistemului de operare pentru iPhone. Student: Croitor Alina-Cristina. Master universitar IISC -2009. CUPRINS . Introducere Arhitectura OS pentru Iphon e Nivele tehnologice
E N D
Universitatea Politehnica Bucureşti Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei Arhitectura sistemului de operare pentru iPhone Student: Croitor Alina-Cristina Master universitar IISC -2009
CUPRINS • Introducere • Arhitectura OS pentru Iphone • Nivele tehnologice • Exemple • Hardware spre aplicatie (giroscop) • Aplicatie spre hardware (afisaj) • Organizatorul/Scheduler • Comparatie cu alte sisteme de operare • Kernelul iPhone • MAC vs. iPhone
Introducere • linia de echipamente de tip smartphone construita si distribuita de firma Apple Inc. • Sistemul de operare care ruleaza pe Iphone (si pe iPod Touch) se numeste iPhone OS. Acesta este bazat pe o varianta a sistemului de operare Darwin care se gaseste si in sistemul de operare Mac OS X • iPhone OS este considerat a fi versiunea mobila a sistemului de operare Mac OS X, de mentionat este ca aplicatiile software nu pot fi direct copiate de pe Mac OS X ci trebuie rescrise si compilate specific pentru iPhone OS.
Introducere • Sistemul de operare ocupa mai putin de o jumatate de GB din capacitatea totala de stocare a aparatului, care e de 4 pana la 32 de Gb si e capabil sa suporte mai multe aplicatii atat de la Apple cat si de la alti vendori (aplicatii „third-party”) Limitari: • nu suporta MMS • nu suporta Flash
Arhitectura OS pentru Iphone La nivel inalt iPhone OS se comporta ca un intermediar intre partea hardware a iPhone si aplicatii Aplicatiile prin interfetele de sistem care comunica prin driverele potrivite cu partea hardware Acest nivel de abstractizare protejeaza aplicatia de schimbarile din partea hardware de nivel scazut. iPhone OS utilizeaza o stiva soft la baza careia este kernelul Mach si driverele hardware care gestioneaza executia de ansamblu a programelor in aparat. Deasupra acestui nivel se gasesc nivele aditionale care contin tehnologiile „core” si interfetele utilizate pentru dezvoltare.
Arhitectura OS pentru Iphone • Nivelele tehnologice ale iPhone OS iPhone OS este bazat pe acelasi kernel de baza Mach care se gaseste si in Mac OS X. Deasupra acestui kernel se gasesc nivelele de servicii care sunt utilizate pentru a implementa aplicatii pe aceasta platforma. Nivele: 1. Nivelul Cocoa Touch Layer cuprinde „framework”-urile cheie care pun la dispozitie infrastructura necesara pentru implementarea aplicatiilor in iPhone OS Ex: framework-ul Foundation asigura suportul orientat pe obiecte pentru colectii de date, gestionarea fisierelor, operatii de retea si altele
Arhitectura OS pentru Iphone • Nivelele tehnologice ale iPhone OS 2. Nivelul Media se gasesc tehnologiile grafice audio si video folosite Ex: contine tehnologii fundamentale folosite pentru suportul graficii 2D si 3D, audio, video. Acest nivel include tehnologii OpenGL ES, Quartz, si Core Audio bazate pe limbajul C 3. Nivelele Core Services si Core OS pune la dispozitie serviciile de sistem fundamentale pe care le folosesc toate aplicatiile desi utilizatorul nu foloseste aceste servicii direct multe parti din sistem sunt construite deasupra acestora Ex :nivelele Core OS si Core Services contin interfete fundamentale pentru iPhone OS, inclusiv cele utilizate pentru a accesa fisiere, tipuri de date de nivel scazut, servicii Bonjour, socket-uri de retea
Arhitectura OS pentru Iphone • Cand giroscopul detecteaza o schimbare de pozitie, modifica un registru • Nivelul de Firmware detecteaza schimbarea si noteaza ca valoarea indica faptul ca starea iPhoneului este acum diferita (fata de valoarea eronata) si trimite o intrerupere procesorului prin magistrala de sistem. • Procesorul ARM al iPhoneului primeste intreruperea si cheama o rutina de deservire a intreruperii (ISR) pe care sistemul de operare al iPhoneului o pregateste in timpul initializarii driverelor. • ISR este o functie (subrutina) localizata in codul pentru iPhone OS . Aceasta recunoaste intreruperea si incepe sa o proceseze prin intermediul driverului corespunzator. Sistemul de operare in sine trimite un semnal aplicatiei curente active (daca exista vreuna) sub forma unui semnal de tip Unix. • Acest semnal este manevrat in concordanta cu specificatiile rutinelor C/C-orientat pe obiecte. Rutina orientata pe obiecte inainteaza semnalul ca mesaj specific planului (framework) aplicatiei, mai intai verificand daca aplicatia curenta a fost conceputa sa se ocupe de respectivul mesaj. • Daca mesajul poate fi procesat printr-o metoda (subrutina) in cadrul unei aplicatii, atunci mesajul este primit si procesat. In cazul exemplului cu gyro, aplicatia isi va ajusta interfata pentru a putea fi afisata pe intreg ecranul in formatul panoramic al afisajului (display). • Exemplu: Hardware spreaplicatie (giroscop)
Arhitectura OS pentru Iphone • Aplicatiadoreste sa afiseze o imagine pe ecran. Presupunem ca nu mai trebuie decat sa se afiseze imaginea pe ecranul touchscreen (componenta hardware). • Aplicatia creeaza un apel API (framework), trimitand o referinta imaginii din cadrul apelului (care este, la nivelul cel mai de baza, adresa de inceput din memorie sau referinta hard driveului unde este stocata imaginea, tipul imaginii si dimensiunea imaginii) • API /framework-ul primeste apelul de functie si face translatia intre interfata de procesare de imagini de nivel inalt si o colectie de apeluri catre rutine orientate pe obiecte C, care vor face apelurile necesare catre biblioteca C. • Biblioteca C (cu legaturi dinamiceva prelucra mai departe functiile in apeluri de sistem la nivel de asamblare (prin intreruperi software) pe care kernelul iPhone OS le poate procesa. • Kernelul iPhone OS dupa ce a primit apelurile de sistem in format assembler de la biblioteca C, va apela driverele potrivite (cele de afisaj pe touchscreen in acest caz) pentru a interactiona cu partea hardware. • La nivelul hardware, unde afisajul ecranului fizic este schimbat astfel incat sa afiseze imaginea pentru utilizator. • Exemplu: Aplicatie catre Hardware: Afisaj
Arhitectura OS pentru Iphone Organizatorul/Scheduler • Threadurile pot migra intre nivelele de prioritate • Un thread in timp real poate fi penalizat (si poate fi chiar degradat pana la o prioritate normala) daca isi depaseste cuanta de timp in mod repetat fara blocare • Organizatorul iPhone este capabil suspende aplicatia care ruleaza in mod curent pentru a intra intr-o stare de putere joasa -> conserva viata bateriei, opreste programul care ruleaza in mod curent pentru a-l relua mai tarziu
Comparatie cu alte sisteme de operare Kernelul iPhone • iPhoneul foloseste aceelasi kit I/O de arhitectura ca Mac OS X, permitand Apple sa refoloseasca mult cod gata facut care deja era functional pentru Mac • Kitul I/O din Mach foloseste extensii ale kernelului sau kexts pentru a adauga suport hardware de nivel scazut • Kextsurile adaugate la Iphone: • inputul USB, specific unui aparat cu interfata pentru utilizatori umani, mai exact ecran multitouch • extensii legate de VPN (Virtual Private Networks).
Comparatie cu alte sisteme de operare Mac vs. iPhone • tot suportul hardware din iPhone e construit in kernelul acestuia si nu e implementat in kext • La Mac, in schimb, diferite modele au diferite componente hardware si de aceea e necesara o sructura modulara de plug-in-uri. Momentan nu exista varietate hardware la iPhone • calculatoarele Mac au kextsuri pentru camera iSight, hardware audio si video, gestiunea alimentarii si a temperaturii si interfete seriale • Mach ofera un sistem de gestiune al alimentarii foarte sofisticat • prima generatie de iPhoneuri s-a remarcat printr-o mare durabiliatate a bateriei
Comparatie cu alte sisteme de operare • Diferenta majora dintre iPhone si sistemele mobile existente este aceea ca cele mai multe telefoane au 64 MB de RAM, 128 MB sau mai putin de Flash si consuma aproximativ 40 MB pentru sistemul lor de operare si pentru aplicatii, ramanand putin spatiu de stocare pentru utilizator • Acestea pun la dispozitie sloturi SD Flash RAM pentru a adauga spatiu dar acesta e limitat la 2 GB. • iPhoneul : • are fie 4096 MB (4 GB) fie 8192 MB (8 GB) de Flash RAM instalat. • consuma in jur de 700 MB cu OS X si aplicatiile sale • contine 128 MB de RAM de sistem utilizat de aplicatiile care ruleaza, ceea ce inseamna dublul RAM-ului de sistem si de 64 pana la 128 de ori mai mult decat Flash RAM
Comparatie cu alte sisteme de operare • iPhone nu are nevoie de slot de card SD • Deja utilizeaza de 2-4 ori mai multa memorie Flash instalata decat poate fi adaugata potential pe alte telefoane folosind carduri Flash SD • Astfel se explica de ce iPhone poate sa ofere aplicatii Internet reale in timp ce Palm, Windows Mobile sau Symbian nu au cum sa ofere aceasta functionalitate fara sa isi rescrie in totalitate sistemele de operare mobile