운영체제/xv6 실습
[xv6] xv6란?
다락공방
2024. 8. 14. 00:35
xv6는 MIT에서 개발된 Unix 기반의 운영체제다. 주로 교육 목적으로 사용되며, Unix V6를 모방하여 간단한 구조를 가지고 있다. xv6는 시스템 콜, 프로세스 관리, 메모리 관리, 파일 시스템 등 기본적인 운영체제 기능을 포함하고 있어, 운영체제의 작동 원리를 이해하고 공부하는 데 유용한 자료로 활용된다.
특히, xv6는 C 언어로 작성되었고, x86 아키텍처에서 동작하도록 설계되었다. 운영체제의 기초를 배우고자 하는 학생들에게 매우 유익한 교육 도구로, 소스 코드를 직접 분석하고 수정해보며 실습할 수 있다.
다시말해 실습용, 교육용으로 적합한 가벼운 운영체제라고 보면된다.
나는 우분투 환경에서 QEMU를 통해 가상 환경설정으로 xv6를 수정하고, 실행해보았다.
QEMU란?
QEMU(Quick EMUlator)는 오픈 소스 가상화 소프트웨어로, 다양한 CPU 아키텍처를 에뮬레이션하고 가상화된 환경에서 운영체제 및 프로그램을 실행할 수 있게 해준다.
주요 기능으로는:
- 에뮬레이션: QEMU는 다양한 CPU 아키텍처를 에뮬레이션할 수 있어, 예를 들어 x86 컴퓨터에서 ARM 아키텍처용 소프트웨어를 실행할 수 있다.이는 소프트웨어 개발자들이 여러 하드웨어 플랫폼에서 소프트웨어를 테스트할 때 유용하다.
- 가상화: QEMU는 KVM(Kernel-based Virtual Machine)과 같은 하이퍼바이저와 함께 사용될 수 있다. 이 경우, QEMU는 호스트 CPU의 성능을 거의 그대로 사용할 수 있는 거의 네이티브 성능의 가상 머신을 제공한다.
- 시스템 시뮬레이션: QEMU는 CPU뿐만 아니라 주변 장치도 에뮬레이션할 수 있어, 완전한 가상 시스템을 구축할 수 있다. 예를 들어, 하드 드라이브, 네트워크 인터페이스, 그래픽 카드 등을 포함한 전체 컴퓨터 시스템을 시뮬레이션할 수 있다.
xv6에서 진행한실습은 크게 총 3개로 아래와 같다.
1. 스케줄러 수정
2. memory 관련 수정
3. thread관련 system call 수정
한번 정리해보자...