커널과 쉘에 대하여

양승현·2022년 7월 17일
0

linux

목록 보기
2/20
post-thumbnail
  • 커널은 주로 하드웨어 자원을 효율적으로 관리하기 위해서 필요하다.

  • 커널이 시스템 자원을 관리하지만 관리하기 위해서는 유저의 입력을 통해 명령이 실행되거나 프로그램이 실행된다.

  • 이 때 유저의 입력을 어떻게 받아 처리할 것인지 결정하고 도와주는 것이 쉘의 역할이다.


커널(kernel)

  •  컴퓨터 제일 내부에는 하드웨어가 있고, 이 하드웨어를 관리해주는 것이 운영체제(OS)의 핵심 커널이다.
  • 하드웨어(H/W)에는 CPU, 메모리(RAM), 하드디스크(HDD), 기타 입출력 장치 등 실제 직접 조작할 수 없어 커널을 통해 시스템 자원을 효율적으로 관리한다.
  • 눅스의 우분투, 센토스 등의 배포판은 리눅스 커널을 기반
  • 사용자가 쉘을 통해 입력한 명령어를 해석하여 기계가 이해할 수 있는 표현으로 바꾸어 전달해주는 역할이 커널이다.
  • 일종의 OS

쉘(shell)

  • 쉘은 커널을 사용자가 직접 제어하기는 어렵기 때문에 바로 사람이 이해하기 쉬운 형태로 명령어를 입력하면, 그 명령어로 쉘에 해당하는 프로그램들이 해석해서 커널에게 전달해 주는 것, 소프트웨어와 하드웨어간의 커뮤니케이션을 관리하는 프로그램
    -> 사용자(명령)-> 쉘(해석) -> 커널(명령 수행 후 결과 전송) -> 쉘(해설) -> 사용자(결과 확인)
  • 명령어 해석기 기능, 프로그래밍 기능(Shell Script), 사용자 환경 설정 기능( 파일의 권한 설정, 명령어를 찾아오는 경로 설정 등)

  • cat /etc/shells을 입력하면 사용가능한 쉘의 종류를 확인 가능
  • 현재 사용중인 쉘 확인

Bourne Shell(/bin/sh)

  • 본쉘이라고 하며, 최초의 쉘이지만 미흡한 기능이 많다. 일반 유저의 쉘 프롬프트는 $, root사용자의 프롬프트는 #으로 나타난다.

bash (Bourne-Again Shell)

  • 리눅스에서 가장 많이 사용되는 표준 쉘이다. 보통 기본적으로 주어지는 쉘이 bash 이다. 
  • 자주 사용하는 자동완성 기능인 tab 또한 bash의 기능이다.
  • POSIX와 호환되며, GNU 프로젝트에 의해 만들어지고, 배포되고 있다.
  • 명령행 편집기능을 제공한다.

shell script

  • 쉘어서 사용하는 명령어들을 통해 스크립트를 만들수 있다.
  • 이런 스크립트를 만들어 쉘에게 알려주면 일련의 명령을 통해 쉘이 자동으로 수행해준다.
  • 이것을 쉘 스크립트라고 하며 확장자는 .sh 이다.
커널과 쉘의 분리 이유
  • 나에게 맞는 쉘을 선택하여 사용할 수 있다.

0개의 댓글