BIOS 비밀번호를 만들었습니다. 저는 Dvořák 키보드 레이아웃을 사용합니다. 키보드 레이아웃을 Qwerty로 전환하고 다시 시작한 다음 다른 레이아웃을 사용하여 비밀번호를 입력해도 아무 변화가 없습니다. 그러나 운영 체제에 로그인할 때 다른 키보드 레이아웃을 사용하는 것이 중요합니다. 여기서 무슨 일이 일어나고 있는 걸까요?
답변1
많은 사람들이 컴퓨터를 단일 개체로 생각하기 때문에 혼란스러워합니다. 실제로 컴퓨터는 여러 시스템이 함께 작동하여 하나의 응집력 있는 개체인 것처럼 착각합니다.
여러 하위 시스템
BIOS는 그러한 하위 시스템 중 하나입니다. BIOS는 이름이 말하는 것과 정확히 일치합니다. 기본 입력 및 출력 시스템. 그 임무는 주변 장치(예: HDD, 키보드, 모니터 등)를 감지할 수 있도록 시스템에 기본 기능을 제공하는 것입니다. BIOS가 제공하는 또 다른 주요 기능은 지정된 미디어(CD, DVD, USB, HDD 등)에서 운영 체제를 로드하기 위해 부팅하는 것입니다.
이러한 주변 장치에 대한 액세스를 제공하는 기능은 필요한 경우 운영 체제와 소프트웨어가 사용할 수 있는 API를 제공하지만 운영 체제와 소프트웨어는 이러한 API를 사용할 필요가 없으며 이러한 API가 사용 가능하기 때문에 사용할 필요가 없는 경우가 많습니다. 여러 용도로. 이유.
주된 이유는 장치 제조업체가 일반 BIOS보다 더 친밀한 방식으로 하드웨어를 처리할 수 있는 하위 수준 드라이버를 가장 잘 알고 있으며 종종 자체적으로 제공하기 때문입니다.
이것이 바로 귀하의 문제의 경우입니다. BIOS는 키보드를 감지하고 자체 소프트웨어/드라이버로 처리할 수 있지만 운영 체제는 그렇지 않습니다.
사실 이것보다 더 중요한 것은 없습니다.
MS-DOS API
보다 구체적인 예를 원한다면 MS-DOS로 대중화된 Interrupt 21 기능을 살펴보십시오. MS-DOS는 BIOS와 함께 자체 화면 서비스를 제공했습니다. Microsoft는 더 풍부한 기능이나 완전히 다른 API를 원했기 때문입니다.
위키피디아 페이지를 참조하세요:운영 체제 인터페이스.
답변2
최신 BIOS는 감지된 USB 키보드를 가져와 몇 가지 SMM 트릭을 수행하여 BIOS와 키보드 I/O용 BIOS를 사용하는 모든 프로그램(예: MS-DOS, Memtest86+ 및 일부 부트 로더) 사이에서 작동하도록 합니다.
이 기존 인터페이스는 키를 눌렀다가 떼면 스캔 코드를 PC로 보냅니다. 스캔 코드는 키 위치에 따라 다르며 키보드의 qwerty/dvorak 스위치가 어디에 있는지 알 수 없습니다. ASCII 또는 유니코드 포인트와 정렬되지 않습니다.
이것스캔 코드에 관한 Wikipedia 기사몇 가지 통찰력을 제공할 수 있습니다.
전부는 아니지만 대부분의 BIOS는 실제 AT나 PS/2 키보드 또는 PS/2 에뮬레이트된 USB 키보드에서 오는 이러한 스캔 코드를 이해해야 합니다. 추가 키, 스위치 등에는 추가 또는 비표준 스캔 코드가 있으며 BIOS는 이를 무시합니다.
운영 체제에 로그인하면 운전자가 제어권을 얻을 수 있는 기회가 있습니다. 이 인터페이스가 어떻게 작동하는지, 어떤 드라이버가 관련되어 있는지 정확히 잘 모르겠습니다(스위치가 비표준 스캔코드이고 드라이버가 이를 선택하여 키맵을 변경하거나 뭔가... USB 키보드인 경우). 아마도) qwerty/dvorak 스위치는 또 다른 HID 입력 장치일 수도 있습니다.