장치 파일과 장치 드라이버의 차이점

장치 파일과 장치 드라이버의 차이점

저는 장치 드라이버 프로그래밍의 초보자입니다.

Linux에서 장치 드라이버와 장치 파일의 차이점을 이해하지 못합니다.

누구든지 차이점을 설명할 수 있나요?

답변1

장치 드라이버특정 유형의 장비를 작동하거나 제어하는 ​​소프트웨어입니다. 현대에는전체 커널운영 체제 이는 일반적으로 커널의 일부입니다. Linux를 포함한 많은 모놀리식 커널은 런타임에 실행 가능한 모듈을 로드할 수 있는 모듈식 설계를 갖추고 있습니다. 장치 드라이버는 일반적으로 이 기능을 활용하지만 장치 드라이버가 커널 이미지로 컴파일되는 것을 방지할 수 있는 방법은 없습니다.

장치 파일장치 드라이버에 대한 인터페이스이며 마치 일반 파일인 것처럼 파일 시스템에 나타납니다. Unix 계열 운영 체제에서는 일반적 /dev으로 다음 디렉터리에 위치합니다.장치 노드. 장치 파일은 다음을 나타낼 수 있습니다.캐릭터 장치, 스트리밍 데이터를 한 번에 한 문자씩 내보내거나블록 장치데이터 블록에 대한 무작위 액세스를 허용합니다.

장치 노드는 다음과 같이 구성됩니다.mknod시스템 호출. 장치 노드에 의해 노출된 커널 리소스는기본 및 보조 번호. 일반적으로 주요 장치 번호는 장치 드라이버를 식별하고, 보조 장치 번호는 드라이버가 제어하는 ​​특정 장치를 식별합니다.

장치 파일에 포함된 내용은 장치 드라이버가 장치 파일을 통해 공개하는 내용에 따라 달라집니다. 예를 들어, 마우스를 나타내는 문자 장치 파일은 /dev/input/mice마우스 움직임을 문자 스트림으로 노출하는 반면하드 디스크를 나타내는 블록 장치 파일예를 들어 /dev/sda, 장치 메모리의 주소 지정이 가능한 영역을 노출합니다. 일부 장치 파일은 입력을 허용하므로 사용자 공간 응용 프로그램이 장치 파일에 기록하여 장치와 통신할 수 있습니다.

답변2

Thomas Nyman의 말에 덧붙이자면,

Linux의 모든 것은 파일이고 USB, 하드 디스크 등과 같은 일부 내부 장치는 자동으로 마운트되기 때문에 장치를 사용하기 전에 파일 시스템 개체에 마운트해야 합니다.

새 장치가 시스템과 상호 작용하려면 장치 파일을 사용하는 소프트웨어 프로그램인 장치 드라이버가 있어야 합니다.

따라서 기본적으로 장치 파일은 장치 드라이버에 대한 인터페이스를 제공합니다. c를 사용하여 Linux에서 자신만의 장치 드라이버를 작성할 수 있습니다.

관련 정보