슬라이드 1

Download Report

Transcript 슬라이드 1

Pintos overview
Operating System Project
kit
금오공과대학교
Introduce Pintos

An instructional operating system

Developed by Stanford university

A few of the source files are derived from code used in the MIT OS
course

A real OS for 80x86 architecture (c.f. nachos)


Run on a regular IBM-compatible PC or an x86 simulator
The original structure and form was inspired by the
nachos

Written in C language
Operating System Project - pintos overview
Environments

Bochs
IA-32 emulator
 We will run Pintos on this emulator
 Bochs makes it easy to develop and debug Pintos
projects


Linux + Bochs

We will use Linux(Debian) machine
Operating System Project - pintos overview
Environments - Client

SSH client
Official client : Putty
 Other clients : SecureCRT, Xshell, etc ...


X-window server (Local – Client)
Official server : Xming
 Other servers : Xmanager, Cygwin-X, etc ...


Connect to experiment server

Host : 'linda.kumoh.ac.kr'

SSH with X11 forwarding
Operating System Project - pintos overview
Environments - Server

Implemented in server – Recommend using this

x86 emulator

Bochs : Ready on experiment server

You can get customized auto installation source from experiment
server


Pintos utilities


QEMU (Faster than Bochs)
Build from pintos source code
Other basic utilities

GCC compiler set, GDB, Perl
Operating System Project - pintos overview
Pintos set up

linda.kumoh.ac.kr 접속


Pintos 압축 풀기


BOCHS 이미 설치되어 있음. (서버에 BOCHS 재설치 하지 말 것)
$tar zxvf pintos.tar.gz
Pintos 압축 푼 다음

$pintos/src/thread 로 이동

$make : 결과로 현재 디렉토리에 (src/thread) build라는 디
렉토리 생성됨

pintos 실행

$pintos/src/threads$ pintos –v -- run alarm-multiple
Operating System Project - pintos overview
Pintos set up
Operating System Project - pintos overview
Debug methods

printf() – Traditional log based debug

Assertion – Using ASSERT macro

Backtraces – Find location in source

GDB – Step-by-Step debugging


Remote debugging to localhost (need 2 console)
Modifying Bochs – Debug Triple Faults
Operating System Project - pintos overview
Tags - 1



함수나 전역변수에 쉽게 이동할 수 있는 인덱스 파일
Vi와 연동해서 사용할 수 있다.
Make `tags` file & set for VI
Operating System Project - pintos overview
Tags - 2


이동하고자 하는 함수나 전역변수에 캐롯을 두고
Ctrl+]
바로 전 단계로 이동하고자 할 때는 Ctrl+T
Operating System Project - pintos overview
gdb - 1

Pintos는 기존의 GDB에 기능을 추가하여 편리한 스크
립트를 함께 제공한다.

--gdb 옵션과 함께 pintos 를 실행하며, 또 다른 터미
널의 build 디렉토리에서 pintos-gdb를 실행한다.


$pintos --gdb --gdb-port=1234 –v -- run alarmmultiple
Gdb의 사용법 참조 사이트
http://www.gnu.org/software/gdb/documentation/
Operating System Project - pintos overview
gdb - 2


Execute pintos with '--gdb' option
user@linda:~/pintos/src/threads/build$ pintos --gdb
-v --gdb-port=1234 -- run alarm-multiple
--gdb-Port=1234
포트 번호를 지정하여
디버깅
출력 화면
Operating System Project - pintos overview
gdb - 3


Execute gdb by pintos (In another terminal)
user@linda:~/pintos/src/threads/build$ pintos-gdb kernel.o
gdb 화면
Operating System Project - pintos overview
gdb - 4



Connect to gdb session
 (gdb) target remote localhost:1234  지정한 포트 번호
Setup break point
 (gdb) break run_test
Continue execution of code (It will pause at breakpoint)
 (gdb) continue
포트 번호 충돌 가능성이 존재
하므로 netstat 명령으로 해당
포트의 오픈 여부를 확인
Operating System Project - pintos overview
gdb - 5
gdb 화면
출력 화면
Operating System Project - pintos overview
Version Control

Goal



CVS and Subversion
Keywords


Cooperation development, Avoid version mixing, Improve
code shareablity, Solving conflicts, Management of
change histories, Blame, Automatic daily build, etc ...
Repository, Module, Import, Checkout, Revision, Commit,
Update, Lock, Tag, Branch, Release
See more information on “Revision_control” in
Wikipedia
Operating System Project - pintos overview
svn

Compelling replacement for CVS in the open source
community


Change set revision, Fast execution, Atomic commit,
Reduce network traffic, Configurable each Project, Easy to
extends, Support many protocol, Clean source code,
Similar usage with CVS
Ready on experiment server
Support 'file' and 'svn+ssh' protocol
 Each team have to elect source manager


Recommend Microsoft Windows User to use
'tortoisesvn'
(http://tortoisesvn.tigris.org/)
Operating System Project - pintos overview
svn

Create svn directory


Create svn repository


user@linda:~$ mkdir svn
user@linda:~$ svnadmin create svn/pintos
Import module baseline
user@linda:~$ ls
pintos svn
 user@linda:~$ svn import pintos file:///home/jkang/svn/pintos/
(user@linda:~$ svn import pintos file://`pwd`/svn/pintos/)

...
Adding
pintos/src/examples/Makefile
Adding
pintos/src/examples/.cvsignore
Committed revision 1.
jkang@linda:~$
Operating System Project - pintos overview
svn

Delete original source


user@linda:~$ ls
pintos svn
user@linda:~$ rm -rf pintos
user@linda:~$ ls
svn
Checkout from repository

user@linda:~$ svn checkout file://`pwd`/svn/pintos pintos
...
A pintos/src/examples/Makefile
A pintos/src/examples/.cvsignore
Checked out revision 1.
user@linda:~$ ls
pintos svn
Operating System Project - pintos overview
svn


Edit source code (Edit 'pintos/src/LICENSE' file)
Commit
If change set has new files, must execute 'svn add' before
commit
 user@linda:~$ svn commit pintos
Sending
pintos/src/LICENSE
Transmitting file data .
Committed revision 2.
user@linda:~$


Update (Different location and revision)

user@linda:~$ svn update pintos
U pintos/src/LICENSE
Updated to revision 2.
user@linda:~$
Operating System Project - pintos overview
Thank you
Operating System Project - pintos overview