728x90
반응형
리눅스 아키텍처
- 리눅스에서 커널이 모든 핵심 기능을 제공하지만 커널이 그 자체로 운영체제는 아님
- 운영체제에서 매우 중요한 요소 중 하나가 커널일 뿐
- 리눅스에는 커널 모드와 사용자 모드가 존재
커널모드란?
- 커널은 CPU/메모리/네트워크 장치 등을 통일된 시스템 콜·드라이버 인터페이스로 추상화해 사용자 공간에 API를 제공
- 시스템 콜을 통해 커널모드로 진입해 하드웨어를 직접적으로 제어하는 매커니즘
- 위 권한 레벨 자체를 커널모드라고 부름
- 커널 모드는 추상화를 제한함으로써 빠르게 실행됨
사용자 모드란
- 사용자 모드는 일반 애플리케이션 수준에서 커널이 제공하는 API(시스템 콜)를 통해서 하드웨어에 간접 접근하는 CPU 실행 상태
- 좀 더 풀어서 설명하면 사용자 작성한 코드는 직접 하드웨어에 전달되지 못하고 커널모드를 통해서만 하드웨어와 통신을을 할 수 있음
- 사용자가 시스템 콜을 사용할 때 마다 "사용자 모드" -> "커널 모드" 전환이 이루어짐
- 해당 작업을 거칠 경우 문맥교환(Context switch), 권한검증 등이 발생해 리소스 발생(느려짐)
- 사용자 모드는 상대적으로 느리지만 더 안전하고 편리한 추상화를 의미
- 해당 사용자모드를 통해서 시스템 전체가 망가질 위험이 줄어들고, 메모리 침범 등 보안 사고도 방지
여기서 말하는 추상화란?
- 커널은 CPU/메모리/네트워크 장치 등을 통일된 시스템 콜·드라이버 인터페이스로 추상화해 사용자 공간에 API를 제공
- 동시에 커널 모드에서는 보호 메커니즘을 해제하고 직접 하드웨어 레지스터나 메모리 매핑을 조작할 수 있는데, 이러한 “불필요한 중간 계층을 최소화한” 방식이 곧 제한된 추상화(limited abstraction) -> 속도가 빠름
- 반대로 편리한 추상화는 개발자가 복잡한 하드웨어·시스템 동작을 일일이 다루지 않아도 되고, 단순한 함수 호출만으로 원하는 기능을 쉽게 쓸 수 있도록 감춰 둔 계층을 말함
- EX) open(), read() 등의 함수 호출
- 제한된 추상화(커널 모드)는 빠른 처리 속도가 장점, 편리한 추상화는 느리지만 안전함
728x90
반응형
'운영체제' 카테고리의 다른 글
linux getuid와 geteuid (0) | 2025.05.19 |
---|---|
VMware Windows11 설치 방법 (0) | 2023.10.26 |
윈도우 VMware 환경에서 macOS(Monterey) 설치 및 네트워크(인터넷)연결 방법 (0) | 2022.06.14 |
macOS] DNS Suffix 테스트( /etc/resolve.conf 관련) (0) | 2022.04.04 |