iOS

iOS의 운영체제의 구조

dev_hyunn 2024. 11. 19. 15:24
iOS는 Apple에서 개발한 운영체제로, 주로 iPhone, iPad 등 Apple 제품에 사용되는 운영체제로 크게 아래와 같은 4가지 구성 요소로 이루어져 있다.

iOS 운영체제의 계층 구조

Core OS

  • 하드웨어와 가장 가까이 있는 최하위 계층
  • 시스템의 핵심 기능을 관리

Core Service

  • GPS, 가속도, 자이로스코프 하드웨어적 기능들
  • 내부 데이터 / 위치(GPS), Sensor 등의 기능을 제공

Media

  • 그래픽, 오디오, 비디오, 멀티미디어 기능 제공
  • C 와 Objective-C와 혼합

Cocoa Touch

  • 화면의 그래픽 UI
  • UIKit, MapKit
  • 실제 개발할 때 가장 많이 접하게 되는 계층

Application

  • 사용자와 가장 맞닿아 있는 계층
  • Apple App, Third-Party App이 포함.

다음으로는 iOS 운영체제의 구성요소에 대해 알아보겠습니다.

iOS 운영체제의 구성요소

Kernel(커널)

  • XNU 커널, macOS, iOS에 모두 사용되는 하이브리드 커널
  • 메모리 관리 (가상 메모리. 페이지 관리)
  • 멀티태스킹 및 멀티 스레딩

System Frameworks

  • Cocoa Touch 계층에 해당하는 System Frameworks
  • UIKit을 활용하여 User Interface 구축,
  • 데이터 관리 및 기타 핵심 기능 제공

System Application

  • 다양한 시슨템 애플리케이션
  • 메시지, 카메라, 사진, 설정 등 기본 앱

iOS 앱 샌드박스(App sandbox)

  • sandbox 란 어린아이를 보호하기 위해 모래통에서만 놀도록 하는데서 유래한 접근 보안 모델
  • App마다 sandbox를 두고 공유되지 않도록 하여 접근에 대해 보호

App SandBox의 원칙 다음 리소스를 사용하기 위해서는 그 의도가 명시.

  • 하드웨어 (카메라, 마이크, USB, 프린터)
  • 네트워크 연결 (인바운드 또는 아웃바운드)
  • 앱 데이터 (캘린더, 위치, 연락처)
  • 사용자 파일 (다운로드, 사진, 음악, 영화, 사용자 선택 파일)
Unity에서 iOS로 빌드하게 되었을 때 각 카메라, 마이크 등의 권한을 설정할 때 그 의도에 대해 기입하는 이유.

Kernel의 역할

  • 보안
    • 커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임진다.
  • 자원 관리
    • 한정된 시스템 자원을 효율적으로 관리 프로그램 실행을 원할하게, 스케줄링
  • 추상화
    • 하드웨어 추상화들을 구현 (공통 명령어의 집합)

커널의 종류

  • 단일형 커널 (하드웨어 추상화를 하나의 덩어리로 묶음)
  • 마이크로 커널 (하드웨어 추상화를 간결한 작은 집합으로 제공)
  • 혼합형 커널 (성능향상을 위해 추가적인 코드를 커널 공간에 넣음)
  • 나노 커널 (실질적으로 모든 서비스를 책임짐)
  • 엑소 커널 (라이브러리가 단일형 커널 수준의 추상을 제공)

참조 레퍼런스(커널 위키백과)