Presentation is loading. Please wait.

Presentation is loading. Please wait.

Windows95 VxD Design and Win32 Application inter face 발 표 : 노 원국 ( 컴퓨터 시스템 설계 )

Similar presentations


Presentation on theme: "Windows95 VxD Design and Win32 Application inter face 발 표 : 노 원국 ( 컴퓨터 시스템 설계 )"— Presentation transcript:

1 Windows95 VxD Design and Win32 Application inter face 발 표 : 노 원국 ( 컴퓨터 시스템 설계 )

2 목 차 History of Device Driver for Windows VxD Programming 환경 Two Scenario for VxD Programming VxD Basic Conceptio 결 론

3 History of Device Drivers for Windows Real-Mode Windows(DOS)  MS-DOS and System BIOS 가 Driver 제공  Software Interrup 를 이용하여 Driver Service export  Application 이 하드웨어 자원을 직접 제어  BIOS 가 Hardware Interrupt Managing  Config.sys 를 이용하여 Driver 등록 .COM and.SYS type(tiny memory model) Standard-Mode Windows(Win1.0)  Windows 는 단지 Large Graphics App 에 불과  Intel 80286 의 출현으로 Protected Mode 가 가능  Protected Mode 는 16M 이상의 Physical Memory Access 를 가능

4 History of Device Drivers for Windows Standard-Mode Windows(cont ’ d)  Processor 가 Protected-Mode 와 Real-Mode 사이를 Switching 하여 Windows 가 MS-DOS 와 BIOS 를 사용할 수 있도록 하는 Mode.  Window 가 Real-Mode 로의 Switching 을 요구하지 않는 경우 발생 (Keystrokes or Mouse Motion)  Protected-Mode 에서 I/O Interrupt 를 Handle 하는 Protected-Mode Device Driver 가 요구  Mouse.Drv, Comm.Drv etc .Drv 는 16bit Ring-Three DLL  Protected-Mode 하에서, Hardware 와 Standard Windows Kernel, User, GDI Module 사이의 Interface 를 담당  MS-DOS 와 Windows 는 Processor 를 Reset(Reboot) 하여 Switch

5 History of Device Drivers for Windows Enhanced-Mode Windows(Win3.1)  Intel 80386 은 Real, Protected, V86 Mode 를 지원  V86(Virtualize 80386) 은 Physical Machine 을 Virtualization  Application 은 마치 자신이 Real Machine 을 독점하여 사용하는 것 처럼 동작 (Multitask 개념 등장 )  Enhanced Mode 의 Main advantage 는 Graphical desktop 의 Window 하에서 MS-DOS 를 실행시킬 수 있다는 것  Driver 의 형태는 기존의 xxx.Drv 와 xxx.Dll, xxx.Vxd 를 Support  그러나 Disk and File I/O 는 MS-DOS and BIOS 를 사용한다.  16bit Driver 사용  진정한 32bit OS 라 할 수 없다.

6 History of Device Drivers for Windows Windows95  기존의 16bit Driver 와 Application 지원  Real, Protected, V86 Mode 를 지원  Ring-three Component 대신에 32bit, Ring-zero virtual Device Driver 사용 (Vxd type-32bit Device Driver)  VxD 는 Hardware 와 Application 사이의 모든 Interrupt 를 Handling 하 고 Data Transfer 를 실행  Application 은 VxD 와 Communication 을 하기 위하여 Function Call 을 사용  16bit Application 과 16bit Device Driver 의 Interface 를 위하여 Software Interrupt INT 2Fh 를 사용  32bit Application 과 32bit Device Driver 에서 Software Interrupt 사용 이 불가능

7 History of Device Drivers for Windows Windows95(cont ’ d)  32bit App 와 32bit Device Driver 의 Interface 는 단지 Win32 DeviceIoControl API function 사용  Windows95 는 Real Machine 의 모든 Component(Hardware) 를 가 상화하여 System VxD 를 제공한다.  VMM.VxD, VPICD.VxD, VCOMM.VxD  Hardware Design Vendor 는 자신들의 Device 를 위하여 Virtual Device Driver 를 제공해야 한다.  Microsoft 는 순수한 32bit Device Driver Design 을 권고하고 있으며 Hardware 에 관련된 모든 작업을 Device Driver 에서 전담하고 App 는 단지 Data 를 조작하는 수준으로 만들도록 권고.

8 VxD Programming 환경  Windows95 DDK (Microsoft MSDN)  32bit Assembler (MSAM 6.11c)  32bit C Complier & Linker (Visual C++ 2.0 이상 ) VToolsD  Vireo 사의 DDK Tool  C & C++ 로 VxD 작성가능  완벽한 C Wrapper Function 제공  풍부한 C++ Class Library 제공  Quick VxD Wizzard 를 이용한 VxD 기본 골격을 자동 생성

9 Two Scenario for VxD Programming First Scenario  Hardware Resource 를 VxD & Application 에서 제어  I/O Trapping & Interrupt Virtualization 요구  Application 간 Thread Switching 으로 인한 High Latency 문제  Ring-zero 와 Ring-Three 간 Switching 으로 인한 High Latency 문제 Second Scenario  Hardware Resource 를 VxD 에서 전담하여 처리  Application 은 처리할 Data 만을 VxD 로 넘겨주고 처리된 Data 를 받 아서 Windows Processing 수행  I/O Trapping 불필요  Interrupt 의 경우 Hw_Int_Proc 만을 고려하여 작성  Microsoft 에서 권장하고 있는 방법 (32bit VxD)

10 VxD Basic Conception Device Declaration Block(DDB)  Device Driver 의 구조에 대한 선언  VMM 과 Device Driver 의 Communication 에서 사용됨  DDB 에 선언되는 내용 - Device Driver Name - Major Version - Minor Version - Control Procedure - Device ID - Initial Order - V86 API Procedure(16bit Application 에서 사용 ) - PM API Procedure(16bit Application 에서 사용 )

11 VxD Basic Conception Control Procedure  VMM 은 모든 Loaded VxDs 로 System Control 메세지를 보낸다.  VxD 는 이들 Messages 를 받기 위하여 Device Control Procedure 를 Export 한다.(Begin_Control_Dispatch macro 에서 정의 )  Procedure 는 Message Code 를 분석하고 SubProcedure 를 실행 - Startup and Shutdown Message - Virtual Machine Message - Other Control Message(Dynamic VxD Message 외 다수 ) - Sys_Dynamic_Device_Init - Sys_Dynamic_Device_Exit - W32_DeviceIoControl

12 VxD Basic Conception Dynamic Device Driver(Dynamic VxD)  Sys_Dynamic_Device_Init - Device 가 Load 되는 시점에 Device Driver 초기화하는 Routine - I/O Port Virtualization - Interrupt Virtualization  Sys_Dynamic_Device_Exit - Device 가 Unload 되는 시점에 Device Driver 가 획득한 모 든 Handle 및 Memory 를 System 에 반환하는 Routine - I/O Port Trapping 을 Remove - Interrupt Virtualization Handle 을 System 에 반환

13 VxD Basic Conception VxD & 16bit Application Interface  Software Interrupt 사용  DDB 에서 선언된 V86 & PM API Procedure 이용  INT 2Fh.. Function 1684h 를 이용하여 API 의 Address 를 얻는다.  VM Control Block, Client_Register, Thread Control Block Data Stucture 를 이용

14 VxD Basic Conception VxD & 32bit Application Interface  CreateFile Function 을 이용하여 VxD 를 Load 시키고 VxD 에 대한 Handle 을 얻는다.  Win32 Application 과 Communication 할 수 있는 유일한 Interface 는 W32_DeviceIoControl Message 를 이용  Device Driver Load 시 VMM 으로부터 첫번째 W32_DeviceIoControl Message 가 보내지고  Device Driver 에서 이 Message 를 받아 Interface 가 생성  Application 은 DeviceIoControl Function 을 이용하여 W32_DeviceIoControl Message 를 생성  Device Driver 는 W32_DeviceIoControl Procedure 를 정의하고 Application 이 요구하는 일을 수행  SHELL_PostMessage Function 사용

15 VxD Basic Conception Win32 App APIVMMVxD Create File Device Driver Handle DeviceIoControl Return Valve Sys_Dynamic_Device_Init NO_ERROR Return W32_DEVICE_IO_CONTROL

16 결 론 Windos Device Driver 개발의 필요성  PC 용 Hardware 개발자에게 있어서  Windows95 OS 는 많은 베일에 가려져 있다.  더욱이 Win32 Application Software 개발시  현재 가장 많이 사용되는 Visual C++ & MFC 에서는  개발한 Hardware 를 제어할 수 있는 Function 이 거의 없다. Device Driver 개발시 어려움  Document 가 거의 없다.  Hardware & Software Bug 의 출처를 파악하기 힘들다.  Bug 발생시 System Down 의 원인  Source 가 풍부하지 않다 (Win32 Application & VxD)

17 참 고 자 료참 고 자 료 Systems Programming for Windows95 (Walter Oney Microsoft Press) Writing Windows VxDs and Device Drivers (Karen Hazzah R&D Books Lawrence, KS 66046) http:\\www.numega.com http:\\bd-lab.co.kr


Download ppt "Windows95 VxD Design and Win32 Application inter face 발 표 : 노 원국 ( 컴퓨터 시스템 설계 )"

Similar presentations


Ads by Google