-
커널과 쉘Web 개발/Web 기본 지식 2022. 1. 7. 20:00
사용자가 입력한 명령어는 일려의 과정을 거쳐 하드웨어를 제어하게 된다. 사용자가 명령어를 작성하고 조작하기 까지 이 사이에는 몇 가지의 과정을 거쳐서 수행을 하게 되는데, 명령어를 입력하게 되면 컴퓨터 내부에서는 쉘(Shell)이 이를 받아들이고, 명령어를 해석하여 커널(Kernel) 을 통해 하드웨어를 조작한다. 즉 제일 하단에는 하드웨어가 있고, 그 위에는 커널, 커널위에는 쉘, 그리고 쉘 위에는 사용자가 존재하여 사용자인 유저의 입력을 받게 된다.
커널
커널은 운영체제의 핵심 으로, 쉽게 말해 소프트웨어와 하드웨어간의 커뮤니케이션을 관리하는 프로그램 이다.
운영체제에서 가장 중요한 구성요소로서 입출력을 관리하고 소프트웨어로부터의 요청을 컴퓨터에 있는 하드웨어(CPU,메모리,저장장치등)가 처리 할 수 있도록 요청을 변환하는 역할을 한다. 이렇게 하드웨어를 관리하고 필요한 프로세스를 나눠주는 등 여러 시스템 자원을 제어하고, 컴퓨터 부팅시 부트로더에 의해 로드되에 항상 메모리에 상주하게 된다.
보안
커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임진다.
자원관리
한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다. 특히 프로세스에 처리기를 할당하는 것을 스케쥴링이라 한다.
추상화
같은 종류의 부품에 대해 다양한 하드웨어를 설계할 수 있기 때문에 하드웨어에 직접 접근하는 것은 문제를 매우 복잡하게 만들 수 있다. 일반적으로 커널은 운영 체제의 복잡한 내부를 감추고 깔끔한 일관성 있는 인터페이스를 하드웨어에 제공하기 위해 몇 가지 하드웨어 추상화(같은 종류의 장비에 대한 공통 명령어의집합)들로 구현된다. 이 하드웨어 추상화는 프로그래머가 여러 장비에서 작동하는 프로그램을 개발하는 것을 돕는다. 하드웨어 추상화 계층(HAL)은 제조사의 장비 규격에 대한 특정한 명령어를 제공하는 소트웨어 드라이버에 의지한다.
쉘
사용자와 운영체제간의 대화를 가능하게 해주는 명령어 해석기 역할을 말한다.
사용자(명령) -> 쉘(해석) -> 커널(명령 수행 후 결과 전송) -> 쉘(해석) -> 사용자(결과확인)
출처- jinShine 블로그[컴퓨터 기초] 커널(Kernel)과 쉘(Shell), 위키백과 -커널(컴퓨팅)
'Web 개발 > Web 기본 지식' 카테고리의 다른 글
Web Server와 WAS의 차이 1 (0) 2022.01.17 아스키 코드 (0) 2022.01.13 오픈소스 라이선스 종류 (0) 2022.01.07 TMS (0) 2022.01.02 CI/CD (0) 2021.12.29