Linux 문자 장치는 "/dev" 디렉터리에 위치합니다. 문자 장치는 바이트 단위로만 읽고 쓸 수 있는 장치를 말합니다. 일반적으로 각 문자 장치 또는 블록 장치는 "/dev" 디렉터리의 장치 파일에 해당하며, 각 장치 파일에는 다음과 같은 기본/장치가 있어야 합니다. 동일한 부 장치 번호와 주요 장치 번호는 유사한 장치이며 동일한 드라이버를 사용합니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
1. Linux 장치 드라이버 분류
Linux 시스템은 장치를 문자 장치, 블록 장치 및 네트워크 장치의 세 가지 범주로 나눕니다. 이 세 가지 범주 중 문자 장치는 상대적으로 간단하고 응용 프로그램 문자 장치는 다음과 같습니다. 본 강의에서는 주로 캐릭터 디바이스를 소개하며, 블록 디바이스와 네트워크 디바이스에 관심이 있는 분들은 관련 자료를 참고하여 자세히 알아볼 수 있습니다.
2. 캐릭터 디바이스란?
문자 장치는 바이트 단위로만 읽고 쓸 수 있는 장치를 말합니다. 장치 내의 특정 데이터는 무작위로 읽을 수 없으며 데이터를 순서대로 읽어야 합니다. 문자 장치는 스트림 지향 장치입니다. 일반적인 문자 장치에는 마우스, 키보드, 직렬 포트, 콘솔 및 LED가 포함됩니다.
일반적으로 각 문자 장치 또는 블록 장치는 /dev 디렉터리의 장치 파일에 해당하며, 각 장치 파일에는 메이저/마이너 장치 번호가 있어야 합니다. 동일한 메이저 장치 번호를 가진 장치는 유사한 장치입니다. .동일한 드라이버를 사용하십시오.
Linux 사용자 수준 프로그램은 드라이버를 사용하여 장치 파일을 통해 문자 장치를 작동하거나 장치를 차단합니다.
장치 파일을 생성하는 방법에는 두 가지가 있습니다. 하나는 프로그래밍에서 이 함수를 호출하는 것이고, 다른 하나는 명령의 첫 번째 매개 변수를 사용하는 것입니다. 장치 파일 이름에서 두 번째 매개 변수는 장치 유형입니다. 예를 들어 c는 문자 장치를 나타내고 세 번째와 네 번째 매개 변수는 장치 파일의 주요 장치 번호와 부 장치 번호(예: 231 및 0)입니다. 주요 장치 번호와 보조 장치 번호의 조합에 따라 동일한 장치의 여러 유형의 주요 장치 번호는 동일하지만 보조 장치 번호는 다릅니다. 다른 부 장치 번호. 장치 번호는 장치 파일을 드라이버와 연결할 수 있습니다.
mknod 파일 이름 유형 major min
filename: 생성할 장치 파일 이름,
type: 장치 유형, c는 문자 장치를 나타내고, b는 블록 장치를 나타냅니다.
마이너: 마이너 장치 번호;
4. 문자 장치를 설명하는 방법은 무엇입니까? Linux 커널은 문자 장치를 표현하기 위해 구조체 cdev 구조를 추상화합니다. cdev는 에 정의되어 있습니다. 가장 중요한 것은 문자 장치를 구현하기 위한 작업 집합인 file_Operations 구조입니다.