стоит начать с того, что кнопка замыкает контакт на мембране или замыкает цепь свичиком, USB контроллер генерирует прерываниет и срёт им в ядро, ядро обрабатывает прерывание, вычитывает скан-код, исходя из этого понимает, что нажали энтер ..... спустя час рассказов ... - libc делает openat на /etc/nsswitch, потом на /etc/hosts (по дефолту), потом на resolv.conf, потом открывает сокет куда там написано на :53 ... если хромой браузер - то у него свой резолвер/свои кеши со своей логикой...
плюс сейчас не осталось кмк операционок без локального кеша DNS