운영체제 시작하기
운영체제를 알아야 하는 이유
운영체제란
운영체제 : 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램
운영체제의 역할
- 메모리 주소가 겹치지 않도록 프로그램들을 적당한 공간에 적재해줌
- 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적인 메모리 자원 관리
커널 영역 : 운영체제가 실행되는 메모리 공간
사용자 영역 : 인터넷 브라우저 등 사용자의 응용 프로그램이 실행되는 메모리 공간
운영체제를 알아야 하는 이유
- 하드웨어의 상태와 하드웨어 상에 어떤 문제가 있었는지 확인 가능
- 문제 해결의 실마리 찾기 가능
- 하드웨어와 프로그램에 더 깊이 이해 가능
- 운영체제를 이해하면 운영체제에 제대로 된 명령 가능
운영체제의 큰 그림
운영체제의 심장, 커널
커널 : 운영체제의 핵심 서비스를 담당하는 부분
⁇ 핵심 서비스 ➡️ 시스템 자원에 접근 또는 조작 , 프로그램을 올바르고 안전하게 실행되게 함

⭐️ 응용 프로그램이 하드웨어에 접근하지 않고도 자원을 사용할수 있는 이유
= 문서를 저장할때 하드 디스크에 어떻게 저장할지 운영체제가 대신 해결해 줌
사용자 인터페이스 : 운영체제가 제공하는 대표적인 서비스
‼️ 커널에 포함되지는 않음
사용자 인터페이스의 종류
그래픽 유저 인터페이스
- 그래픽을 기반으로 컴퓨터와 상호작용하는 인터페이스
- 윈도우에서 마우스를 이용해 프로그램을 실행, 스마트폰 앱을 터치하는 등
커맨드 라인 인터페이스
- 명령어를 기반으로 컴퓨터와 상호작용하는 인터페이스
- cmd, powershell, terminal 등
- 사용자 모드 : 일반적인 응용 프로그램이 실행되는 모드, 하드웨어 자원에 접근 ❌
- 커널 모드 : 자원에 접근하는 명령어를 비롯한 모든 명령어 실행 가능한 모드
- 시스템 호출을 발생시켜 커널 모드로 전환
- 필요한 커널 기능 실행
- 사용자 모드로 복귀
- 작업 재개
- 프로세스 관리 ➡️ `프로세스` : 실행 중인 프로그램
- 프로세스들이 사용할 자원에 접근 및 필요한 자원 할당
- 파일 시스템 관리
이중 모드와 시스템 호출
이중 모드 : CPU가 명령어를 실행하는 모드를 사용자 모드 와 커널 모드 로 구분
시스템 호출 : 사용자 모드로 실행되는 프로그램 이 운영체제 서비스를 제공받기 위한 요청
일종의 인터럽트 (소프트웨어 인터럽트)
➡️ 시스템 호출로 커널 모드로 전환하여 운영체제 서비스를 제공