이 영역을 누르면 첫 페이지로 이동
포렌식 & 개발 이야기 - Forensics & Development 블로그의 첫 페이지로 이동

포렌식 & 개발 이야기 - Forensics & Development

페이지 맨 위로 올라가기

포렌식 & 개발 이야기 - Forensics & Development

Pental - Forensics / iOS / Windows / Android / Kakaotalk / Telegram / Etc

[OS] Pintos 설치하기

  • 2020.01.16 21:14
  • 그냥 개발 및 잡담/OS 개발
글 작성자: pental

필자의 환경조건 )

Ubuntu 14.04 x86버전.

 

필자만 잘 따라하면 좋은 결과를 얻을 수 있을 것이다.

make 부분에서 오류가 나지 않으려면 gcc를 제대로 설치해야한다.

$ sudo apt-get install g++ xorg-dev ncurses-dev vim
$ sudo apt-get install gcc-4.4
$ sudo mv /usr/bin/gcc-4.4 /usr/bin/gcc

위 세가지 소스코드를 확실히 실행시켜야 한다.

자신이 원하는 위치에 dir를 하나 생성하고 pintos 파일을 받아온다.

$ cd /
$ sudo mkdir temp
$ wget http://www.stanford.edu/class/cs140/projects/pintos/pintos.tar.gz
$ tar xzf pintos.tar.gz

이렇게 함으로써 pintos파일을 받아 왔다.

필자는 Bochs 대신 Qemu를 사용할 것이다.

$ sudo apt-get install qemu

qemu 설치후 몇가시 환경 세팅을 해줘야 한다.

$ sudo vi ~/.bashrc
export PINTOSDIR=/temp/pintos
export PATH=$PINTOSDIR/src/utils:$PATH

마지막에 위 export 두줄을 넣어주고

$ sudo source ~/.bashrc

새로고침을 해준다. 위 구문을 치기 싫다면, 재부팅 또는 ssh를 껐다 키도록 하자.

$ sudo vi $PINTOSDIR/src/utils/Makefile
"LDFLAGS = -lm" -> IBS = -lm" 수정
$ sudo vi $PINTOSDIR/src/threads/Make.vars

"SIMULATOR = --bochs" 를 "SIMULATOR = --qemu" 로 바꿔준다.
마찬가지로 아래 항목도 바꿔준다

$ sudo vi $PINTOSDIR/src/userprog/Make.vars
$ sudo vi $PINTOSDIR/src/vm/Make.vars
$ sudo vi $PINTOSDIR/src/filesys/Make.vars
$ cd $PINTOSDIR/src/threads/
$ sudo make
$ cd $PINTOSDIR/src/utils/
$ sudo make
$ sudo vi $PINTOSDIR/src/utils/pintos

$sim = "bochs" if !defined $sim; -> $sim = "qemu" if !defined $sim; 로 수정 (Line : 103)

my $name = find_file ('kernel.bin'); ->
	my $name = find_file ($ENV{'PINTOSDIR'}.'/src/threads/build/kernel.bin');
수정 (Line : 259)
$ sudo vi $PINTOSDIR/src/utils/Pintos.pm

$name = find_file ("loader.bin") if !defined $name; ->
	$name = find_file ($ENV{'PINTOSDIR'}."/src/threads/build/loader.bin") if !defined $name;
수정 (Line : 362)
$ cd /usr/bin/
$ sudo ln -s qemu-system-x86_64 qemu

qemu 버전을 선택하기 위해서 위 명령어를 쳐준다.

 

이렇게만 하면 Power Off가 되지 않기 때문에 아래의 구문을 추가해준다.

$ sudo vi $PINTOSDIR/src/devices/shutdown.c

outw(0x604, 0x0|0x2000); (Line : 103 아래 추가)

다시 make 해줘야 하기때문에

$ cd $PINTOSDIR/src/threads/
$ sudo make clean; make
$ cd $PINTOSDIR/src/utils/
$ sudo make clean; make

반복해준다.

Prototype mismatch: sub main::SIGVTALRM () vs none at /temp/pintos/src/utils/pintos line 935.
Constant subroutine SIGVTALRM redefined at /temp/pintos/src/utils/pintos line 927.

이런 오류가 뜨는데 무시하도록 하자.

저작자표시 (새창열림)

'그냥 개발 및 잡담 > OS 개발' 카테고리의 다른 글

[OS] Pintos - BusyWaiting 해제  (0) 2020.01.21
[OS] Busy Waiting 정의  (0) 2020.01.19

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [OS] Pintos - BusyWaiting 해제

    [OS] Pintos - BusyWaiting 해제

    2020.01.21
  • [OS] Busy Waiting 정의

    [OS] Busy Waiting 정의

    2020.01.19
다른 글 더 둘러보기

정보

포렌식 & 개발 이야기 - Forensics & Development 블로그의 첫 페이지로 이동

포렌식 & 개발 이야기 - Forensics & Development

  • 포렌식 & 개발 이야기 - Forensics & Development의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

카테고리

  • Category (442) N
    • Forensics (104)
      • Magnet AXIOM (28)
      • Digital Forensics Informati.. (9)
      • Iphone Forensics (23)
      • DFC (7)
      • 디지털포렌식전문가2급 자격증 (10)
      • FTK ACE 자격증 (7)
    • 이것저것 (7)
      • Ubuntu (6)
      • 디스코드 봇 (4)
      • Volatility GUI (2)
    • CTF (32)
      • NEWSECU (14)
      • CTF-d (5)
      • Puzzel - Network Forensics (2)
      • Security Traps (2)
      • system32.kr (5)
      • HMCTF (4)
    • Programming (251) N
      • C (10)
      • Python (11)
      • 백준 (197) N
      • 프로그래머스 (32)
    • 그냥 개발 및 잡담 (16)
      • Docker (2)
      • Google Cloud (3)
      • OS 개발 (3)
    • Best of Best (20)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 프로그래머스
  • axiom
  • Forensics
  • 파이썬
  • pental
  • 포렌식
  • 디지털포렌식
  • 백준
  • 전체 보기…

정보

pental의 포렌식 & 개발 이야기 - Forensics & Development

포렌식 & 개발 이야기 - Forensics & Development

pental

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © pental.

티스토리툴바