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)'))
    CC = $(CCPROG) -m32
    LD = ld -melf_i386
    OBJCOPY = objcopy
else
 

이 부분을

fneq (0, $(shell expr `uname -m` : '$(X86_64)'))

     CC = i386-elf-gcc
     LD = i386-elf-ld
     OBJCOPY = i386-elf-objcopy

else


로 수정

i386-elf-gcc (4.1) 컴파일러로 빌드하기위한 옵션


. 동작확인

pintos --qemu -- run alarm-multiple 



+ Recent posts