Pull to refresh

Comments 44

После этой статьи это стало модой.
* Взгляд назад из 2019-го
Я с удовольствием прочитал. Но формат больше geektimes'овский, да
Для познающих слишком много специфичных терминов, надо бы более простым языком всё описывать. Для тех, кто эти термины знает — статья бесполезна, в общем случае всё это им известно, а частности всегда смогут найти при желании.
Бегло пробежался снова по тексту. Специфичные термины разбавлены общим контекстом. Речь получилось энциклопедической. Так что речь вполне полезна именно для тех, кто познаёт. Начинаешь понимать что искать и имеешь контекст применения. Это ценно)
Как вариант — для хорошо разбирающихся в терминах, однако не совсем знакомых с данной темой в следствии ее достаточной специфичности и сомнительной применимости в реальной жизни. Но мне понравилось)
Для нас с вами. Ведь все мы прочитали это до конца )
К счастью, что бы читать комментарии не надо читать статью до конца.
Это очень полезно, так как есть статьи, которые порождают комментарии намного интереснее самой статьи.
какого только не прочитаешь до конца, если хочется прокрастинировать
Кнопка «ввод» возвращается в исходное положение

Это если клавиатуру не залили предварительно сладким чаем :) Потому что тогда в цепочку процессов вклинится химия, физика, механика, психология и большое количество лингвистики в области обсценной лексики.
На самом деле все еще проще: электрон туда, электрон сюда…
Это до тех пор пока вы не учитываете гравитацию.
Рекомендую подписаться на обновления репозитория. Он существует уже давно, но в последнее время внезапно активировался, очень многое добавляют/правят. Вряд ли возможно описать совсем всё происходящее, но подробностей будет больше.
Недостаточно подробно. :-(
Работу с оперативной памятью пропустили, как на логическом, так и на физическом уровнях… Хотя, это же только первая часть.
Да ладно память, там даже файлы сами по себе читаются: "...можно ли узнать адрес сервера по имени на основании информации из локального файла hosts". Ни в какие ворота.
Так надо ещё код побайтово разложить на уровне машинного языка.
Да всю статью в машинных кодах написать, всего делов-то…
Только вот не понял насчёт «Иначе запрос отправляется на IP-адрес стандартного шлюза.» в разделе Запрос DNS.

Зачем шлюзу ДНС-запрос? Запрос отправляется на IP-адрес ДНС-сервера, но в dst мак-адресе указывается мак-адрес шлюза. IP-адрес шлюза используется только для определения его мак-адреса.

Можно забавный эксперимент провести. Занести в arp статическую запись произвольный ip из текущей подсети + mac адрес шлюза. Далее поменять в настройках сети ip адрес шлюза, сделав его равным ранее занесённому в arp ip-адресу и всё будет работать.
По-моему забыли описать движение дырок в PNP-переходе и вынужденное излучение оптического квантового генератора.
И запрос на ближайшую электростанцию на порцию электронов ))
Фундаментальный подход — это правильно. Большое спасибо автору и переводчику.
про Enter в начале совсем противно написано
Начали хорошо и более-менее подробно, но на стадии отправки запроса как-то все скомкано и свернуто :( А ведь там тоже все очень интересно.
Было же это на Хабре, разве нет?
Возникновение прерывания (не на USB-клавиатуре)

Клавиатура отправляет запрос прерывания (IRQ),


Если речь о PS/2, то запрос отправляет не клавиатура, а контроллер клавиатуры на материнской плате. Например, в ноутбуках IBM это делает Embedded Controller через LPC-шину.
Для отправки широковещательного запроса ARP, сетевому стеку нужно узнать IP-адрес получателя и MAC-адрес интерфейса, который будет для этого использован.

чушь какая! все совсем наоборот — для отправки unicat-пакета сетевому стеку, а конкретно той его части которая отвечает за формирование пакетов-ethernet, нужно отправить широковещательный ARP-запрос, чтоб узнать mac-адрес next-hop. А до того как это произойдет, то еще сработает процесс маршрутизации, чтоб узнать какой ip-адрес спрашивать у ARP. Есть таки большая разница в прохождении трафика от хоста 192.168.0.10/24 до хоста 192.168.0.1/24 и от хоста 192.168.0.10/24 до хоста 8.8.8.8/32.
Как происходит преобразование нажатия в код клавиши 13?
Не совсем так. Контроллер на борту клавиатуры посылает компьютеру скан-код нажатой клавиши. У PS/2-клавиатур этот код зависит от выбранного в данный момент способа кодирования (всего их три). У USB-клавиатур свой отличный набор кодов.
Преобразование в 13 производит либо контроллер клавиатуры на материнской плате (для PS/2), либо драйвер (для USB).
Если я ничего не путаю, на физическом — scan code, потом key code (в случае с 13 может быть еще второй энтер на нампэде, с другим скан кодом, но таким-же key code), затем идет char code (не уверен, генерируются ли они для всяких мультимедийных и функциональных кнопок, или только для ascii символов). А еще может быть дополнительная обработка на уровне ОС — в виндовс можно ремапить клавиши через реестр, например.

Надо бы найти где-нибудь структурированную информацию по этой теме, для повышения образованности.
DNS пропустил. А на собеседованиях частенько хотят услышать подробности про это.
Даже если к сайту недавно обращались, и он есть в DNS кеше, то прописав в hosts другое значение, оно будет иметь преимущество.
Подскажите что происходит — сперва hosts, затем DNS кеш, или просто отслеживается изменение hosts файла? Всегда хотел уточнить этот момент.
Зависит от настроек в /etc/nsswitch.conf
Файл hosts автоматически подгружается в кэш DNS Resolver. Так что для Windows ответ на ваш вопрос — «происходит одновременно».
Пруф
Кнопка «ввод» возвращается в исходное положение
WM_KEYDOWN
При возврате уже WM_KEYUP будет, вообще-то.
И почему минус? В чём я неправ?
Потому что ошибка состояла, не в коде события, а в том что кнопка «ввод» зажата, а не возвращается в исходное положение.
Стандартный вопрос на собеседование в Akamai.
Sign up to leave a comment.

Articles