쉘(Shell) | 사용자 인터페이스
- 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공한다.
- 사용자가 화면을 통해 실제로 볼 수 있고, 사용자의 지시를 해석해서 커널에 전달해주는 역할
✔ 쉘의 일반적인 예시
1. GUI : 윈도우 쉘
2. CLI : 터미널
3. bash : Linux(서버) 환경에서 가장 많이 사용한다.
시스템 콜 | System call
- 운영체제는 응용 프로그램의 인터페이스를 제공하는 데 이를 시스템 콜이라 부른다.
- 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
✔ 시스템 콜 순서
응용프로그램 -> API -> 시스템 콜(System Call) -> 저장매체(HDD, SSD, ...)
✔ 코드 예시
사용자모드에서 프로그램 실행 -> open() 시스템 콜 호출 -> 커널 모드 전환
-> open() 함수를 처리하는 sys_open() 커널 함수 호출 -> 파일 열기의 low 레벨 연산 수행
-> 사용자 모드 전환 -> open() 함수 이후의 프로그램을 계속해서 실행
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
API
- 응용프로그램이 운영체제의 기능을 사용하기 위한 함수나 라이브러리 형태이다.
- API 내부에는 필요 시에 해당 운영체제의 시스템 콜을 호출하는 형태로 만들어진다.
운영체제 순서
1. 운영체제 개발(Kernel)
2. 시스템 콜 개발
3. 시스템 콜 기반, 프로그래밍 언어 라이브러리 개발(API)
4. Shell 프로그램 개발
5. 응용프로그램(Application) 개발
커널 | Kernel
- 프로그램이 요청한 처리를 하드웨어에 나누어 처리 요구 및 시스템 콜을 수행한다.
- 메모리 제어 등 운영체제에서 없어서는 안되는 요소이다.
✔ 시스템 콜 실행은 커널 모드로 실행
- 커널 모드에서만 실행 가능한 기능들이 있기에, 실행하려면 시스템 콜을 사용해야한다.
- 시스템 콜은 운영체제가 제공한다.
CPU 보호 링 | CPU Protection Ring
- CPU에서 악성 소프트웨어 및 버그로 인한 충돌로부터 커널을 보호하기 위한 기능이다.
✔ 권한 레벨
- Level 0 : 커널
- Level 1, 2 : OS 서비스
- Level 3 : 응용프로그램
'Knowledge > CS지식' 카테고리의 다른 글
[OS] 운영체제의 개념 (0) | 2023.09.16 |
---|---|
[컴퓨터구조] 논리 회로와 불 대수 연산 (0) | 2023.09.04 |
댓글