한국외국어대학교 정보통신공학과 2004.11.01 박성환 (shpark@dislab.hufs.ac.kr) Ch 1. Windows 2000 Driver 개요 한국외국어대학교 정보통신공학과 2004.11.01 박성환 (shpark@dislab.hufs.ac.kr)

Slides:



Advertisements
Similar presentations
Embedded System 2009 년 11 월 16 일 Embedded Computer1 ● Hardware 와 Software 가 조합되어 특정한 복적을 수행하는 시스템 ● 특정한 기능을 수행하도록 Micro Processor 와 I/O Device 를 내장하며,
Advertisements

사용자를 위한 효율적인 UI 란 ? 부서 : IT 사업부 디자인팀 발표자 : 현인철. 목 차목 차 1.UI (User Interface) 란 ? 2. UI 를 고려한 디자인의 필요성 3. 성공적인 UI 를 위한 방법 4. UI 분석과 평가법 5. 효과적 UI 제작을 위한방법.
Dept. Computer Engineering DBLAB 정보처리개론 담당 교수 : 김정석 2009 년도 1 학기.
더존다스 경영전략과 비젼 1 ERP 개발부문
Page 1 Android Programming November 04 / 2009 S/W Junhyuk Jang.
J-Stream part1 (Software streaming service) ▪ 팀명 : Jukdori ▪ 팀원 : 16 th 윤병호 (PL) 15 th 송인규 16 th 김영진.
Embedded System Hardware와 software가 조합되어 특정한 목적을 수행하는 시스템
땅 따먹기 박중규,나민하 나와 바~악!.
When Poll is Better than Interrupt
CDMA SW 구조 AIITQC 서울본원교육장 양 종 윤.
2009년 IT인재개발원 [연수생 모집요강]
Window 2000 윈도우 2000 기본 프로세스들.
Oozie Web API 기능 테스트 이승엽.
Linux/UNIX Programming
1. 개발 시스템 개요.
Nortelnetworks VPN & Firewall Contivity 1100.
APPEON SOLUTION INTRODUCTION.
제 2장 컴퓨터 구조.
Understanding of Socket and File I/O
Ablecom Type-7 IVR 에이블컴 기술연구소.
A n d r o i d Android 2010 년 5월 19일 작성자 : 백 선 재.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows CE 시스템 개발 환경 구축.
Windows CE 메모리 아키텍처 및 관리 서진호
오목게임 W32 로봇시스템제어(하) GROUP 7 노성동, 하선웅, 김관준
Network Security - Ethereal 실습
Operating Systems Overview
Network Security - Wired Sniffing 실습
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
System Call Linux Kernel 수업 3번째.
Toad for SQL Server 제품 소개서 – 프로넷소프트㈜.
임베디드 운영체제 (리눅스 중심) Lecture #2.
Linux를 이용한 Embedded 장비 개발
리눅스 커널의 이해 중에서 1장. 소개 이원구 네트워크 실험실.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
UNIT 06 JTAG Debugger 로봇 SW 교육원 조용수.
6장 디지털 증거 수집.
운영체제와 Windows XP 초등 ICT 교육 방법론 2013년 1학기.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Windows 2008R2 Hyper-V 기반 데스크톱 가상화 환경
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Visual C++ Programming
Web상에서의 Network Management
임베디드 소프트웨어 동향. 임베디드 소프트웨어 동향 임베디드 S/W 시장분류 솔루션 측면 시스템 측면 운영체제 개발도구 설계도구 테스트도구 유선통신 무선통신 정보가전 자동차제어 산업자동화 사무자동화 군사/항공우주 의료장비 솔루션 공급 업체 임베디드 S/W시장 임베디드.
Ch 13. Windows 관리 기구.
운영체제 (Operating Systems) (Multi-Thread Programming)
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Xen and the Art of Virtualization
제2장 프로세스 이나현.
객체 지향 프로그래밍.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
제10장 파일 시스템 인터페이스(File System Interface)
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Linux/UNIX Programming
네트워크와 소켓 프로그래밍 Chapter 01. * 학습목표 TCP/IP 프로토콜의 동작 원리를 개관 소켓의 기본 개념을 이해
박 태하 ㈜ 아이네트 인터넷 망관리를 위한 도구 박 태하 ㈜ 아이네트.
운영체제(Operating System)
Information Security - Wired Sniffing 실습
OSI 모델 OSI 모델의 개념과 필요성 OSI 모델의 데이터 전송 과정 OSI 모델 7계층 한빛미디어(주)
1조 김성수 백현기 석광우 김지원 박광연.
운영체제 (Operating Systems) (Memory Management Strategies)
김 정 석 Web Programming 김 정 석
Stocker Controller System 소개
Windows7 – 글꼴, 시스템, 장치관리자, 전원옵션
Linux/UNIX Programming
Remote Control Plus - 졸업 프로젝트 배문희.
이번 시간에는... 지난 시간까지 제 1장을 통해 모바일의 정의와 개념, 시작과 발전, 기술과 서비스 및 그 전략을 살펴봄으로써 모바일 산업에 대한 전반적인 이해를 쌓았습니다. 이번시간 부터는 제 2장 모바일 기술을 통해, 무선 인터넷을 위한 컨텐츠 제작 기술, 네트워크.
10장 OSI 7 Layer 강원도립대학교 정보통신개론.
Windows System Programming
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
Presentation transcript:

한국외국어대학교 정보통신공학과 2004.11.01 박성환 (shpark@dislab.hufs.ac.kr) Ch 1. Windows 2000 Driver 개요 한국외국어대학교 정보통신공학과 2004.11.01 박성환 (shpark@dislab.hufs.ac.kr)

Contents 종합적인 System Architecture Kernel Mode I/O 구성요소 특별한 Driver Architecture Summary

1. 종합적인 System Architecture

Windows 운영체제의 변화 운영환경 Driver 확장자 특 징 16 Bits .DRV .VxD 보호모드 32 bits 특 징 16 Bits .DRV .VxD 보호모드 32 bits (16 Bits 지원) .DRV, .VXD .MPD, .PDR .WDM 16 bits 지원으로 불안 순수 32 Bits (그외 특수한 경우) Driver방식 통일 Windows 3.1 Windows 9x Windows 2000, XP, 2003

Windows 2000의 설계 목표 호환성 견고성 신뢰성 성 능 확장성 이식성

실행 Mode User mode Trap (system call) Kernel mode User Mode Trap System에 나쁜영향을 미칠 수 없는 user application code Trap (system call) 실행중인 프로그램 내에 테스트를 위해 특별한 조건을 걸어 놓은 것 Kernel mode System에 있는 모든 code

HAL (Hardware Abstraction Layer) 호환성 & 확장성 User Mode Kernel Mode I/O Manager Device Driver Executive Kernel HAL (Hardware Abstraction Layer) Hardware Platform Windows 2000 운영체제의 계층적 구조 호환성 Layer 구조를 통해 상호 의존적인 부분을 줄임 (추상화) 확장성 모듈화를 통해 다른 Layer와 독립성을 유지한다. (이식성)

성능 모든 계층을 kernel mode에서 수행 서로 다른 작업의 단위를 thread로 병렬수행 kernel내에서의 호출은 CALL정도의 명령만 수반 HAL routine을 사용해, inline함수 정도의 수행 속도 서로 다른 작업의 단위를 thread로 병렬수행 Busy-waiting을 최소화 주의 : device driver code는 결코 block되어서는 안됨

Excutive System Service Interface Object Manager Configuration Manager Process Manager Virtual Memory Manager Local Procedure Call I/O Manager Active Directory Service Environment SubSystem Win32 SubSystem 필수 SubSystem

System Service Interface User Mode SSI Kernel Mode User mode에서 kernel mode로의 전이 단순한 CPU 명령어 정교한 context switching

Object Manager Kernel은 항상 object단위로 관리 User Mode Handle Kernel Mode Mutex Thread Register file Process Memory Kernel은 항상 object단위로 관리 User mode는 handle을 통해서만 access 가능

Configuration Manager Registry Hardware에 설치된 software의 configuration value를 저장하는 database Device driver가 실행될 때 정보 제공 Windows 2000부터 제공하는 plug & play 등장으로 역할이 급격한 감소

Process Manager : Process : Thread Process (Thread 소유) 소유단위 각각의 주소공간 소유 보안 식별자 소유(security identity) : Thread 실행단위 각각 process주소공간 내에 stack소유

Virtual Memory Manager 32bits Addr Kernel Code User Kernel Code User 2G … … … 2G Process Process Process 별로 4G의 virtual memory 공간을 소유함 Thread는 4G안에서 공유함

Virtual Memory Manager Kernel Code 2G Device Driver Code DLL Code Code 2G Stack Heap …

Virtual Memory Manager Kernel Page Table Kernel Code Page … 2G Frame … … … 128M … User Code … Page … Page … … Frame 2G Page Table Physical Memory Virtaul Memory

Local Procedure Call Process 간에 호출 기법 Interprocess call 이라고도 함 Memory 공간이 다르기 때문에 보호를 받음 Interprocess call 이라고도 함 Device driver code는 이를 이용하지 않음

I/O Manager User mode process가 I/O를 수행할 수 있게 추상화 시킨 kernel의 code 목적 : User mode code의 I/O 접근을 device와 무관하게 동작 IRP(I/O Request Packet) 을 통해 user mode에서 kernel mode로 요청

I/O Manager I/O manager는 하나의 layer 역할을 함 User Mode Code I/O Manager(IRP) Kernel Mode Code I/O manager는 하나의 layer 역할을 함

Active Directory Service Windows 2000에서 새롭게 등장한 개념 Network 전반에 걸친 namespace를 제공 자기의 directory 뿐만 아니라 network상의 directory를 관리 DNS같은 directory object까지도 관리 가능 보안에 주의해야 함

Environment SubSystem Win32 SubSystem Virtual DOS Machine SubSystem 32Bits 환경에서 16Bits를 직접실행 시 신뢰성에 문제 이를 중간에서 신뢰성을 보장해줌 Windows On Windows SubSystem 16 Bits Windows app를 실행 시 개별적인 thread 공간 할당 각 Thread간의 정보 공유는 불가 POSIX SubSystem Unix style의 API 제공을 위함이지만, 제대로 동작하지 않음 오히려 win32 style로 바꾸어 실행 OS/2 SubSystem Intel의 x86 버전만을 지원

Win32 SubSystem Windows 2000 의 native API GUI (Graphical User Interface) Console I/O Win32 API

Win32 SubSystem Win32 Application Win32 SubSystem Kernel Service (kernel32.dll Function) User Mode Kernel Mode 실행부 서비스 Win32k.sys 다른 실행부 구성 요소들 Windows Manager (user32.dll function) GDI (GDI32.dll Function) User와 GDI의 Kernel 구성 요소

필수 SubSystem Security SubSystem Service Control Manager RPC Locator (Remote Procedure call)

Kernel Mode I/O 구성 요소

I/O SubSystem의 설계 목표 Platform간의 호환성 Sofeware와 hardware 모두에게 관련된 설정성 Preemption과 interrupt가 가능 Multiprocessor 환경에서의 안전한 code Object 기반 Packet 구동 Asynchronous I/O 지원

Windows 2000 Driver의 종류 상위 Level driver : ex) FSD 하위 Level driver : ex) Disk driver

특별한 Driver Architecture

특별한 Driver Architecture Video Driver Print Driver MultiMedia Driver Network Driver

Video Driver Graphic card에 있는 graphic 가속기 유무 이러한 hardware를 지원해야만 함 가속기가 없는 경우 또한 호환성을 유지해야 함 Standard I/O architecture는 I/O manager와 직접 통신 Video driver는 GDI (Graphic Device Interface)와 통신 GDI 화면에 선을 그리고 글자를 출력 Display driver와 직접 통신 (DDI)

Video Driver Architecture Application User Mode Kernel Mode Graphics Engine(GDI) I/O Manager IRP 전송 DDI 호출 Eng 호출 NT 실행부 Video Port VRP 전송 Display Driver Video Mini Port Video Adaptor

Print Driver 실제 device에 전송전에 spooling mechanism을 거침 Application GDI Job을 File처리 Winspool.drv Client Server Winspoolsv.drv Job에 대한 Serialize Winspoolss.drv Serialize 된 Job을 전송 Print Provider 실제 device에 전송전에 spooling mechanism을 거침 RPC 이 spooling에 대한 처리를 함

MultiMedia Driver Win2k가 kernel streaming(KS) 을 지원 Function streaming Filter streaming Application은 마치 COM처럼 kernel streaming과 통신 Method , properties , event Kernel streaming의 4가지 object Fliter object Pin object Clock object Allocator object Windows 2000은 stream.sys를 제공하기에 multimedia device driver를 작성하려면 Mini Driver만을 작성함

Network Driver OSI (Open Systems Interconnection) model을 따름 NDIS NIC Driver를 지원하는 Library 제공 NDIS Protocol Driver NDIS 인터미디엇 Driver Hardware를 제어하기 위해 NDIS Lib를 이용 NDIS Mini Port Network Hardware (NIC) OSI (Open Systems Interconnection) model을 따름 Transport layer은 개별적인 protocol driver에 의해 제공

Summary Windows 2000은 application을 위해 다양한 구조와 library를 제공함 Device driver는 절대 kernel 영역에 변화를 주는 영향을 미쳐서는 안됨 호환성, 견고성 & 신뢰성, 이식성, 확장성, 성능을 고려해 device driver를 작성해야 함 Device driver를 level별로 잘 고려해서 구조를 잡아야 함