리눅스 디바이스 드라이버 입문자 입니다.

소스를 보다보니 블록 디바이스 드라이버 등록을 위해 register_blkdev()가 존재 하나 add_disk()를 사용하여 등록및 드라이버에 대한 환경설정등을 하는것을 보았습니다.

 

첫번 질문은 두 개의 함수 모두 디바이스 드라이버를 등록한다라는 기능은 같아보이는데... 그렇다면 register_blkdev()함수를 사용할 필요없이 add_disk()만을통해 등록해두 되지 않나요???

 

두번째 질문은 어떤 블락 드라이버 소스를 보니 register_blkdev()를 사용안했습니다. add_disk()를 사용하여 gendisk의 내용을 커널에 등록하여 사용하였습니다. insmod 의 명령을 사용하여 드라이버를 모듈로 적재하기 때문에 굳이  register_blkdev()를 사용안했던거 같은데.. 제 생각이 맞는지요???

 

수고스럽지만 답변 부탁드립니다.