Introduction to Operating Systems: Unit V: Virtual Machines and Mobile OS

iOS Technology

Virtual Machines and Mobile OS - Introduction to Operating Systems

iOS is the operating system that runs on iPad, iPhone and iPod touch devices. The operating system manages the device hardware and provides the technologies required to implement native apps.

iOS Technology

• iOS is the operating system that runs on iPad, iPhone and iPod touch devices. The operating system manages the device hardware and provides the technologies required to implement native apps.

• The iOS Software Development Kit (SDK) contains the tools and interfaces needed to develop, install, run, and test native apps that appear on an iOS device's Home screen.

• Fig. 7.7.1 shows iOS architecture.

• The iOS Architecture is layered. At the highest level, iOS acts as an intermediary between the underlying hardware and the apps you create.

• Apps do not talk to the underlying hardware directly. Instead, they communicate with the hardware through a set of well-defined system interfaces. These interfaces make it easy to write apps that work consistently on devices having different hardware capabilities.

• The Cocoa Touch layer contains key frameworks for building iOS apps. These frameworks define the appearance of your app. They also provide the basic app infrastructure and support for key technologies such as multitasking, touch-based input, push notifications and many high-level system services.

• High-Level features of Cocoa touch layers are AirDrop, Multitasking, Auto Layout, Storyboards and Local Notifications And Apple Push Notification Service.

• Cocoa touch layer contains following frameworks for iPhone app development:

a. UIKit framework

b. Map kit framework

c. Push notification service.

d. Message UI framework noise

e. Address book UI framework

f. Game kit framework

g. iAd framework

h. Event kit UI framework

i. Accounts framework

j. Twitter framework

• The Media layer contains the graphics, audio and video technologies you use to implement multimedia experiences in your apps. The technologies in this layer make it easy for you to build apps that look and sound great.

Media Layer

• The role of the Media layer is to provide iOS with audio, video, animation and graphics capabilities.

• As with the other layers comprising the iOS stack, the media layer comprises a number of frameworks which may be utilized when developing iPhone apps.

• The technologies in this layer make it easy for sound great.

a. Graphics technologies

b. Audio technologies

c. Video technologies

d. AirPlay.

• Media layer contains following frameworks:

1. Core video framework: This framework provides buffering support for the AMI Ista Core media framework. Whilst this may be utilized by application developers it is typically not necessary to use this framework.

2. Core text framework: The iOS core text framework is a C-based API designed to ease the handling of advanced text layout and font rendering requirements.

3. Image I/O framework: The Image I/O framework, the purpose of which is to facilitate the importing and exporting of image data and image metadata, was introduced in iOS 4. The framework supports a wide range of image formats including PNG, JPEG, TIFF and GIF.

4. Assets library framework: The assets library provides a mechanism for locating and retrieving video and photo files located on the iPhone device. In addition to accessing existing images and videos, this framework also allows Simon new photos and videos to be saved to the standard device photo album.

5. Core graphics framework: The iOS core graphics framework provides a lightweight two dimensional rendering engine. Features of this framework include PDF document creation and presentation, vector based drawing, transparent layers, path based drawing, anti-aliased rendering, color manipulation and management, image rendering and gradients.

6. Core image framework: A new framework introduced with iOS 5 providing a set of video and image filtering and manipulation capabilities for application developers.

7. Quartz core framework: The purpose of the Quartz Core framework is to provide animation capabilities on the iPhone. It provides the foundation for the majority of the visual effects and animation used by the UIKit framework and provides an Objective-C based programming interface for creation of specialized animation within iPhone apps.

8. OpenGL ES framework: For many years the industry standard for high performance 2D and 3D graphics drawing has been OpenGL. OpenGL for Embedded Systems (ES) is a lightweight version of the full OpenGL specification designed specifically for smaller devices such as the iPhone.

 9. GLKit framework: The GLKit framework is an Objective-C based API designed to ease the task of creating OpenGL ES based applications.

10. NewsstandKit framework: The Newsstand application is a new feature of iOS 5 and is intended as a central location for users to gain access to newspapers and magazines. The NewsstandKit framework allows for the development of applications that utilize this new service.

11. iOS audio support: iOS is capable of supporting audio in AAC, Apple orolove Lossless (ALAC), A-law, IMA/ADPCM, Linear PCM, u-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10 and AES3-2003 formats through the support provided by the following frameworks.

12. AV foundation framework: An Objective-C based framework designed to allow the playback, recording and management of audio content.

Core Services Layer

• The Core Services layer contains fundamental system services for apps.

• Key among these services are the core foundation and foundation frameworks, which define the basic types that all apps use.

• This layer also contains individual technologies to support features such as location, iCloud, social media and networking.

Features:

1. Peer-to-Peer services

2. iCloud storage

3. Automatic reference counting

4. Block objects

5. Grand central dispatch

6. In-App purchase

7. SQLite

8. XML support

9. File-sharing support, data protection.

It consists of the following frameworks:

Address book framework: This provides programmatic access to the iPhone Address Book contact database allowing applications to retrieve and modify contact entries.

CFNetwork framework: The CFNetwork framework provides a C-based interface to the TCP/IP networking protocol stack and low level access to BSD sockets. This enables application code to be written that works with HTTP, FTP and domain name servers and to establish secure and encrypted connections using Secure Sockets Layer (SSL) or Transport Layer Security (TLS).

Core Data Framework: This framework is provided to ease the creation of data modeling and storage in Model-View-Controller (MVC) based applications. Use of the Core Data framework significantly reduces the amount of code that needs to be written to perform common tasks when working with structured data within an application.

Core foundation framework: The core foundation framework is a C-based Framework which provides basic functionality such as data types, string manipulation, raw block data management, URL manipulation, threads and run loops, date and times, basic XML manipulation and port and socket anro communication.

• The core media framework is the lower level foundation upon which the AV foundation layer is built.

Core telephony framework: The iOS core telephony framework is provided to allow applications to interrogate the device for information about the current cell phone service provider and to receive notification of telephony related events.

EventKit framework: An API designed to provide applications with access to the calendar and alarms on the device.

• Most applications will use iCloud document storage to share documents from a user's iCloud account. This is the feature that users think of when they think of iCloud storage. A user cares about whether documents are shared across devices and can see and manage those documents from a given device.

• Data protection allows applications that work with sensitive user data to take advantage of the built-in encryption available on some devices.

• When your application designates a specific file as protected, the system stores that file on-disk in an encrypted format. While the device is locked, the contents of the file are inaccessible to both your application and to any potential intruders.

• However, when the device is unlocked by the user, a decryption key is created to allow your application to access the file.

Core OS Layer

The Core OS layer contains the low-level features that most other technologies are built upon.

• Even if you do not use these technologies directly in your apps, they are most likely being used by other frameworks.

• And in situations where you need to explicitly deal with security or communicating with an external hardware accessory, you do so using the frameworks in this layer.

• This layer provides a variety of services including low level networking, access to external accessories and the usual fundamental operating system services such as memory management, file system handling and threads.

• The Core OS layer occupies the bottom position of the iOS stack and, as such, sits directly on top of the device hardware.

The layer provides a variety of services including low level networking, access to external accessories and the usual fundamental operating system services such as memory management, file system handling and threads.

• Accelerate framework: Introduced in iOS 4.0, the Accelerate framework contains. interfaces for performing DSP, linear algebra and image-processing calculations. The advantage of using this framework over writing your own versions of these interfaces is that they are optimized for all of the hardware configurations present • in iOS, based devices. Therefore, you can write your code once and be assured that it runs efficiently on all devices.

• External accessory framework: It provides the ability to interrogate and communicate with external accessories connected physically to the iPhone via the 30-pin dock connector or wirelessly via Bluetooth.

• Security framework: The iOS Security framework provides all the security interfaces you would expect to find on a device that can connect to external networks including certificates, public and private keys, trust policies, key chains, encryption, digests and Hash-based Message Authentication Code (HMAC).

• The core bluetooth framework allows developers to interact specifically with 80 Bluetooth Low-Energy ("LE") accessories. The Objective-C interfaces of this framework allow you to scan for LE accessories, connect and disconnect to ones you find, read and write attributes within a service, register for service and attribute change notifications and much more.

• System: The system level encompasses the kernel environment, drivers and low level UNIX interfaces of the operating system. The kernel itself is based on Mach and is responsible for every aspect of the operating system.

• It manages the virtual memory system, threads, file system, network and interprocess communication. The drivers at this layer also provide the interface between the available hardware and system frameworks.

• For security purposes, access to the kernel and drivers is restricted to a limited set of system frameworks and applications.

• iOS provides a set of interfaces for accessing many low-level features of the operating system. Your application accesses these features through the LibSystem library.


University Question

1. Explain the architecture of iOS. Discuss the media and service layers clearly.

Introduction to Operating Systems: Unit V: Virtual Machines and Mobile OS : Tag: : Virtual Machines and Mobile OS - Introduction to Operating Systems - iOS Technology