OSTEP 독학 일지 - H.1

Jaeyeol Lee @kodingwarrior@hackers.pub
본 기술 포스팅은 OSTEP(Operating Systems: Three Easy Pieces) 교재를 독학하며 xv6 커널 환경에서 시스템 콜을 구현하는 과정을 담고 있습니다. xv6 개발 환경 설정부터 시작하여, Hello World를 띄우고, 나아가 H.1 Intro Project 과제인 `getreadcount` 시스템 콜 구현에 대한 여정을 상세히 다룹니다. 시스템 콜 정의 방법과, 유저 모드와 커널 모드 간의 전환 과정, 그리고 각 코드 파일들이 어떻게 유기적으로 연결되는지를 `write` 시스템 콜을 예시로 들어 설명합니다. 특히, `readcount` 변수의 원자성을 보장하기 위해 `_Atomic` 지시어를 사용하고, 다중 프로세스 환경에서의 테스트를 통해 그 효과를 검증합니다. 이 글은 xv6 커널의 시스템 콜 구조를 이해하고, 실제 시스템 콜을 구현하며 발생할 수 있는 문제점을 해결하는 과정을 통해 운영체제에 대한 깊이 있는 이해를 제공합니다.
Read more →