Эта статья выставлена на рецензию

Клавиатура IBM PC

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Клавиатура IBM PCклавиатура, предназначенная для IBM PC-совместимых компьютеров, работающая по IBM PC-совместимому протоколу обмена и имеющая характерный для IBM PC-совместимых компьютеров набор клавиш[1]. Благодаря популярности IBM PC-совместимых компьютеров стала стандартом де-факто для компьютерных клавиатур, пока не была вытеснена стандартом USB HID. К клавиатурам IBM PC относят две принципиально разные по протоколу обмена клавиатуры: 83-клавишную клавиатуру оригинального IBM PC, известную как XT-клавиатура[⇨], и клавиатуру IBM PC/AT или PS/2, которая в свою очередь изначально предлагалась в 84-клавишном варианте с цифровым блоком[⇨], но позже была заменена 101-клавишной клавиатурой[⇨][2]. В дальнейшем добавлялись новые клавиши, менялся способ подключения, но основной набор клавиш и скан-кодов оставался неизменным. Также именно PC-раскладка стала использоваться в большинстве USB HID-клавиатур.

Предыстория[править | править код]

Когда разрабатывался компьютер IBM PC, было решено не разрабатывать для него новую клавиатуру, а доработать клавиатуру IBM Model F (англ.) от моноблока IBM System/23, известного также как IBM 5322 или Datamaster[3]. Ко времени начала разработки IBM PC он должен был поступить в продажу, но выпуск откладывался из-за задержек в разработке интерпретатора Бейсика[4]. В свою очередь раскладка клавиатуры взята от терминала IBM 5250 (англ.), но конструкция была переработана для облегчения и удешевления.

Разновидности[править | править код]

Клавиатура оригинального IBM PC и PC/XT[править | править код]

IBM Model F XT.png

Выпущенный в 1981 году IBM PC комплектовался 83-клавишной клавиатурой IBM Model F (англ.). Физическая раскладка клавиатуры осталась такой же, как и на System/23, однако назначение многих клавиш было изменено. В буквенно-цифровой области разместились все символы ASCII. Расположение знаков препинания было взято от пишущих машин компании IBM, в целом все знаки ASCII расставлены в том же порядке, как и на терминале VT100 фирмы DEC. 10 клавиш левого кластера определены как функциональные. Цифровой блок использовался также для управления курсором, для переключения режима его работы была введена клавиша Num Lock[5]. Клавиша Ctrl располагалась в среднем ряду слева, как ранее в видеотерминалах, а Caps Lock — справа от клавиши пробел[6]. Протокол обмена был односторонним, и режим ввода никак не отображался[5]. Некоторые производители (например, KeyTronic (англ.)) выпускали клавиатуры, снабжённые индикаторами режима, однако они не могли адекватно отображать режим ввода, если он в процессе работы менялся программно[2]. Схема клавиатуры тоже была изменена: в System/23 использовался параллельный интерфейс, а для PC был разработан последовательный интерфейс, благодаря чему клавиатура была отделена от системного блока и соединялась с ним витым кабелем[3] через разъём 5-DIN. Опросом матрицы и связью с компьютером занимался микроконтроллер intel 8048 или аналогичный.

Клавиатура вышедшего в 1983 году IBM PC/XT была полностью аналогична, за исключением отсутствия отдельного провода для подачи сигнала сброса контроллера клавиатуры — теперь сброс осуществлялся передачей специальной последовательности на шину данных/синхронизации.

Клавиатура IBM PCjr[править | править код]

Оригинальная клавиатура IBM PCjr

Для вышедшего в ноябре 1983 года домашнего компьютера IBM PCjr была разработана собственная клавиатура, более компактная и дешёвая, чем клавиатуры профессиональных серий IBM PC. На ней было только 62 клавиши, функции недостающих клавиш были достпны через сочетание с клавишей Fn[7][8]. Кроме того, в этой клавиатуре была применена система подавления фантомных нажатий[9], а также возможность озвучивать нажатие клавиши через системный динамик[7]. С системным блоком клавиатура связывалась по инфракрасному каналу, наподобие телевизионного пульта — для этого в клавиатуру устанавливались четыре батарейки AA, однако в комплекте имелся кабель для подключения к компьютеру напрямую. У клавиатуры отсутствовал буфер нажатых клавиш, из-за чего прерывание обработки нажатий пришлось сделать немаскируемым[8]. Несмотря на меньшее количество клавиш и другой способ подключения, она генерировала те же самые скан-коды, что и обычная PC/XT-клавиатура[9].

Первая версия клавиатуры IBM PCjr вызвала множество нареканий: островные кнопки были слишком узкими и неудобными при слепой печати, механизм — тугим и ненадёжным, так как использовалась электропроводящая резина, а обозначения, нанесённые на корпус, а не на саму клавишу — плохо читаемыми, особенно когда клавиатура лежала на столе. Вскоре была выпущена версия клавиатуры более традиционного вида, с привычным профилем кнопок, хотя и с тем же самым механизмом, и IBM даже предлагала бесплатную замену старой клавиатуры на новую[10]. Предлагали специальные клавиатуры для PCjr и сторонние производители. Так как сам IBM PCjr провалился на рынке, раскладка клавиатуры PCjr не получила распространения.

84-клавишная AT-клавиатура[править | править код]

AT keyboard original layout.png

Для вышедшего в 1984 году IBM PC/AT была разработана новая версия клавиатуры, незначительно изменившаяся внешне[6] но с полностью переработанной схемой. Цифровой блок был выделен в отдельную группу. В клавиатуре использовался микроконтроллер Intel 8042 (впоследствии i8242). Протокол обмена стал двусторонним, чтобы отображать состояние режимов ввода (для чего на клавиатуре появились три светодиода), а также изменять некоторые настройки ввода; кроме того, контроллер клавиатуры на материнской плате взял на себя некоторые дополнительные функции, в том числе выход из защищённого режима процессора. Количество скан-кодов увеличилось, и при отпускании клавиши перед скан-кодом передавался префикс F0h. На клавиатуре появилась кнопка SysRq[2], которая, однако, так и не использовалась согласно изначальной задумке[11][12].

101/104-клавишная AT-клавиатура[править | править код]

IBM Model M.png

В 1985 году была представлена «усовершенствованная клавиатура IBM», известная также как IBM Model M (англ.). С 1985 года этой клавиатурой комплектовался терминал IBM 3161, а с 1986 года — IBM PC[13][6]. В новой раскладке были учтены многие пожелания клиентов, в частности — длинный левый ⇧ Shift (только для американской раскладки). Общая компоновка, в частности курсорные клавиши в виде «перевёрнутой Т» аналогична применённой в клавиатуре LK201 (англ.) терминалов VT220[14] фирмы DEC. Количество функциональных клавиш было увеличено до 12, они были перенесены в верхний ряд и разбиты на блоки по 4 клавиши. Новая клавиатура имела отдельный блок клавиш курсора и клавиши управления страничным выводом[15], но несмотря на это клавиша и светодиод Num Lock сохранились. Скан-коды новых клавиш соответствовали скан-кодам клавиш на цифровом блоке с аналогичным (при выключенном NumLock) назначением с добавлением префикса E0. Программы, опрашивавшие клавиатуру через BIOS получали при нажатии клавиш курсорной группы с коды, соответствующие клавишам цифрового блока с нажатым Shift, что позволяло полноценно использовать новые клавиши в старом ПО, однако это не касалось программ, опрашивавших клавиатуру напрямую[16]. Клавиша Caps Lock была перенесена в средний ряд, как в механических печатных машинках, а клавиша Ctrl — в нижний и была продублирована, также как клавиша Alt[6]. SysRq как отдельная клавиша с клавиатуры была убрана, но её скан-код генерировался при нажатии сочетаний клавиш ⇧ Shift+Print Screen или Ctrl+Print Screen. Именно такая раскладка окончательно стала стандартом, поддерживаемым большинством производителей клавиатур[17].

Клавиатура PS/2[править | править код]

MiniDIN-6
Два разъёма PS/2: слева — для клавиатуры, справа — для мыши

В 1987 году для компьютера IBM PS/2 стал использоваться разъём MiniDIN-6, который в контексте использования для клавиатур и мышей также вскоре стали называть PS/2. В дальнейшем этот разъём стал основным для PC-клавиатур, вытеснив 5-DIN. Протокол при этом не изменился, подключение PS/2-клавиатуры к компьютеру стандарта AT и наоборот доступно через пассивный переходник[18]. Однако по новой спецификации клавиатура должна была поддерживать, кроме стандартного, альтернативный набор скан-кодов set3[19][20][21]. Контроллер клавиатуры на материнской плате обзавёлся дополнительными командами для поддержки новых возможностей протокола, а также поддержкой мыши. Позже разъём клавиатуры стали окрашивать в сиреневый цвет, чтобы отличить его от разъёма мыши (зелёный).

Появление клавиш Windows и Menu[править | править код]

В 1994 году компания Microsoft выпустила клавиатуру Microsoft Natural keyboard, на которой имелись три дополнительные кнопки: две клавиши Windows, служащие для вызова меню «Пуск», и клавиша контекстного меню[22]. В дальнейшем, эти клавиши стали устанавливаться на большинство PC-совместимых клавиатур.

Региональные варианты[править | править код]

Physical keyboard layouts comparison ANSI ISO KS ABNT JIS.png

Основная 101(104)-клавишная раскладка получила неофициальное название ANSI. Кроме неё существовало ещё несколько региональных раскладок, отличающихся в основном клавишами буквенно-цифровой группы:

  • 102/105 клавишная европейская модификация[23], известная также как ISO-раскладка, описанная в стандарте ISO/IEC 9995 (англ.). В этой раскладке клавиша Enter расположена на двух горизонтальных рядах (D13/С13), но её нижняя часть укорочена, чтобы разместить клавишу хеша (которая однако имеет код обратного слеша). Кроме того, в этой модификации имеется дополнительная клавиша обратного слеша рядом с левой клавишей Shift. Данная раскладка происходит от изначальной раскладки клавиатуры IBM PC, только в ней слева от клавиши Enter располагалась клавиша ~`
  • Бразильская раскладка[24] (или ABNT) — схожа с европейской, но имеется дополнительная клавиша рядом с правой клавишей ⇧ Shift, а также клавиша точки на цифровом блоке.
  • Южнокорейская раскладка[25] (KS) с двумя дополнительными возле клавиши пробел для ввода символов ханча и хангыль.
  • Японская раскладка[26] (JIS) — содержит 106 (109) клавиш: укороченный Backspace чтобы вместить символ иены, дополнительные клавиши слева от ↵ Enter и правой клавиши ⇧ Shift, а также три клавиши в ряду пробела: для переключения раскладки и ввода каны.

Кроме того, существуют версии с увеличенной клавишей Enter[27], известной также как Bigass-Enter, берущая начало от 84-клавишной клавиатуры IBM PC/AT. В этих раскладках клавиша обратного слеша располагается в верхнем ряду, в связи с чем клавиша Backspace укорочена — по сути это раскладка KS без дополнительных клавиш в ряду пробела.

Компактные и расширенные клавиатуры[править | править код]

С целью экономии места на рабочем столе или чтобы уместить клавиатуру на устройстве, например ноутбуке, на котором полноразмерная клавиатура не может поместиться, производители клавиатур могут располагать клавиши на клавиатуре в нестандартном порядке или удалять клавиши с клавиатуры[18]. Компактные программируемые клавиатуры популярны, например, среди геймеров и системных администраторов, так как такую клавиатуру легче носить с собой. В 1987 году сокращённую версию клавиатуры для PC представила сама компания IBM — это была клавиатура без цифрового блока (TKL), известная также как IBM Space Saving Keyboard. Эта клавиатура продавалась по той же цене, что и полноразмерная, и распространения ни сама SSK, ни такой формат в целом не получал вплоть до «механического ренессанса» 2010-х годов.

Наиболее популярные форматы компактных клавиатур[28]:

  • 80% или TKL (от англ. tenkeyless — буквально «без десяти клавиш») — клавиатура стандартной раскладки без цифрового блока. Цифровой блок также может эмулироваться в пределах основной буквенно-цифровой клавиатуры при включении режима NumLock;
  • 75% — распространённый на ноутбуках[29] формат, при котором клавиши Home, End, PgUp и PgDown могут либо располагаться в один столбец по правому краю клавиатуры, либо эмулироваться через клавишу Fn совместно с курсорными клавишами. Малоиспользуемые клавиши (Scroll Lock, Pause, Insert) как правило тоже эмулируются;
  • 60% — формат, при котором клавиатуры состоят исключительно из буквенно-цифрового блока, клавиш-модификаторов, клавиш Esc, Enter и Backspace. Все остальные клавиши (F1-F12, стрелки и другие) эмулируются с помощью клавиши Fn.

Кроме того, производители ноутбуков, если позволяет место, часто стремятся сохранить цифровой блок, либо в сокращённом виде (клавиши +, - и ↵ Enter размещаются над цифровым блоком), либо с клавишами уменьшенного размера, сохраняя при этом блок курсорных клавиш. Существуют также и клавиатуры с расширенными функциями: кроме мультимедиа-клавиш они могут оснащаться клавишами для эмуляции стандартных сочетаний клавиш, программируемыми макро-клавишами, на которые можно назначить эмуляцию последовательностей нажатия, либо даже целую программу с циклами и условными переходами, а также дополнительными элементами управления: колёсами прокрутки, регулировки громкости, а также встроенными трекболами, тачпадами и экранами. В отличие от ADB, а также более позднего USB HID, подключение PC-клавиатуры и мыши в один разъём не предусмотрено, поэтому такие клавиатуры поставлялись с двумя раздельными разъёмами Mini-DIN для клавиатуры и мыши.

Мультимедийные клавиши[править | править код]

С развитием технологий мультимедиа и бумом доткомов в конце 90-х производители клавиатур в качестве конкурентного преимущества начали добавлять на клавиатуры дополнительные клавиши, призванные облегчить работу с мультимедиа и вебом. В дальнейшем сложился перечень стандартных клавиш для работы с мультимедиа и браузером[30][31]:

  • Клавиши управления веб-браузером: назад, вперёд, обновить, стоп, поиск, избранное, домашняя страница;
  • Клавиши управления медиапроигрывателем: отключить звук, уменьшить громкость, увеличить громкость, следующий трек, предыдущий трек, остановка воспроизведения, воспроизвести/пауза;
  • Клавиши избранных программ: почтовый клиент, медиаплейер и две кнопки дополнительных приложений.

Принцип работы[править | править код]

В микрокомпьютерах конца 1970-х — начала 1980-х годов, в частности «троице 77-го» (Apple II, Commodore PET, TRS-80) использовались два подхода: непосредственный опрос клавиатуры процессором (в Commodore PET и TRS-80) или клавиатура, формирующая готовые ASCII-коды вводимых символов (Apple II[32]). Первый был самым простым с точки зрения технической реализации, но создавал постоянную нагрузку на процессор[33] и требовал соединения клавиатуры многожильным шлейфом, отчего такие клавиатуры чаще всего совмещали с системным блоком. Второй требовал отдельного контроллера клавиатуры, и при этом жёстко привязывал клавиши к символам ASCII, не давал возможности получить состояние клавиш-модификаторов (⇧ Shift и Ctrl) отдельно от прочих нажатых клавиш и ограничивал возможность использования сочетаний клавиш.

В IBM PC был выбран другой подход: опросом клавиатуры занимался контроллер, расположенный в её корпусе, но он передавал компьютеру не символ ASCII, а скан-код, причём различный при нажатии и отпускании клавиши. При длительном удержании клавиши код нажатия передаётся повторно через определённый промежуток времени[18]. В компьютер скан-код передавался в виде последовательного кода, а на материнской плате устанавливался аналогичный контроллер, который при получении сигнала от клавиатуры генерировал прерывание INT 09h и передавал полученный скан-код в порт 60h[34]. Впоследствии его функции перешли в Super I/O или LPC-чип, либо в южный мост чипсета[35][36]. Для случаев, когда процессор не успевает обработать нажатия клавиш, предусмотрен буфер клавиатуры[1].

С точки зрения схемы контроллера, все клавиши клавиатуры равнозначны, включая клавиши-модификаторы и клавиши-переключатели; каждая имеет свой скан-код, причем дублирующиеся клавиши, например левый и правый ⇧ Shift — разный[37]. Преобразованием скан-кодов в коды символов и управлением вводом с клавиатуры занималась уже BIOS, операционная система или даже прикладное ПО[1]. Такой подход позволил в назначать на любую клавишу любое действие, которое требуется в программе, а также не привязываться к определённой локали[5].

В клавиатуре первых IBM PC и PC/XT протокол обмена был односторонним, режим ввода никак не отображался, а какие-либо схемы для отображения режима, встроенные в клавиатуру, не могли его адекватно отображать[5]. В IBM PC/AT протокол обмена компьютера с клавиатурой значительно изменился: он стал двусторонним, позволяя вывести три индикатора режима (Caps Lock, Num Lock и Scroll Lock), а также устанавливать период автоповтора и изменять набор скан-кодов. Доступ к этим функциям на PC-совместимых компьютерах также осуществлялся через порт 60h, который теперь работал и на запись[34]. Протоколы клавиатур PC/XT и PC/AT несовместимы, IBM PC/AT и последующие PC-совместимые компьютеры не распознавали клавиатуры от PC/XT. Некоторые производители выпускали клавиатуры на два стандарта, снабжённые переключателем[34].

Сравнение протоколов и разъёмов подключения[править | править код]

Тип Разъём Распайка Протокол Передача команд контроллеру Набор скан-кодов
PC (Type 1) [38] 5-pin DIN
(DIN 41524) 5-pin DIN connector
1 CLK

2 DATA
3 -RESET
4 GND
5 +5V

2 стартовых бита,
8 бит данных,
бит нажатия/отпускания клавиши,
1 стоповый бит

Сброс контроллера — замыканием 3-го контакта на корпус

Нет Набор set1[19][20][21] (PC/XT)
XT (Type 2) [39] 1 CLK

2 DATA
3 N/C
4 GND
5 +5V

2 стартовых бита,
8 бит данных,
бит нажатия/отпускания клавиши,
1 стоповый бит

Сброс контроллера — специальной последовательностью на шины данных/синхронизации

PCjr ИК-порт, либо проприетарный разъём 1 ключ

2 N/A
3 DATA
4 GND (определение кабеля)
5 +5V
6 GND

2 стартовых бита,
8 бит данных,
бит нажатия/отпускания клавиши,
1 стоповый бит

Сброс контроллера — не предусмотрен

AT 5-pin DIN
(DIN 41524) 5-pin DIN connector
1 CLK

2 DATA
3 N/C
4 GND
5 +5V

1 стартовый бит,
8 бит данных,
1 бит чётности,
1 стоповый бит
сброс — посылкой команды контроллеру
Есть Набор set2[19][20][21] (PC/AT)
PS/2 6-pin Mini-DIN
(DIN 45322) 6-pin DIN connector
1 DATA

2 N/C
3 GND
4 +5V
5 CLK
6 N/C

набор set2 или set3[19][20][21]

Назначение и особенности работы отдельных клавиш[править | править код]

~
` Ё
!
1
@ "
2
#
3
$ ;
4
%
5
^:
6
& ?
7
*
8
(
9
)
0
_
-
+
=
/
*
-
Q
Й
W
Ц
E
У
R
К
T
Е
Y
Н
U
Г
I
Ш
O
Щ
P
З
{
[ Х
}
] Ъ
7
Home
8
9
PgUp


+
A
Ф
S
Ы
D
В
F
_ А
G
П
H
Р
J
_ О
K
Л
L
Д
:
; Ж
"
' Э
|/
\
4
5
6
| /
\
Z
Я
X
Ч
C
С
V
М
B
И
N
Т
M
Ь
<
, Б
>
. Ю
?,
/.
1
End
2
3
PgDn
0
Ins
.
Del

Так как клавиатура при нажатии клавиш генерирует скан-коды, не привязанные напрямую к кодам вводимых символов, а преобразованием нажатой клавиши во вводимый символ занимается либо прерывание BIOS, либо драйвер клавиатуры, любая клавиша на клавиатуре может иметь любое назначение. Однако нанесённые на клавиши обозначения и стандартная работа с этими клавишами BIOS и операционной системы закрепили определённое их поведение.

  • Esc — используется в основном как клавиша отмены, либо для очистки только что введённых данных, например командной строки DOS[40]. Как клавиша ввода специальных символов ко времени появления PC она уже не использовалось[1].
  • Ctrl — хотя эта клавиша была взята из раскладки терминалов для ввода управляющих символов, в таком качестве она используется исключительно в командной строке DOS и эмуляторах терминала. В большинстве приложений она используется в составе сочетаний клавиш[41].
  • Alt — взята из клавиатуры System/23 и тоже используется в основном в составе сочетаний клавиш[40]. Также она позволяет вводить отсутствующие на клавиатуре символы — не только из алфавита ASCII — путём ввода при нажатой Alt кода символа на цифровой клавиатуре[42][43]. В 102 (105)-клавишных клавиатурах правая клавиша Alt обозначается как Alt Gr и предназначена для ввода дополнительных символов: диакритики, знаков препинания и т.д[44]. Кроме того, в различных меню и диалоговых окнах отдельные буквы названий пунктов могут быть выделены цветом или подчёркиванием, если фокус ввода находится в этом меню, сочетание клавиши Alt с выделенной буквой равнозначно выбору этого пункта меню. В Windows по умолчанию это выделение не отображается, но появляется при однократном нажатии Alt.
  • Caps Lock как правило влияет только на регистр букв, но не на цифры и знаки препинания[45]. В оригинальном PC и PC/XT выбранный регистр никак не отображался[5], начиная с PC/AT для этой цели имеется световой индикатор[2].
  • F1F10 (…F12) не имеют предопределённого значения, однако некоторые функции закреплены за какими-то из них в большом количестве программ, например F1 чаще всего вызывает встроенную справку[46].
  • Enter — совмещает в себе функцию перевода строки и подтверждения операции, хотя во многих продуктах IBM за эти функции отвечали разные клавиши.
  • Num Lock — была введена для того, чтобы совместить цифровой и навигационный блок клавиатуры. За это решение компанию IBM многократно критиковали[5], пока не была выпущена клавиатура Model M, в которой появились выделенные навигационные клавиши[16], хотя клавиша Num Lock осталась для обеспечения совместимости. Кроме того, сочетанием клавиш Ctrl+Num Lock можно было приостановить работу текущей программы — позже эта функция была выведена на отдельную клавишу Pause.
  • Scroll Lock — включает режим прокрутки навигационными клавишами. Этот режим оказался не очень удобным и эта клавиша вскоре вышла из употребления и может отсутствовать на некоторых клавиатурах.
  • Pause — приостановка выполнения программы. Также как Scroll Lock, за пределами командной строки DOS не используется. В ранних версиях была сблокирована с клавишей Num Lock и вызывалось сочетанием с Ctrl[47].
  • Break — в ранних версиях эта функция была сблокирована с клавишей Scroll Lock, а начиная с Model M — с клавишей Pause. Вызывается сочетанием с клавишей Ctrl и прерывает работу текущей программы[47]. Используется практически исключительно в командной строке DOS, но чаще приложения командной строки реагируют на управляющий символ «End of text» (Ctrl+C).
  • Print Screen — изначально посылала текущий экран на принтер[47], с появлением Windows стала использоваться для создания скриншотов[42]. Изначально была сблокирована с клавишей * и вызывалась сочетанием ⇧ Shift+*[40].
  • SysRq — появилась на 84-клавишной клавиатуре PC/AT[2], предполагалось, что она будет использоваться для переключения между программами в многозадачной ОС[48], но эта задумка так и не была реализована[11][12], позже она была убрана под клавишу Print Screen (вызывалась в сочетании с клавишей Shift).
  • Insert — для переключения между режимами вставки и замены. Чаще всего используется режим вставки, когда вводимый символ добавляется в позиции курсора, в то время как в режиме замены символ, стоящий после курсора удаляется и заменяется на введённый с клавиатуры[49]. Режим замены используется достаточно редко, в основном для заполнения различных форм, кроме того само наличие этого режима а особенно отсутствие индикации его критикуется многими специалистами по пользовательскому интерфейсу. Также данная клавиша в сочетании с клавишами Ctrl или ⇧ Shift может работать с буфером обмена.
  • Delete используется для удаления объекта после курсора[50], а также выделенных объектов. Кроме того, сочетание клавиш Ctrl+Alt+Del изначально использовалась для быстрой перезагрузки компьютера без очистки памяти[3] — предполагалось, что оно будет использоваться только разработчиками ПО[51]. Это сочетание зашито в BIOS, однако так как большинство операционных систем самостоятельно обрабатывают нажатия клавиш, значение этого сочетания может быть различным.

PC-клавиатуры и USB HID[править | править код]

Пассивные переходники для подключения универсальной клавиатуры или мыши (слева) и активный переходник для подключения PS/2 клавиатуры и мыши к разъёму USB (справа)

Начиная с конца 90-х, существующий стандарт начал вытесняться стандартом USB HID. Стандарт USB более универсален, позволяет подключать к одной машине несколько клавиатур и мышей, а также подключать и отключать клавиатуру без отключения питания компьютера. В 2000 году компании Intel и Microsoft выпустили спецификацию PC 2001, в которой объявили PS/2-клавиатуру и мышь устаревшими стандартами, предлагая производителям переходить на USB. Однако в течение последующих двух десятилетий эти стандарты продолжали использоваться, наряду с USB по нескольким причинам:

  • В разъём USB можно подключить съёмный диск либо устройство беспроводной связи, что может быть недопустимо при работе с коммерческой или государственной тайной. Даже при отсутствии дополнительных разъёмов возможно подключение через разветвитель. В разъёмы PS/2 можно подключить только клавиатуру и мышь[52], все USB-разъёмы в этом случае можно отключить физически. Альтернативой может быть физическая фиксация штекера в гнезде USB, но при этом злоумышленник всё ещё имеет возможность разрезать кабель, подключившись в разрыв цепи.
  • Стандарт USB HID допускает до 8 одновременно нажатых клавиш на одном устройстве. Это ограничение можно преодолеть, зарегистрировав клавиатуру, как несколько HID-устройств. Традиционная PC-клавиатура не имеет подобного ограничения, поэтому долгое время считалась более предпочтительной для некоторых компьютерных игр, таких как симуляторы[53].
  • Протокол USB более сложен как в технической реализации, требуя наличия на устройстве тактового генератора, так и в написании драйвера, в то время как обработка нажатий традиционной PC-клавиатуры может быть реализовано с помощью нескольких ассемблерных команд. По последней причине долгое время USB-клавиатуры не поддерживались некоторыми программами BIOS setup. Также если клавиатура регистрирует в системе несколько HID-устройств, она может некорректно работать с некоторыми версиями BIOS.
  • Подключение клавиатуры и мыши через PS/2 позволяет освободить USB-разъёмы без использования USB-хабов.

Многие клавиатуры, выпускаемые после появления стандарта USB HID, хотя и не все, поддерживают оба протокола. Такую клавиатуру с разъёмом USB можно подключить к компьютеру, имеющему разъём PS/2 или AT через пассивный переходник, (и наоборот, PS/2 клавиатуру — к USB). Для подключения клавиатур более старых моделей требуется активный переходник — существуют подобные переходники как промышленно изготавливаемые, так и любительские — например, Soarer's converter на основе популярного контроллера atmega 32u4, позволяющий не только подключать к USB любые PC-клавиатуры, в том числе PC/XT, но и произвольно менять назначение клавиш[54].

Критика[править | править код]

Первая 83-клавишная клавиатура получила высокую оценку в первом номере журнала PC Magazine, однако автор обзора удивлялся, «как такой признанный профессионал в изготовлении клавиатур, как IBM мог разместить левую клавишу ⇧ Shift в столь неудобном месте»[55]. Позже в том же журнале сообщалось, что от читателей было получено множество писем, где они изъявляли желание увидеть в новой модели индикацию режимов Caps Lock, Scroll Lock и NumLock. Критиковалась идея использовать одно и то же поле для курсорных клавиш и цифр, а также путаница, вызванная наличием клавиши Scroll Lock — незнакомые с данной клавиатурой пользователи могли предположить, что эта клавиша нужна для выключения режима Num Lock[5].

Джерри Пурнель в статье в журнале BYTE также критиковал размещение некоторых клавиш, заявляя, что их расположение «может вывести из себя, особенно учитывая, что та же корпорация IBM выпускала печатную машину Selectric с замечательной клавиатурой», и ругал прочих производителей PC-совместимых компьютеров за то, что они повторяют раскладку клавиш IBM, а не ощущение от нажатия, присущее только клавиатурам IBM[56]. Также он писал, что эта раскладка «едва не свела с ума» Джима Баена, издателя фантастических книг, и для того, чтобы нормально ей пользоваться, ему пришлось попросить знакомого программиста написать специальную утилиту, которая переназначала клавиши более удобным образом[57]. В то же время редакция самого журнала BYTE отнеслась к клавиатуре более благосклонно, посчитав эту клавиатуру «возможно, лучшей... среди всех микрокомпьютеров», а короткий левый ⇧ Shift — «мелочью по сравнению с ошибками, которые допускали другие производители компьютеров»[43].

Защищая выбранную раскладку, Дон Эстридж в 1983 году заявил, что «положение этих клавиш не так уж и плохо» и что «какое бы место ни было выбрано для этих клавиш, кому-то оно не понравится». «Если мы захотим их изменить, мы точно попадём впросак»[58].

Питер Нортон хорошо отзывался о выбранной схеме обмена данными между компьютером и клавиатурой, называя её «впечатляющей», «простой и элегатной»[1].

С появлением PC/AT, обозреватели PC Magazine заметили, что хотя в IBM и сгладили некоторые недочёты предыдущей модели, всё же новая клавиатура ещё не идеальна, отмечая уменьшившуюся в размерах и отнесённую слишком далеко клавишу ← Backspace а также неудачную компоновку курсорно-цифрового блока[59]. Питер Нортон назвал перемещённую в цифровой блок клавишу Esc «бессмысленным решением» и «неприятностью» для тех, кому предстоит пользоваться клавиатурами обоих типов[60].

Когда вышла Model M, один из обозревателей PC Magazine сетовал, что раскладка клавиатуры снова изменилась, но в то же время понимал, что она останется надолго. «У меня такое смутное чувство, будто IBM говорит мне: „Тебе стоит полюбить её, потому что это клавиатура будущего“»[16]. Главным плюсом новой клавиатуры он назвал отдельные клавиши для стрелок.

Пользователи VIM, emacs и некоторых приложений для UNIX-подобных систем критикуют компанию IBM за размещение клавиш Ctrl, ⇪ Caps Lock и Esc на тех местах, на которых они разместили их в клавиатуре Model M, т.к. левому мизинцу при работе с сочетаниями клавиш приходится чаще покидать домашний ряд, отчего создаётся излишняя нагрузка на слабый палец[61][62][15].

Примечания[править | править код]

  1. 1 2 3 4 5 Norton, 1984.
  2. 1 2 3 4 5 Гук, 2006, с. 642.
  3. 1 2 3 Bradley, 1990, с. 420.
  4. Bradley, 1990, с. 414.
  5. 1 2 3 4 5 6 7 Edlin, 1982.
  6. 1 2 3 4 Robertson, 2014.
  7. 1 2 IBM PCjr. Guide to Operations (англ.). — International Business Machines Corporation, 1983. — P. 3-1 − 4-10.
  8. 1 2 Norton, 1985, с. 140.
  9. 1 2 IBM PCjr Technical reference (англ.). — International Business Machines Corporation, 1983. — P. 2-101 − 2-106.
  10. Юрий Литвиненко. IBM PCjr - большой провал большой компании. Дата обращения: 18 июля 2020. Архивировано 18 июля 2020 года.
  11. 1 2 Una Persson. What’s the “Scroll Lock” key on my computer for? // The Straight Dope. — 2003. — 7 октября.
  12. 1 2 Киви Берд. Давим на клавиши, "Домашний Компьютер" №12 (14 декабря 2003). Архивировано 21 января 2014 года. Дата обращения 17 января 2014.
  13. IBM. IBM Enhanced Keyboard for the Personal Computer Announcement Letter. 1986-04-18 ([1] Архивная копия от 21 апреля 2021 на Wayback Machine).
  14. Jim Burrows. Inverse-T History (англ.). Дата обращения: 10 августа 2020. Архивировано 23 сентября 2015 года.
  15. 1 2 PC, 1986, p. 180.
  16. 1 2 3 PC, 1986, p. 182.
  17. W3C, 2.1.2.
  18. 1 2 3 Гук, 2006, с. 643.
  19. 1 2 3 4 Савченков, 2018.
  20. 1 2 3 4 Chapweske, 2001.
  21. 1 2 3 4 Savard, 2003.
  22. Fisher, Lawrence M.. Microsoft Is Bringing Out Its First Computer Keyboard, The New York Times (6 September 1994). Архивировано 2 декабря 2021 года. Дата обращения 10 декабря 2018.
  23. W3C, 2.1.4.
  24. W3C, 2.1.6.
  25. W3C, 2.1.5.
  26. W3C, 2.1.7.
  27. W3C, 2.1.3.
  28. The Different Keyboard Sizes Explained (англ.). Switch & Click. Дата обращения: 19 марта 2022. Архивировано 24 марта 2022 года.
  29. W3C, 2.1.9.
  30. W3C, 3.1.6.
  31. Scan code translate table (англ.). Microsoft. Дата обращения: 19 марта 2022. Архивировано 10 сентября 2021 года.
  32. Early Apple Keyboards (англ.). Дата обращения: 3 января 2022. Архивировано 3 января 2022 года.
  33. А. Бойко. Удачный «Поиск» // Наука и жизнь. — 1991. — № 2. — С. 84. — ISSN 0028-1263.
  34. 1 2 3 Фролов, 1997.
  35. IBM PC/AT 8042 Keyboard Controller Commands | OS/2 Museum (англ.). www.os2museum.com. Дата обращения: 1 августа 2019. Архивировано 1 августа 2019 года.
  36. Scott Mueller. Keyboard Controller Chips // Upgrading and Repairing PCs. — 2003. — С. 387. — 1575 с. — ISBN 9780789729743.
  37. Norton, 1985, с. 133.
  38. International Business Machines Corporation (1983): IBM Personal Computer XT Technical Reference Manual, pages D-12 to D-13.
  39. International Business Machines Corporation (1983): IBM Personal Computer XT Technical Reference Manual, pages D-14 to D-15.
  40. 1 2 3 Carnahan, 1987, p. 2.14.
  41. Carnahan, 1987, p. 2.13−2.14.
  42. 1 2 Фигурнов, 1999, с. 83.
  43. 1 2 Williams, Gregg. A Closer Look at the IBM Personal Computer, BYTE (January 1982), С. 36. Дата обращения 19 октября 2013.
  44. Фигурнов, 1999, с. 121.
  45. Norton, 1985, с. 131.
  46. Фигурнов, 1999, с. 80.
  47. 1 2 3 Norton, 1985, с. 132.
  48. Norton, 1985, с. 144.
  49. Carnahan, 1987, p. 2.15.
  50. Carnahan, 1987, p. 2.16.
  51. The History of CTRL + ALT + DELETE. Mental Floss. Дата обращения: 11 января 2016.
  52. Massive, undetectable security flaw found in USB: It's time to get your PS/2 keyboard out of the cupboard. ExtremeTech. Дата обращения: 26 октября 2015.
  53. Is PS/2 or USB Better for Keyboards and Mice?. Techquickie. Архивная копия от 13 сентября 2020 на Wayback Machine
  54. SOARER (англ.). Дата обращения: 20 июля 2020. Архивировано 20 июля 2020 года.
  55. IBM's New Personal Computer: Taking the Measure / Part One, PC Magazine (February–March 1982), С. 42. Архивировано 7 сентября 2019 года. Дата обращения 20 октября 2013.
  56. Pournelle, Jerry. NCC Reflections, BYTE (November 1984), С. 372. Дата обращения 23 октября 2013.
  57. Pournelle, Jerry. Zenith Z-100, Epson QX-10, Software Licensing, and the Software Piracy Problem (англ.) // BYTE. — 1983. — Июнь. — P. 438−439. — ISSN 0360-5280.
  58. Curran, Lawrence J., Shuford, Richard S.. IBM's Estridge, BYTE (November 1983), С. 88–97. Дата обращения 19 марта 2016.
  59. IBM Brings out the big guns (англ.) // PC Magazine. — 1984. — 13 November. — P. 119−122.
  60. Norton, 1985, с. 143.
  61. Xah Lee. History of Emacs & vi Keys (Keyboard Influence on Keybinding Design) (англ.). Дата обращения: 4 января 2019. Архивировано 9 ноября 2018 года.
  62. Xah Lee. How To Avoid The Emacs Pinky Problem (англ.). Дата обращения: 8 ноября 2009. Архивировано 26 мая 2010 года.

Литература[править | править код]

  • А.В. Фролов, Г.В. Фролов,. Аппаратное обеспечение персонального компьютера. — 1997. — Т. 33. — (Библиотека системного программиста).
  • Peter Norton. Chapter 6:Keyboard basics // The Peter Norton Programmer's guide to the IBM PC. — Microsoft press, 1985. — ISBN 0-914845-46-2.
  • Нортон П. Глава 10: Блок клавиатуры // Программно-аппаратная организация компьютера IBM PC = Inside the IBM PC. Access to advanced features and programming. — Prentice-Hall Publishing Comp., 1984.
  • The two faces of IBM's 8-MHz AT : [англ.] // PC Magazine. — 1986. — Т. 5, № 16 (30 September). — С. 179−184. — ISSN 0745-2500.
  • Bradley, David J. The Creation of the IBM PC : [англ.] // BYTE. — 1990. — September. — P. 414-420.
  • Edlin, Jim. The PC's Keys // PC Magazine. — 1982. — Ноябрь. — P. 175.
  • Михаил Гук. Глава 11 Устройства ввода-вывода и их интерфейсы. 11.1. Клавиатура // Аппаратные средства IBM PC. — 3-е. — СПб.: Питер, 2006. — С. 642−652. — 1072 с. — 5000 экз. — ISBN 5-469-01182-8.
  • В.А. Павлов. Система ввода-вывода ПК. Подсистемы клавиатуры и манипуляторов типа мышь и джойстик. — Саров: Кафедра вычислительной и информационной техники Саровского государственного физико-технического института, 2008.
  • Фигурнов В.Э. IBM PC для пользователя. — М.: Инфра-М, 1999. — ISBN 5-86225-471-4.
  • Brice Carnahan, James O. Wilkes. The IBM Personal Computers and the Michigan Terminal System (англ.). — College of Engineering the University of Michigan, 1987.

Ссылки[править | править код]