안동민 개발노트 아이콘

안동민 개발노트

나 혼자 운영체제

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

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

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

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

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

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

전체 목차

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