17 июня 2026, 10:47
Рэймонд Чен рассказал об «ужасном» коде эмулятора x86

Инженер Microsoft Рэймонд Чен рассказал, как команда разработчиков Microsoft обнаружила настолько плохой исходник эмулятора x86, что исправила его во время эмуляции.

По его словам, это история из тех времен, когда Windows включала эмулятор процессора x86-32 на системах, изначально работающих на каком-то другом процессоре. Данный эмулятор использовал бинарную трансляцию, генерируя нативный исходник для выполнения эквивалентных операций исходного кода x86-32.
«Это обеспечивало значительное повышение производительности по сравнению с эмуляцией через интерпретатор. Можно представить, что x86-32 — это просто байт-код, а эмулятор — это JIT-компилятор», — отметил Чен.
В соответствии с заявлению инженера, его коллега обнаружил, что одной программе необходимо выделить около 64 КБ памяти в стеке и инициализировать её. Стандартный метод сделать это — выполнить проверку стека, чтобы убедиться, что 64 КБ памяти доступны, затем вычесть 65536 из указателя стека и инициализировать память в небольшом цикле. Тем не менее, вместо того чтобы разрабатывать цикл для инициализации каждого байта буфера, компилятор «улучшил» код, развернув цикл в 65 536 отдельных инструкций «запись байта в память», каждая длиной в 4 байта.
Итак, для инициализации 64 килобайт данных программе потребовалось 256 килобайт кода.
«Это настолько возмутило команду, что они добавили в транслятор особый исходник для обнаружения этой ужасной функции и замены её эквивалентным “плотным” циклом», — заключил Чен.
Ранее инженер объяснил, что происходит, когда потребитель удерживает клавишу Shift при перезагрузке Windows, и вместо полной перезагрузки системы одновременно отображается сообщение «Windows перезагружается».
В дополнение к этого, разработчик поделился, что ещё в 90-е годы производители компьютеров добавили строки авторских прав в BIOS, чтобы предлагать клиентам полные версии пробного программного обеспечения в качестве бонуса.
Наконец, Чен раскрыл очередной секрет эпохи 16-битной Windows, связанный с названием ошибки hard error. Он отметил, что сообщения были сгенерированы внутри системы ввода-вывода, ниже уровня пользовательского интерфейса.
Читают сейчас

36 минут назад
М.Видео: каждый следующий экран в РФ обладает диагональю 27 дюймов
Аналитики компании по анализировали рынок мониторов в России по итогам I квартала 2026 года. Почти каждый второй проданный экран имеет диагональ 27 дюймов, каждый третий оснащен разрешением QHD, а пок

37 минут назад
30 июня завершится прием заявок на грант для AI-проектов
Привет, ! Время почти на исходе. Успейте заполнить форму до 30 июня, чтобы получить до 2 000 000 ₽ на надежную инфраструктуру под ML-задачи от Selectel. Участвовать могут как стартапы, так и крупные к

48 минут назад
Динозавр на HighLoad++: Зачем мы несем службу каталогов на конференцию, где правят бал микросервисы и Kafka
Много лет ты читаешь отчёты с HighLoad++, следишь за докладами и обсуждениями в кулуарах, но все это обычно воспринимается как что-то, наблюдаемое со стороны. Момент же, когда твоя собственная заявка

1 час назад
OpenAI o3 помогла раскрыть 18 редких детских болезней
Исследователи из Бостонской детской больницы, Гарвардского университета и OpenAI заново разобрали 376 случаев редких генетических болезней у детей, которые специалисты годами не могли решить, — и с по
1 час назад
У Счётной палаты появились вопросы по IT-закупкам Минфина и Федерального казначейства
Счётная палата выявила ряд нарушений в работе департамента информационных технологий Минфина в контексте проверки использования средств федерального бюджета на закупку ИКТ‑оборудования (в частности, с