반응형
학습전략
- Operating System Concepts 책 (공룡책)
- 핵심에 집중할 것
- 50% 이해를 목표로 할 것
- 노트에 그림과 글로 적어보며, 곰곰히 생각해볼 것
- 곰곰히 여러 가지 각도에서 생각해보며, 깨닫는 과정을 익히는 것이 필요함
- 말로 설명할 수 있도록 해보기
운영체제란?
- OS (Operating System)
- 주요 운영체제: 윈도우, UNIX계열 OS(리눅스), MacOS
사용자, 응용 프로그램, 운영체제, 컴퓨터 하드웨어와 관계
- OS는 더 정확히는 커널(kernel)을 의미함
- 일반적으로는 커널에 여러가지가 추가된 상태를 OS라고 통칭함
안드로이드는 OS일까요?
kernel과 프로그램 사이에 많은 시스템 프로그램과 함수(라이브러리)들이 존재
운영체제는 사용자 인터페이스 제공: 쉘
쉘 (Shell)
- 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
- 쉘은 터미널 환경(CLI)과, GUI환경 두 종류로 분류
- 유명한 쉘: 리눅스 bash
쉬어가기: 터미널 환경
mdir
- MS-DOS용 파일관리 쉘 프로그램
운영체제는 응용 프로그램 인터페이스 제공: 시스템 콜
시스템 콜 (System Call)
- 시스템 콜 또는 시스템 호출 인터페이스
- 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
http://man7.org/linux/man-pages/man2/open.2.html
open(2) - Linux manual page
open(2) — Linux manual page OPEN(2) Linux Programmer's Manual OPEN(2) NAME top open, openat, creat - open and possibly create a file SYNOPSIS top #include int open(const char *pathname, int flags); int open(const char *pathname, i
man7.org
프로그래밍 언어별 해당 운영체제에 맞는 API 구현
API (Application Programming Interface)
- 모호한 용어이지만, 간단히 함수 또는 라이브러리(library)라고 이해하면 됨
API 내부에는 필요시 해당 운영체제의 시스템 콜을 호출하는 형태로 만들어짐
- 함수든 변수든 결국 주소가 있고, 해당 주소에서 코드를 실행하는 형태
- 참고: SystemCall[System Call and API]
운영체제를 만든다면?
- 1. 운영체제를 개발 (kernel)
- 2. 시스템 콜을 개발
- 3. 시스템 콜 기반, 프로그래밍 언어별 라이브러리 개발 (API)
- 4. 지원되는 프로그래밍 언어로 Shell 프로그램 개발
- 5. 지원되는 프로그래밍 언어로 응용 프로그램 개발
User | |||
Application | Shell | ||
Library or API | |||
System Call | |||
Operating System | |||
Hardware | |||
CPU | Memory | Storage | Network |
반응형
'cs > computer-science-basic' 카테고리의 다른 글
기술면접 - 6. 컨텍스트 스위칭과 IPC (InterProcess Communication) (0) | 2022.03.23 |
---|---|
기술면접 - 5. 스케쥴러와 프로세스 상태 (0) | 2022.03.23 |
기술면접 - 4. 프로세스 (process) (0) | 2022.03.23 |
기술면접 - 3. 응용 프로그램 (0) | 2022.03.23 |
기술면접 - 2. 사용자 모드와 커널 모드 (0) | 2022.03.23 |