2024. 12. 25. 21:20ㆍ🍏/OS
위 포스팅에서 iOS에서 다뤄졌던 내용입니다.
iOS 운영체제의 구조
iOS 운영 체제의 구조는 계층 기반입니다.
Core OS Layer(Kernal & Device Drivers Layer)
- iOS 커널은 시스템 리소스, 프로세스, 메모리, 보안 및 장치 상호 작용을 관리합니다. 하드웨어와 소프트웨어 사이의 중개자 역할을 합니다. Mach 또는 Darwin이 계층에 존재합니다.
- Mach : CPU 사용량 및 메모리와 같은 프로세서 리소스를 관리하고, 일정을 처리하고, 메모리 보호를 제공하고 나머지 운영체제 계층에서 기타 서비스를 제공하는 마이크로 커널입니다. 커널 아키텍처에서 Mach(microkernel)는 커널 구성요소 중 하나입니다.
- Darwin : 커널은 운영 체제의 다른 핵심 부분과 함께 다윈이라고 통칭 됩니다. Darwin은 BSD를 기반으로 Mach 및 기타 구성 요소를 포함합니다. 장치 드라이버는 하드웨어 장치와 OS간을 변환하여 커널을 보완합니다. 하드웨어 추상화를 제공하고 I/O 작업을 처리합니다.
- BSD, File system, Mach, Networking
Core OS Layer(others)
- Core Bluetooth Framework
- External Accessories Framework
- Accelerate Framework
- Security Services Framework
- Local Authorization Framework etc
이 계층에는 커널, 파일 시스템, 네트워킹 인프라, 보안, 전원 관리 및 여러 장치 드라이버가 포함됩니다.
POSIX/BSD 4.4/C99 API 사양을 지원하고 많은 서비스를 위한 system-level API를 포함하는 libSystem 라이브러리도 있습니다.
이 계층은 커널의 많은 복잡성을 추상화하여 더 높은 수준의 소프트웨어에 보다 접근하기 쉬운 인터페이스를 제공합니다.
이러한 서비스는 일반적으로 시스템 리소스 또는 하위 수준 작업과의 직접적인 상호 작용이 필요하지만 애플리케이션에 직접 노출되지 않는 작업에 사용됩니다. 이 계층의 일부 구성 요소는 OpenCL 및 시스템 구성입니다.
Core Services Layer
Core Services Layer에는 iOS 운영체제가 자체적으로 수복하고 더 나은 기능을 제공하는 데 도움이 되는 몇 가지 중요한 프레임워크가 있습니다.
- Address Book Framework: The Address Book Framework provides access to the contact details of the user.
- Cloud Kit Framework: This framework provides a medium to transfer data between your app and iCloud.
- Core Data Framework: It is the technology used to handle the data model of a Model View Controller app.
- Core Foundation Framework: This framework offers data management and service features for iOS applications.
- Core Location Framework: This framework helps in delivering location and heading information to the application.
- Core Motion Framework: All the motion-based data on the device is accessed with the help of the Core Motion Framework.
- Foundation Framework: Objective C covering too many of the features found in the Core Foundation framework.
- HealthKit Framework: This framework handles the health-related information of the user.
- HomeKit Framework: This framework is used for talking with and controlling connected devices with the user’s home.
- Social Framework: It is simply an interface that will access users’ social media accounts.
- StoreKit Framework: It provides support for purchasing content and services from within iOS apps.
Core Services Layer는 더 복잡하고 애플리케이션별 기능을 제공하기 위해 Core OS에서 제공하는 기능을 기반으로 구축되는 경우가 많습니다. 핵심 서비스는 앱에 필수 서비스를 제공하지만 앱의 사용자 인터페이스와 직접적인 관련은 없습니다.
Media Layer
Media layer는 시스템의 모든 그래픽 비디오 및 오디오 기술에 도움을 줍니다.
- ULKit Graphics: This framework provides support for designing images and animating the view content.
- Core Graphics Framework: This framework support 2D vector and image-based rendering and it is a native drawing engine for iOS.
- Core Animation: This framework provides the optimum animation experience of the apps in iOS.
- Media Player Framework: This framework supports the playing of the playlist. It enables the user to use their iTunes library.
- AV Kit: This framework offers a number of easy-to-use interfaces for video presentation and recording, and even playback of audio and video.
- Open AL: This framework is also an Industry Standard Technology for Audio provision.
- Core Images: This framework offers advanced support for motionless images.
- GL Kit: This framework manages advanced 2D and 3D rendering by hardware-accelerated interfaces.
미디어 계층은 애플리케이션에 필요한 모든 오디오, 비디오, 그래픽 및 애니메이션 서비스를 처리합니다. Core Graphics, Core Audio 및 OpenGL과 같은 구성 요소는 이 레이어에서 찾을 수 있습니다.
Cocoa Touch Layer
Cocoa Touch Layer는 사용자가 iOS 운영 체제를 사용하는 인터페이스 역할을 하는 애플리케이션 계층으로도 알려져 있습니다. 터치 및 모션 이벤트와 더 많은 기능을 지원합니다. 이 계층의 프레임워크는 iOS 기반 애플리케이션을 직접 지원합니다. 여기에는 게임 키트, 지도 키트 및 iAd와 같은 프레임워크가 포함됩니다. Cocoa Touch 계층과 핵심 서비스 계층에는 각각 iOS용 애플리케이션을 개발하는 데 특히 중요한 Objective-C 프레임워크가 있습니다. 이들은 iOS의 핵심 Cocoa 프레임워크입니다:
EvenKit Framework: This framework shows a standard system interface using view controllers for viewing and changing events.
- GameKit Framework: This framework even allows users to share game related data online via a Game Center.
- MapKit Framework: This framework provides a scrollable map that may be inserted into the user interface of the app.
- PushKit Framework: This framework provides for registration.
화면의 그래픽 UI 및 터치의 기능을 제공합니다. UIKit, MapKit, MessageUI등이 여기에 속합니다.
실제로 개발 할 때 가장 많이 접하게되는 계층입니다.
Application
iOS의 가장 바깥 계층으로, Apple App, Third-Party App이 여기에 속합니다.
사용자와 가장 맞닿아 있는 계층입니다.
'🍏 > OS' 카테고리의 다른 글
[iOS / macOS] apple OS, CS, Network 면접 질문 (1) | 2024.12.29 |
---|---|
[iOS, macOS layer] libSystem / CFNetwork / URLSession / 네트워크로 보는 Core OS, Core Services (0) | 2024.05.04 |
[MacOS, iOS] Cocoa Fundamentals Guide / 코코아 기본 사항 (0) | 2024.05.01 |
[MacOS] .DS_Store 개념 / 삭제 / 제거 / 보안 관련사항 (1) | 2024.02.21 |
[MacOS] man scutil / 시스템 구성 정보 액세스 / system configuration parameters (0) | 2023.08.21 |