운영체제의 역할
1. CPU 스케줄링과 프로세스 관리
CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자우너 할당 및 반환을 관리
2. 메모리 관리
한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리
3. 디스크 파일 관리
4. I/O 디바이스 관리
마우스, 키보드, 컴퓨터 간에 데이터 주고받는 것을 관리

GUI 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태
CUI 그래픽이 아닌 명령어로 처리하는 인터페이스
드라이버 하드웨어를 제어하기 위한 소프트웨어
시스템콜
운영체제가 커널에 접근하기 위한 인터페이스
유저 프로그램이 운영체제의 서비스를 받기 위해 커널함수를 호출할 때 씀

프로세스나 스레드에서 운영체제로 어떠한 요청을 할 때 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달됨
시스콜은 하나의 추상화 계층
네트워크 통신이나 데이터베이스와 같은 낮은 단계의 영역 처리에 대한 부분을 많이 신경 쓰지 않고 프로그램을 구현할 수 있는 강점이 있음

modebit
1 또는 0의 값을 갖는 플래그 변수
시스템콜이 작동될 때 modebit을 참고해서 유저 모드와 커널 모드를 구분
예. 유저 모드 기반으로 카메라가 켜진다면, 사용자가 의도하지 않았는데 공격자가 카메라를 갑자기 켤 수 있음

유저 모드 유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드
커널 모드 모든 컴퓨터 자원에 접근할 수 있는 모드
커널 운영체제의 핵심 부분이자 시스템콜 인터페이스를 제공하며 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할을 함