키보드에서 추가 키를 누르면 어떻게 되나요?

키보드에서 추가 키를 누르면 어떻게 되나요?

추가 키가 있는 키보드가 어떻게 작동하는지 보고 싶습니다. 예를 들어 다음과 같은 키보드가 있다고 가정해 보겠습니다.

여기에 이미지 설명을 입력하세요.

추가 키가 있는 것을 볼 수 있습니다. 이제 내가 눌렀다고 해봐조용한결정적으로, 이 상황에서는 무슨 일이 일어나는가?

내 생각에 이런 일이 일어나고 있다고 생각합니다.

  • 신호가 컴퓨터로 전송됩니다.
  • 키보드 장치 드라이버는 이 신호를 받습니다.
  • 키보드 장치 드라이버는 신호가 음소거 신호임을 ​​확인하므로 이를 운영 체제에 전달하는 대신 운영 체제 기능/시스템 호출을 호출하여 컴퓨터의 사운드를 음소거합니다.

내가 맞나요?

답변1

입력 레이어에 대한 매우 간략한 개요:

키보드 장치는 USB 또는 PS/2 포트 등을 통해 PC에 연결됩니다. 이 메커니즘의 커널 드라이버는 키보드의 키를 누를 때 통신을 처리하는 방법을 알고 있습니다.

USB 키보드에는 다음과 같은 표준이 있습니다.고압 가스 방전관(휴먼 인터페이스 장치)가 존재합니다. 이는 키보드뿐만 아니라 마우스, 조이스틱 및 기타 입력 장치에도 적용됩니다. 따라서 장치에는설명자커널이 내보낼 수 있는 신호와 다음을 포함한 다양한 키 입력에 대한 코드를 알려줍니다.조용한표준화되어 있습니다.

그러나 일부 키보드의 키는 표준화되어 있지 않으며(예: Fn일부 키보드의 키) 해당 키에 신호를 보내는 방법은 제조업체에 따라 다릅니다.

커널에는 HID 장치를 처리하기 위한 특수 계층이 있습니다. 이 계층은 원시 HID 통신을 가능하게 한 /dev/hidrawX다음 HID 이벤트를 커널 입력 이벤트로 변환합니다.

커널 입력 계층은 다음을 사용합니다.스캔 코드(장치에 고유한 물리적 키에 해당하는 숫자)를 다음과 같이 변환합니다.키 코드(모든 장치에 걸쳐 표준화된 논리 키에 해당하는 숫자) 둘 다 이벤트 로 제공 됩니다 /dev/input/eventX. 변환표를 보려면 , 등을 evdev사용하여 이러한 이벤트를 볼 수 있습니다 .showkeydumpkeys

X 서버(또는 Wayland)는 이러한 모든 이벤트를 읽고 이를주요 기호(예: , 등 a또는 á특수, 예: AudioMute). X 응용프로그램은 이 기호를 수신하고 그에 따라 작동할 수 있습니다. 애플리케이션 보기를 사용하여 이 레이어를 보고 xev.xmodmapxkbdxorg.conf

대응하려면 AudioMute몇 가지 애플리케이션이 필요합니다. 일반적으로 이는 창 관리자이지만 창 관리자가 이 작업을 수행하지 않는 경우 별도의 응용 프로그램도 작동합니다.

따라서 단일 "키보드 드라이버"는 없으며 훨씬 더 복잡하고 특별히 "자동"이 필요하지 않습니다.

답변2

일반적으로 말하면 귀하의 이해가 정확합니다. 키를 누르면 키보드는 기본적으로 각 키를 식별하는 일련의 숫자인 스캔 코드를 보냅니다. 스캔 코드는 키 코드에 매핑됩니다. 각 키코드는 프로그램이 특정 키 누르기에 어떻게 반응해야 하는지를 정의하는 기능에 해당합니다. Xorg와 콘솔은 서로 다른 키코드 세트를 사용합니다. 저는 Wayland에 대해 잘 모르지만 자체 키코드 세트를 사용할 수도 있습니다. 키 코드는 키 기호에 매핑됩니다. 키 기호를 사용하면 개발자가 더 높은 추상화 수준에서 키보드를 사용하여 작업할 수 있습니다.

showkey --scancode콘솔에서 및 각각 실행하여 스캔코드와 키코드를 확인할 수 있습니다 showkey --keycode. Xorg에서는 xev후자를 사용해야 합니다 .

이러한 추상화 수준을 사용하면 Linux 환경의 다양한 부분에 영향을 미치는 유연하고 복잡한 매핑 체계를 만들 수 있습니다. 이것ArchWiki 기사그리기 기술에 대한 많은 정보가 포함되어 있습니다. 더 배우고 싶다면 읽어보세요.

더 많은 것이 있습니다기사인터넷에서는 키보드가 내부에서 어떻게 작동하는지 설명합니다. 기사가 1999년에 작성되었는지 2010년에 작성되었는지는 중요하지 않습니다. 그 이후로 키보드 측면에서는 많은 변화가 없었지만 USB HID 장치는 "클래식" PS/2 키보드와 동일한 방식으로 작동하지 않는다는 점을 명심하세요.

관련 정보