장치 드라이버 프로그래밍에서 "cdev"와 "inode" 구조의 차이점은 무엇입니까?

장치 드라이버 프로그래밍에서 "cdev"와 "inode" 구조의 차이점은 무엇입니까?

저는 현재 운영 체제 과정에서 장치 드라이버에 대해 배우고 있는데 "inode" 구조와 "cdev" 구조의 차이점에 대해 혼란스럽습니다. 누군가 이 두 구조의 차이점과 그들이 달성하려는 목표를 명확히 할 수 있습니까?

답변1

귀하의 질문에는 특정 맥락이 언급되어 있지 않습니다.struct cdev그리고struct inode.

둘 사이에는 본질적인 차이점이 있습니다.

struct cdev문자 장치를 나타내며 드라이버에 대한 액세스를 제공합니다. 이는 문자 장치에서 지원하는 다양한 작업의 구현을 나타냅니다.

struct inodeinode와 커널이 이를 사용하고 추적하는 데 필요한 모든 정보를 나타냅니다. inode는 파일에 대한 액세스를 제공하며 파일의 메타데이터(소유권, 권한, ACL, 타임스탬프, 크기 등)를 포함합니다. 커널은 자신이 바인딩된 파일 시스템, 지원하는 작업 구현 위치, 기능이 무엇인지 알아야 합니다. 상태는 대기중

inode 자체가 문자 장치에 해당하는 경우 a의 인스턴스는 struct inodea에 대한 포인터를 포함할 수 있습니다(struct cdev예를 들어/dev/null커널에서 인스턴스화되면 해당 inode는 연관된 문자 장치로 표시되고 이를 가리킵니다 struct inode.i_cdev

관련 정보