Apple iOS iPhone Operating System, iOS is the operating system that was developed specifically for the iPhone, but now it is also used to run applications on other Apple devices including the iPad, iPod Touch, and Apple TV. There are many similarities between iOS and Mac OS X though the former was developed specifically with mobile devices in mind (Apple Developer, 2010).

Apple iOS iPhone Operating SystemApple’s iphone developer site dedicates an entire section to the iOS Dev Center. As mentioned in Chapter 1, the iOS software development kit (SDK) contains tools needed to create and test mobile applications within an iOS environment. These X code tools also allow developers to test their code within an iOS Simulator to ensure the app is functioning properly.

iOS layers: The iOS kernel is loosely based on the Mac OS X kernel, and contains several layers that are used to run applications. The layers include Core OS, Core Services, Media, Cocoa Touch, and Applications. The following is a description of each of the architecture layers within iOS (Apple Developer, 2010):

• Media: The Media layer is where graphics, audio, and video technologies are contained.

• Cocoa Touch: The Cocoa Touch layer contains technologies that provide the infrastructure needed to implement the visual interface for applications. Here, most of the technologies use Objective-C.

• Core OS: This layer sits directly on top of the device hardware and provides services including low-level networking, access to external accessories, and memory management/file system handling. The “Common Crypto” is an example of one of the dynamic libraries stored at this layer. It helps to create and manage certificates and is called upon by the Keychain Services (within the Core Services layer) in order to provide encryption/decryption functions for the
Keychain files.

• Core Services: In conjunction with the Core OS, this layer provides the fundamental system services that all applications use. It contains fundamental interfaces, mostly C-based, in order to allow for file access and low-level data types. These interfaces include functions such as Core Foundation, CFNetwork, SQLite, and more. Security Services are found at this iPhone layer, including Keychain Services, which are used to implement data storage and cryptographic functions within the keychain database on the device.