C 언어로 운영체제의 내부 동작을 학습하기 위한 PintOS 기반 프로젝트
pintOS는 운영체제 수업 및 시스템 프로그래밍 학습을 위해 진행한 프로젝트입니다.
단순히 애플리케이션을 만드는 것이 아니라, 운영체제가 프로세스, 스레드, 메모리, 파일 시스템 같은 핵심 자원을 어떻게 관리하는지 직접 코드 레벨에서 이해하는 데 초점을 두었습니다.
PintOS는 교육용 운영체제 프로젝트로, 실제 운영체제의 핵심 개념을 작은 코드베이스 안에서 실습할 수 있도록 구성되어 있습니다.
이 레포지토리는 C 언어 기반의 운영체제 구조를 분석하고, 커널 내부에서 동작하는 여러 기능을 이해하기 위해 사용했습니다. 웹이나 프레임워크 중심의 개발과 달리, 낮은 레벨에서 메모리와 실행 흐름을 직접 다뤄야 하기 때문에 컴퓨터 시스템의 기본기를 쌓는 데 큰 도움이 된 프로젝트입니다.
처음 보는 사람도 이 레포지토리를 통해 다음 내용을 파악할 수 있도록 정리했습니다.
- 운영체제 프로젝트를 C 언어로 다뤄 본 경험
- 커널 내부 구조와 실행 흐름에 대한 학습 경험
- 스레드, 프로세스, 동기화, 메모리 관리 등 OS 핵심 개념 학습
- 시스템 레벨 코드의 디버깅과 분석 경험
- 🧵 스레드와 프로세스의 기본 동작 이해
- 🔐 동기화 개념과 공유 자원 관리 방식 학습
- 🧭 커널 내부 실행 흐름 분석
- 🗂️ 파일 시스템과 운영체제 자원 관리 구조 이해
- 🧩 C 언어 기반 시스템 프로그래밍 경험
- 🛠️ 디버깅을 통한 저수준 코드 분석 연습
| 구분 | 사용 기술 |
|---|---|
| Language | C |
| Project Type | Operating System |
| Base Project | PintOS |
| Version Control | Git, GitHub |
pintOS/
└── src/ # PintOS 소스 코드 및 운영체제 실습 코드
PintOS는 일반적인 웹 애플리케이션처럼 바로 실행하는 프로젝트가 아니라, 운영체제 실습 환경에 맞춰 빌드 및 테스트를 진행하는 프로젝트입니다.
일반적으로 다음과 같은 흐름으로 작업합니다.
cd src이후 각 실습 파트의 디렉터리에서 빌드와 테스트를 진행합니다.
make실행 환경은 수업 또는 실습 환경에 따라 다를 수 있으며, PintOS 전용 툴체인과 에뮬레이터 설정이 필요할 수 있습니다.
이 프로젝트를 진행하며 다음 내용을 중심으로 학습했습니다.
- 운영체제가 프로그램 실행을 관리하는 방식
- 커널 코드가 사용자 프로그램과 상호작용하는 구조
- 스레드와 프로세스의 차이
- 동기화가 필요한 상황과 race condition 문제
- C 언어에서 포인터와 메모리 구조를 신중하게 다루는 방법
- 시스템 레벨 코드에서 작은 변경이 전체 동작에 미치는 영향
- 각 PintOS 과제별 구현 내용 정리
- 테스트 실행 방법 문서화
- 주요 수정 파일과 구현 의도 기록
- 디버깅 과정에서 배운 내용 추가
- 프로젝트별 결과 화면 또는 테스트 결과 정리
C 언어와 운영체제 구조를 직접 다루며, 컴퓨터 시스템의 내부 동작을 이해하기 위해 진행한 PintOS 학습 프로젝트입니다.