Kernel (1) - 커널모드/사용자모드

2025. 5. 20. 17:55·운영체제
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
'운영체제' 카테고리의 다른 글
  • linux getuid와 geteuid
  • VMware Windows11 설치 방법
  • 윈도우 VMware 환경에서 macOS(Monterey) 설치 및 네트워크(인터넷)연결 방법
  • macOS] DNS Suffix 테스트( /etc/resolve.conf 관련)
Royal!
Royal!
Bachelor of Arts. Bachelor of Science in Engineering. Master of Science in Engineering (In Progress). Job Title: Infrastructure & Security & Cloud Engineer. Etc: Mentor at Fourth Industrial Revolution Center.
  • Royal!
    Security
    Royal!
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 운영체제 N
      • 네트워크
      • 클라우드
      • 서버
      • Container
      • 프로그래밍
        • Python_혼자 끄적끄적
        • Python_AI(영상처리)
        • 빅데이터
        • C_정보올림피아드 Language_Coder
        • C_QnA
      • 자격증
        • 정보보안기사
        • 정보처리기사
        • ADsP
        • CPPG
        • 보안법률
        • NCA~NCP
        • AWS Certified Solutions Arc..
      • 리버싱
        • 리버싱 걸음마
      • Wargame & CTF
        • Hackerschool FTZ
      • 기타 교육
        • KISA 정보보호제품실습군
        • 빅데이터_분석실무
        • 시큐어코딩진단전문교육(호남정보보호센터)
        • SW테스트 전문가 과정(ISTQB CTFL자격)
        • 정보보호 컨설팅 전문가 양성과정
      • 기타
        • 면접일지
        • 기타
        • 인턴활동
        • 논문 요약
      • K-Shield Jr
        • 악성코드분석
        • 침해사고분석
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    rest api 아키텍처
    ncp이메일이 안 와요
    getuid
    ncp 이메일 기본로직
    euid란
    kernel모드
    네이버클라우드 ftp 설정
    이메일 450 error
    rest api 제약조건
    geteuid()
    rest api 정리
    ipsec vpn 연결 설정
    ncp 이메일테스트
    nce dump
    rest api 논문
    email 450 error
    메일 서버 기본로직
    ncp이메일 문제 해결
    nce덤프
    kernel 사용자 모드
    getuid()
    euid가 중요한 이유
    geteuid
    kernel 구성요소
    uid란
    rest api 문법
    restful api 개념
    smtp 450 error
    rest api 공부
    ncp 이메일 알람 못 받을 경우
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Royal!
Kernel (1) - 커널모드/사용자모드
상단으로

티스토리툴바