
По его словам, это история из тех времен, когда 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. Он отметил, что сообщения были сгенерированы внутри системы ввода-вывода, ниже уровня пользовательского интерфейса.
