코딩쌀롱

쉘(shell)과 커널(kernel) 본문

개발공부

쉘(shell)과 커널(kernel)

이브✱ 2021. 1. 10. 00:07

 

컴퓨터를 사용해서 작업을 수행할 때 사용자가 입력한 명령이 컴퓨터 하드웨어를 제어하도록 해줘야 한다. 사용자가 명령을 입력하면 쉘이 명령을 받아 해석하고 커널에 전달하면 커널을 통해 하드웨어를 조작하는 것이다.

커널(Kernel)

 컴퓨터 제일 내부에는 하드웨어가 있고, 그 하드웨어를 관리해주는 것이 운영체제(OS)이다. 이 운영체제의 핵심이 바로 커널(Kernel)이다. 

 

• 소프트웨어 - 하드웨어간의 커뮤니케이션을 관리하는 프로그램.

 입출력을 관리, 소프트웨어로의 요청을 하드웨어(CPU, 메모리, 저장장치 등)가 처리할 수 있도록 요청을 변환

 하드웨어 관리 및 프로세스 분배 등 여러 시스템 자원 관리

•하드웨어를 직접적으로 제어하는 운영체제에서 가장 핵심 요소

 

커널은 주로 하드웨어 자원을 효율적으로 관리하기 위해서 필요하다. 커널이 시스템 자원을 관리한다고 했지만 관리가 일어나기 위해서는 어떤 명령이 실행된다든지 프로그램이 실행되어야 한다. 그런 명령의 실행은 유저의 입력에 의한 것이 대부분이다. 이 때 유저의 입력을 어떻게 받아서 처리할 것인지를 결정하고 도와주는 것이 쉘이다.

 

쉘(Shell)

 사용자와 운영체제 간의 대화를 가능하게 해주는 명령어 해석기

사용자(명령) → 쉘(해석) → 커널(명령 수행 후 결과 전송) → 쉘(해석) → 사용자(결과 확인)

•사용자의 입력 명령을 해석해서 커널이 이해할 수 있도록 대신 전달해줌

•커널을 직접 제어하는 것은 어려운 일이기 때문에 사람이 이해하기 쉬운 형태의 명령어를 입력하면 쉘 프로그램이 해석해서 커널에게 전달해줌

•유닉스 시스템을 만든 사람들이 쉘과 커널을 분리한 이유는 여러가지 쉘 프로그램이 생길 수 있고, 사용자들이 선호에 따라 고를 수 있게 된 것이라고 생각됨

•bash, zsh같은 다양한 쉘이 존재

 

쉘의 종류 - GUI, CLI

GUI(Graphical User Interface)

•사용자가 아이콘같은 그래픽 요소를 사용해 시스템과 상호작용

•CLI에서 사용자의 입장을 배려한 입력 방식

•대부분의 GUI는 CLI환경도 가지고 있음(윈도우 cmd)

•장점: 사용자가 명령어가 아닌 마우스 클릭으로 작업 수행 가능

•단점: CLI보다 메모리 사용량이 많고 느림

 

CLI(Command Line Interface)

•사용자가 명령(Command Line)을 사용하여 시스템과 상호작용

•명령 입력 → 터미널 또는 쉘이 해석해서 작업 수행

•예시: Unix, Linux, Apple DOS...

 

장점   •GUI보다 메모리 사용량이 적고 실행 속도가 빠르다.
  응용, 조합하면 더 높은 수준의 결과를 얻을 수 있다.
  가장 low level의 입력방식으로 하드웨어적인 부분에 접근하기 쉽다.
단점   명령어를 알아야 함

 

 

 


참고

블로그 - 커널과 쉘

블로그 - shell과 kernel 차이

생활코딩(유튜브) - Linux - Shell 1 : intro

블로그 - CLI, GUI, NUI

'개발공부' 카테고리의 다른 글

빅 오 표기법(big O notation)  (0) 2021.01.12
NAT와 포트포워딩  (2) 2021.01.10
리눅스(Linux)의 역사  (0) 2021.01.09
[백준_node.js] 1076. 저항  (0) 2021.01.07
Comments