Как пароль BIOS работает?

Ваша установка для LANG должен соответствовать терминалу. Более точно, Ваша установка для LC_CTYPE (кодировка символов), должен соответствовать кодированию терминала, другие настройки локали не должны соответствовать. И кодирование терминала обычно указывается опцией эмулятора терминала а не переменной локали. LC_CTYPE объединения два признака: это говорит приложения, какое кодирование использовать на терминале (оба для ввода и вывода), и это говорит приложениям что кодирование использовать с файлами. В случаях 2 и 3, Вы сказали ls для отображения вывода в кодировании, это отличается от терминала, таким образом, вывод искажен.

Если Вы работаете и с UTF-8 и с латинской 1 кодировкой в разное время, настраиваете свой терминал для использования UTF-8. Это должно заставить это устанавливать LC_CTYPE к значению, указывающему на UTF-8; не переопределяйте эту установку. (Если эмулятор терминала не устанавливает LC_CTYPE, действительно переопределите его в своем файле запуска оболочки или для Вашей целой сессии.) Для работы с латинскими 1 данными в терминале UTF-8 использовать luit (включенный в X служебных комплектов).

LC_CTYPE=en_US.iso88591 luit

(Можно использовать любую другую локаль с тем же кодированием, например. LC_CTYPE=es_ES.iso88591 luit.)

2
08.11.2013, 20:15
2 ответа

Многие люди запутываются, потому что они рассматривают компьютер как единственный объект, когда в действительности компьютер является несколькими системами, сотрудничающими для предоставления иллюзии, что это - один связный объект.

Несколько подсистем

BIOS является одним из этих таких подсистем. BIOS точно, что описывает его имя. Основная Входная и выходная Система. Его задание состоит в том, чтобы предоставить основную функциональность системе так, чтобы она могла обнаружить периферийные устройства (такие как: жесткие диски, клавиатуры, мониторы, и т.д.). Другая главная функция, которую обеспечивает BIOS, находится в начальной загрузке Операционная система из обозначенного носителя (CD, DVD, USB, жесткий диск, и т.д.).

Функциональность для обеспечения доступа к этим периферийным устройствам обеспечивает API, который могут использовать ОС и программное обеспечение, если они так выбирают, но операционные системы и программное обеспечение не должны использовать эти API, и часто времена не делают по ряду причин.

Основная причина состоит в том, что производитель устройств знает лучше всего, и будет часто времена обеспечивать низкоуровневый драйвер сами, который может иметь дело с аппаратными средствами более близким способом, чем BIOS общего назначения может.

Вашим вопросом является точно этот сценарий. BIOS может обнаружить клавиатуру и соглашение с нею с помощью его собственного программного обеспечения/драйверов, тогда как ОС не может.

Нет действительно ничего больше к этому, чем это.

MS-DOS API

Если Вы хотели бы более конкретный пример затем, Вы не должны выглядеть дальнейшими, чем средство прерывания 21, которое было популяризировано MS-DOS. MS-DOS предоставил свои собственные экранные услуги, которые находились вдоль стороны BIOS, потому что Microsoft хотела иметь или более богатые функции или другой API в целом.

Посмотрите страницу Википедии: MS-DOS API.

2
27.01.2020, 22:01
  • 1
    @Kevin - благодарит очистить мою плохую грамматику 8-) –  slm♦ 08.11.2013, 22:14
  • 2
    DOS не вместе с функциями BIOS, они сверх функций BIOS. BIOS обеспечивает машинно-зависимую часть ОС (CP/M, ПК-DOS, MS-DOS), и часть BDOS/DOS обеспечивает машинно-независимую часть, созданную сверху того, что обеспечивает BIOS. –  ninjalj 11.11.2013, 18:56
  • 3
    @ninjalj - ради разговора, который это, действительно не имеет значения, только выделяя его так, чтобы OP понял, что компьютерная система просто что, система, не монолитная вещь. –  slm♦ 11.11.2013, 19:27

Современные BIOS берут, любой обнаружил клавиатуру USB, и сделайте некоторый обман SMM, чтобы заставить ее быть похожей на исходную IBM В или клавиатуру PS/2 к BIOS и любым программам, которые используют BIOS для клавиатуры ввод-вывод, который был бы MS-DOS, Memtest86 + и некоторые загрузчики.

Этот старый интерфейс поставляет скэн-коды ПК, когда клавиша нажата и выпущена. Скэн-коды зависят от положения ключа и не знают о том, какое положение стандартное расположение букв на клавиатуре/Дворак включает Вашу клавиатуру. Они приводят в порядок не строку с любым ASCII или точками Unicode.

enter image description here

Статья Wikipedia о scancodes может предоставить некоторое понимание.

Большинство, если не все BIOS должны понять эти scancodes, ли от реального В или клавиатуры PS/2 или PS/2-emulated клавиатура USB. Дополнительные ключи, переключатели, и т.д. имели бы дополнительный или нестандартный scancodes, и BIOS проигнорирует их.

Когда Вы зарегистрированы в свою ОС, драйвер имеет возможность взять на себя управление. Я не уверен точно, как этот интерфейс работал бы или какие драйверы включены (возможно, переключатель является нестандартным scancode, что драйвер берет и вызывает изменение в контурной карте или чем-то... Если это - клавиатура USB, которая это, вероятно, возможно, что переключатель стандартного расположения букв на клавиатуре/Дворака является другим устройством ввода данных HID или чем-то еще также.)

2
27.01.2020, 22:01

Теги

Похожие вопросы