Цитата:
а каким образом мы это сделаем? Полезем в загрузчик той же винды? Рискованно слишком, можно и наворотить чего. Системы-то разные...
Я имел ввиду, что загрузчик уже знает список операционных систем. Он показывает меню. Пользователь выбирает ОС. А потом у него просят пароль, белок или что там надо. Если не подходит ключ/пароль, то сообщаем об ошибке ребутимся, а если подходит, то загружаем по адресу 0x7C00 уже загрузчик той же винды и передаём ему управление. Начальному загрузчику ОС не нужна (если там не будет предложен выбор ещё ОС) поддержка клавиатуры и он спокойно загрузит ядро, перейдёт в PM, а дальше уже и сама ОС сможет разобраться с USB без BIOS.
Цитата:
а каким образом у тебя клавиатура в PM работает, если в PM даже обработчики прерываний уже совсем не те, которые находятся с 0 по 0x400, а те, которые описаны в IDT? Или ты с ней не по прерываниям работаешь?
USB мышь и клава могут работать в как бы сказать режиме совместимости. У процессора есть специальный режим - SMM (System Managment Mode). Он переходит в него только по сигналу внешних усройств. Например, USB, который имеет опцию вызова кода SMM при сообщениях от USB клавиатуры и мыши. Код SMM хранится в памяти недоступной без дополнительных действий и соответственно не будет разрушен без вашем особенного желания. А этот код SMM пользуюсь возможностью контроллера 8042 помещает в его буфер код клавиши и вызывает IRQ0. Для ОС это выглядит абсолютно прозрачно.