1. 알고리즘
- 미학습
2. 운영체제(공룡책)
*챕터2 - 운영체제 구조 (Operating System Structures)
2.8.3 마이크로 커널 (Microkernels)
마이크로 커널 방식은 중요하지 않은 구성요소들을 커널로부터 제거하고, 그들을 별도의 주소공간에 존재하는 사용자 수준 프로그램으로 구현하는 방식이다. 일반적으로 마이크로커널은 통신 설비, 최소한의 프로세스 및 메모리 관리를 제공한다. 클라이언트(응용) 프로그램과 서비스는 직접 상호 작용하지 않고 마이크로 커널과 메시지를 교환함으로써 간접적으로 상호작용한다. 해당 방식을 사용함으로써 OS의 확장(새로운 서비스는 사용자 공간에 추가)이 용이해지고 하드웨어간 이식성이 높아진다. 또한 서비스 대부분인 사용자 프로세스로 수행되기 때문에 보안성과 신뢰성이 높다.
마이크로커널 방식은 메시지를 교환하며 프로세스 전환이 발생할 수 있고, 메시지를 복사해야하기 때문에 오버헤드가 발생한다.
2.8.4 모듈(Modules)
적재가능 커널 모듈(lodable kernel modules, LKM)이란 핵심적인 구성요소의 집합을 가진 커널이 부팅, 실행 중에 부가적인 서비스들을 모듈을 통해 링크하는 것을 말한다. 해당 방식의 설계 주안점은 커널은 핵심 서비스를 제공하고 다른 서비스들은 커널이 실행되는 동안 동적으로 구현하는 것이다.
LKM의 전체적인 구조는 계층적 접근 방식, 마이크로 커널 방식과 유사하다. 하지만 계층적 접근 방식보단 유연하고, 서비스간 통신에 메시지 전달이 필요없는 장점이 있다.
2.8.5 하이브리드 시스템(Hybrid Systems)
대부분의 OS는 명확하게 구분된 하나의 구조를 선택하지 않고 여러개의 장점을 합친 혼용구조로 구성된다.
2.8.5.1 macOS, iOS
macOS : 데스크톱, 랩톱 시스템에서 실행되는 OS
iOS : 스마트폰, 태플릿 등 휴대용 장치에서 실행되는 OS
두 OS의 공통점
- 사용자 경험 층 : 사용자 <-> 컴퓨팅 장치간 상호작용할 수 있는 소프트웨어 인터페이스를 정의한다.
- 응용프로그램 프레임워크 층 : Cocoa, Cocoa Touch 프레임워크 및 Objective-C, Swift 언어에 대한 API를 제공
- 핵심 프레임워크 : 그래픽 및 미디어를 지원하는 프레임워크를 정의
- 커널환경(Darwin) : Mach(마이크로커널)과 BSD(UNIX커널)이 포함된다.
응용계층에선 UX에 직접 접근하거나 우회하여 프레임워크 및 커널 환경과 직접 통신할 수 있다.
차이점
- macOS -> Intel 아키텍처 // iOS -> ARM 기반 아키텍처 // iOS의 보안설정이 더 엄격하다.
- iOS가 macOS보다 더 제한적이고 폐쇄적인 경향
두 OS에서 공통적으로 사용하는 커널환경인 Darwin은 Mach마이크로 커널과 BSD UNIX커널로 구성된 계층화 시스템이다. 대부분의 OS가 하나의 시스템 콜 인터페이스를 제공하는 반면에 Darwin은 두 개의 시스템콜 인터페이스(Mach 트랩, BSD 시스템콜-POSIX 기능제공)를 제공한다.
Mach는 메모리 관리, CPU스케줄링 및 메시지 전달, RPC(원경 프로시저 호출)과 같은 IPC기능을 포함한 기본적인 OS 서비스를 제공한다. Mach에서 제공하는 대부분의 기능은 커널 추상화를 통해 사용가능하다. 또한 Darwin은 장치 드라이버 및 동적 적재가능 모듈(LKM, macOS,iOS에선 kexts라고 불림)개발을 위한 iokit를 제공한다.
마이크로 커널 구조방식을 가진 Darwin은 오버헤드에대한 문제를 해결하기 위해 Mach, BSD, iokit 및 모든 커널 확장을 단일 주소 공간으로 결합한다. 다양한 서비스들이 사용자 공간에서 실행되지 않기 때문에 엄격하게 마이크로 커널 구조라고 보긴 어렵다.
*POSIX(Portable Operating System Interface) : 이식 가능한 운영체제 인터페이스. 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격이다.
3. 후니의 쉽게 쓴 시스코 네트워킹
* Part 6
미학습
4. 김영한의 Spring 로드맵
- 미학습
'TIL' 카테고리의 다른 글
TIL - 0329 (0) | 2023.03.29 |
---|---|
TIL - 0328 (0) | 2023.03.28 |
TIL - 0324 (1) | 2023.03.24 |
TIL - 0322 (0) | 2023.03.22 |
TIL - 0321 (0) | 2023.03.21 |