운영체제, Kernel, iOS

장수빈·2025년 6월 11일

CS

목록 보기
6/14

운영체제(OS)는 하드웨어와 애플리케이션 사이에서 핵심적인 역할을 수행합니다.

운영체제의 역할

기능설명
프로세스 관리여러 앱(프로세스)의 실행을 관리
메모리 관리RAM의 사용을 효율적으로 분배
파일 시스템데이터의 저장 및 접근을 관리
하드웨어 추상화디바이스 드라이버를 통해 하드웨어 접근을 통제
보안 및 권한 관리사용자와 앱의 권한을 제어하여 시스템을 보호

iOS의 운영체제 구조

iOS는 macOS 기반의 XNU 커널 위에 구축되어있으며 다음과 같은 계층으로 구성됨

  • Core OS(Kernel)
    - XNU 커널: Mach + BSD
    - 보안, 메모리, 쓰레드, 파일 시스템
  • Core Services
    - Foundation, Grand Central Dispatch (GCD), SQLite 등
  • Media Layer
    - AVFoundation, CoreAudio, CoreGraphics 등
  • Cocoa Touch (UIKit)
    - 사용자 인터페이스 구성 요소, 이벤트 처리

운영체제가 없다면 앱 개발은 어떻게 달라질까?

  • 하드웨어 접근을 직접 구현해야 하며, 모든 디바이스(메모리, 카메라 등)의 명세에 맞는 코드를 수동으로 작성해야함
  • 멀티태스킹, 메모리 보호, 보안기능 x
  • 애플리케이션 간 충돌 위협 증가, 리소스 공유 문제 발생

즉, 모던 앱 개발이 사실상 불가능 or 펌웨어 수준 저수준 코드 개발 필요

iOS의 샌드박스 구조란?

Sandboxing은 각 앱이 독립된 환경(디렉토리 및 권한)에서만 실행되도록 격리하는 보안 메커니즘

  • 앱은 오직 자신의 컨테이너 디렉토리에만 접근 가능
  • 다른 앱의 데이터나 시스템 자원에 접근 x
  • 시스템 호출, 파일 접근, 네트워크 요청 등은 권한 기반으로 제한

샌드박스 구조의 장단점

장점단점
앱 간 간섭 최소화앱 간 데이터 공유 어려움
시스템 보호 강화기능 제한 (예: 파일 시스템 접근 제한)
악성 앱 감염 차단특정 기능(백업, 디버깅 등) 구현 복잡

Kernel이란?

커널은 운영체제의 핵심으로, 하드웨어와 소프트웨어 간 중재자 역할 수행

  • 메모리, CPU, I/O 장치 관리
  • 시스템 호출 처리 (open, read, fork 등)
  • 스케줄링 및 인터럽트 처리

iOS는 XNU 커널을 사용하며, Mach 커널과 BSD 계층이 통합된 구조

앱에서 직접 커널 기능을 호출할수 있나?

불가능

  • iOS 앱은 User Space에서 실행되며, Kernel Space에 접근 불가
  • 시스템 API(Foundation, POSIX, GCD등)를 통해 간적접으로 커널 기능을 사용
  • 시스템 호출(System Calls)은 라이브러리를 통해 래핑되어 제공

ex) DispatchQueue -> GCD -> Mach 메시지 -> 커널 스케줄링


profile
iOS 공부 이모저모 낙서장

0개의 댓글