without haste but without rest
[OS] 02. 시스템콜 본문
운영체제는 사용자 인터페이스를 제공한다. -> 쉘
쉘은 CLI, GUI 환경이 있다.
시스템 콜(시스템 호출 인터페이스) (요청서)
운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수
API 내부에는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분이다.
시스템콜의 복잡성을 완화하기 위해 각 언어는 API, Library형태로 시스템콜을 사용할 수 있도록 제공한다.
해당 API, Library를 활용하여 응용 프로그램을 개발한다.
핵심 운영체제 (커널)
운영체제를 만든다면?
1. 운영체제 개발 (kernel)
2. 시스템 콜 개발
3. C API (Library)
4. Shell 프로그램
표준적인 시스템콜을 정의하는 문서가 있다.
- POSIX API (유닉스 계열은 해당 포맷을 따른다.)
API: 각 언어별 운영체제 기능 호출 인터페이스 함수 (각 언어별 인터페이스)
시스템 콜: 운영체제 기능을 호출하는 함수
정리
운영체제는 컴퓨터 하드웨어와 응용 프로그램을 관리한다.
사용자 인터페이스를 제공하기 위해 쉘 프로그램을 제공한다.
응용 프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템 콜을 제공한다.
보통 시스템 콜을 직접 사용하기 보다는 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리를 사용한다.
CPU Protection Rings
- CPU도 권한 모드가 있다. 해당 권한을 구분하는게 CPU Protection Rings다.
1. 사용자 모드(user mode)
2. 커널 모드 (kernel mode): 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드 (OS가 CPU를 직접 쓸 때)
kernel이란? 운영체제의 핵심
- 알맹이라는 뜻
shell
- 껍데기
커널을 사용하기 위한 껍데기~
시스템 콜은 사용자 모드로 실행을 한다.
커널 모드에서만 실행 가능한 기능들이 있다.
커널 모드로 실행하려면 반드시 시스템 콜을 사용해야한다. (파일 오픈 등...)
시스템 콜은 운영체제 제공
운영체제를 배우며 개발하는 어플리케이션의 작동방식을 큰 그림으로 이해하기
운영체제는 시스템 콜을 제공하고
프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API제공
응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성한다.
응용프로그램이 실행돼서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되어서 커널 모드로 변경되고 OS내부에서 해당 명령이 실행되고, 다시 응용 프로그램으로 돌아간다.
'Computer Science > OS' 카테고리의 다른 글
운영체제 요약 (0) | 2021.12.05 |
---|---|
[OS] 03. 프로세스 스케쥴링 (0) | 2021.07.01 |
[OS] 01. 운영체제 개요 (0) | 2021.06.30 |
[VM] VDI, VHD, VMDK 차이점 (0) | 2020.03.01 |