Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Сохранение символа и его вывод на экран, вся цепочка процесса (https://javascript.ru/forum/offtopic/53970-sokhranenie-simvola-i-ego-vyvod-na-ehkran-vsya-cepochka-processa.html)

FanAizu 25.02.2015 22:29

Сохранение символа и его вывод на экран, вся цепочка процесса
 
Сколько не читаю статьи, никак не могу "въехать", я опишу, как вижу "мир", а вы, пожалуйста, напишите, где неправильно и как правильно. Большое вам спасибо!

Я открываю текстовый редактор, нажимаю клавишу на клавиатуре. Контроллер клавиатуры отправляет процессору код нажатой клавиши. Операционная система
передает этот код в текстовый редактор. Текстовый редактор определяет какая кодировка выбрана в операционной системе. Далее коду нажатой клавиши сопоставляется
значение символа в текущей кодировке операционной системы. Например, код клавиши - 100, в кодировке windows-1251 он соответствует двоичному коду 00010100. Далее
текстовый редактор обращается к операционной системе, чтобы та отобразила этот самый символ с кодом 00010100. Операционная система смотрит какой выбран шрифт,
открывает файл шрифта, внутри же файла шрифта также имеется своя внутренняя кодировка, в которой код символа соотносится с глифом(изображением). Это изображение
и выводится на экран.
Чёрт, ну вот бесит, что нигде не нашел подробное описание того процесса, который я описал, только так как есть на самом деле. Помоги, пожалуйста, дайте ссылку, если
знаете, где прочесть подробно про этот процесс ввода символа, его сохранение с использованием кодировок, а далее вывод на экран с использованием файлов шрифтов, или расскажите
своими словами, если вам не в тяготу. Очень буду благодарен, уже устал, ну фиг где есть нормальная информация...

laimas 21.03.2015 01:58

Нет не так.
Контроллер клавиатуры возвращает не код нажатой клавиши, а код определяющий нажатую клавишу в наборе, так называемый скан-код. Код же символа соответствующий нажатой клавише формируется драйвером устройства.
У файлов шрифтов нет никакой внутренней кодировки, эти файлы описывают представление символа на экране, при этом есть растровые описания и векторные (ttf-шрифт).
Код символа плюс кодовая страница набора (то что определяет язык ввода), это адрес в файле шрифта, по которому и находится матрица описываемая этот символ, то есть задается обычное смещение.
Текстовый редактор ничего не спрашивает у ОС по поводу отображения и вывода символа на экран. Все это производится драйверами, работа которых базируется на получении/перехватах соответствующих прерываний как аппаратных так и программных.
В итоге описание этого символа попадает в графическую карту и рисуется на экране. А текстовый редактор занят глобальными задачами - хранить позицию символа на экране, каким стилем его написать и т.п. Если бы он контролировал весь процесс от нажатия клавиши до отображения на экране, то скорость "печатания" в редакторе была бы один символ в минуту.

Вкратце так, а полностью весь процесс очень сложный.


Часовой пояс GMT +3, время: 21:25.