나 혼자 운영체제
컴퓨터 시스템의 핵심 관리자, 운영체제의 원리를 체계적으로 다루는 교재입니다.
코드를 작성했습니다. 터미널에서 실행 버튼을 누릅니다. 프로그램이 동작합니다. 이 당연한 과정의 이면에는 운영체제라는 거대한 소프트웨어가 작동하고 있습니다.
CPU는 한 순간에 하나의 명령어만 실행할 수 있는데, 어떻게 수십 개의 프로그램이 동시에 돌아갈까요? malloc()으로 메모리를 할당하면 물리적으로 어디에 생기는 걸까요? 파일을 저장하면 디스크의 어디에 어떤 형태로 기록되는 걸까요?
이 교재는 이런 질문들에 대한 답을 계층적으로 풀어갑니다. 운영체제의 정의와 역할에서 출발하여, 프로세스와 스레드의 관리, CPU 스케줄링, 메모리 관리, 파일 시스템까지 — OS가 하드웨어와 소프트웨어 사이에서 어떤 마법을 부리는지 체계적으로 이해할 수 있습니다.
이론으로 끝나지 않습니다. C와 Python 코드로 fork(), 뮤텍스, 세마포어를 직접 구현하고, 리눅스 명령어로 시스템 상태를 진단하며, Docker와 Kubernetes가 OS 위에서 어떻게 동작하는지까지 다룹니다.
각 장의 개념은 서로 떨어져 있지 않습니다. 사용자 프로그램의 요청이 시스템 콜을 지나 커널로 들어가고, 커널이 프로세스, 메모리, 파일 시스템, 네트워크를 함께 조정한다는 연결을 잡으면 뒤의 목차가 훨씬 선명해집니다.
전체 목차
1장: 운영체제 소개
2장: 컴퓨터 시스템 구조
3장: 프로세스
4장: 스레드
5장: CPU 스케줄링
6장: 프로세스 동기화
7장: 교착 상태
8장: 메모리 관리 기초
9장: 가상 메모리
10장: 파일 시스템
11장: I/O 시스템
12장: 보호와 보안
13장: 가상화와 컨테이너
14장: 실무에서 만나는 OS 개념
목차를 훑은 뒤에는 각 장을 같은 방식으로 통과해 봅니다. 개념을 읽고, 시스템에서 보이는 현상을 관찰하고, 짧은 코드나 명령으로 확인한 뒤, 원인과 자원 경계를 말로 설명하는 루틴을 반복하면 실무 개념까지 자연스럽게 이어집니다.