Kau aranjate ios

Toți știu că supa de operare mobil Apple rulează iOS. Mulți oameni știu că iOS este o versiune simplă a desktop-ului Mac OS X. Unele suspect faptul că în centrul de Mac OS X este-POSIX sistem de operare Darwin, iar cei care sunt serios interesați de IT, conștient de faptul că baza Darwin - Acest nucleu XNU a apărut lumina de fuziune Mach microkernel și componentele de bază FreeBSD. Cu toate acestea, toate aceste fapte goale, care nu ne spune nimic despre modul în care să fie difuzate de fapt iOS, și cum diferă de omologul pentru desktop.

Sistemul de operare instalat astăzi pe toate maci și (în formă modificată) pe aydevaysy, trasează istoria sa la fel de mult ca și în 1988, care, în lumea este, de asemenea, cunoscut pentru faptul că a fost anul de lansare a primei versiuni beta a sistemului de operare NeXTStep. NeXTStep în sine a fost ideea echipei de dezvoltare a lui Steve Jobs, care a plecat deja Apple și a fondat o companie numita NeXT, care a fost implicat în dezvoltarea calculatoarelor în scopuri educaționale.

La momentul nașterii sale a fost cu adevărat un sistem avansat de operare NeXTStep, care a inclus o serie de inovații tehnologice. La baza sistemului de operare microkernel Mach zăceau modificate, completate cu componente ale nucleului FreeBSD, inclusiv implementarea de referință a stivei de rețea. Componentele de nivel superior NeXTStep au fost scrise cu ajutorul Objective-C și oferă dezvoltatorilor de aplicații un bogat orientat-obiect limbaj API. Sistemul a fost echipat cu interfață grafică avansată și extrem de ușor de utilizat (componentele cheie ale care sunt păstrate în OS X, și chiar și iOS) și un mediu de dezvoltare puternic, care a inclus, inclusiv toate cunoscute designeri contemporani un designer de interfață vizuală.

Kau aranjate ios

XNU și Darwin

Condițional Umplutura OS X / iOS poate fi împărțit în trei niveluri logice: XNU compatibilitate strat de bază cu POSIX (plus diverse daemon sistem / servicii) și un strat de NeXTStep, care implementează grafica stivă, aplicații cadru și API. Darwin include primele două straturi și distribuite în mod liber, ci numai în versiunea pentru OS X. iOS-versiunea portat la arhitectura ARM, și include unele îmbunătățiri, complet închise și acoperă doar o parte a firmware-ului pentru aydevaysov (aparent ea iOS protecție portare la alte dispozitive).

În esența sa, Darwin - un „sistem de operare» UNIX gol, care include un API POSIX, o coajă, un set de comenzi și servicii, minimul necesar pentru funcționarea sistemului în modul consolă și rulează UNIX software. În acest sens, este similar cu sistemul de bază FreeBSD sau o instalare minimală a unei Arch Linux, care permite consola pentru a rula UNIX-moale, dar nu au o interfață grafică, sau orice este necesar pentru a începe aplicații serioase grafice din mediile GNOME sau KDE.

O componentă cheie Darwin - nucleu hibrid XNU, pe bază, așa cum sa menționat mai sus, la kernel Mach și FreeBSD componente kernel, cum ar fi planificator procesează stiva de rețea și sistemul de fișiere virtual (strat VFS). Spre deosebire de Mach, si FreeBSD, OS X folosește propriul API de nucleu numit I / O Kit și vă permite să scrie drivere în C ++, folosind abordarea orientată-obiect, simplificând foarte mult de dezvoltare.

iOS folosește o versiune ușor revizuită a XNU, dar datorită faptului că nucleul iOS este închis, să spunem că a schimbat Apple, este dificil. Știm doar că este asamblat cu alte opțiuni de compilator și a modificat managerul de memorie, care permite cantități mici de memorie RAM în dispozitive mobile. În toate celelalte privințe, este tot același XNU, care poate fi găsit sub forma unui cache criptat (kernel + toate driverele / module) în catalogul /System/Library/Caches/com.apple.kernelcaches/kernelcache pe dispozitiv.

Nivelul deasupra miezului în Darwin este UNIX strat / BSD care cuprinde un set de biblioteci standard de limba B (libc, libmatch, libpthread și așa mai departe), precum și instrumentele de linie de comandă, un set de scoici (bash, tcsh și ksh) și daemons, cum ar fi launchd, și un server de SSH-standard de. Acesta din urmă, întâmplător, poate fi activat prin editarea fișierului /System/Library/LaunchDaemons/ssh.plist. Cu excepția cazului, desigur, să jailbreak dispozitivul.

În această parte deschisă a sistemului de operare numit Darwin se termină și începe cadre strat care tocmai alcătuiesc ceea ce am folosit pentru a lua în considerare OS X / iOS.

Kau aranjate ios

Kau aranjate ios

cadre

Darwin pune în aplicare numai partea de bază a Mac OS / iOS, care este responsabil numai pentru funcțiile de nivel scăzut (drivere, porniți sistemul / oprire, de management al rețelei, izolarea de aplicare, și așa mai departe). Acea parte a sistemului care este vizibil pentru utilizator și aplicații, compoziția sa nu este inclus și pus în aplicare în așa-numitele cadre - un set de biblioteci și servicii care îndeplinesc, inclusiv formarea unui mediu grafic și API de nivel înalt pentru aplicații de la terți și scurgerile

Ca și în multe alte sisteme de operare, API Mac OS și iOS este împărțit în public și privat. aplicații terțe disponibile reduse exclusiv publice și foarte mult API, dar nu jailbreak-aplicații pot utiliza și private.

Toate cadrele de sistem standard pot fi găsite în directorul de sistem / System / Library / Cadre /. Fiecare dintre ele este în propriul său director, numit Bundle (boundle), care include resurse (imagini și elemente ale descrierii de interfață), limba Heather C descrie API, și, de asemenea bibliotecă de legături dinamice (în format dylib), cu punerea în aplicare a cadrului.

Una dintre cele mai interesante caracteristici ale cadrelor - versionarea acestora. Un cadru poate fi de mai multe versiuni diferite, astfel încât o aplicație proiectată pentru versiunile mai vechi ale sistemului va continua să funcționeze, în ciuda schimbărilor în noua versiune a sistemului de operare. Acesta este modul în care un mecanism pentru a rula mai vechi iOS-app în iOS 7 și mai sus. Aplicația dezvoltată pentru iOS 6, va arăta și funcționează exact ca și în cazul în care au fost difuzate pe iOS 6.

SpringBoard

aplicații de nivel sunt deasupra sistemului și aplicațiile instalate de la magazin. Central printre ele este, desigur, SpringBoard (numai pentru iOS), realizând ecranul de start (desktop). Acesta este mai întâi a început după începerea daemon sistemului, încărcarea în memorie și cadre începe server de afișare (alias compositing manager de alias Quartz Compositor), responsabil pentru afișarea pe ecran.

SpringBoard - este legătura dintre sistemul de operare și interfața grafică de utilizator, care vă permite să lanseze aplicații, comuta între ele, vizualizați notificările și de a gestiona unele setări de sistem (din iOS 7). Dar este, de asemenea, o tratare a evenimentului, cum ar fi un dispozitiv touch screen sau o lovitură de stat. Spre deosebire de Mac OS X, care utilizează o varietate de aplicații și agenți Daemons pentru a implementa componentele de interfață (Finder, Tabloul de bord, launchpad-ul, etc.), în iOS aproape toate caracteristicile de bază ale interfeței cu utilizatorul, inclusiv ecranul de blocare și „orbi“, a concluzionat în o rampă de lansare.

Spre deosebire de alte aplicații iOS stoc, care sunt situate în directorul / Applications, par SpringBoard cu serverul de afișare este considerat a fi o parte a cadrului și este localizat în directorul / System / Library / CoreServices /. Pentru a efectua mai multe sarcini se folosește de plug-in-uri care sunt în / System / Library / SpringBoardPlugins /. Printre altele, se pot găsi, de exemplu, NowPlayingArtLockScreen.lockboundle, responsabil pentru afișarea informațiilor despre melodia în curs de redare pe ecranul de blocare, sau IncomingCall.serviceboundle, responsabil pentru procesarea apelul primit.

Incepand cu iOS 6 SpringBoard este împărțit în două părți: spațiul de lucru în sine și de serviciu Backboard, responsabil pentru comunicarea cu partea de nivel redus al sistemului de operare care funcționează cu echipamentul (nivelul HAL). Backboard este responsabil pentru manipularea evenimente, cum ar fi intrarile de la tastatura touch screen, obținerea de probe accelerometru, senzor de poziție și senzor de lumină ambientală, și controlează aplicațiile de pornire, pauză și finalizare.

SpringBoard și sunt atât de importante Backboard pentru iOS, că, dacă în nici un fel să-i oprească, întregul sistem îngheață pe loc și chiar aplicația care rulează în prezent, nu va răspunde la ecranul tactil. Acest lucru le distinge de ecranul de start Android, care este doar o aplicație standard, care poate fi oprit, înlocuite sau chiar eliminate din sistem (în acest caz, ecranul va rămâne butoane de navigare pe deplin operaționale și o bară de stare cu „perdea“).

aplicaţii

În vârful piramidei sunt aplicațiile. iOS distinge (stoc) aplicații este foarte preferat încorporate și terță parte instalat din iTunes. Ambele sunt stocate în sistem sub formă de fascicule, în mai multe moduri similare cu cele utilizate pentru cadrele. Singura diferență constă în faptul că pachetul de aplicare include alte câteva meta-informații, precum și locația bibliotecii link-ul dinamic ocupă fișierul executabil în formatul Mach-O.

Catalogul standard de aplicații de stocare de scurgere - / Aplicații /. Pe iOS, este complet static și modificări numai în timpul actualizărilor de sistem; utilizator pentru a avea acces nu se poate. aplicații terțe părți, care sunt instalate de la iTunes, pe de altă parte, sunt stocate în directorul home / var / mobile / Aplicații ale utilizatorului / în subdirectoare de forma 4-2-2-2-4, în cazul în care două și patru - este numere hexazecimale. Această așa-numita GUID - un identificator unic, care identifică în mod unic aplicația în sistem și nevoile, inclusiv pentru crearea unui mediu de testare izolat (Sandbox).

In cutia cu nisip IOS folosit pentru a izola servicii și aplicații de sistem și unul față de celălalt. Fiecare aplicație terță parte și cea mai mare parte a sistemului care rulează în sandbox. Din punct de vedere tehnic, un sandbox este un clasic pentru lume UNIX chroot, un sistem consolidat de control al accesului obligatoriu TrustedBSD MAC (sandbox.kext modulul de kernel), care taie nu aplicațiile numai fișierele de acces în afara directorul acasă, dar, de asemenea, acces direct la hardware-ul și sistemul multe funcțiile sistemului de operare.

În general, închis în sandbox aplicare este limitată în următoarele posibilități:

  • Accesul la sistemul de fișiere, cu excepția propriul catalog și directorul home al utilizatorului.
  • Accesul la mass-media și directoarele bibliotecă în directorul acasă, cu excepția Media / DCIM /, Media / Foto /, Biblioteca / AddressBook /, Biblioteca / tastatură / și Library / Preferences /.
  • Accesul la informații cu privire la alte procese (aplicație „crede“ în sine singurul din sistem).
  • Acces direct la hardware-ul (numai permisiunea de a utiliza API-ul de cacao, și alte cadre).
  • Limitarea utilizării de RAM (mecanismul Jatsam controlat).

Toate aceste restricții sunt conforme cu sandbox profilului (un set de reguli restrictive) container și se aplică oricărei aplicații terțe părți. Pentru a drena aplicații, la rândul lor, se pot aplica alte restricții, o moale sau tare. Ca un exemplu, un client de e-mail, puteți aduce (profil MobileMail), care are, în general, aceleași limitări serioase, precum și aplicații de la terți, dar poate avea acces la întregul conținut al unui director Biblioteca /. Situația inversă - SpringBoard, în general, fără restricții.

multitasking

Una dintre caracteristicile cele mai controversate ale iOS - este realizarea de multi-tasking. Se pare a fi acolo, iar pe de altă parte, nu este. În comparație cu sistemul de operare desktop tradițional și iOS Android infame nu este un sistem de operare multitasking, în sensul obișnuit al cuvântului și nu permite aplicațiilor să se lucreze în mod liber în fundal. În schimb, sistemul de operare implementează API-ul, care aplicația poate fi utilizată pentru a efectua sarcini specifice, atâta timp cât acesta este în fundal.

Pentru prima dată, acest API va apărea în iOS 4 (înainte ca sarcinile de fond pot fi efectuate numai cererile de stoc) și crește odată cu dezvoltarea sistemului de operare. Astăzi (vorbim despre iOS 7) așa-numitul API Background vă permite să faceți următoarele:

  • reda audio;
  • face VoIP-apeluri;
  • primesc informații cu privire la schimbarea locației;
  • primi notificări push-;
  • planul de până la încheierea notificărilor;
  • solicita timp suplimentar după finalizarea tranziției la modul de fond;
  • comunica cu accesoriile conectate la dispozitiv (inclusiv Bluetooth);
  • trimite și primi date prin rețea (începând cu iOS 7).

Se spune că în timpul dezvoltării sale și mutarea ulterioară la dispozitivele mobile NeXTStep nu a pierdut numai toate avantajele sale, dar, de asemenea, să-i crească. Puteți asculta povești lungi de angajați Google, spune că Android a fost dezvoltat fără a ține cont pentru iOS, dar rămâne faptul că multe dintre soluțiile arhitecturale Android împrumutat de la iOS. Și nu pentru că a fost ușor, dar din cauza frumuseții și a eficienței acestora.

Șase etape de download-uri iOS

  1. Boot ROM. După pornirea dispozitivului lansat primul downloader minimalistă, cusute într-o memorie permanentă a dispozitivului. Misiunea sa - pentru a face inițializarea inițială de fier și se transferă controlul la bootloader primar LLB. Boot ROM-ul este întotdeauna fabrica de firmware și nu poate fi actualizat.
  1. Bootloader Low Level (LLB). Mai mult, managementul devine LLB. Acesta este încărcătorul de boot primar, a cărui misiune - pentru a găsi un dispozitiv iBoot de memorie, verificați integritatea acestuia și de a transfera controlul fie comuta aparatul în modul de recuperare, în cazul în care acest lucru nu este posibil. Codul LLB este stocată în dispozitiv NAND-memorie și este actualizat odată cu instalarea unei noi versiuni de firmware. Printre altele, se afișează logo-ul de boot.
  1. iBoot. Acest aydevaysov bootloader primară și secundară. Acesta include un driver de sistem de fișiere, cu care nu obține accesul la conținutul NAND-memorie, este de bază și trece controlul acestuia. Driverul iBoot este de asemenea integrat UART, cu care puteți depana kernel-ul și sistemul de operare prin conectarea dispozitivului la COM-port sau portul USB al unui computer (prin intermediul unui cablu USB - UART).

4 Core. Aici, ca de obicei. Kernel-ul inițializează hardware, apoi transferă controlul la launchd demon.

5 launchd. Acest proces primar iOS și Mac OS X, acesta montează sistemul de fișiere începe daemoni / servicii (de exemplu, backupd, configd, locationd), serverul de afișare, cadre, iar ultima etapă a controlului sarcinii la SpringBoard. În iOS și Mac OS X launchd este folosit ca un înlocuitor pentru standard / bin / Init UNIX, dar funcționalitatea este mult mai largă.

6 SpringBoard. Asta e ecranul de blocare!

Kau aranjate ios

Arată acest articol unui prieten:

articole similare