Подумал над вопросом "что происходит при нажатии enter в адресной строке браузера?" Дофига, однако.
1. Замыкаются контакты под клавишей
2. Приходит опросное напряжение от контроллера клавиатуры
3. Контроллер буферизует событие нажатия клавиши (с устранением дребезга, наверное).
4. От хостового USB контроллера приходит команда IN.
5. Контроллер клавиатуры отвечает данными из буфера (или это на два пакета разбито? данные прерывания и данные о нажатии)
6. Хостовый контроллер USB сохраняет данные и генерирует сигнал прерывания CPU.
7. ISR читает данные с контроллера и сбрасывает флаг прерывания (или сбрасывает флаг прерывания и инициирует deferred interrupt processing)
8. ISR или DPC ставят событие нажатия в очередь событий ввода с клавиатуры
9. Ядро будит поток в котором крутится event loop браузера
10. Скан-код преобразуется в событие "нажат enter"
11. Система обработки событий браузера роутит событие в процедуру обработки ввода в адресную строку
12. Процедура проверяет что в строке ввода что-то похожее на url
13. Отправляет DNS запрос
13.1 Описания DNS, Internet Protocol, ethernel, BGP, оптических линков, радио линков, опционально протоколов мобильного интернета.
14. Создаёт новый процесс(?) для обработки этой странички
15. Процесс инициирует HTTP/HTTPS соединение
15.1 Штук 50 RFC по TCP протоколу
15.2 80 страниц описания TLS
16 Парсит/подгружает(см. 15)/парсит данные
16.1 367 страниц описания HTML
16.2 426 страниц описания CSS
16.3 800 страниц описания JS
17 Рендерит что может параллельно с 16
17.1 ХЗ сколько страниц описания графического стека и железа GPU