Клавиатура 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]. В свою очередь раскладка клавиатуры System/23 взята от терминала IBM 5250[англ.], но конструкция была переработана для облегчения и удешевления.

Разновидности

править

Клавиатура оригинального IBM PC и PC/XT

править
 
Первая клавиатура IBM PC

Выпущенный в 1981 году IBM PC комплектовался 83-клавишной клавиатурой IBM Model F[англ.]. Физическая раскладка клавиатуры осталась такой же, как и на System/23, однако назначение многих клавиш было изменено[5]. В буквенно-цифровой области разместились все символы ASCII. Расположение знаков препинания было взято от пишущих машин компании IBM, в целом все знаки ASCII расставлены в том же порядке, как и на терминале VT100 фирмы DEC. 10 клавиш левого кластера определены как функциональные. Цифровой блок использовался также для управления курсором, для переключения режима его работы была введена клавиша Num Lock[6]. Клавиша Ctrl располагалась в среднем ряду слева, как ранее в видеотерминалах, а Caps Lock — справа от клавиши пробел[7]. Протокол обмена был односторонним, и режим ввода никак не отображался[6]. Некоторые производители (например, 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[8][9]. В этой клавиатуре была применена система подавления фантомных нажатий[10], а также возможность озвучивать нажатие клавиши через системный динамик[8]. С системным блоком клавиатура связывалась по инфракрасному каналу, наподобие телевизионного пульта — для этого в клавиатуру устанавливались четыре батарейки AA, однако в комплекте имелся кабель для подключения к компьютеру напрямую. У клавиатуры отсутствовал буфер нажатых клавиш, из-за чего прерывание обработки нажатий пришлось сделать немаскируемым[9]. Несмотря на меньшее количество клавиш и другой способ подключения, она генерировала те же самые скан-коды, что и обычная PC/XT-клавиатура[10].

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

84-клавишная AT-клавиатура

править
 
84-клавишная клавиатура PC/AT

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

101/104-клавишная AT-клавиатура

править
 
Усовершенствованная клавиатура PC/AT

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

Клавиатура PS/2

править
Штекер MiniDIN-6 и два гнезда — для клавиатуры и мыши соответственно

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

Появление клавиш Windows и Menu

править

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

Региональные варианты

править
 

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

  • 102/105-клавишная европейская модификация[28], известная также как ISO-раскладка, описанная в стандарте ISO/IEC 9995[англ.]. В этой раскладке клавиша Enter расположена на двух горизонтальных рядах (D13/С13), но её нижняя часть укорочена, чтобы разместить клавишу хеша (которая, однако, имеет код обратного слеша). Кроме того, в этой модификации имеется дополнительная клавиша обратного слеша рядом с левой клавишей Shift[28]. Данная раскладка происходит от изначальной раскладки клавиатуры IBM PC, только в ней слева от клавиши Enter располагалась клавиша ~`
  • Бразильская раскладка[29] (или ABNT) — схожа с европейской, но имеется дополнительная клавиша рядом с правой клавишей ⇧ Shift, а также клавиша точки на цифровом блоке. Регламентирована стандартами ABNT NBR 10346 variant 2 (алфавитно-цифровой блок) и 10347 (цифровая клавиатура)[30].
  • Южнокорейская раскладка[31] (KS) с двумя дополнительными возле клавиши пробел для ввода символов ханча и хангыль.
  • Японская раскладка[32] (неофициально называемая JIS) — содержит 106 (109) клавиш: укороченный Backspace, чтобы вместить символ иены, дополнительные клавиши слева от ↵ Enter и правой клавиши ⇧ Shift, а также три клавиши в ряду пробела: для переключения раскладки и ввода каны. Клавиатура для японской версии PC впервые появилась на компьютере IBM PS/55[англ.] (японском варианте PS/2). В дальнейшем именно эта раскладка была рекомендована для японского языка консорциумом PC OADG[англ.][33].

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

Компактные и расширенные клавиатуры

править

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

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

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

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

Клавиатуры с мультимедийными клавишами

править

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

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

Принцип работы

править

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

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

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

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

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

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

2 DATA
3 -RESET
4 GND
5 +5V

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

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

Нет Набор set1[22][23][24] (PC/XT)
XT (Type 2) [48] 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)  
1 CLK

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

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

 

1 DATA

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

набор set2 или set3[22][23][24]

Наборы скан-кодов

править

Набор скан-кодов set1 (в других источниках называемый как set#0) — это набор сканкодов оригинального PC. В клавиатуре PC/AT и более поздних моделях этот набор не поддерживается, однако контроллер клавиатуры на материнской плате может производить трансляцию скан-кодов в набор set1. Код отпускания соответствует коду нажатия+0x80. Коды клавиш, отсутствовавших в оригинальной клавиатуре, соответствуют кодам клавиш с соответствующими функциями, но к ним прибавляется префикс 0xE0[49][22].

Набор set2 (или set#1)— стандартный набор PC/AT. В нём дополнительные клавиши также предваряются префиксом 0xE0. Отпускание клавиши предваряется кодом 0xF0[22].

Набор set3 (или set#2) представляет собой оптимизацию набора set2, заключавшуюся в отказе от префиксов и переходе к однобайтным скан-кодам. Однако он не получил распространения и к тому же может отсутствовать в некоторых моделях клавиатур[49]. Отпускание также предваряется кодом 0xF0[22].

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

править

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

  • Esc — используется в основном как клавиша отмены либо для очистки только что введённых данных, например, командной строки DOS[50]. Как клавиша ввода специальных символов ко времени появления PC она уже не использовалось[1].
  • Ctrl — хотя эта клавиша была взята из раскладки терминалов для ввода управляющих символов, в таком качестве она используется исключительно в командной строке DOS и эмуляторах терминала. В большинстве приложений она используется в составе сочетаний клавиш[51].
  • Alt — взята из клавиатуры System/23 и тоже используется в основном в составе сочетаний клавиш[52]. Также она позволяет вводить отсутствующие на клавиатуре символы — не только из алфавита ASCII — путём ввода при нажатой Alt кода символа на цифровой клавиатуре[53][54][55]. В 102- (105)-клавишных клавиатурах правая клавиша Alt обозначается как Alt Gr и предназначена для ввода дополнительных символов: диакритики, знаков препинания и т. д.[56] Кроме того, в различных меню и диалоговых окнах отдельные буквы названий пунктов могут быть выделены цветом или подчёркиванием, если фокус ввода находится в этом меню, сочетание клавиши Alt с выделенной буквой равнозначно выбору этого пункта меню[57]. В Windows по умолчанию это выделение не отображается, но появляется при однократном нажатии Alt.
  • Tab используется для работы с табуляцией, а также для переключения между формами и элементами интерфейса. Простое нажатие Tab ↹, как правило, приводит к переходу к следующей позиции табуляции или элементу интерфейса, а в сочетании с клавишей ⇧ Shift — к предыдущей[58]. В Windows клавиша стала использоваться для переключения между открытыми окнами в сочетании с клавишей Alt.
  • Caps Lock, как правило, влияет только на регистр букв, но не на цифры и знаки препинания[59][60]. В оригинальном PC и PC/XT выбранный регистр никак не отображался[6], начиная с PC/AT для этой цели имеется световой индикатор[2][55].
  • F1F10 (…F12) не имеют предопределённого значения, однако некоторые функции закреплены за какими-то из них в большом количестве программ, например F1 чаще всего вызывает встроенную справку[61].
  • Enter — совмещает в себе функцию перевода строки и подтверждения операции[62], хотя во многих продуктах IBM за эти функции отвечали разные клавиши.
  • Num Lock — была введена для того, чтобы совместить цифровой и навигационный блоки клавиатуры. За это решение компанию IBM многократно критиковали[6], пока не была выпущена клавиатура Model M, в которой появились выделенные навигационные клавиши[18], хотя клавиша Num Lock осталась для обеспечения совместимости. Кроме того, сочетанием клавиш Ctrl+Num Lock можно было приостановить работу текущей программы[63] — позже эта функция была выведена на отдельную клавишу Pause[64].
  • Scroll Lock — включает режим прокрутки навигационными клавишами, для которого на клавиатуре начиная с PC/AT существует индикатор[65]. Этот режим оказался не очень удобным и эта клавиша вскоре вышла из употребления и может отсутствовать на некоторых клавиатурах.
  • Pause — приостановка выполнения программы[64]. Так же, как Scroll Lock, за пределами командной строки DOS не используется. В ранних версиях была сблокирована с клавишей Num Lock и вызывалось сочетанием с Ctrl[66][63].
  • Break — не является самостоятельной клавишей. В ранних версиях эта функция была сблокирована с клавишей Scroll Lock[67], а начиная с Model M — с клавишей Pause[64]. Вызывается сочетанием с клавишей Ctrl и прерывает работу текущей программы[66]. Используется практически исключительно в командной строке DOS, для чего приложение должно откликаться на специальное прерывание, но чаще приложения командной строки реагируют на управляющий символ «End of text» (Ctrl+C).
  • Print Screen — изначально посылала текущий экран на принтер[66], с появлением Windows стала копировать содержимое экрана в буфер обмена[53]. Изначально была сблокирована с клавишей * и вызывалась сочетанием ⇧ Shift+*[63].
  • SysRq — появилась на 84-клавишной клавиатуре PC/AT[2], предполагалось, что она будет использоваться для переключения между программами в многозадачной ОС[68], но эта задумка так и не была реализована[12][13], позже она была убрана под клавишу Print Screen (вызывалась в сочетании с клавишей Shift).
  • Insert — для переключения между режимами вставки и замены. Чаще всего используется режим вставки, когда вводимый символ добавляется в позиции курсора, в то время как в режиме замены символ, стоящий после курсора, удаляется и заменяется на введённый с клавиатуры[69]. Режим замены используется достаточно редко, в основном для заполнения различных форм, кроме того, само наличие этого режима, а особенно отсутствие индикации его критикуется многими специалистами по пользовательскому интерфейсу[70]. Также данная клавиша в сочетании с клавишами Ctrl или ⇧ Shift может работать с буфером обмена.
  • Delete используется для удаления объекта после курсора[69], а также выделенных объектов. Кроме того, сочетание клавиш Ctrl+Alt+Del изначально использовалась для быстрой перезагрузки компьютера без очистки памяти[3] — предполагалось, что оно будет использоваться только разработчиками ПО[71]. Это сочетание зашито в BIOS, однако большинство операционных систем для PC самостоятельно обрабатывают события клавиатуры и потому могут назначить на это сочетание другие действия.

Сравнение с USB HID

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

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

  • В разъём USB можно подключить съёмный диск либо устройство беспроводной связи, что может быть недопустимо при работе с коммерческой или государственной тайной. Даже при отсутствии дополнительных разъёмов возможно подключение через разветвитель. В разъёмы PS/2 можно подключить только клавиатуру и мышь[72], все USB-разъёмы в этом случае можно отключить физически. Альтернативой может быть физическая фиксация штекера в гнезде USB, но при этом злоумышленник всё ещё имеет возможность разрезать кабель, подключившись в разрыв цепи.
  • Стандарт USB HID допускает до 8 одновременно нажатых клавиш на одном устройстве. Это ограничение можно преодолеть, зарегистрировав клавиатуру как несколько HID-устройств. Традиционная PC-клавиатура не имеет подобного ограничения, поэтому долгое время считалась более предпочтительной для некоторых компьютерных игр, таких как симуляторы[73].
  • Протокол 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, но и произвольно менять назначение клавиш[74].

Критика

править

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

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

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

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

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

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

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

Примечания

править
  1. 1 2 3 4 5 6 Norton, 1984.
  2. 1 2 3 4 5 Гук, 2006, с. 642.
  3. 1 2 3 Bradley, 1990, с. 420.
  4. Bradley, 1990, с. 414.
  5. Edlin, 1982, p. 178.
  6. 1 2 3 4 5 6 7 Edlin, 1982.
  7. 1 2 3 4 Robertson, 2014.
  8. 1 2 jrManual, 1983.
  9. 1 2 Norton, 1985, с. 140.
  10. 1 2 jrReference, 1983.
  11. Юрий Литвиненко. IBM PCjr - большой провал большой компании. Дата обращения: 18 июля 2020. Архивировано 18 июля 2020 года.
  12. 1 2 Una Persson. What’s the “Scroll Lock” key on my computer for? : [арх. 13 августа 2020] // The Straight Dope. — 2003. — 7 октября.
  13. 1 2 Киви Берд (2003-12-14). "Давим на клавиши". "Домашний Компьютер" №12. Архивировано 21 января 2014. Дата обращения: 17 января 2014.
  14. IBM. IBM Enhanced Keyboard for the Personal Computer Announcement Letter. 1986-04-18 ([1] Архивная копия от 21 апреля 2021 на Wayback Machine).
  15. Jim Burrows. Inverse-T History (англ.). Дата обращения: 10 августа 2020. Архивировано 23 сентября 2015 года.
  16. Benj Edwards. Why I Still Use a 34-Year-Old IBM Model M Keyboard (англ.). How-To Geek (25 апреля 2020). Дата обращения: 31 августа 2023. Архивировано 31 августа 2023 года.
  17. 1 2 PC, 1986, p. 180.
  18. 1 2 3 PC, 1986, p. 182.
  19. W3C, 2.1.2.
  20. PS2Reference, 1987, 4−46.
  21. 1 2 3 Гук, 2006, с. 643.
  22. 1 2 3 4 5 6 7 Савченков, 2018.
  23. 1 2 3 4 Chapweske, 2001.
  24. 1 2 3 4 Savard, 2003.
  25. Microsoft, 2000, p. 15.
  26. PS2HardwareReference, 1988.
  27. Fisher, Lawrence M. (1994-09-06). "Microsoft Is Bringing Out Its First Computer Keyboard". The New York Times. Архивировано 2 декабря 2021. Дата обращения: 10 декабря 2018.
  28. 1 2 PS2Reference, 1987, 4−13.
  29. W3C, 2.1.6.
  30. ABNT (1991): «NBR 10346 de 08/1991 — Tecnologia de informação — Teclados em equipamentos de processamento de dados — Conjunto alfanumérico -Padronização Архивная копия от 27 декабря 2022 на Wayback Machine». Available from the ABNT website. Accessed on 2021-08-15.
  31. W3C, 2.1.5.
  32. W3C, 2.1.7.
  33. OADGテクニカル・リファレンス(ハードウェア) : [яп.]. — PCオープン・アーキテクチャー推進協議会, 2000年. Архивная копия от 18 октября 2004 на Wayback Machine
  34. W3C, 2.1.3.
  35. PS2Reference, 1987, 4−11.
  36. The Different Keyboard Sizes Explained (англ.). Switch & Click. Дата обращения: 19 марта 2022. Архивировано 24 марта 2022 года.
  37. W3C, 2.1.9.
  38. W3C, 3.1.6.
  39. Scan code translate table (англ.). Microsoft. Дата обращения: 19 марта 2022. Архивировано 10 сентября 2021 года.
  40. Early Apple Keyboards (англ.). Дата обращения: 3 января 2022. Архивировано 3 января 2022 года.
  41. А. Бойко. Удачный «Поиск» // Наука и жизнь. — 1991. — № 2. — С. 84. — ISSN 0028-1263.
  42. 1 2 3 Фролов, 1997.
  43. IBM PC/AT 8042 Keyboard Controller Commands | OS/2 Museum (англ.). www.os2museum.com. Дата обращения: 1 августа 2019. Архивировано 1 августа 2019 года.
  44. Scott Mueller. Keyboard Controller Chips // Upgrading and Repairing PCs. — 2003. — С. 387. — 1575 с. — ISBN 9780789729743.
  45. Edlin, 1982, p. 177.
  46. Norton, 1985, с. 133.
  47. XTReference, 1983, D−12 to D−13.
  48. XTReference, 1983, D−14 to D−15.
  49. 1 2 Гук, 2006, с. 648.
  50. 5150Manual, 1981, 3−16.
  51. Carnahan, 1987, p. 2.13−2.14.
  52. Carnahan, 1987, p. 2.14.
  53. 1 2 Фигурнов, 1999, с. 83.
  54. 1 2 Williams, Gregg (January 1982). "A Closer Look at the IBM Personal Computer". BYTE. p. 36. Дата обращения: 19 октября 2013.
  55. 1 2 ATManual, 1984, 1−6.
  56. Фигурнов, 1999, с. 121.
  57. Купер, 2009, с. 552.
  58. ATManual, 1984, 1−5.
  59. Norton, 1985, с. 131.
  60. 5150Manual, 1981, 3−14.
  61. Фигурнов, 1999, с. 80.
  62. ATManual, 1984, 1−4.
  63. 1 2 3 5150Manual, 1981, 3−17.
  64. 1 2 3 PS2Reference, 1987, 4−23.
  65. ATManual, 1984, 1−9.
  66. 1 2 3 Norton, 1985, с. 132.
  67. 5150Manual, 1981, 3−15.
  68. Norton, 1985, с. 144.
  69. 1 2 ATManual, 1984, 1−11.
  70. Купер, 2009, с. 525−526.
  71. The History of CTRL + ALT + DELETE (англ.). Mental Floss. Дата обращения: 11 января 2016. Архивировано 10 сентября 2017 года.
  72. Massive, undetectable security flaw found in USB: It's time to get your PS/2 keyboard out of the cupboard (англ.). ExtremeTech. Дата обращения: 26 октября 2015. Архивировано 12 апреля 2022 года.
  73. Is PS/2 or USB Better for Keyboards and Mice? (англ.). Techquickie. Архивировано 13 сентября 2020. Дата обращения: 18 июля 2020. Источник. Дата обращения: 18 июля 2020. Архивировано 13 сентября 2020 года.
  74. SOARER (англ.). Дата обращения: 20 июля 2020. Архивировано 20 июля 2020 года.
  75. Edlin, Jim; Bunnell, David (February-March 1982). "IBM's New Personal Computer: Taking the Measure / Part One". PC Magazine. p. 42. Архивировано 7 сентября 2019. Дата обращения: 20 октября 2013.{{cite news}}: Википедия:Обслуживание CS1 (формат даты) (ссылка)
  76. Pournelle, Jerry (November 1984). "NCC Reflections". BYTE. p. 372. Дата обращения: 23 октября 2013.
  77. Pournelle, Jerry. Zenith Z-100, Epson QX-10, Software Licensing, and the Software Piracy Problem (англ.) // BYTE. — 1983. — Июнь. — P. 438−439. — ISSN 0360-5280.
  78. Curran, Lawrence J., Shuford, Richard S. (November 1983). "IBM's Estridge". BYTE. pp. 88—97. Дата обращения: 19 марта 2016.{{cite news}}: Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка)
  79. IBM Brings out the big guns (англ.) // PC Magazine. — 1984. — 13 November. — P. 119−122.
  80. Norton, 1985, с. 143.
  81. Xah Lee. History of Emacs & vi Keys (Keyboard Influence on Keybinding Design) (англ.). Дата обращения: 4 января 2019. Архивировано 9 ноября 2018 года.
  82. Xah Lee. How To Avoid The Emacs Pinky Problem (англ.). Дата обращения: 8 ноября 2009. Архивировано 26 мая 2010 года.

Литература

править

Спецификации и руководства

править
  • IBM 5150: Guide to Operations (англ.). — First Edition. — International Business Machines Corporation, 1981. — (IBM Personal Computer Hardware Reference Library).
  • IBM PCjr. Guide to Operations (англ.). — International Business Machines Corporation, 1983. — P. 3—1 − 4-10.
  • IBM PCjr Technical reference (англ.). — International Business Machines Corporation, 1983. — P. 2-101 − 2-106.
  • IBM XT 5160 Technical reference (англ.). — International Business Machines Corporation, 1983.
  • IBM Personal Computer AT: Guide to Operations (англ.). — International Business Machines Corporation, 1984. — (IBM Personal Computer Hardware Reference Library).
  • IBM Personal Computer AT 5170: Technical Reference (англ.). — International Business Machines Corporation, 1985. — (IBM Personal Computer Hardware Reference Library).
  • IBM Personal System/2™ Model 25: Technical Reference (англ.). — International Business Machines Corporation, 1987. — (IBM Personal Computer Hardware Reference Library).
  • Keyboard and Auxillary Device Controller // IBM Personal System/2 Hardware Interface Technical Reference. — International Business Machines Corporation, 1988. — (IBM Personal Computer Hardware Reference Library).
  • Keyboard Scan Code Specification : [англ.]. — Revision 1.3a. — Microsoft Corporation, 2000. — (Windows Platform Design Notes).

Ссылки

править