-
device driverlinux system 2018. 11. 9. 15:19
리눅스에서 insmod 명령어를 사용하여 device driver를 커널에 등록할 수 있다.
insmod명령어는 module_init() 매크로를 실행하는 일을 한다. rmmod명령어는 cleanup_module함수를 실행한다.
linux용 device driver는 init_module함수와 cleanup_module함수를 작성해주어야 한다. init_module은 보통 디바이스 드라이버를 주/부 번호를 사용해 등록하는 register_chrdev(장치 주번호, 장치이름, file_operations)함수를 수행한다. 예를 들어, 터미널 드라이버 경우에는 register_chrdev(4, "tty", &tty_fops); 주번호 : 4, 디바이스 이름 : "tty” , 파일 연산 : tty_fops구조체이다.
windows에서는 IoCreateDevice함수는 디바이스 드라이버를 커널에 할당하고, 디바이스 오브젝트를 반환한다. 언로드시 IoDeleteDevice 함수를 호출하여, 할당된 메모리 및 오브젝트를 반환해주어야 한다. IoCreateSymbolicLink함수를 사용하여 오브젝트 접근을 string 으로 할 수 있다.
'linux system' 카테고리의 다른 글
X11 (0) 2017.03.28 gdb명령어 (0) 2013.11.09