운영체제 (Operating Systems , OS)
- 사용자의 하드웨어, 시스템 리소스 (Hardware) 를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어
- 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할
- 응용프로그램 제어 (소프트웨어를 응용프로그램이라고 함)
- 일반적으로 커널에 여러가지 기능이 추가된 상태
Kernel
- 운영체제의 핵심이라 할 수 있는 매우 중요한 소프트웨어로 하드웨어의 자원을 자원이 필요한 프로세스에 나눠주고, 덩달아 프로세스 제어(작업 관리), 메모리 제어, 프로그램이 운영 체제에 요구하는 시스템 콜 등을 수행하는 부분이며 운영 체제의 가장 아래 계층에서 돌아감
- 현재 많이 사용되고 있는 운영 체제는 커널 위에 여러 가지 소프트웨어 계층을 올린 것
Shell
- 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
쉘은 터미널 환경 CLI 와 GUI 환경 두 종류로 분류됨 (Linux bash)
System Call
- 시스템 호출 인터페이스는 운영체제가 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
- 커널 모드로 실행하려면 반드시 시스템 콜을 사용해야 함
API (Application Programming Interface)
- 함수 또는 라이브러리로서, API 내부에는 필요시 해당 운영체제의 시스템이 콜을 호출하는 형태로 만들어짐
운영체제를 만드는 순서
1. Kernel 을 개발
2. 시스템콜을 개발
3. 시스템콜 기반, 프로그래밍 언어별 라이브러리 개발 (API)
4. 지원되는 프로그래밍 언어로 Shell 프로그램 개발
5. 지원되는 프로그래밍 언어로 응용 프로그램 개발
'Study for Backend > Computer Science' 카테고리의 다른 글
[컴퓨터 공학] 스케줄링 알고리즘 (0) | 2024.03.22 |
---|---|
[컴퓨터 공학] 프로세스 (0) | 2024.03.21 |
[컴퓨터 공학] 메모리 (0) | 2024.03.19 |
[컴퓨터 공학] 논리 연산과 Adder (0) | 2024.03.18 |
[컴퓨터 공학] Bit와 Byte (0) | 2024.03.18 |