Break (клавиша)

Break (англ. Break key, также иногда символ [1]) — клавиша на компьютерной клавиатуре, название которой восходит к прерыванию (размыканию) цепи телеграфа, что было актуально с XIX века. В современных реалиях клавиша Break не имеет однозначного предназначения, однако может использоваться в программном обеспечении для различных функций, таких как переключение между сессиями входа, аварийное завершение программы или прерывание соединения с модемом.

Поскольку с момента появления 101-клавишной клавиатуры IBM Model M в 1985 году функция Break обычно совмещена с функцией Pause на одной клавише, данная клавиша часто также называется Pause (англ. Pause key). Она может использоваться для приостановки некоторых компьютерных игр.

История

Стандартная телеграфная цепь соединяла все ключи, звукоприёмники и батареи в одну общую последовательную цепь. Таким образом, звукоприёмники срабатывали только если оба ключа были нажаты (замкнуты, что называлось «маркирование» — по чернильным меткам на бумажной ленте в ранних телеграфах). Поэтому принимающему оператору необходимо было удерживать свой ключ нажатым или замкнуть специальный шунтирующий переключатель для передачи управления другому оператору. Соответственно, принимающий оператор мог прервать передачу, размыканием своего ключа, то есть введением цепи в состояние «размыкания», что останавливает работу обоих звукоприёмников и сигнализирует отправителю (физическое повреждение телеграфной линии имело бы тот же эффект).

Телетайп функционировал по схожему принципу, но отправляющая станция поддерживала замкнутую цепь (логическая 1, «маркирование») даже в небольшие паузы между символами. Длительное нажатие специальной клавиши «Break» размыкало цепь и переводило её в непрерывное состояние логического 0, или «размыкания»[2].[3] В таком состоянии механизмы телетайпа работали непрерывно, не печатая ничего[3], так как в кодировках Бодо и ASCII последовательность всех нулей соответственно означает непечатаемый символ NUL. Шум устройства привлекал внимание оператора.

Эта практика перешла к использованию телетайпов в качестве терминалов многопользовательских компьютеров. Постоянное логическое 0 («spacing») нарушает правило завершения каждого символа хотя бы одним стоп-битом (логической 1, «marking»), что воспринималось компьютером (точнее — UART) как особый «break»-сигнал и вызывало прерывание, обычно останавливавшее программу[4] или инициировало запрос имени пользователя. Аналогично телетайпам, видеотерминалы сохранили клавишу Break[5],[6] приводившую соединительную линию передачи в нулевое состояние[7].

С учётом прерывающей функции в терминальном обмене, клавиша Break была перенята программными терминальными эмуляторами и приложениями, использующими последовательные протоколы, например, RS-232. Такая концепция прерывания также применяется при загрузке компьютеров и сетевого оборудования, а также для остановки операций во многих программах, например, командных оболочках, отладчиках и электронных таблицах[8].

Sinclair

На компьютерах ZX80 и ZX81 клавиша Break вызывается одновременно с нажатием Space. На ZX Spectrum её функция доступна по Caps Shift. Компьютеры Spectrum+ и последующие модели получили отдельную клавишу Break. Она не генерирует аппаратное прерывание, но останавливает выполнение любой программы на языке BASIC, а также завершает загрузку или сохранение данных на магнитофонную ленту. Прерванная программа на BASIC обычно может быть продолжена командой CONTINUE. На компьютере Sinclair QL, не имеющем клавиши Break, её функция возложена на комбинацию Ctrl.

BBC Micro

На компьютерах BBC Micro клавиша Break инициирует аппаратный сброс, обычно осуществляя тёплый перезапуск системы. Для полного (холодного) перезапуска нажимается Ctrl. Если установлен файловый менеджер, комбинация Shift вызывает поиск и загрузку или выполнение файла !Boot на основном устройстве (например, дисковод 0 или сетевая папка BOOT). Последние две функции унаследованы ОС RISC OS, пришедшей на смену Acorn MOS. Эти поведения могли перенастраиваться программно и часто использовались в простых способах защиты от копирования.

Современные клавиатуры

На многих современных ПК клавиша Pause временно приостанавливает вывод на экран средствами BIOS до последующего нажатия любой клавиши. Такая возможность актуальна при загрузке в текстовом режиме и в эмулированной среде DOS (окно) при использовании Windows в безопасном режиме с 50 строками на экране. На более ранних клавиатурах без специальной клавиши Pause (до распространения 101/102-клавишных моделей) её функция была назначена комбинации Ctrl, а для Break — комбинации Ctrl; эти сочетания продолжают работать во многих программах даже на современных клавиатурах. На полноразмерных 101/102-клавишных клавиатурах аппаратное нажатие отдельной клавиши Pause посылает те же сканкоды, что последовательное нажатие Ctrl, затем NumLock, с обратным порядком при отпускании; кроме того, используется префикс E1hex, различающий новые и старые реализации. Клавиша Pause отличается от остальных тем, что не посылает сканкодов при отпускании в PS/2-режимах 1 и 2, поэтому невозможно определить её длительное нажатие на старом оборудовании. Также она не является авторепетимой, то есть не генерирует повторных сканкодов при удержании нажатой (в отличие от других клавиш). В PS/2-режиме 3 и режиме USB HID реализовано посылка сканкода отпускания, поэтому на современных компьютерах эта особенность устранена[9].

В современных клавиатурах комбинация Break часто совмещается с надписью Pause (Break обычно помещают ниже, иногда разделяя линией: PauseBreak, либо Pause сверху, Break на передней грани, или только Pause без указания Break). Клавиатуры с маркировкой по стандарту ISO/IEC 9995-7 (включая канадскую CSA) используют символ для Break и для Pause[1]. В большинстве сред Windows сочетание Win вызывает окно свойств системы.

Клавиатуры без клавиши Break

Компактные и ноутбучные клавиатуры часто не имеют отдельной клавиши Pause/Break.

Альтернативные комбинации для функции Break:

  • Ctrl, либо Fn или Fn на некоторых ноутбукахLenovo[10].[11][12]
  • Ctrl или Fn на некоторых моделях Dell[13].[14]
  • Ctrl на некоторых других моделях Dell[15].[14]
  • Fn на ноутбуках Samsung.
  • Ctrl на некоторых моделях HP.
  • Fn на некоторых моделях HP.
  • Fn на некоторых клавиатурах Logitech (LOGI).

Альтернативные комбинации для функции Pause:

  • Fn, Fn или Fn на некоторых ноутбуках Lenovo[12].
  • Fn на некоторых ноутбуках Dell[12].
  • Fn на некоторых ноутбуках HP.
  • Fn на некоторых ноутбуках HP.

Для некоторых ноутбуков Dell без отдельной клавиши Break можно нажать Alt и выбрать «Interrupt» в появившемся меню[16].[14]

Использование для прерывания выполнения программы

Обе комбинации ключей — Ctrl и Ctrl — обычно реализованы для прерывания исполнения консольных приложений; они применяются схожим образом и в составе интегрированных сред разработки[17].[18] Несмотря на то, что эти комбинации часто считаются взаимозаменяемыми[19], компиляторы и среды выполнения, как правило, назначают им разные сигналы[20]. Кроме того, в некоторых ядрах (например, в различных версиях DOS) Ctrl определяется только в момент чтения ОС буфера клавиатуры и только если в буфере нет других последовательностей[21],[22] тогда как Ctrl обычно переводится в прерывание мгновенно (например, через вызов INT 1Bh в DOS). Поэтому Ctrl оказывается более эффективной в подобных системах; повышенная чувствительность для обоих сочетаний включается заявлением BREAK=ON в CONFIG.SYS.

Примечания

Ссылки