Верхний ряд клавиатуры редко вызывает вопросы: F1 открывает справку, F5 обновляет страницу, F2 переименовывает файл. Кажется, что так было задумано именно для Windows, ведь именно в ней большинство людей впервые столкнулись с этими кнопками. На деле клавиши F1-F12 старше персонального компьютера в привычном понимании, а их нынешние роли сложились через череду случайных решений инженеров, конкурирующих стандартов и удачных находок разработчиков офисных программ, которые появились задолго до первой версии Windows.

Разобраться в этой истории полезно не только из любопытства. Она объясняет, почему одна и та же клавиша делает совершенно разные вещи в разных программах, почему на клавиатуре именно двенадцать функциональных клавиш, а не десять и не двадцать четыре, и почему привычка нажимать F1 при любых затруднениях сработает почти везде, а вот остальные клавиши предсказать заранее уже не получится.

Первые программируемые клавиши работали на терминалах задолго до персональных компьютеров

Идея кнопки, которой можно назначить произвольную команду, родилась не в IBM PC, а на печатающих терминалах и мейнфреймах. Ещё в 1965 году программируемый текстовый терминал Flexowriter модели 2201 от компании Friden получил тринадцать функциональных клавиш, расположенных справа от основного поля, там, где сегодня на клавиатурах обычно находится цифровой блок. Это устройство не было компьютером в современном смысле - скорее автономным текстовым процессором, который можно было подключить к вычислительной системе в качестве терминала.

В начале 1970-х похожую идею подхватила сама IBM в терминалах серии 3270, предназначенных для работы с мейнфреймами. На них появились так называемые программные функциональные клавиши, каждая из которых отправляла главному компьютеру заранее определённую команду вместо буквенного символа. Именно этот подход, рождённый на терминалах для крупных вычислительных центров, лёг в основу того, что позже перекочевало на клавиатуру персонального компьютера.

Логика таких клавиш принципиально отличалась от привычной сегодня клавиатурной раскладки. Буквенная клавиша всегда отправляет один и тот же символ независимо от программы, а функциональная клавиша с самого начала задумывалась как пустой сосуд: смысл в неё вкладывал не производитель клавиатуры, а конкретное приложение или администратор системы, настраивавший терминал под нужды своей организации. Эта гибкость и стала главной причиной, по которой идея быстро распространилась за пределы узкоспециализированных мейнфреймов на массовые персональные компьютеры следующего десятилетия.

Первый IBM PC 1981 года получил всего десять клавиш в два столбца слева от алфавитной части

Когда 12 августа 1981 года IBM представила первый Personal Computer, его клавиатура модели F несла десять функциональных клавиш, размещённых не сверху, как сейчас, а слева от основного алфавитно-цифрового поля, в двух столбцах по пять кнопок. Такое расположение объяснялось родством с терминалами и печатными машинками той эпохи, где дополнительные клавиши традиционно ставили сбоку, а не над буквами.

Клавиш F11 и F12 в этой раскладке ещё не существовало: инженеры ограничились десятью, пронумеровав их по физическому положению на плате, а не по какому-то заранее продуманному функциональному назначению. Что именно должна была делать каждая клавиша, решали уже не создатели клавиатуры, а разработчики программ, которые устанавливались поверх операционной системы MS-DOS.

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

Программы вроде Lotus 1-2-3 и командная строка DOS превратили пустые клавиши в инструмент навигации

Ранняя MS-DOS использовала клавиши F1, F2 и F3 для редактирования командной строки без единой заготовленной функции - удобно, но не имело отношения к тем ролям, которые эти кнопки играют сегодня. Клавиша F3 полностью повторяла последнюю введённую команду, F1 копировала из неё по одному символу, а F2 позволяла скопировать текст вплоть до указанного символа. Такой способ редактирования появился, потому что полноценного редактирования командной строки стрелками система тогда попросту не поддерживала, а копировать целиком забытую команду было проще одной кнопкой, чем набирать заново.

Настоящую популярность функциональным клавишам принесла табличная программа Lotus 1-2-3, вышедшая в 1983 году и ставшая первым по-настоящему массовым приложением для IBM PC. В ней каждая функциональная клавиша отвечала за конкретный пункт меню: переход к нужной ячейке брала на себя клавиша F5, пересчёт формул - F9, построение графиков - F10, и десятки других команд, которые иначе пришлось бы каждый раз искать через систему вложенных меню с помощью стрелок. Именно благодаря такому активному использованию в самой востребованной деловой программе своего времени функциональные клавиши перестали быть техническим излишеством и превратились в необходимость, к которой начали привыкать миллионы офисных пользователей.

Расширенная клавиатура 1984-1986 годов перенесла клавиши наверх и добавила F11 с F12

С выходом компьютера IBM PC/AT в 1984 году клавиатура получила 84 клавиши, но функциональный блок пока оставался на прежнем месте слева, лишь пополнившись отдельной кнопкой системного запроса. Переломный момент случился в 1986 году, когда IBM представила так называемую расширенную раскладку из 101 клавиши, позже воплощённую в легендарной клавиатуре Model M. Именно тогда функциональные клавиши переехали из левого столбца в привычный сегодня горизонтальный ряд над основным полем, а их количество выросло до двенадцати за счёт добавления F11 и F12.

Перенос наверх был не просто эстетическим решением. Место слева от алфавитной части освободили под отдельный блок стрелок и клавиш управления курсором, который прежде делил пространство с цифровой панелью и заставлял пользователей постоянно переключаться между режимом ввода цифр и режимом навигации кнопкой Num Lock. Расширенная раскладка решала сразу обе проблемы, и именно она, а вовсе не более ранние модели, стала тем шаблоном, который в итоге унаследовали клавиатуры для Windows.

Стандарт IBM по единому пользовательскому интерфейсу закрепил современные роли клавиш ещё до Windows

Пока клавиатура обретала знакомую форму, значения самих клавиш оставались хаотичными: в каждой программе F1 могла делать что угодно. Ситуацию изменил внутренний стандарт IBM под названием Common User Access, опубликованный в 1987 году как часть более широкой инициативы Systems Application Architecture. Стандарт впервые предложил разработчикам единый набор правил: клавиша F1 должна вызывать справку, а не что-то ещё, и придерживаться этого правила стоит независимо от того, какую именно программу пишет конкретная компания.

Эти рекомендации появились раньше первых массовых версий Windows и повлияли на то, какими принципами руководствовались разработчики Microsoft при создании собственного графического интерфейса. Возникший чуть позже стандарт был выгоден и конечным пользователям: человек, освоивший работу с одной программой, мог по инерции нажать F1 в совершенно другом приложении и с высокой вероятностью получить именно справку, а не случайное действие, придуманное конкретным разработчиком без оглядки на остальную индустрию.

Стандарт описывал не только клавишу F1. Он же закрепил за клавишей F10 роль активации главного меню программы стрелками без обращения к мыши, а за сочетанием Shift + F10 - вызов контекстного меню, аналогичного щелчку правой кнопкой. Многие из этих рекомендаций дожили до сегодняшнего дня почти без изменений именно потому, что были приняты индустрией массово ещё на заре господства текстовых интерфейсов, когда переучивать пользователей было особенно дорого, а единые правила экономили компании ресурсы на обучении персонала работе с новым программным обеспечением.

Современная Windows сохранила лишь часть исторических ролей, остальные достались отдельным программам

Сегодняшние значения клавиш - причудливая смесь наследия командной строки DOS, договорённостей вроде Common User Access и решений, принятых уже разработчиками конкретных программ спустя десятилетия после появления первой клавиатуры IBM. Общесистемные роли в Windows выглядят так:

  1. F1 - вызов справки в активной программе;
  2. F2 - переименование выбранного файла или ярлыка;
  3. F3 - открытие поиска в проводнике или повтор последнего поискового запроса;
  4. F4 - вызов истории адресной строки в проводнике, а в сочетании с Alt закрытие активного окна;
  5. F5 - обновление содержимого окна или страницы;
  6. F6 - перемещение фокуса между областями окна программы;
  7. F7 - проверка орфографии в большинстве текстовых редакторов;
  8. F8 - вход в дополнительные варианты загрузки системы при старте компьютера;
  9. F9 - пересчёт формул или обновление данных в отдельных офисных программах;
  10. F10 - активация строки меню в классических приложениях;
  11. F11 - переключение в полноэкранный режим в браузерах и медиаплеерах;
  12. F12 - открытие панели инструментов разработчика в браузере или диалога сохранения файла в старых версиях Word.

Часть этих значений действительно восходит к стандарту единого пользовательского интерфейса конца восьмидесятых, а часть, как переключение в полноэкранный режим клавишей F11, появилась намного позже, уже в эпоху веб-браузеров, и никакого отношения к оригинальным замыслам инженеров IBM не имеет. Именно поэтому одна и та же клавиша нередко делает разные вещи в разных программах: единого закона природы за функциональными клавишами никогда не стояло, только цепочка независимых договорённостей, которые со временем наложились друг на друга.

Двенадцать пропавших клавиш F13-F24 существовали задолго до появления Windows и не исчезли до конца

Мало кто помнит, что расширенная клавиатура 1986 года изначально задумывалась куда объёмнее: полная раскладка предусматривала не только F1-F12, но и клавиши F13-F24, доступные через нажатие Shift вместе с обычной функциональной клавишей. На большинстве бытовых клавиатур для дома и офиса эти дополнительные роли так и остались невостребованными, и производители довольно быстро перестали печатать их на клавишах, хотя электронно многие клавиатуры продолжают поддерживать эти коды и сегодня.

Полностью идея не исчезла: отдельные профессиональные клавиатуры, например терминальные клавиатуры IBM на 122 клавиши, действительно оснащались физическим рядом из двадцати четырёх функциональных клавиш, а современные полноразмерные клавиатуры Apple с цифровым блоком, включая линейку Magic Keyboard, несут на себе ряд из девятнадцати функциональных клавиш. Так что миф о двенадцати пропавших кнопках можно закрыть - они никуда не пропадали, просто оказались слишком нишевыми для массового рынка и остались уделом узкоспециализированных сценариев, для которых обычных двенадцати клавиш попросту не хватало.

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