>운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux 문자 장치란 무엇입니까?

Linux 문자 장치란 무엇입니까?

青灯夜游
青灯夜游원래의
2022-05-12 15:56:005078검색

Linux 문자 장치에는 다음이 포함됩니다. 1. 컴퓨터의 외부 입력 장치이자 컴퓨터 디스플레이 시스템의 수직 및 수평 좌표 위치를 지정하는 표시기인 마우스 2. 다음 작업에 사용되는 명령 및 데이터 입력 장치인 키보드 3. 직렬 포트 터미널, 컴퓨터 직렬 포트를 사용하여 연결된 터미널 장치 5. 콘솔 등

Linux 문자 장치란 무엇입니까?

이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.

관리의 편의를 위해 Linux 시스템에서는 장치를 세 가지 기본 유형으로 나눕니다.

  • 문자 장치

  • 블록 장치

  • 네트워크 장치

모두 파일 시스템에 표시됩니다. 파일 노드 /dev 디렉토리의 형태(crw--w---- 1 root tty 4, 0 July 11 09:11 tty0 여기서 c는 문자 장치 유형을 나타냄).

리눅스 문자 장치

문자 장치란 마우스, 키보드, 직렬 포트 장치, 모뎀 등 버퍼링 없이 직접 읽고 쓸 수 있는 장치를 말합니다. 블록 장치와 차이점은 문자 연산의 기본입니다. 단위는 바이트입니다.

문자 장치 분류

문자 장치에는 주로 콘솔, 키보드 등 제어 단말 장치와 직렬 단말 장치가 포함됩니다. 기능과 하드웨어의 차이에 따라 문자 단말 장치는 다음과 같이 분류됩니다.

  • 직렬 포트 터미널(/dev/ttSn): 컴퓨터 직렬 포트를 사용하여 연결된 단말 장치 직렬 장치 데이터 전송 방법은 동일합니다. 8비트는 한 줄로 전송됩니다. 명령줄에 echo 'hello world' > /dev/ttyS0을 입력하면 해당 장치에 입력이 기록됩니다.

  • 의사 터미널(/dev/ttyp, /dev/ptyp): 하위 계층에 실제 하드웨어 장치가 없다는 사실에 맞춰, 다음과 같은 다른 프로그램에 터미널 스타일 인터페이스를 제공하는 데 사용됩니다. 네트워크를 통해 호스트에 로그인할 때 네트워크 서버와 쉘 프로그램 사이.

  • 제어 터미널(/dev/tty): 기본 장치 번호는 5입니다. 프로세스 제어 터미널은 프로세스와 연결됩니다. 예를 들어 로그인 쉘 프로세스는 /dev/tty 터미널을 사용합니다.

  • 콘솔(/dev/ttyn, /dev/consol): 컴퓨터 입출력을 위한 모니터입니다. 콘솔에 로그인하면 tty1이 사용되고, ubuntu 그래픽 인터페이스는 tty7을 사용합니다.

  • 기타 유형: 현재 Linux에는 ISIDIN 장치의 /dev/ttyIn 장치와 같이 다양한 장치에 대한 다양한 유형의 장치 특수 파일이 있습니다.

다음은 캐릭터 디바이스 구조의 개략도입니다

Linux 문자 장치란 무엇입니까?

캐릭터 디바이스의 성격과 특징

  • 캐릭터 디바이스는 디바이스 파일 시스템의 일종으로, 논리 디바이스와 동일합니다. 데이터 포트(데이터 레지스터)를 파일에 연결하는 것처럼 기본 하드웨어에서 상위 계층으로 제공하는 장치 파일은 장치 드라이버가 파일에 대해 직접 작동하므로 포트에서 직접 읽기 및 쓰기 작업을 수행합니다. 또한 파일로서 문자 장치 드라이버는 open(), close(), write(), read() 등과 같은 파일의 기본 작업도 구현해야 합니다. 물론 터미널 리디렉션 작업도 지원됩니다.

  • 캐릭터 디바이스 파일 파일은 싱글바이트 단위로 읽고 쓰기 때문에 하드웨어 버퍼를 설정할 필요가 없습니다. 장치는 운영 체제에서 바이트 스트림으로 액세스됩니다. 바이트 스트림은 하드웨어 포트와 파일 시스템 사이에 전송 파이프를 설정하는 것과 같습니다. 바이트는 파이프를 통해 하나씩 전송되어 판독기와 기록기 모두에게 제공됩니다. 이 스트리밍 기능은 드라이버에서 버퍼 대기열로 구현됩니다. 예: 콘솔 구조의 읽기-쓰기 버퍼 큐

struct tty_struct {
struct termios termios;
int pgrp;
int stopped;
void (*write)(struct tty_struct * tty);
struct tty_queue read_q;               //读队列
struct tty_queue write_q;              //写队列
struct tty_queue secondary;            //tty辅助队列(存放规格化后的字符)
};
  • 문자 장치는 문자 장치 번호로 식별됩니다. 문자 장치 번호는 주요 장치 번호와 부 장치 번호로 구성됩니다. 예를 들어, /dev/ttyS0의 장치 번호는 (4, 64)이며, 커널은 해당 장치에 해당하는 드라이버를 식별합니다. 일반적으로 부 장치 번호는 장치와 드라이버를 일대일로 일치시키기 위해 드라이버에서 내부적으로 사용하는 코드로 사용되며 다른 부분에서는 사용되지 않습니다. 커널의.

관련 추천: "Linux 비디오 튜토리얼"

위 내용은 Linux 문자 장치란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.