Skip to content

Baikseungwoo/pintOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

🧠 pintOS

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 학습 프로젝트입니다.

About

pintos project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors