Linux 커 널 디자인 및 구현 노트1_기본 개념

4047 단어 Kernel
Linux 커 널 디자인 및 구현 노트1_기본 개념
운영 체제 라 는 단 어 는 운영 체제 와 그 위 에서 실행 되 는 모든 응용 프로그램 을 포함한다. 운영 체 제 는 전체 시스템 에서 가장 기본 적 인 기능 과 시스템 관 리 를 완성 하 는 부분 을 말한다. 이런 부분 은 다음 과 같이 포함해 야 한다.
커 널, 장치 드라이버, 시작 안내 프로그램, > 명령 행 셸, 사용자 인터페이스, 기본 파일 관리 도구 시스템 도구.
커 널 사용자 인터페이스 는 운영 체제 의 외적 이미지 이 고 커 널 이 야 말로 운영 체제 의 내재 적 핵심 이 며 시스템 의 다른 부분 은 커 널 이라는 일부 소프트웨어 가 제공 하 는 서비스 에 의존 해 야 한다. 예 를 들 어
하드웨어 설비 관리, 시스템 자원 배분 등
커 널 의 구성 커 널 은 관리자 나 운영 체제 의 핵심 이 라 고도 불 린 다. 보통 커 널 은
인 터 럽 트 된 인 터 럽 트 서비스 프로그램 에 응답 하고 프로 세 스 주소 공간 을 관리 하 는 메모리 관리 프로그램 을 담당 하 며 여러 프로 세 스 를 관리 하여 프로세서 시간의 호출 프로그램, 네트워크, 프로 세 스 간 통신 등 시스템 서비스 등 공동 구성 을 공유 합 니 다.
커 널 공간 은 커 널 보호 체 제 를 가 진 현대 시스템 에 있어 커 널 은 일반 응용 프로그램 에 독립 되 어 있다. 그 는 보통 '시스템 상태' 에 있다. 즉, 보 호 받 는 메모리 공간 과 하드웨어 장 치 를 방문 하 는 모든 권한 을 가진다. 이런 시스템 상태 와 보 호 된 메모리 공간 을 커 널 공간 이 라 고 통칭 한다.
사용자 공간 응용 프로그램 은 사용자 공간 에서 실 행 됩 니 다. 그들 은 그들 이 사용 할 수 있 는 일부 시스템 자원 만 볼 수 있 고 특정한 시스템 기능 만 사용 할 수 있 습 니 다. 하드웨어 에 직접 접근 할 수 없고 커 널 을 방문 하여 다른 사람의 메모리 범 위 를 구분 할 수 없습니다. 그리고 다른 제한 도 있 습 니 다.
시스템 상태 전환
커 널 이 실 행 될 때 시스템 내 핵 상태 가 커 널 공간 에 들 어가 실 행 됩 니 다. 일반적인 사용자 프로그램 을 실행 할 때 시스템 은 사용자 상태 로 사용자 공간 에 들 어가 실 행 됩 니 다.
시스템 호출
응용 프로그램 은 시스템 호출 을 통 해 커 널 이 일부 임 무 를 대신 수행 하도록 합 니 다. 커 널 이 대신 수행 하고 있다 고 합 니 다.
응용 프로그램 은 시스템 을 통 해 커 널 공간 에서 실행 되 고 커 널 은 문맥 에서 실행 된다 고 합 니 다.
응용 프로그램 이 시스템 호출 을 통 해 커 널 공간 에서 실행 되 는 것 은 응용 프로그램 이 작업 을 완성 하 는 기본 적 인 행위 방식 이다.
인 터 럽 트 메커니즘
하드웨어 가 시스템 과 통신 하려 고 할 때 비동기 인 터 럽 트 신 호 를 보 내 CPU 실행 을 중단 한 다음 에 커 널 의 실행 을 중단 합 니 다. 인 터 럽 트 는 인 터 럽 트 번호 에 대응 합 니 다. 커 널 은 인 터 럽 트 번 호 를 통 해 해당 하 는 인 터 럽 트 서비스 프로그램 을 찾 아 실행 하여 인 터 럽 트 를 처리 합 니 다. 많은 운영 체제, 리 눅 스 를 포함 한 인 터 럽 트 관리 프로그램 은 프로 세 스 환경 범위 에서 실행 되 지 않 습 니 다.중 단 된 커 널 환경 을 처리 하 는 데 사용 되 는 범위 에서 실 행 됩 니 다. 중 단 된 빠 른 처리 와 빠 른 탈퇴 를 확보 하기 위해 서 입 니 다.
모든 프로세서 가 어느 순간 에 커 널 활동 은 반드시 세 가지 중 하 나 를 포함 합 니 다.
  • 사용자 공간 에서 실행 되 고 사용자 프로 세 스 를 실행 합 니 다.
  • 커 널 공간 에서 실행 되 고 프로 세 스 컨 텍스트 를 처리 하 며 특정한 프로 세 스 를 대표 합 니 다.
  • 커 널 공간 에서 실행 되 며 인 터 럽 트 컨 텍스트 를 실행 합 니 다. 모든 프로 세 스 와 상 관 없 이 특정 인 터 럽 트 를 처리 합 니 다.
  • CPU 가 비어 있 을 때 커 널 은 빈 프로 세 스 를 실행 하고 프로 세 스 컨 텍스트 사이 에 있 으 며 커 널 공간 에서 실 행 됩 니 다.
  • MMU
    유 닉 스 커 널 은 정적 실행 가능 한 라 이브 러 리 로 볼 수 있 습 니 다. 따라서 유 닉 스 시스템 의 실행 은 하나의 실행 가능 한 블록 으로 하나의 주소 공간 에서 실행 되 어야 합 니 다. 따라서 MMU 시스템 으로 메모 리 를 관리 해 야 합 니 다.MMU 는 페이지 메커니즘 이 라 고도 부 릅 니 다. 유 닉 스 커 널 은 보통 하드웨어 시스템 이 페이지 메커니즘 을 제공 하고 메모 리 를 관리 하여 모든 프로 세 스 가 서로 다른 가상 주소 공간 에서 실 행 될 수 있 도록 해 야 합 니 다.
    운영 체제 의 커 널 은 3 대 진영 으로 나 뉜 다. 단일 커 널 은 가장 간단 한 디자인 입 니 다. 단일 커 널 이란 커 널 을 하나의 큰 과정 으로 실현 하 는 것 입 니 다. 하나의 단독 주소 공간 에서 커 널 을 정적 바 이 너 리 파일 로 디스크 에 저장 하고 모든 커 널 서 비 스 는 같은 커 널 의 주소 공간 에서 실 행 됩 니 다. 모두 가 커 널 상태 에서 실 행 됩 니 다.모든 프로 세 스 와 시스템 서 비 스 는 같은 주소 에 있 기 때문에 사용자 공간 과 커 널 공간 은 같은 주소 공간 에서 사용자 프로그램 과 시스템 프로그램 간 에 서로 호출 할 수 있 고 격 리 되 지 않 으 며 단일 모듈 은 간단 하고 고성능 의 특징 을 가지 고 대부분 유 닉 스 시스템 은 단일 모듈 로 설계 되 었 다.
    마이크로 커 널 은 커 널 을 여러 개의 독립 된 과정 으로 나 누고 모든 과정 을 하나의 서버 라 고 부른다.
    특권 서 비 스 를 강력 히 요청 하 는 서버 만 이 특권 모드 에서 실 행 될 수 있 습 니 다. 다른 서버 는 모두 사용자 공간 에서 실 행 됩 니 다. 커 널 공간 과 사용자 공간 이 서로 다른 주소 영역 에 있 기 때문에 직접 접근 할 수 없고 메시지 전달 처 를 통 해 서버 간 통신 만 할 수 있 습 니 다. 시스템 은 프로 세 스 간 통신 IPC 체 제 를 사용 합 니 다.각 서버 는 IPC 메커니즘 을 통 해 서로 메 시 지 를 주 고 받 습 니 다. 이러한 모듈 화 디자인 은 각 서버 가 분리 되 어 실행 되 기 때문에 서로 다른 주소 구역 에서 서버 가 붕괴 되 는 것 을 피 할 수 있 고 시스템 이 붕괴 되 며 단일 커 널 보다 안전 합 니 다.
    마이크로 커 널 의 단점:
    IPC 메커니즘 의 비용 은 함수 호출 보다 많 고 커 널 공간 과 사용자 공간의 전환 과 관련 되 기 때문에 메 시 지 를 전달 하 는 데 일정한 시간 이 필요 하 다. 그러나 커 널 은 이런 비용 이 들 지 않 고 실제 적 인 마이크로 커 널 시스템 은 모든 커 널 서 비 스 를 커 널 공간 에 두 기 때문에 커 널 서비스 간 에 직접 호출 하여 커 널 서비스 간 에 메 시 지 를 전달 하 는 비용 을 피 할 수 있다.Windows NT 와 Max OS X 는 모두 마이크로 커 널 의 전형 적 인 사례 이다.
    Linux 는 단일 커 널 시스템 으로 모든 일 을 커 널 상태 에서 실행 시 키 고 함 수 를 직접 호출 하 며 메 시 지 를 전달 하 는 비용 이 없습니다.
    Linux 커 널 버 전의 명명 메커니즘:
    첫 번 째 숫자 는 메 인 버 전 번호, 두 번 째 숫자 는 버 전 번호, 짝수 는 안정 판, 홀수 는 개발 판 세 번 째 숫자 는 수정 버 전 번호, 네 번 째 숫자 는 안정 버 전 번호 (선택 가능), 예 를 들 어 2.6.26.1 커 널 메 인 버 전 번 호 는 2, 버 전 번호 6, 수정 버 전 번호 26, 안정 버 전 번 호 는 1 이다.

    좋은 웹페이지 즐겨찾기