Pintos Project

Similar documents
1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

강의 자료

Microsoft PowerPoint - 02_Installation

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft Word ARM_ver2_0a.docx

PowerPoint 프레젠테이션

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

PowerPoint 프레젠테이션

6주차.key

PowerPoint 프레젠테이션

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

벤처연구사업(전동휠체어) 평가

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

슬라이드 제목 없음

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

Microsoft PowerPoint - 03-Development-Environment-2.ppt

Mango220 Android How to compile and Transfer image to Target

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

untitled

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

교육지원 IT시스템 선진화

교육지원 IT시스템 선진화

/chroot/lib/ /chroot/etc/

PowerPoint 프레젠테이션

작성자 : 기술지원부 김 삼 수

intro

PowerPoint 프레젠테이션

CD-RW_Advanced.PDF

무시하고진행합니다. $ sudo rootstock -d precise --seed ubuntu-standard -x en_us.utf-8 -f ubuntu -l ubuntu -p ubuntu -i 2G I: Running on a x86_64 machine I: Cre

강의10

Adobe Flash 취약점 분석 (CVE )

리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을

JDK이클립스

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint 통신 및 압축 명령어.ppt

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Microsoft Word - CPL-TR LNP-guide.doc

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

Install stm32cubemx and st-link utility

PowerPoint 프레젠테이션

고급 프로그래밍 설계

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

untitled

Microsoft PowerPoint - em8-리눅스설치.ppt

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

PowerPoint Presentation

PowerPoint 프레젠테이션

Discrete Mathematics

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

Abstract View of System Components

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

DE1-SoC Board

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

Microsoft PowerPoint - Chapter_02-1_DevEnv.pptx

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여

Secure Programming Lecture1 : Introduction

PowerPoint 프레젠테이션

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

<3032B0AD202D20B8AEB4AABDBA20BCB3C4A12D556E6978C0CEC5CDB3DDBAB8C3E6C7D0BDC02E687770>

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - VMware와 리눅스 설치_v0.11.doc

PowerPoint 프레젠테이션

Abstract View of System Components

PowerPoint 프레젠테이션

4S 1차년도 평가 발표자료

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

RedHat Linux Fedora Core 4 + APM 소스컴파일설치 김희균 [ 사전준비 : 리눅스시디, 리눅스설치공간준비와컴퓨터의 IP 주소와넷마스크, 게이트웨이주소기록 1. Linux 시디로부팅을한다. 2. Gra

Microsoft PowerPoint - 30.ppt [호환 모드]

RaspberryPi 개발환경구축 I 1 제 01 강 실습일정및가상머신구축 교과소개및실습일정 실습실안전교육 가상머신환경구축 (VMware Player, VM(Ubuntu), VMTools, 폴더공유 ) 참고 )

작성자 : saint Overview BackTrack 는 LILO 를부트로더로사용한다. BactTrack 을기본환경설정그대로설치하면부팅할수없는경우가있는데, 이것은실린더크기가 1024 보다큰하드디스크에설치하면 LILO 가 OS 를정상적으로읽어올수없기때문이다. 요즘나오는

Chap 5 루트파일시스템 (Root F/S)

Sena Technologies, Inc. HelloDevice Super 1.1.0

PowerPoint 프레젠테이션

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

슬라이드 1

Microsoft PowerPoint APUE(Intro).ppt

슬라이드 1

망고100 보드로 놀아보자-4

Microsoft PowerPoint 자동설치시스템검증-V05-Baul.pptx

Code Generation in Rapid

Tizen

Chap 2 임베디드시스템 개발환경구성

슬라이드 1

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft PowerPoint - 02-Development-Environment-1.ppt

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

01장

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

단계

Windows Server 2012

Transcription:

Pintos Hanyang University Embedded Software Systems Lab.

Contents 0. Introduction 1. Command Line Parsing 2. System Call 3. Hierarchical Process Structure 4. File Descriptor 5. Denying Write to Executable 6. Alarm System Call 7. Priority Scheduling 8. Priority Scheduling and Synchronization 9. Priority Inversion Problem 10. Multi-Level Feedback Queue Scheduler 11. Virtual Memory 12. Memory Mapped File 13. Swapping 14. Stack 15. Buffer Cache 16. Extensible File 17. Subdirectory 2

Project 상관관계 User Program Thread Virtual Memory Filesystem 1. Command Line Parsing 6. Alarm System Call 11. Virtual Memory 15. Buffer cache 2. System Call 7. Priority Scheduling 12. Memory Mapped File 16. Extensible File 3. Hierarchical Process Structure 8. Priority Scheduling and Synchronization 13. Swapping 17. Subdirectory 4. File Description 9. Priority Inversion Problem 14. Stack 5. Denying Write to Executable 10. Multi-Level Feedback Queue Scheduler 3

Introduction 4

PintOS 핀토스가뭐지? x86 아키텍처를위한교육용운영체제 2004년스탠포드대학에 Ben Pfaff에의해만들어짐 kernel threads, loading and running user programs, file system등을지원 Bochs나 QEMU등 x86 시뮬레이터를사용 왜핀토스를사용할까? 운영체제에서실제로각종개념 ( 쓰레드, 프로세스, 메모리관리, 파일시스템 ) 을구현해보는것이매우중요 리눅스와같은상용운영체제는매우큼 (100만라인). 80% 이상이다양한하드웨어지원을위한디바이스드라이버코드 리눅스컴파일 : 최소한한시간이상걸림. 간단하고, 이해하기쉽고, 컴파일도쉬운운영체제핀토스 (PintOS) 5

Pintos 실습서버접속방법 SSH 설치 ($ sudo apt-get install ssh) 서버접속 ($ ssh -p 8022 사용자계정 @csedev.hanyang.ac.kr) 6

Pintos 설치및환경설정 해당명령어를통해핀토스소스코드다운로드 $ wget http://dmclab.hanyang.ac.kr/wikidata/download/pintos.tar.gz 압축해제 $ tar xvf pintos.tar.gz pintos/src/threads 디렉토리로이동후 make 명령어입력 7

Pintos 설치확인 pintos/src/threads/ 디렉토리로이동 $ make $ cd build $ pintos -- run alarm-multiple 프로그램동작확인 8

핀토스의실행 PintOS 수정 x86 Bochs/QEMU 설치 Ubuntu virtualbox/xen/ VMWare Windows 노트북 x86 9

개인 PC 에서 Pintos 사용하기 1: Virtual Box 설치 http://www.virtualbox.org 에서 Virtual Box 다운로드후설치 여기서다운로드 10

개인 PC 에서 Pintos 사용하기 2.1: 우분투설치 VirtualBox 상에리눅스가상머신을생성한다. 리눅스설치 (Ubuntu 12.04 LTS) ubuntu-12.04-desktop-i386.iso 다운로드 : http://www.ubuntu.com/download/desktop 가상머신만들기 11

개인 PC 에서 Pintos 사용하기 2.2: 우분투설치 다운받은우분투이미지파일을마운트하고, 설치 or 12

개인 PC 에서 Pintos 사용하기 2.3: 우분투설치완료 Ubuntu 설치완료및부팅 13

개인 PC 에서 Pintos 사용하기 3: Bochs 설치 http://bochs.sourceforge.net 사이트에서 Bochs 다운로드 여기서다운로드 14

개인 PC 에서 Pintos 사용하기 3: Bochs 설치 파일압축해제 $ tar xvf bochs-2.6.2.tar.gz bochs 폴더로이동 $./configure --enable-gdb-stub --with-nogui $ make $ sudo make install 15

개인 PC 에서 Pintos 사용하기 3: Bochs 설치 오류 1: C compiler cannot create executables gcc, g++ 및라이브러리패키지설치 $ sudo apt-get install libc6-dev g++ gcc 오류 2: X windows libraries were not found X windows 라이브러리설치 $ sudo apt-get install xorg-dev 16

개인 PC 에서 Pintos 사용하기 3: QEMU 설치 $ sudo apt-get install qemu $ sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu 17

개인 PC 에서 Pintos 사용하기 4: Pintos 설치및환경설정 해당명령어를통해핀토스소스코드다운로드 $ wget http://dmclab.hanyang.ac.kr/wikidata/download/pintos.tar.gz 압축해제 $ tar xvf pintos.tar.gz pintos/src/threads 디렉토리로이동후 make 명령어입력 18

개인 PC 에서 Pintos 사용하기 4: Pintos 설치및환경설정 ~/.bashrc 파일에환경변수설정 pintos 를설치한디렉토리경로를추가 export PATH="$PATH:/home/user/pintos/src/utils 추가 $source ~/.bashrc 수정사항적용 19

개인 PC 에서 Pintos 사용하기 5: GCC 다운그레이드 gcc 버전을 pintos 권장인 4.5 버전으로다운그레이드 $ sudo apt-get install gcc-4.5 $ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 50 20

How User Program Work Pintos Simulated File system disk Hardware Emulator (bochs or QEMU) Host OS (linux, ) Hardware (ex. cspro) PUT File System (Disk) Regular ELF executable 21

Pintos File System 사용방법 Pintos 에서 User program 실행하기 $ cd ~/pintos/src/userprog/ $ make $ cd bulid 1. 파일시스템디스크를생성 $pintos-mkdisk filesys.dsk --filesys-size=2 pintos-mkdisk : pintos에서제공하는가상디스크생성도구. 파일시스템디스크의이름은무조건 filesys.dsk로해야한다. --filesys-size 옵션 : 가상디스크의용량을지정하기위한옵션. 2. 파일시스템디스크초기화 $pintos f -q -f 옵션 : filesys.dsk 를포맷. pintos 의자체파일시스템구조사용. -q 옵션 : 모든작업이끝나면 pintos 를종료하게하는옵션. 22

Pintos File System 사용방법 (Cont.) Pintos 에서 User program 실행하기 (cont.) $ cd ~/pintos/src/examples/ $ make $ cd../userprog/bulid 3. 파일시스템디스크에실행할응용프로그램복사 (ex: echo 프로그램 ) $pintos p../../examples/echo a echo -- -q -p 옵션 : 시스템디스크로복사, -a 옵션 : 프로그램이름설정 -- : Pintos 프로그램에전달할인자와 Pintos 에서동작하는가상 OS 에전달할인자를구분하기위해사용 실행프로그램은 Regular ELF executable 파일형식으로만들어져야함 4. 프로그램실행 (ex: echo 프로그램을 x 라는인자를넣어서실행 ) $pintos q run echo x run 옵션 : 응용프로그램을실행 pintos 의현재상태로는응용프로그램이실행되지않음 23

Pintos File System 사용방법 (Cont.) Pintos 에서 User program 실행하기 (cont.) 결합된명령어 $pintos --filesys-size=2 p../../examples/echo a echo -- -f q run echo x 앞의모든옵션을한번에넣어서프로그램을실행할수있음. 옵션은반드시 -p, -a, --, -f, -q, -run 순서로실행되어야함. 24

Patch 파일만들기 Patch 파일생성은 'diff' 명령을사용 $ diff [ 옵션 ] [ 원본파일 ] [ 수정된파일 ] > 출력파일.patch $ diff [ 옵션 ] [ 원본디렉토리 ] [ 수정된디렉토리 ] > 출력파일.patch 주요옵션 ( urn ) -u : 수정된부분의앞뒤동일한내용을 3 줄만표시 --unified=2 을사용하면동일한라인을 2 줄만표시 -r : recursive. 재귀적검색, 하위디렉토리를모두검색하여비교 -N : new file. 두디렉토리중어느한디렉토리에만파일이있는경우, 두디렉토리모두에같은파일이존재한다고가정하고비교를진행 자세한옵션은 $ diff --help' 로확인 25

Patch 파일만들기 예제 파일 vs 파일비교하여 patch 파일생성예시 $ diff -u process.c process_new.c > process.c.patch 디렉토리 vs 디렉토리비교하여 patch 파일생성예시 ( -r 옵션사용 ) $ diff -urn pintos/ pintos_new/ > pintos.patch 26

Patch 파일적용하기 Patch 파일적용은 'patch' 명령을사용 $ patch [ 옵션 ] < 결과파일.patch 주요옵션 -p : -pnum 형식으로사용 (NUM= 숫자 ) NUM은 patch에명시된파일경로에서 NUM 만큼하위디렉터리로이동하여 patch 를적용하라는의미 Ex) patch 파일안에 '--- driver/src/display.c' 라는경로가있는경우, -p1 을사용하면 'src/display.c' 경로에위치한파일에해당 patch를적용 패치파일적용예시 $ patch -p0 < pintos.patch 27