본문으로 이동
  • 현재 모든 문서는 작성 중입니다. 보시는 데 불편함이 있더라도 양해 부탁드립니다.

운영체제 기본/Linux/x86-64/i8042 키보드 입력: 두 판 사이의 차이

~ldmsys
통합한 장치 제어와 입출력 문서의 대응 절로 IRQ 링크 갱신
직접 관련된 총론 링크와 선행 개념 안내 정리
 
(같은 사용자의 중간 판 10개는 보이지 않습니다)
1번째 줄: 1번째 줄:
[[운영체제 기본|운영체제 기본 목차]] · 관련 총론: [[운영체제 기본/장치 제어와 입출력#실행 흐름과 독립적인 사건의 통지|인터럽트]]
{{이전 다음 문서
|이전=
|목차=[[운영체제 기본|운영체제 기본 목차]]
|다음=
}}


'''Linux v6.12, x86-64, i8042에 연결된 PS/2 키보드'''를 기준으로 키 입력이 사용자 프로세스에 도착하는 경로를 추적한다. IRQ 진입은 일반적인 IDT 경로를 다루며, USB 키보드와 FRED 진입 경로는 구분한다.
'''Linux v6.12, x86-64, i8042에 연결된 PS/2 키보드'''를 기준으로 키 입력이 사용자 프로세스에 도착하는 경로를 추적한다. IRQ 진입은 일반적인 IDT 경로를 다루며, USB 키보드와 FRED 진입 경로는 구분한다.


== 읽는 순서 ==
== 관련 총론 ==
# [[운영체제 기본/Linux의 키보드 입력/IRQ 진입과 디스패치|IRQ 진입과 디스패치]]: CPU가 인터럽트를 받아 등록된 장치 처리기를 실행하는 과정.
* [[운영체제 기본/장치 제어와 입출력|장치 제어와 입출력]]: IRQ 통지와 처리 진입점, 장치 접근.
# [[운영체제 기본/Linux의 키보드 입력/i8042와 입력 이벤트|i8042와 입력 이벤트]]: 수신 바이트가 스캔 코드와 Linux 키 이벤트로 바뀌는 과정.
* [[운영체제 기본/프로세스와 스레드|프로세스와 스레드]]: 입력 대기와 깨우기, 실제 실행 시점의 구분.
# [[운영체제 기본/Linux의 키보드 입력/evdev와 프로세스 깨우기|evdev와 프로세스 깨우기]]: 이벤트를 버퍼에 넣고 대기 중인 read를 깨우는 과정.
* [[운영체제 기본/파일과 입출력|파일과 입출력]]: 파일 인터페이스를 통한 입력과 버퍼링.
# [[운영체제 기본/Linux의 키보드 입력/콘솔과 터미널 입력|콘솔과 터미널 입력]]: 가상 콘솔에서 키 이벤트가 문자와 터미널 입력으로 바뀌는 경로.
 
== 문서 구성 ==
# [[운영체제 기본/Linux/x86-64/i8042 키보드 입력/IRQ 진입과 디스패치|IRQ 진입과 디스패치]]: CPU가 인터럽트를 받아 등록된 장치 처리기를 실행하는 과정.
# [[운영체제 기본/Linux/x86-64/i8042 키보드 입력/i8042와 입력 이벤트|i8042와 입력 이벤트]]: 수신 바이트가 스캔 코드와 Linux 키 이벤트로 바뀌는 과정.
# [[운영체제 기본/Linux/x86-64/i8042 키보드 입력/evdev의 이벤트 전달과 대기 해제|evdev의 이벤트 전달과 대기 해제]]: 이벤트를 버퍼에 넣고 대기 중인 read를 깨우는 과정.
# [[운영체제 기본/Linux/x86-64/i8042 키보드 입력/콘솔과 터미널 입력|콘솔과 터미널 입력]]: 가상 콘솔에서 키 이벤트가 문자와 터미널 입력으로 바뀌는 경로.


evdev와 가상 콘솔은 input 계층 이후의 서로 다른 전달 경로다. evdev에서 읽은 이벤트가 차례로 콘솔을 거치는 구조는 아니다.
evdev와 가상 콘솔은 input 계층 이후의 서로 다른 전달 경로다. evdev에서 읽은 이벤트가 차례로 콘솔을 거치는 구조는 아니다.
20번째 줄: 29번째 줄:


키보드가 보낸 스캔 코드, Linux 키 코드, 문자 데이터는 서로 다르다. 또한 입력 도착, 대기 중인 작업의 깨우기, 스케줄러의 선택, 사용자 버퍼로의 복사는 각각 다른 단계다.
키보드가 보낸 스캔 코드, Linux 키 코드, 문자 데이터는 서로 다르다. 또한 입력 도착, 대기 중인 작업의 깨우기, 스케줄러의 선택, 사용자 버퍼로의 복사는 각각 다른 단계다.
{{이전 다음 문서
|이전=
|목차=[[운영체제 기본|운영체제 기본 목차]]
|다음=
}}
{{운영체제 기본 둘러보기}}

2026년 11월 1일 (일) 04:03 기준 최신판

Linux v6.12, x86-64, i8042에 연결된 PS/2 키보드를 기준으로 키 입력이 사용자 프로세스에 도착하는 경로를 추적한다. IRQ 진입은 일반적인 IDT 경로를 다루며, USB 키보드와 FRED 진입 경로는 구분한다.

관련 총론

문서 구성

  1. IRQ 진입과 디스패치: CPU가 인터럽트를 받아 등록된 장치 처리기를 실행하는 과정.
  2. i8042와 입력 이벤트: 수신 바이트가 스캔 코드와 Linux 키 이벤트로 바뀌는 과정.
  3. evdev의 이벤트 전달과 대기 해제: 이벤트를 버퍼에 넣고 대기 중인 read를 깨우는 과정.
  4. 콘솔과 터미널 입력: 가상 콘솔에서 키 이벤트가 문자와 터미널 입력으로 바뀌는 경로.

evdev와 가상 콘솔은 input 계층 이후의 서로 다른 전달 경로다. evdev에서 읽은 이벤트가 차례로 콘솔을 거치는 구조는 아니다.

i8042 → IRQ 처리 → serio/PS2 → atkbd → input 계층
                                      |
                                      +→ evdev → 입력 이벤트를 읽는 프로세스
                                      |
                                      +→ 콘솔 키보드 처리 → tty → 문자를 읽는 프로세스

키보드가 보낸 스캔 코드, Linux 키 코드, 문자 데이터는 서로 다르다. 또한 입력 도착, 대기 중인 작업의 깨우기, 스케줄러의 선택, 사용자 버퍼로의 복사는 각각 다른 단계다.