Pintos 란
- 스탠포드에서 만든 교육용 OS
- cs140 수업
http://www.scs.stanford.edu/17wi-cs140/reference/index.html
PintOS 설치 - macOS 10.13 High Sierra
1. Prerequires
. homebrew (https://brew.sh/)
- gcc 4.9
- qemu
(bochs 대신 qemu 를 사용한다)
2. Download pintos
git clone http://cs140.stanford.edu/pintos.git pintos
|
3. Build pintos
. PintOS 빌드하려면 32bit gcc 4.1 버전이 필요함
- 32bit gcc 4.1 빌드
a) http://wiki.osdev.org/Cross-Compiler_Successful_Builds
gcc 4.1 버전과 맞는 binutils 설치 (binutils-2.17)
-
git clone git://sourceware.org/git/binutils-gdb.git git checkout tags/binutils-2_17 |
- build
./configure --prefix=$PREFIX --target=i386-elf --disable-multilib --disable-nls --disable-werror make make install |
- i386-elf-ld 실행 확인
b) gcc 4.1 설치
컴파일러는 brew로 설치한 gcc-4.9를 이용 (최신 버전의 gcc 혹은 clang 으로는 gcc-4.1 을 빌드할수 없음)
git clone git://gcc.gnu.org/git/gcc.git git checkout tags/gcc-4_1_0-release CC=gcc-4.9 ./configure --prefix=$PREFIX --target=i386-elf --disable-multilib --disable-nls --disable-werror --without-headers --enable-languages=c,c++ make all-gcc install-gcc |
- i386-elf-gcc 실행 확인
- PintOS Make.config 수정
ifneq (0, $(shell expr `uname -m` : '$(X86_64)')) |
이 부분을
fneq (0, $(shell expr `uname -m` : '$(X86_64)')) CC = i386-elf-gcc else |
로 수정
i386-elf-gcc (4.1) 컴파일러로 빌드하기위한 옵션
. 동작확인
pintos --qemu -- run alarm-multiple |