본문 바로가기

Computer Science

운영체제 - 커널과 쉘, 시스템 콜

 

 

 

 

 

운영체제란?

운영체제

   - Operating System, OS라고 부릅니다.

   - 사용자와 하드웨어간 인터페이스제공, 시스템 자원관리, 응용프로그램 관리 등을 수행합니다.

   - 운영체제의 코어(핵심)부분을 커널(Kernel)이라고 부릅니다.

 

 

 

 

운영체제의 역할

   1. 시스템 자원( 컴퓨터 하드웨어 ) 관리

      - CPU, Memory, I/P Devices 등을 관리합니다.

   2. 사용자와 컴퓨터간 커뮤니케이션 지원

   3. 응용 프로그램 제어

      - 다양한 소프트웨어의 실행, 접근권한, 사용자 관리 등을 수행합니다.

 

 

 

 

커널과 쉘

   - 커널(Kernel)

      : 운영체제의 핵심 부분입니다.

      : 운영체제는 커널과 일부 응용프로그램및 보조 기능으로 구성되어 있습니다.

   - 쉘 (Shell)

      : 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램입니다.

      : 명령어 기반 인터페이스(CLI)와 그래픽 기반 인터페이스(GUI)가 있습니다.

      : 리눅스 의 bash등이 쉘에 속합니다.

      

 

 

 

커널모드와 사용자모드

   프로그램이 전체 컴퓨터 프로그램에 접속할 수 있다면, 문제가 발생합니다.

   응용프로그램은 누구나 만들수 있기 때문입니다.

   -> 멋대로 프로그램을 변경하거나 제거하는 문제가 발생

 

   이 때문에 운영체제는 커널모드와 사용자 모드로 나뉩니다.

   - 사용자모드 : 함부로 응용프로그램이 전체 컴퓨터 시스템을 해치지 못하게 만드는 상태입니다.

   - 커널모드 : 운영체제의 커널에 접근할 수 있는 모드로, 전체 프로그램에 대한 수정/삭제 권한을 얻습니다.

 

 

 

 

CPU Protection Ring

Ring 0 (kernel)과 Ring 1,2,3 (User)로 구성된 CPU Protection Ring

   - 컴퓨터의 접근 권한을 원형으로 표현한 그림입니다.

   - 커널은 0, OS 서비스는 1과 2, 응용프로그램은 3과 같이 단계별로 접근권한을 설정합니다.

 

 

 

 

시스템 콜

   - 사용자모드와 커널모드 간 연결을 위해 운영체제에서 제공해주는 함수입니다.

   - 커널모드로 실행하기 위해서는 반드시 시스템 콜을 거쳐야 합니다.