블럭디바이스 드라이버의 Request_Queue와 Application Level의 Read Write의 관계를 알고 싶습니다.
리눅스에서 Application Level에서 디바이스를 Open 하고 Read Write를 하는 경우
디바이스 드라이버의 Read Write Open 함수와 맵핑을 시킨다고 하는데...
보통 네트워크 카드들은 그런 구성으로 이루어 진거 같은데...
블럭디바이스 드라이버는 보통 구조가
커널에서 Request 생성 -> Request_Queue에 인큐 -> 디바이스 드라이버에서 처리
이런식으로 이루어지는 것 같은데...
만약 제가 /dev/myHdd1 이라는 디바이스의 드라이버를 만들고
Application 래밸에서 fd = open ("/dev/myHdd1")을 부르고
Read(fd,..........) 을 수행하게 된다면....
어떤식으로 동작이 이루어지는 것일까요?
Read 함수를 열어보니