CS/운영체제

커널과 쉘

yglee730 2021. 7. 29. 21:08
728x90

커널이란?

시스템의 모든 작업을 제어하는 운영 체제의 핵심

운영체제 자체는 소프트웨어입니다.

그래서 전원이 켜짐과 동시에 메모리에 올라가야 합니다.

하지만 운영체제는 규모가 크기 때문에 모두 올라가면 메모리 공간의 낭비가 심할 것입니다.

그래서 운영체제 중에서 항상 필요한 부분만  전원이 켜짐과 동시에 메모리에 올려놓고

나머지는 필요할 때만 메모리에 올려놓습니다.

이 때, 메모리에 늘 존재하는 운영체제의 부분을 커널이라고 합니다.

 

커널은 사용자가 볼 수 없습니다.

 

커널은 다음과 같은 기능을 수행합니다.

- 메모리 관리

- 프로세스 관리

- 장치 드라이버

- 시스템 호출 및 보안

 

쉘이란?

사용자가 커널과 통신할 수 있는 인터페이스

쉘은 다음과 같은 기능을 수행합니다.

- 사용자와 커널 사이에서 명령어 해석기 기능이 있습니다.

- 자체 내에서 프로그래밍 기능이 있어서 프로그램을 작성할 수 있습니다.

        -> 여러 명령을 사용해 반복적으로 수행하는 작업을 프로그램으로 제작할 수 있습니다.

                      -> 이것을 쉘 스크립트라고 합니다.

- 사용자 환경 설정

        -> 초기화 파일 기능을 이용해 사용자의 환경을 설정할 수 있습니다.

                       -> 로그인할때 이 초기화 파일이 실행됩니다.

 

사용자가 명령을 내리고 결과를 보기까지 다음과 같은 과정을 거칩니다.

1. 사용자가 명령을 내립니다.

2. 쉘이 명령을 해석하고 커널에 전달합니다.

3. 커널이 명령을 수행하고 결과를 전송합니다.

4. 쉘이 결과를 해석합니다.

5. 사용자는 결과를 확인합니다.

 

쉘과 커널의 관계는 다음과 같습니다.