iOS에서 OS 뜯어보기
운영체제 Operation System
사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어
운영체제는 한번쯤 들어볼 수 있는 단어입니다. 흔히 OS를 이야기할 때 Windows, Linux 혹은 애플 진영에서는 iOS, macOS, iPadOS 등으로 말이죠.
쉽게 말해 운영체제는, 사용자가 알기 어려운 하드웨어와 소프트웨어를 쉽게 상호작용 할 수 있도록 돕는 소프트웨어입니다. 하드웨어를 다루기 위해 우리가 직접 기계어로 명령하거나 자원 분배를 해주지 않아도 되는 것은 모두 OS 덕분이라고 할 수 있습니다.
운영체제의 역할
1. 자원 관리
- CPU 스케줄링: 여러 프로세스가 CPU를 사용할 때 효율적으로 CPU를 배분
- 메모리 관리: 프로세스가 사용할 메모리를 관리하고 가상 메모리(Virtual Memory) 기능 제공
2. 프로세스 및 스레드 관리
- 프로세스 생성 및 종료
- 다중 프로세스 실행 지원(멀티태스킹)
- 프로세스간 통신(IPC) 지원
3. 입출력 관리
- 키보드, 마우스, 터치스크린, 네트워크 장치 등의 입출력 장치 관리
- 장치 드라이버를 통해 하드웨어와 소프트웨어 간의 원활한 통신 지원
4. 파일 시스템 관리
- 파일 저장, 수정, 삭제 및 접근 권한 관리
5. 보안 및 사용자 관리
- 사용자 계정 관리 및 권한 제어
- 방화벽 및 암호화 기능 제공
커널 Kernel
운영체제의 핵심이며, 하드웨어와 소프트웨어를 연결하는 가장 중요한 계층
운영체제는 여러 기능을 제공하지만 그중에서도 가장 중요한 CPU, 메모리, 저장장치, 프로세스 등의 자원 관리 기능을 수행하는 것이 바로 커널입니다.
커널은 사용자 프로그램과 하드웨어 사이에서 명령을 전달하는 역할을 하며, 운영체제의 핵심 기능을 직접 제어하는 프로그램이라고 할 수 있습니다.(사실상 위에서 다룬 OS의 역할의 핵심적인 부분은 대부분 커널이 맡고 있다고 생각하면 될 것 같습니다!)
- 프로세스 및 스레드 관리
- 메모리 관리
- 파일 시스템 및 저장 장치 관리
- 디바이스 및 하드웨어 관리
- 보안 및 접근 제어
iOS에서는 커널의 핵심 역할을 하는 `Mach`커널과 여러 컴포넌트를 포함한 `Darwin`커널이 함께 사용된다고 합니다. 정확히 Mach 커널은 프로세스, 메모리, IPC 관리의 핵심 역할을 담당하고 Darwin 커널은 Mach 커널을 포함하면서 BSD, IOKit 등의 요소를 추가해 완전한 운영체제 커널을 구성한다고 합니다. 흠,, 어렵지만 우선은 이정도만 알아둬도 충분할 것 같습니다!
iOS 운영체제 알아보기
애플 플랫폼 개발자라면 iOS 운영체제를 알아야합니다.(iOS가 운영체제인데 iOS 운영체제,, 두번 말하기? 이상하지만 그렇다구요) iOS는 계층적인 구조를 가지고 있으며 이는 애플 공식문서에서 확인할 수 있습니다. 아래부터 하나씩 뜯어보겠습니다.
1. Core OS
- iOS 가장 하단에 위치한 레이어로 하드웨어(프로세스, 메모리 등)와 직접 상호작용합니다.
- 앞서 살펴본 `Mach`커널과 `Darwin 커널`이 Core OS 레이어에 속해있습니다.
- 파일 시스템, 네트워킹 인프라, 보안 시스템, 배터리 등의 저수준 기능 및 장치 드라이버가 Core OS 레이어에 포함됩니다.
2. Core Services
- 시스템 전반에 걸쳐 제공되는 기본 서비스 API가 모여있는 레이어입니다.
- Core OS에서 제공하는 기능을 기반으로 구축되는 경우가 많습니다.
- `Foundation`, `CoreData`, `CloudKit`, `Core Location` 등이 포함되어 있습니다.
3. Media
- 그래픽, 오디오, 비디오를 처리하는 레이어입니다.
- `Core Animation`, `Core Graphics`, `AVFoundation`, `Metal` 등이 포함되어 있습니다.
4. Cocoa Touch
- UI 역할을 수행하는 레이어입니다.
- 터치 및 모션 이벤트와 같은 많은 기능이 포함되어 있습니다.
- 개발자가 가장 많이 사용하게 되는 레이어입니다.
- `UIKit`, `SwiftUI`, `ARKit`, `HealthKit` 등이 포함되어 있습니다.
정리하기
OS는 하드웨어와 소프트웨어의 상호작용을 관리하고 도와주는 시스템 소프트웨어!
커널은 OS의 핵심으로 실질적인 프로세스, 메모리, 스레드 등의 자원 관리!
iOS의 4가지 계층 구조는 예전부터 스치듯 접한 기억이 있는데 오늘에서야 제대로 보게 된 것 같습니다. 😇
Ref.
[iOS] 운영체제의 구조 / iOS Layer
[MacOS, iOS] Cocoa Fundamentals Guide / 코코아 기본 사항코코아란 무엇인가요?Cocoa는 OS X 운영 체제와 iOS를 위한 애플리케이션 환경입니다.iOS는 iPhone, iPad, iPod touch와 같은 멀티터치 기기에서 사용되는 운
chanhhh.tistory.com
What Is Cocoa?
Retired Document Important: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid. What Is Cocoa? Cocoa is an application environment for both the OS X operating system and iOS
developer.apple.com