시스템 콜을 통과하는 순간
시스템 콜이 진짜로 실행되는 명령은 커널 모드에서 실행 된다
운영체제라는 특권권한을 가지고 cpu에 실행을 한다.
사용자 모드와 커널 모드를 구(분하기 시작해야한다)
- 커널 모드에서만 실행 가능한 기능들이 있음
- 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야 함(거쳐야 함)
- 시스템 콜은 운영체제 제공
응용프로그램이 시스템 콜을 통과해서 커널 모드인 상태로 변환된 상태에서 cpu에서 실행이 된다.
만약 응용프로그램이 cpu를 강제로 실행하려고 해도 사용자 모드이기에 cpu에서 실행이 안된다
(반드시 시스템콜을 이용해야하고 os에서 시스템 콜을 제공(구현?)해줘야 한다.)
- 함부로 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못함
- 주민등록본은 꼭 동사무소 or 민원24시(정부사이트)에서 특별한 신청서를 써야만, 발급(사용자모드)
- 동사무소 직원분들은 특별한 권한을 가지고, 주민등록등본 출력 명령을 실행(커널모드)
직원 -> 발급(시민)
응용 프로그래머
API를 가지고 응용프로그램을 만드는 것
시스템 프로그래머는
운영체제(shell) / API / System call + 하드웨어
그림1.
open('data.txt',O_RDONLY);
저장 매체 <- os
open 이전까지 사용자 모드
open (API -> system call)
정리