운영체제(OS, Operating System) : 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스 펌웨어(Firmware) : 운영체제와 유사하지만 SW를 추가로 설치할 수 없는 것.
운영체제는 GUI, 시스템호출(시스템콜), 커널, 드라이버가 있으며 가장 위에 응용 프로그램 가장 밑에 하드웨어가 있는 구조

운영체제 구조 이미지
<aside> 💡 ✅ CUI (Character User Interface, Command-Line Interface) : 그래픽이 아닌 명령어로 처리하는 인터페이스
✅ I/O 요청 : 입출력 함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일.
</aside>
유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용.
유저 프로그램이 I/O 요청으로 트랩을 발동 → 올바른 I/O 요청인지 확인 → 유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행
예시 I/O 요청인 fs.readFile() 이라는 파일 시스템의 파일을 읽는 함수가 실행됐다고 가정

유저 모드에서 파일을 읽지 ❌ → 커널 모드로 들어가 파일을 읽음 → 유저 모드로 돌아감 → 그 뒤에 있는 유저 프로그램의 로직 수행
컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어짐.

컴퓨터의 요소 이미지