[모두의 리눅스] shell에 대해 알아보자

어쩌다·2023년 2월 15일
0

[모두의 리눅스] shell에 대해 알아보자

모두의 리눅스
저자 : 미야케 히데아키, 오스미 유스케
번역 : 이동규


shell의 역할과 리눅스 커널(kernel)

kernel(커널)이란?

OS, 운영체제에 핵심이 되는 컴퓨터 프로그램이다.
시스템의 모든 것을 통제하고 핵심 역할을 갖고 있다고 할 수 있다.

"커널은 운영 체제의 중심에서 CPU나 메모리 같은 하드웨어를 관리하면서 명령어를 실행하고 프로세스를 관리합니다."
-- 모두의 리눅스 중...


shell command의 과정

  1. 키보드를 통한 문자열 읽음
  2. 입력 받은 명령어를 찾음
  3. 명령어를 실행
  4. 실행한 결과로 GUI(truminal)에 입력함
  • 해당 순서에서 3번은 리눅스의 본체인 커널이 수행한다.

커널의 역할을 수행하는 주체는 무엇인가?

사용자가 직접 리눅스 커널을 조작한 것이 아닌 사용자에게 명령어를 받아내어 커널의 실행 결과를 출력하는 소프트웨어가 필요하다.
해당 소프트웨어가 바로 shell이라고 할 수 있다.

즉, shell은 kernel의 interface에 해당한다.


왜 kernel과 shell은 나누어져있나?

"한 프로그램에 너무 많은 기능을 넣지 않는다"는 것이 리눅스의 기본 철학입니다.

이러한 이점이 있다.

  1. 커널을 바꾸지 않고 셸만 바꿀 수 있다.
    핵심적인 시스템을 사용하기 보다는 비서 역할을 하는 셸을 사용하고, 이를 바꾸는 쪽이 안전하고 역할 분담이 된다.
  2. 리눅스 외 OS를 사용할 때도 셸만 이식한다면 똑같이 사용할 수 있다.
  3. 셸을 사용할 때 에러나 발생하거나 부하가 커져도 핵심 시스템인 커널에는 영향이 가지 않는다.
profile
혼자 공부하는 공간

0개의 댓글