컴퓨터공부

[펌] [WDM] debive programmer가 되려면...

achivenKakao 2006. 2. 12. 04:49
1.교육기관이 있었습니다.
전에는 3개월 코스로 하는 학원이 있었는데
강사는 디바이스 드라이버 개발회사(하제소프트)의 직원이
와서 하는 형태였습니다.학원이름이 생각이 안나네요? --

1.1 windows OS개론,protected mode 개념, GDT,LDT 등

1.2 softice라는 윈도우 디바이드라이버 개발 툴 교육
: 3개월 내내 이것을 사용하였습니다. 현존하는 최고의
윈도우 커널 디버거 입니다. f4인가를 누르면 갑자가
윈도우가 stop되고 소프트 아이스 모드로 들어가며
CPU와 메모리, 레지스터의 현재 상태를 볼수 있고
수정도 할수 있고, 강력한 tracing 기능 까지 있습니다.
즉 OS자체를 디버깅 하는 것입니다.

1.3 Filesystem, USB, Serial, Graphinc card,Pnp
각 타입의 디바이스 드라이버 실습이 있습니다.

2. 디바이스 드라이버 자체 구조에 대한 이해도 필요하지만
만들어야할 target board를 이해할 수 있어야 했습니다.
예를 들어 USB타입의 보드의 콘트롤 레지스터 개념이나 하드웨어 제어
지식이 있어야겠죠.

3. 사실 윈도우 디바이스드라이버는 너무 구조가 복잡해서 그 자체 문법을
이해하는 것이 어려웠습니다.

현재는 GSM 폰 SW를 하고 있는데 폰에도 당연히 디바이스
드라이버스가 있습니다.

그러나 폰 용 OS는 극도로 단순하며 디바이스드라이버 자체도 복잡한
구조가 있는 것이 아니라서 즉 폰은 표준이 없으므로 만드사람 맘대로
제작 가능합니다. 그리고 MS와는 달리 소스를 모두 공개하므로
디바이스 드라이버 소스를 직접 볼수 있는데 칩 데이터 쉬트만 이해하면
그렇게 어렵지만은 안습니다.

즉 너무 어려운 윈도우 디바이스 드라버도 좋지만 처음에는 쉬운 대상을
찾아서 경험을 쌓는 것도 좋을 듯합니다. 그런 예로 폰 소프트웨어가
괜찬은 거 같습니다.

결국 핸드폰회사 들어가서 좀 배우다가 윈도우 드라이버 개발 쪽으로 --;;;;


4. 책은 walter Oney 가 쓴 윈도우 디바이스 드라이버 책이 좋은거 같습니다.

Programming the Microsoft Windows Driver Model 2/E
Microsoft-press / 정가 : 78,000원

5. 언어는 기본적으로 C가 능통해야 하며, PC 어셈도 알아야 합니다.

6. 이론적으로는 보통 대학에서 '기조직'이라는 과목(2학년 과목)의
computer architecture 책하나 정도는 봐야 할 거 같구요.

7. OS 개론 정도는 알아야 하겠죠.