일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- #보안뉴스
- Easy
- springframework
- #심플즈 크랙미
- java8
- #크랙미
- #보안이슈
- #크랙미2번
- #크랙미 10번
- 리버싱
- java
- #심플즈
- leetcode
- #abex크랙미4번
- #크랙미3번
- #파밍
- #고클린
- GraphQL
- #리버싱
- #크랙미 9번
- #abex크랙미
- #크랙미 5번
- #abex
- #크랙미4번
- Spring
- Today
- Total
Halo World
커널과 쉘 본문
리눅스는 커널이라고 불리는 하드웨어를 직접 제어하는 부분과 그 위에 커널에 명령을 주는 하나 이상의 쉘로 구성되어 있다.
| 커널(Kernel)
- 하드웨어를 직접 제어하는 UNIX의 가장 핵심적인 부분
- 쉘에서 명령을 받아 수행함
- 컴퓨터의 시스템 자원들을 관리
- 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행됨
- 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당
- 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입/출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능을 수행
| 쉘(Shell)
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 쉘이 존재해야 커널에게 명령을 전달할 수 있음
- 시스템과 사용자 간의 인터페이스를 담당
- DOS의 COMMAND.COM과 같은 기능을 수행한다.
- 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체 처리가 가능하다.
- 공용 쉘(Bourne Shell, C Shell, Korn Shell)이나 사용자 자신이 만든 쉘을 사용할 수 있다.
- sh, ash, bash, csh과 같은 다양한 쉘이 존재
- cmd창도 쉘의 일종
| 쉘과 커널로 구분하는 이유는?
운영체제의 핵심이 커널이지만, 기계적인 부분이 많기 때문에 사용자가 바로 커널을 제어하기는 매우 어렵다. 때문에 사용자가 내린 명령을 운영체제의 핵심인 커널 부분이 잏할 수 있도록 번역해주는 프로그램이 필요하고 이 역할을 하는 것이 쉘이다.
[참조]
http://twinjh.tistory.com/12
http://hackingzone.tistory.com/5
'개발 지식 > OS' 카테고리의 다른 글
프로세스의 개념과 PCB (0) | 2017.07.09 |
---|---|
[OS 문제] 2일차 (0) | 2017.07.06 |
리눅스 커널모드와 유저모드 (0) | 2017.07.04 |
페이징 교체 알고리즘 (0) | 2017.07.02 |
[OS 문제] 1일차 (0) | 2017.07.02 |