'Shell'에 해당되는 글 1건

  1. 2015.05.16 리눅스의 커널(kernel)과 쉘(shell)

 리눅스는 커널(kernel)이라 불리는 하드웨어를 직접 제어하는 부분과 그 위에서 커널에 명령을 주는 하나 이상의 쉘(shell)로 구성되어 있다. 커널은 하드웨어를 직접 제어하는 리눅스의 핵심부로서 쉘에서 임무를 받아서 수행한다. 쉘은 명령어 기반 인터페이스인데 이것을 통해서 사용자는 리눅스 OS와 상호 작용을 하게 된다.


  • 커널(kernel) - 리눅스 운영체제의 핵심으로서 프로세스(process) 관리, 메모리 관리, I/O 시스템 관리, 파일 시스템 관리 등을 수행.

  • 쉘 (shell) - 사용자와 내부 커널 사이의 인터페이스 역할 (명령어 해석기)


[그림 1] 리눅스 OS의 구성 계층도


리눅스 커널은 1만 줄 이상의 C 프로그램과 1000여 줄의 어셈블리어로 구성되어 있어서 이식성이 좋다고 한다. 커널은 리눅스가 부팅할 때 메모리로 로딩된다.

[그림 2] 커널과 쉘, 유틸리티, 응용프로그램의 관계도


 그림 2에서 도시된 대로 사용자(user)는 (보통은 키보드로) 명령을 입력하면 쉘에서 그 명령을 해독하여 커널에 전달한 후 그 결과를 출력하게 된다. 쉘을 사용하면 커널단의 복잡한 동작 방식을 알 필요 없이 쉘 상의 인터페이스로 시스템 자원들을 쉽게 관리할 수 있다. 이것이 바로 쉘이 탄생한 이유이기도 하다.


 리눅스에서 쉘은 여러 종류가 있고 쉘마다 특징이 있다. 쉘은 본쉘(bourne shell, bash), C쉘(c shell, csh), 콘쉘(korn shell, ksh)이 있으며, 대부분의 리눅스 시스템에서 본쉘을 사용하고 있다. 본쉘은 쉘프로그래밍(도스로 치면 bat 파일로서 쉘명령어들의 모음)이 쉬운 반면 다른 쉘보다는 사용자와 상호 작용이 부족하다는 단점이 있다.

'맥,리눅스,윈도' 카테고리의 다른 글

리눅스의 터미널 기본 입력  (0) 2015.05.16
리눅스의 파일 시스템  (0) 2015.05.16
리눅스(Linux) 소개  (0) 2015.05.16
자유 소프트웨어 재단 (FSF)의 설립  (0) 2015.05.16
유닉스(unix) 소개  (1) 2015.05.16
Posted by 살레시오
,