Kernel : 운영체제의 핵심이 되는 프로그램. 하드웨어 자원을 할당해주고 프로세스 제어, 메모리 제어 , 시스템 콜 수행 등 OS 역할의 대부분을 차지한다. OS는 이 커널 위에 GUI나 디스플레이 같은 유틸리티들을 더 얹은거임
<aside> 😮 Linux는 운영체제가 아니라 커널이다! Ubuntu, CentOS, Android, 데비안 같은 OS들은 리눅스 커널을 기반으로 만들어진 배포판이다.
</aside>
똑같은 아크 원자로(커널)에 다른 유틸리티들을 붙여 용도에 맞게 커스텀한 다양한 수트(배포판)들
Operating System Services
Application, program들에게 프로그램이 수행할 수 있는 환경을 제공함
batch : 주기적 실행, stack 처럼 쌓아두고 차근차근 실행하는 방식
System Calls를 통해야만 OS service에 접근할 수 있다 (일종의 인터페이스)
OS Interface : Command Interpreter (Command-line Interface ; CLI)
Shell(sh, ksh, csh, bash) 라고도 불림
목표 : 사람으로부터 명령을 받아 실행을 하기 위함
Shell는 built-in command와 system program을 실행시킬 수 있다.
OS 서비스 종류
I/O operation : 프린터, 스캐너 같은거 I/O 작업 File system mainipulation : 파일/디렉토리 CRUD Communication : 프로세스들 간에 통신 Error detection : 에러가 났을 때 대처 (0으로 나누기, 다른 프로세스 메모리 영역 침범)
![Resource allocation : 컴퓨터 자원(대역폭, 디스크 영역, ...)
Resource allocation : 컴퓨터 자원(대역폭, 디스크 영역, ...)