Перейти к содержимому

Windows: Что на самом деле происходит «под капотом»? | Shop Talk ЭП 83

Dave's Attic

0:00 / 0:00

Windows: Что на самом деле происходит «под капотом»? | Shop Talk ЭП 83

17 408 просмотров · 4 месяца назад
Dave's Attic
60,4 тыс. подписчиков
17 408 просмотров · 4 месяца назад
Дэйв и Глен исследуют, что на самом деле происходит под капотом современных компьютеров. От выделения памяти и функции malloc до страничных ошибок, кэшей, printf, BitLocker, сетевых API и сложности программного обеспечения — в этом эпизоде ​​они углубляются в системы, которыми большинство людей пользуются каждый день, но редко понимают. Попутно они отвечают на вопросы зрителей о низкоуровневом программировании, операционных системах, безопасности, компромиссах в проектировании и о том, почему программное обеспечение часто ведет себя неожиданным образом. Темы включают: Когда следует писать собственный распределитель памяти Почему malloc — это не магия Освобождение памяти дважды Страничные ошибки против промахов кэша Практическое применение printf BitLocker и безопасность Сетевое программирование с использованием select() Внутреннее устройство операционных систем Уроки проектирования из более ранних эпох вычислительной техники «Shop Talk» основан на вопросах и комментариях зрителей из «Гаража Дэйва» и «Shop Talk». Оставляйте свои вопросы ниже, чтобы получить шанс быть представленными в одном из будущих эпизодов. #ShopTalk #Программирование #РазработкаПрограммногоОбразования #Информатика #Windows 00:00 - Привет, я Дэйв 00:27 - В какой момент вы решаете написать собственный распределитель памяти или менеджер памяти вместо того, чтобы просто использовать malloc и free? 02:42 - Кто такой Malloc и что дает ему власть над памятью? 03:23 - Я всегда удивлялся, почему попытка освободить что-то дважды считается плохой. 04:15 - Использует ли диспетчер задач malloc, чтобы определить, сколько оперативной памяти используется? 05:21 - Почему Microsoft не выпускает версию Windows, которая НЕ обратно совместима? 06:56 - Что вы говорите пользователям, которые в ответ на каждую проблему Windows утверждают, что установка Linux решает проблемы Windows? 07:32 - Как API Windows эффективно управляет версиями ANSI и Unicode одного и того же метода API? 08:32 — Было бы полезно подробнее рассмотреть open/fopen с флагом append. 09:15 — Вы произносите GUID как GWID? А как произносится GUI? GWI вместо GOOY? 09:33 — Значит, вся эта логика встроена в бинарный файл моей программы, моим компилятором? 10:58 — Как этот эксплойт заставляет модуль TPM освободить ключ расшифровки без действительного пароля? 12:30 — Мне неизвестны приложения, где пользовательские данные хранятся в реестре? 13:35 — Как можно доверять системе, если для расшифровки ключа не нужно вводить пароль? 14:17 — Я понимаю, почему длина пути была ограничена в ранних версиях Windows, но почему это ограничение сохраняется до сих пор? 16:46 — Можете объяснить, почему при выходе из программы, написанной на ассемблере, выполнение функции занимает около 3 секунд? 17:48 — Мне всегда нравилась в Windows довольно успешная попытка Microsoft, или, если хотите, стремление, сохранить обратную совместимость. 18:32 — Почему API MS использовали соглашение о вызове Pascal в своё время? 19:24 — Какое место во всём этом занимают дескрипторы? 21:53 — Это демонстрирует, что Bitlocker никогда не может быть безопасным. 22:51 — Какие книги вы бы порекомендовали для изучения побитовой математики? Я помню, что «Hacker’s Delight» была интересной и немного непрактичной. 23:37 — Функция printf делает только то, что ей сказано, и не перепроверяет и не пытается угадать ваши намерения, довольно освобождающе, не правда ли? 24:43 — Была ли printf() первой функцией, реализующей динамическое количество аргументов в вызове функции? 25:26 — Как ни парадоксально, произнесение слова «ниббл» занимает столько же времени, сколько произнесение «полбайта» или «четыре бита», так зачем вообще использовать это слово? 26:07 — Если вы освобождаете память, и она просто возвращается распределителю памяти, почему так опасно трогать адрес, который вы только что освободили? 27:32 — Если malloc — это не магия, то почему это означает «магическое выделение»? 27:49 — Но что выделяет память для распределителя памяти? 28:39 — Могли бы вы рассказать больше о таких технических моментах в сжатом виде? 29:13 — Может кто-нибудь порекомендовать другие книги или веб-сайты, которые помогут укрепить знания о низкоуровневой памяти? 29:55 — Дейв, ты сказал, что развертывание цикла GUID может расширить код до такой степени, что это вызовет ошибку страничного доступа. Ты уверен, что не имел в виду промах кэша инструкций? 30:28 - Какое наиболее важное применение printf в современных ИТ? 31:31 - Реестр вещей? RoT? Серьезно? Я просто умираю со смеху от этого. 31:42 - Автозапуск был УЖАСНОЙ идеей! 33:06 - Дейв, как часто (гипотетически) к тебе обращалось АНБ с просьбой установить бэкдоры? 34:01 - Bitlocker — это то, что есть только у тех, кто знает, что он у них есть, или это есть у всех, независимо от того, знаю я об этом или нет? 34:32 - Как select() узнает, что нужно проснуться, когда что-то падает в ведро? 36:16 - У Бена возникла ошибка 404. Он отключил его? Можешь поделиться им со мной? 36:33 - Думаешь, про...