일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 삼성전자 소프트웨어멤버십 SSM
- 고려대학교
- Bidirectional Associative Memory
- 나르왈프레오
- 물걸레자동세척로봇청소기
- 삼성
- 빅데이터
- 신경망
- SSM
- Neural Network
- 삼성소프트웨어멤버십
- 구글 앱 엔진
- 증강현실
- 가상화
- NarwalFreo
- 인공지능
- 멤버십
- 패턴 인식
- Python
- 패턴인식
- 물걸레로봇청소기추천
- 하이퍼바이저
- Google App Engine
- 신경회로망
- 파이썬
- hopfield network
- 동아리
- BAM
- Friendship
- 갤럭시탭S8울트라
- Today
- Total
정보공간_1
디바이스 드라이버란? 본문
안녕하세요. 대전멤버십에서 Winsys의 시그장을 맡고 있는 20-2기 양현철입니다.
오늘은 저희 시그에서 공부하고 있는 디바이스 드라이버에 대해 설명을 드리겠습니다.
디바이스 드라이버란?
운영체제는 커널모드와 사용자모드로 나눠집니다.
커널모드에서는 프린터드라이버나, 디스플레이드라이버, 키보드 드라이버 등 백그라운드에서 실행되는 파일들이 동작합니다. 반면 사용자모드에서는 한글, MS오피스 등 임의로 실행시킨 프로그램이 동작합니다. 그렇기 때문에 사용자모드에서는 커널모드에서 접근할 수 있는 메모리공간에 접근하지 못합니다.
응용프로그램에서 하드웨어를 제어할 때는 디바이스 파일을 이용합니다.
저수준의 파일 입출력함수를 사용 해 디바이스 파일에 접근하여 최종적으로 하드웨어가 제어됩니다.
개발툴 설치 & 예제소스 컴파일
디바이스 드라이버를 개발하기 위해서는 DDK(Dirver Development Kit)이라는 툴을 사용해야합니다.
다운로드 주소 : http://download.microsoft.com/download/9/0/f/90f019ac-8243-48d3-91cf-81fc4093ecfd/1830_usa_ddk.iso
설치가 완료되면 시작메뉴에 Development Kit가 생성됩니다.
위와 같이 C\test 폴더를 만들고 test.c, makefile, source파일을 만듭니다.
“makefile”과 “source”을 만듭니다.(TARGETNAME에 만들 deriver의 이름을 넣고, sources에 컴파일할 SOURCE인 test.c파일을 입력합니다.)
작성이 완료되면 아래와 같이 build창을 열고, build명령인 “build -cegz"를 사용하여 빌드합니다.
[BUILD창]
[BUILD 성공]
BUILD가 성공되면 위와 같이 폴더와 파일이 생성됩니다.
생성된 “objfre_wxp_x86”폴더 안에 들어가면 SOURCE에서 설정한 TARGETNAME과 같은 이름인 “WinSysDriver.sys”파일이 있는것을 확인할 수 있습니다.
sys확장자인 드라이버를 로드하기 위해서는 “instdrv”프로그램을 사용하여 드라이버 파일을 로드합니다.
그리고 “Dbgview”프로그램을 사용하여 디버그 메시지를 확인합니다.
start를 누르면 Driver Load!!가 출력됩니다.
stop을 누르면 Driver unload!가 출력됩니다.
드라이버가 load & unload가 되는 것을 확인할 수 있습니다.
'IT 놀이터 > IT Storehouse' 카테고리의 다른 글
[Data Structure & Algorithm] 포인터 & 연결 리스트 (0) | 2011.11.29 |
---|---|
[PhysX] 2부 PhysX 소스 분석! (0) | 2011.11.29 |
Visual Studio 2010에서 c++ 외부 라이브러리 설정에 대하여 (1) | 2011.10.16 |
[PhysX] 1부 PhysX 입문! (1) | 2011.10.15 |
Android ADK란? (4) | 2011.10.15 |