При нажатии клавиши на клавиатуре она отправляет цифровой код на компьютер, названный скэн-кодом. Скэн-код говорит компьютер, какая клавиша была нажата; например, на типичной американской клавиатуре, ключ отправляет скэн-код 30 при нажатии его (и 158 при выпуске его). Драйвер клавиатуры сообщает об этих кодах непосредственно приложениям, когда клавиатура находится в режиме без предварительной обработки (“сырые данные” означают необработанный, непосредственно-клавиатура). Несколько программ используют режим без предварительной обработки и делают их собственную обработку клавиатуры; X-сервер является самым видным.
Большинство программ ожидает, что при нажатии клавиши программа читает символ a
(ASCII 97) и это, когда Вы нажимаете Shift+A чтения программы A
(ASCII 65), и когда Вы нажимаете Ctrl+A программа, читает Ctrl+A
символ (ASCII 1). Ключи, которые не имеют связанных символов, отправляют escape-последовательности, например. \e[A
для Левого, где \e
символ ESC (ASCII 27). Драйвер клавиатуры выполняет этот перевод, когда клавиатура находится в режиме ASCII, также названный режимом XLATE (короткий для “переводят”). Режим XLATE позволяет приложениям сделать ввод символов, за счет не наличия доступа к таким нюансам как “Клавиша сдвига влево, нажатая” или Ctrl+Shift+A в отличие от Ctrl+A.
kbd_mode
позволяет Вам переключиться между режимами и показывает текущий режим, если Вы вызываете его без какого-либо аргумента.
Волшебные сочетания клавиш SysRq предназначены для восстановления с различных противных ситуаций. Одно из сочетаний клавиш Alt+SysRq+K
закрыть все программы на текущей виртуальной консоли; если та программа поместит клавиатуру в режим без предварительной обработки, то Вы не сможете ввести при приглашении ко входу в систему (который будет часто появляться, в зависимости от Вашей конфигурации системы). Нажатие Alt+SysRq+R
восстанавливает обычное (вне X) режим ASCII, где можно ввести символы.
Приложение соединено двумя способами: колотить, и терминалу.
Соединение с терминалом - то, что стандартные потоки (stdin, stdout и stderr) приложения подключены к терминалу. Типичные приложения GUI не используют stdin или stdout, но они могли бы испустить сообщения об ошибках к stderr.
Соединение с оболочкой - это, если Вы запустили приложение с foo &
, это остается известным оболочке, поскольку задание, как объяснено в Различии между nohup, отрицает и и. При закрытии терминала оболочка получает a SIGHUP
, который это распространяет к его заданиям. Когда Вы вводите exit
в оболочке это отрицает задания заранее (это настраивается в некоторой степени).
Можно разъединить соединение оболочки с disown
встроенный. Вы не можете разъединить клеммное соединение, по крайней мере, не без закулисных методов (использующий отладчик), который мог разрушить программу.
Ваша оболочка запускает эти программы как дочерние процессы. При выполнении pstree, Вы видите эти отношения. Я не знаю, можно ли управлять им.
s/severe/sever/g
– Paused until further notice. 12.11.2010, 00:45