VŠB-TU Ostrava Fakulta elektrotechniky a informatiky
Katedra telekomunikační techniky
Telekomunikační koncová zařízení Projekt č.:
1
Název:
Datum:
6. 11. 2013
Vnitřní struktura systému iOS
Vypracoval: Bc. Lukáš Rygol login: ryg0007
1. Úvod iOS je mobilní operační systém vyvinutý firmou Apple Inc. Původně byla platforma určena pouze pro mobilní telefony iPhone, později se však začal nasazovat i na dalších produktech firmy Apple, jako jsou iPod Touch, iPad a nejnověji Apple TV. [01] Pojmenování iOS se používá až od čtvrté verze. Do té doby byl oficiálně označován iPhone OS. Mezi velké přednosti tohoto systému patří plynulost prostředí, klávesnice, multitasking a spoustu know-how dané společnosti. Ovšem přináší i určité nevýhody, jako nemožnost instalovat aplikace z neznámých zdrojů (aplikace se musí instalovat přímo z App Storu).
2. Architektura [01] iOS je odlehčenou verzí operačního systému Mac OS X, používaného v počítačích společnosti Apple. Jedná se tedy o systém UNIXového typu. Jelikož je určen pro mobilní zařízení, tak neobsahuje veškerou funkcionalitu OS X, na druhou stranu obsahuje podporu pro dotykové ovládání. Dělí se na čtyři základní vrstvy, které zajišťují základní funkčnost a poskytují vývojářům API a frameworky potřebné pro vývoj aplikací.
Obr. č. 1 – Jednotlivé vrstvy v architektuře [https://developer.apple.com/library/ios/documentation/miscellaneous/conceptual/iphoneo stechoverview/Art/SystemLayers_2x.png]
-1-
VŠB-TU Ostrava Fakulta elektrotechniky a informatiky
Katedra telekomunikační techniky [01] První vrstva obsahuje frameworky, které jsou potřebné pro vývoj aplikací. Technologie dostupné v této vrstvě jsou nezbytné pro implementaci grafického rozhraní (GUI) a interakci s uživatelem a poskytuje vysokoúrovňové služby. Při vývoji aplikací je vhodné začínat právě s touto vrstvou a nižší používat pouze v případě potřeby. Vysokoúrovňové služby Cocoa Touch je možné vidět níže. Multitasking Až do verze iOS 4.0 nebylo možné psát aplikace, které by schopny běžet na pozadí. Pokud se zmáčklo tlačítko Home, tak aplikace byla automaticky ukončena. Ochrana dat Aplikace, které potřebují ukládat citlivá data, mohou využívat vestavěné podpory šifrování. Uloží-li aplikace soubor jako chráněný, tak ho systém automaticky ukládá na disk v zašifrované podobě a dokud je zařízení uzamčené, tak obsah souboru je nedostupný jak aplikaci, tak případnému útočníkovi. [03] Mezi flash a hlavní pamětí se využívá AES 256 a SHA-1 je implementována na úrovni hardwaru. Push notifikace Od verze 3.0 je možné posílání tzv. push notifikací, což je mechanismus, který umožňuje upozornění uživatele bez nutnosti, aby byla aplikace právě spuštěna. Lze tedy uživatele informovat pomocí krátké zprávy, přehrání zvuku či aktualizovat číselnou značku. Frameworky dostupné v Cocoa Touch - Address Book UI Framework (standardizované rozhraní pro zobrazování a úpravu kontaktních informací) - Event Kit UI Framework (controllery pro práci s událostmi – položky v kalendáři) - iAd Framework (zobrazení bannerové reklamy v aplikaci) - Game Kit Framework (podpora peer to peer komunikace pomocí protokolu Bonjour) - Map Kit Framework (mapová komponenta pro zobrazení map, popřípadě dalších informací o umístění) - Message UI Framework (vytváření a odesílání emailů, SMS zpráv pomocí standardizovaných uživatelských rozhraní) Další vrstva Media umožňuje vytváření graficky a zvukově propracovaných aplikací. To nám umožní plynulé přehrávání animací, videí a zvuků. -
Core Graphics (stará se o kreslení nativních 2D vektorů a renderování obrázků) Core Animation (pokročilá podpora animací) OpenGL ES (hardwarově akcelerované vykreslování 2D/3D objektů) Core Text (sofistikovaný engine pro vykreslování textu) Image I/O (čtení a zápis většiny rozšířených grafických formátů) The Assets Library framework (přístup k obrázkové knihovně uživatele)
-2-
VŠB-TU Ostrava Fakulta elektrotechniky a informatiky
Katedra telekomunikační techniky Technologie pro zvuk -
The Media Player Framework (přístup k iTunes knihovně a přehrávání skladeb) AV Foundation (sada Objective-C rozhraní pro správu přehrávání a záznamu zvuku) OpenAL (sada multiplatformních rozhraní pro 3D zvuk Core Audio Framework (rozhraní pro přehrávání a záznamu zvuku)
iOS podporuje tyto formáty zvuku: AAC, ALAC, A-law, IMA/ADPCM (IMA4), Linear PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10, AES3-2003. Technologie pro video -
Media Player Framework (přehrávání videí) AV Foundation (Objective-C rozhraní pro záznam a přehrávání videa) Core Media (nízkoúrovňové typy a rozhraní používané ve vysoko úrovňových frameworcích)
Coure Services vrstva nám poskytuje: Block objekty Od verze 4.0 je možné přidávat objekty typu Block. Jedná se o jazykový konstrukt jazyka C, který je možný využívat se stávajícím C nebo Objective-C kódu. Reprezentuje anonymní funkci a související data. Takový konstrukt je v jiných jazycích často nazýván closure nebo lambda. Block objekty se hodí jako callback. Grand Central Dispatch Ve verzi 4.0 byla přidána technologie Grand Central Dispatch postavená na BSD, která umožňuje správu úloh v aplikaci. GCD kombinuje asynchronní model programování s vysoce optimalizovaným jádrem a poskytuje tak jednoduchou a zároveň efektivní alternativu k vláknovému programování. Lokační služby Umožňují sledovat aktuální polohu uživatele. Služby využívají k určení své polohy veškerý dostupný hardware (WiFi, GPS, mobilní sítě). SQLite Odlehčená verze SQL databáze umožňuje ukládání uživatelských dat. Podpora XML Podpora pro zpracování XML dokumentů. -
Address Book (přístup k databázi kontaktů uživatele) CFNetwork (komunikace pomocí síťového rozhraní) Core Data (Ukládání strukturovaných dat a mapování na programové objekty)
-3-
VŠB-TU Ostrava Fakulta elektrotechniky a informatiky
Katedra telekomunikační techniky -
Core Foundation (základní služby pro práci s řetězci, daty, URL, vlákny, porty) Core Location (hledání aktuální geografické polohy uživatele) Core Media (nízkoúrovňový přístup k audio/video) Core Telephony (přístup k informacím o mobilní síti) Event Kit (přístup k událostem) Foundation (obsahuje Objective-C wrappery pro funkce z Core Foundation) Mobile Core Services (nízkoúrovňové typy pro UTI) Quick Look (poskytuje možnost vytvořit náhled obsahu souboru, se kterým samotná aplikace není schopna pracovat) Store Kit (přístup k iTunes Storu a možnost nákupů) System Configuration (zjišťování dostupnosti připojení k internetu a jeho nastavení)
Vrstva Core OS nám poskytuje nízkoúrovňové funkce k ostatním technologiím, které jsou na ní postaveny. -
Accelerate Framework (Rozhraní pro práci s matematickými funkcemi) External Accessory Framework (podpora pro komunikaci s externími zařízeními připojenými přes Bluetooth nebo třicetipinový konektor zařízení) Security Framework (k dispozici jsou rozhraní pro certifikáty, soukromé a veřejné klíče, generování kryptografických pseudonáhodných čísel apod.)
3. Vývoj aplikací [02] iOS SDK (Software Development Kit) obsahuje nástroje a rozhraní potřebné k vývoji, instalaci, běhu a testování mobilních aplikací. Ty používají iOS systémového frameworku a programuje se zde v programovacím jazyku C nebo Objective-C. Jako vývojové prostředí se dlouho využívalo aplikace XCode. Pokud chce vývojář publikovat aplikace v App Storu, musí platit ročně vývojářský poplatek a navíc k tomu si Apple za každou prodanou aplikaci vezme 30% z její celkové hodnoty. U Androidu se platí poplatek pouze při vstupu mezi vývojáře cca 500 Kč a potom platí pouze určitá procenta z prodaných aplikací.
4. Jailbreak iOS je poměrně uzavřený systém. Jak bylo výše uvedeno, tak uživatel tohoto systému je vázán na instalaci aplikací z App Storu. Právě nedostupnost některých aplikací a nemožnost přístupu do systému bývají k motivu jailbreaku, což je proces, který modifikuje systém a umožní nahrávat neautorizované aplikace a přistupovat ke chráněným souborům systému.
5. Použité literární zdroje a prameny [01] IOS (Apple). Wikipedia.org [online]. 2013 [cit. 2013-11-06]. Dostupné z: http://cs.wikipedia.org/wiki/IOS_(Apple)
-4-
VŠB-TU Ostrava Fakulta elektrotechniky a informatiky
Katedra telekomunikační techniky
[02] About iOS Technologies. IOS Technology Overview [online]. 2013 [cit. 2013-11-06]. Dostupné z: https://developer.apple.com/library/ios/documentation/miscellaneous/conceptual/iphoneos techoverview/Introduction/Introduction.html [03] IOS Security. In: Www.apple.com [online]. 2012 [cit. 2013-11-06]. Dostupné z: http://www.apple.com/ipad/business/docs/iOS_Security_Oct12.pdf
-5-