안동민 개발노트 아이콘

안동민 개발노트

나 혼자 운영체제

컴퓨터 시스템의 핵심 관리자, 운영체제의 원리를 체계적으로 다루는 교재입니다.

코드를 작성했습니다. 터미널에서 실행 버튼을 누릅니다. 프로그램이 동작합니다. 이 당연한 과정의 이면에는 운영체제라는 거대한 소프트웨어가 작동하고 있습니다.

CPU는 한 순간에 하나의 명령어만 실행할 수 있는데, 어떻게 수십 개의 프로그램이 동시에 돌아갈까요? malloc()으로 메모리를 할당하면 물리적으로 어디에 생기는 걸까요? 파일을 저장하면 디스크의 어디에 어떤 형태로 기록되는 걸까요?

이 교재는 이런 질문들에 대한 답을 계층적으로 풀어갑니다. 운영체제의 정의와 역할에서 출발하여, 프로세스와 스레드의 관리, CPU 스케줄링, 메모리 관리, 파일 시스템까지 OS가 하드웨어와 소프트웨어 사이에서 어떤 책임을 맡는지 체계적으로 이해할 수 있습니다.

이론으로 끝나지 않습니다. C와 Python 코드로 fork(), 뮤텍스, 세마포어를 직접 구현하고, 리눅스 명령어로 시스템 상태를 진단하며, Docker와 Kubernetes가 OS 위에서 어떻게 동작하는지까지 다룹니다.

각 장의 개념은 서로 떨어져 있지 않습니다. 사용자 프로그램의 요청이 시스템 콜을 지나 커널로 들어가고, 커널이 프로세스, 메모리, 파일 시스템, 네트워크를 함께 조정한다는 연결을 잡으면 뒤의 목차가 훨씬 선명해집니다.

전체 목차

목차를 훑은 뒤에는 각 장을 같은 방식으로 통과해 봅니다. 개념을 읽고, 시스템에서 보이는 현상을 관찰하고, 짧은 코드나 명령으로 확인한 뒤, 원인과 자원 경계를 말로 설명하는 루틴을 반복하면 실무 개념까지 자연스럽게 이어집니다.


운영체제 목차는 자원을 누가 요청하고 커널이 어떤 정책으로 나눠 주는지 따라가면 선명해집니다.

운영체제 목차는 프로세스, 메모리, 파일, 장치를 따로 외우기보다 자원을 어떻게 추상화하고 배분하는지 같은 질문으로 묶어 읽으면 좋습니다.

나 혼자 운영체제는 프로세스, 스레드, 동기화를 기준으로 전체 학습 동선을 잡습니다.

운영체제 개념을 자원 관리, 보호 경계, 실행 흐름 기준으로 다시 묶었습니다.

다음 학습으로 넘어가기 전, 운영체제에서 남은 개념 경계와 실습 확인 포인트를 점검합니다.