Битовые маски: о системном программировании простыми словами

Елена Лепилкина и Антон Афанасьев
Битовые маски: о системном программировании простыми словами

Системное программирование и разработка процессоров —  область довольно узкая. Но именно в ней работает множество отличных профессионалов, создавших продукты, которыми программисты пользуются ежедневно. Мы познакомим вас с этими экспертами, расскажем об актуальных задачах, которые решают в отрасли, и покажем варианты развития для системных программистов и тех, кто хочет ими стать.

  1. 6月11日

    BIOS и UEFI / стадии UEFI / драйвера и протоколы

    Гостем 22 выпуска подкаста «Битовые маски» стал Сергей Пушкарёв — руководитель отдела разработки BIOS в YADRO. Сергей начал работу с BIOS и UEFI ещё в университете и может очень много рассказать об этой области. С Еленой Лепилкиной и Антоном Афанасьевым наш герой во всех подробностях разобрал, что происходит на самом низком уровне софта после того, как пользователь нажимает кнопку включения компьютера. Параллельно осветил разные подходы и типичные проблемы разработки в своей сфере, тонкости взаимодействия драйверов, а также разницу между BIOS и UEFI. А напоследок ответил, к чему приводят баги в BIOS и как стараются их избежать, если цена ошибки слишком высока. Видео на YouTube: https://youtu.be/W2Ekb4cYyu4?si=5f48Q_I0EPNPR0oC Видео на Rutube: https://rutube.ru/video/195cd63bef2d862bdbeb39daabc461cb/?r=wd&p=JPSKHjFN3o9HGlK5Ipi72A 0:00 - Тизер 1:12 - Представление Сергея Пушкарева 2:11 - Карьерный путь Сергея 4:50 - История развития BIOS и UEFI и разница между ними 11:28 - Достоинства UEFI 14:14 - Стадии работы UEFI 15:09 - Что работает до UEFI 18:25 - Стадия SEC и режим Cache-Is-RAM 22:58 - Стадия PEI 27:54 - Переход в 64-битный режим 28:42 - PE-файлы,Terse Executable и вопросы производительности 30:46 - DXE стадия и запуск драйверов 33:02 - Протоколы для взаимодействия драйверов 37:58 - Эволюция спецификации: новые архитектуры, Device path для нового железа 40:31 - Загрузка ноутбука через Wi-Fi, разница драйверов Linux и UEFI 42:58 - Работа разработчиков BIOS 44:06 - Баги в UEFI 46:45 - Разработка UEFI под новую платформу 50:38 - Взаимодействие BIOS с BMC, Redfish 53:22 - Разработка драйвера на EDK2 59:55 - Нужен ли ассемблер разработчику BIOS 1:04:13 - Как поменялся процесс загрузки с приходом UEFI 1:05:51 - Взаимодействие BIOS и операционной системы 1:07:20 - Как UEFI работает на ARM 1:11:29 - VFR - DSL-язык для описания меню 1:14:23 - Активное использование Open-Source 1:16:22 - Рынок компаний разработчиков UEFI 1:20:33 - Разработка UEFI для системы, которой нет в железе 1:21:37 - Баги в релизах и процесс тестирования 1:25:59 - Дальнейшее развитие BIOS: ускорение работы, драйверы на Rust 1:35:07 - Заключение #UEFI #BIOS #драйвер #x86

    1 小时 36 分钟
  2. 4月11日

    Разработка симуляторов и эмуляторов. Виды симуляторов. Современные фреймворки

    В 21-м выпуске подкаста «Битовые маски» к Антону Афанасьеву присоединились сразу два гостя из YADRO. Валентин Петров — главный архитектор отдела исследований производительности и моделирования архитектур, ранее разрабатывал суперкомпьютеры в Mellanox и Nvidia. Евгений Бесчастнов — эксперт группы разработки симуляторов и моделей производительности, до этого занимался симуляторами ядер процессоров в Synopsys. Главной темой выпуска стали симуляторы процессорных архитектур. Наши герои обсудили, что представляют собой и чем различаются симуляторы и эмуляторы, связанные с ними проблемы и их решения. Отдельно рассмотрели саму разработку симуляторов, сценарии их использования и, основываясь на своем опыте, вывели три компонента успеха в разработке симуляторов процессорных архитектур. В завершение выпуска Валентин и Евгений оценили, какие качества наиболее важны для специалистов в их сфере, а также где можно научиться разработке симуляторов процессорных архитектур. Видео на YouTube: https://youtu.be/4rgJuQNpINI Видео на Rutube: https://rutube.ru/video/dd89e58319604e6de760ef208304178f/ 00:00:00 — Тизер 00:00:44 — Представление Валентина и Евгения 00:01:45 — Карьерный путь Валентина 00:03:24 — Карьерный путь Евгения 00:07:58 — В чем разница симулятора и эмулятора 00:11:13 — Классификация симуляторов 00:16:41 — Скорость работы симуляторов и способы ее увеличить 00:21:08 — Пользователи симуляторов 00:22:52 — Процесс разработки симулятора и связь с разработкой процессора 00:25:48 — Насколько быстрее разработать симулятор, чем железо 00:33:46 — Какой софт можно запустить на симуляторах и в каких режимах 00:36:54 — Необходимые знания и фреймворки для создания симуляторов 00:44:44 — Баги в симуляторах и их причины 00:54:50 — SystemC 01:00:02 — Самые сложные аспекты для симуляции 01:06:04 — Использование AI в разработке симуляторов 01:09:14 — Что нужно знать для разработки симуляторов 01:14:50 — Заключение

    1 小时 15 分钟
  3. 3月13日

    ЦОС / Телеком: PHY и MAC уровни / Разработка ПО для базовых станций

    В юбилейном, 20-м выпуске подкаста «Битовые маски» мы решили затронуть новую для себя сферу высоких технологий. На этот раз к ведущим присоединился Василий Рамаданов, один из разработчиков базовой станции YADRO. Василий успел поработать во многих компаниях, в том числе «Океанприбор» и Pelengator, Luxoft и Nokia, а сейчас также выступает на конференциях по C++. С Василием мы обсудили профессию инженера в телекоме, разобрали первые два уровня модели OSI, особенности DSP-процессоров, а также специфику тестирования и других рабочих процессов. Наш гость рассказал про использование стандартов индустрии, объяснил, почему код для радиоаппаратуры все еще пишут на C++, а не на других высокоуровневых языках. Не осталась без внимания и преподавательская работа: Василий рассказал о предмете, который преподаёт в СПбГЭТУ «ЛЭТИ», и о том, достаточна ли вообще вузовская программа для будущих телеком-специалистов. Видеоверсия выпуска: https://youtu.be/9es958WfSOE  0:00 - Тизер 0:49 - Представление Василия 2:13 - Работа в аналоговой схемотехнике 5:04 - Переход в цифровую обработку сигналов и работа с радиолокаторами 10:38 - DSP-процессоры и их отличие от CPU 14:22 - Зачем писать высокоэффективный код в телекоме 16:58 - Роль FPGA в программно-аппаратных комплексах 21:08 - Выбор конфигурации архитектором 23:30 - Устройство базовой станции 27:15 - Модель OSI и уровни L1-L3 в базовой станции 33:40 - Задачи радиомодуля 36:20 - Real-time в телекоме 42:03 - Дополнительное ПО для разработки базовой станции 47:09 - Оптимизации алгоритмов для базовых станций 57:35 - Тестирование и профилирование базовой станции 1:08:43 - Критерии качества базовой станции 1:13:21 - Отличия шумов и искажений 1:15:54 - Разработка новой базовой станции с использованием другой аппаратуры 1:21:24 - Высшее образование в сфере телеком 1:29:04 - Анонс конференции: https://sysconf.pro/

    1 小时 30 分钟
  4. 1月31日

    Разработка RTOS Embox / Портирование ОС на RISC-V / Linux для embedded

    В 19 выпуске к ведущим подкаста «Битовые маски» присоединился Антон Бондарев, создатель и активный разработчик Embox — свободной кросс-платформенной RTOS для встроенных систем. Руководствуясь богатым опытом разработки собственной операционной системы, Антон проанализировал использование Linux для встроенных систем и описал сферы, где другие операционные системы (в том числе Embox) выглядят предпочтительнее. Мы обсудили нюансы поддержку разных архитектур в ОС, проблемы портирования драйверов, порассуждали о том, насколько Linux и другие ОС могут быть настоящими real-time ОС и насколько каждая из них POSIX-совместимая. Наконец, обсудили развитие студентов в сфере системного программирования — в том числе на примере самого́ Антона, начинавшего проект Embox еще в аспирантуре матмеха СПбГУ. Видеоверсия выпуска на YouTube: https://youtu.be/1LUFhkkKNnk Видеоверсия выпуска на Rutube: https://rutube.ru/video/d65d6dfb18a095e59d17b0501beb8dbb/ Embox: https://github.com/embox/embox Упомянутые статьи на Хабре: https://habr.com/ru/articles/844288/ и https://habr.com/ru/articles/777302/ ✅Подписывайтесь на Telegram-канал подкаста: https://t.me/+bx50QfUlw4pkZDEy 🔹Станьте частью команды YADRO! https://careers.yadro.com 0:00 - Тизер 0:50 - Представление Антона Бондарева 1:54 - Начало карьеры 4:17 - Причина создания Embox 4:55 - Развитие Linux для embedded и real-time систем 9:38 - Проблемы Linux, которые не позволяют его использовать в некоторых проектах 14:08 - Особенности Embox 22:52 - DSL язык для конфигурирования ОС 29:01 - Разработка драйверов и прикладных программ для Embox 38:55 - Поддержка Tcl в Embox и верификация на ПЛИС 42:24 - Внутреннее устройство Embox и тестирование ОС 49:08 - Конкуренты среди RTOS 51:24 - POSIX-совместимость 56:49 - Embox — ОС реального времени? 58:14 - Поддержка процессорных архитектур в Embox 1:01:55 - Портирование на RISC-V 1:14:22 - Активная работа со студентами 1:25:03 - Заключение

    1 小时 26 分钟
  5. 2024/12/30

    Дизайн процессоров: подходы и особенности индустрии / High-level синтез / Проблемы в образовании

    Гость 18 выпуска подкаста — Юрий Панчул, человек, знакомый большинству людей, занимающихся дизайном процессоров, один из основателей и создателей программы Школы синтеза цифровых схем. В портфолио Юрия — работа в MIPS Technologies, Juniper Networks, а также собственный стартап C Level Design. Сейчас он разрабатывает GPU в Samsung Advanced Computing Lab. В беседе с ведущими Юрий рассказал о своем профессиональном пути начиная с физико-математической школы, об участии во многих интереснейших проектах отрасли. Параллельно мы узнали, как в принципе развивался дизайн процессоров и как он в действительности организован с точки зрения бизнеса. От самой индустрии мы перешли к обучению специалистов: Юрий сравнил подходы в разных странах и дал советы о том, как нужно развиваться студентам, чтобы сразу попасть в штат крупнейших мировых производителей. И наконец — как эти требования учитываются в программе Школы синтеза цифровых схем. Видеоверсия на YouTube: https://youtu.be/ENLD3MnVYqk Видеоверсия на Rutube: https://rutube.ru/video/911232a579f00664771e3df49ad9a16b/ 0:00 - Тизер 0:57 - Представление Юрия Панчула 2:19 - Путь Юрия в отрасль: от разработчика компилятора до дизайнера процессоров 9:23 - Чем проектирование процессоров отличается от разработки ПО 15:22 - История развития подходов к проектированию аппаратуры 24:03 - High-level синтез: идеи, подходы и проблемы 36:01 - Какие подходы к проектированию могут повысить производительность труда дизайнеров в будущем 43:23 - Монополия 3-х компаний, создающих инструменты для проектирования процессоров 52:24 - Развитие open-source инструментов для проектирования 58:35 - Как происходит разработка чипов: процесс, роли и задачи 1:18:22 - Подходы для обеспечения качества процессоров 1:23:10 - Баги с арифметикой чисел с плавающей точкой 1:25:41 - Post-silicon debug 1:30:23 - Проблемы в образовании дизайнеров процессоров 1:35:22 - Перевод книги Д.Харриса и С.Харрис «Цифровая схемотехника и архитектура компьютера» 1:39:02 - Проблемы в вузовских программах по всему миру 1:41:44 - Какие практические задания нужно давать студентам 1:52:00 - Советы от Юрия начинающим дизайнерам 1:58:16 - Заключение

    2 小时
  6. 2024/11/22

    Дизайн языков программирования / Гипервизоры / Будущее системного программирования

    В этом выпуске мы побеседовали с Николаем Иготти — разработчиком с опытом сразу во многих сферах системного программирования. Николай разрабатывал виртуальные машины (Java HotSpot), компиляторы (Kotlin/Native), гипервизоры (VirtualBox). Также в портфолио нашего гостя — браузеры Firefox, Chrome и высокопроизводительные системы хранения. Николай рассказал о преемственности виртуальных машин, различных моделях памяти, дизайне современных языков программирования и их subsetting'e. Порассуждал с ведущими о проблемах существующих компиляторов, о системном программировании и его развитии. Также Николай раскрыл уникальности виртуальной машины V8, преимущества TypeScript в ракурсе метапрограммирования и особенности WASM. Эти и многие другие темы — в 17-м эпизоде подкаста. Бонус — разбор того, что не давало запустить VirtualBox c MacOS на архитектуре x86. Упомянутая конференция по системному программированию: https://sysconf.pro/ Видеоверсия выпуска на YouTube: https://youtu.be/6eW6Jvs7lfU Видеоверсия выпуска на Rutube: https://rutube.ru/video/487aa879a208d021081bc03513e6adf0/ ✅Подписывайтесь на Telegram-канал подкаста: https://t.me/+-VUGCsSM9Do3MTQy 🔹Станьте частью команды YADRO! https://careers.yadro.com 0:00 — Тизер 0:48 — Представление Николая Иготти 1:24 — Карьерный путь Николая 6:16 — HotSpot, V8, Dart VM: преемственность и отличия виртуальных машин 9:23 — Модели памяти и сложности управления памятью для конкурентного кода 12:24 — Связь VM и процессора 19:35 — Нативная компиляция 27:09 — Гипервизоры / работа в VirtualBox 37:21 — Особенности системного программирования и отличия от прикладного 44:15 — Чему нужно учить будущих системных программистов 47:34 — Система типов и спекулятивная типизация в V8 51:51 — Есть ли место R&D в современном системном программировании 1:10:02 — Интероперабельность разных языков 1:15:30 — Проблемы при создании нового языка 1:17:45 — Интересные компиляторные задачи 1:22:26 — Почему создание современных UI-фреймворков - это компиляторная задача 1:25:13 — Проблемы большинства современных компиляторов 1:34:01 — Subsetting языков программирования 1:39:49 — Разница западных и восточных IT-компаний 1:48:51 — Стоит ли преподавать системное ПО на курсах вне ВУЗа 1:53:50 — Заключение 1:55:42 — Анонс конференции sysconf

    1 小时 57 分钟
  7. 2024/10/11

    Архитектура ядра Linux / ЦОС и DSP-процессоры / Linux для RISC-V

    В этом выпуске мы продолжим погружаться в тему системного программирования и познакомим вас с Дмитрием Точанским — инженером с опытом работы более 20 лет в сферах системного и embedded-программирования. Дмитрий пришел в системное программирование из системного администрирования, куда его привела любовь к Linux. А свой первый дистрибутив этой ОС Дмитрий получил еще в начале 2000-х чуть ли не из-под полы. Как устроены системы цифровой обработки сигналов и какие аппаратные и программные решения там используются? Стоит ли использовать Linux в качестве real-time операционной системы? Какие проблемы есть при портировании Linux на RISC-V? Почему в ядре Linux еще не перешли на Rust и неизбежен ли уход с C? Какая архитектура ОС лучше: микроядерная или монолитная? Эти и другие темы в 16-м выпуске обсудят с Дмитрием ведущие подкаста. Бонус для слушателей — рассказ о том, как охотились за пиратскими радиостанциями! 👉 30 октября на YADRO x SPbLUG Linux Kernel Meetup Дмитрий Точанский выступит с докладом о создании собственного модуля Memory Extender. Открыта запись на онлайн- и очное участие, присоединяйтесь: https://engineer.yadro.com/kernel-meetup-1/?utm_source=audiostream&utm_medium=referral&utm_campaign=bitmask_01102024 Видеоверсия выпуска: https://youtu.be/xCIJvf0879A ✅Подписывайтесь на Telegram-канал подкаста: https://t.me/+bx50QfUlw4pkZDEy 🔹Станьте частью команды YADRO! https://careers.yadro.com 0:00 — Тизер 0:40 — Представление Дмитрия Точанского 1:44 — Как Дмитрий пришел в системное программирование 4:00 — Работа в разработке встраиваемых систем и ЦОС 8:14 — DSP-процессора и работа с ними 14:32 — Работа с ПЛИС и "плисоводами" 16:20 — hal и операционные системы на DSP-процессорах 20:44 — Поддержка real-time в RTOS 24:49 — Использование Linux в real-time системах 30:45 — Contiguous Memory Allocator 32:54 — Гибкость Linux 35:11 — Монолитность и модульность ядра Linux 40:50 — Какая архитектура лучше: монолитная или микроядерная? 43:47 — DPDK как решение проблем с производительностью 47:13 — Портирование Linux на RISC-V SoC 48:54 — iommu 52:00 — Современные драйверы для Linux 55:48 — Проблема со стандартами 57:47 — Проблемы с iommu в RISC-V 59:26 — Множество fork-ов Linux 1:06:07 — Уровень поддержки микроархитектурных особенностей в Linux 1:09:15 — Патчи в upstream Linux 1:12:52 — Rust в ядре Linux 1:18:06 — Конкуренция других ОС с Linux 1:22:27 — Не умрет ли Linux 1:24:21 — Возможный сценарий распространения Rust в Linux 1:27:42 — Анонс Linux Kernel Meetup и доклада Дмитрия 1:29:20 — Заключение

    1 小时 30 分钟
  8. 2024/09/06

    Статический анализ кода / Виды анализа и диагностики / Поиск кадров в регионах

    В гостях у «Битовых масок» — Андрей Карпов и Юрий Минаев из PVS-Studio. Андрей более 15 лет занимается статическим анализом кода, изучает качество программного обеспечения и пишет статьи и книги о программировании на С++. Юрий, архитектор C++ анализатора PVS-Studio, глубинно дописывает и переписывает парсер и прочие внутренности C++ анализатора.В новом выпуске инженеры рассказывают о том, с чего начиналась разработка статического анализатора PVS-Studio и как работает команда сегодня. Как устроен статический анализ и в чем главные отличия от линтера и фронтенда компилятора? Почему PVS-Studio не использует LLVM? Для каких диагностик важен Data-Flow анализ и насколько тяжело пока обходиться без CFG? Что нужно знать и уметь, чтобы попасть на работу в PVS-Studio? Что регулирует ГОСТ на статический анализ и правда ли он помогает в построении процессов? Разбираемся в этих вопросах в пятнадцатом выпуске «Битовых масок». Видеоверсия выпуска на YouTube: https://youtu.be/fYWW5HRn9aY ✅Подписывайтесь на Telegram-канал подкаста: https://t.me/+bx50QfUlw4pkZDEy 🔹Станьте частью команды YADRO! https://careers.yadro.com 0:00 — Тизер 1:08 — Представление Андрея и Юрия 2:28 — Знакомство с программированием 6:50 — Поиск кадров в Туле 18:12 — С чего началась работа PVS-Studio 22:08 — Как Юрий пришел в разработку статических анализаторов 23:33 — Конкуренты PVS-Studio 25:15 — Статистический анализ 26:45 — Сравнение с clang-tidy 27:44 — Почему не используется LLVM 29:31 — Любимые и нелюбимые компиляторы 32:02 — Еще причины не использовать LLVM 33:44 — Ошибки в компиляторах 35:10 — Как компиляторы уменьшают количество ошибок 36:36 — Проблема с лямбда-функцией 37:48 — Стоит ли проверять все варианты компиляторов 39:59 — Разница между компилятором и статическим анализатором 41:13 — Этапы статического анализа и дополнительная метаинформация 47:53 — Перенос диагностик из статического анализа в компиляторы 51:06 — Сравнение с другими статическими анализаторами 54:31 — Внутреннее устройство PVS-Studio и самые сложные части 1:05:17 — Что можно улучшить в C++ и почему PVS-Studio написан на C++ 1:08:51 — Диагностики в PVS-Studio 1:13:53 — Межпроцедурный и межмодульный анализы 1:15:22 — Data-Flow анализ 1:24:12 — ГОСТ на статический анализ кода 1:29:59 — Undefined behavior 1:34:52 — Появятся ли новые ошибки при обновлении компилятора 1:36:46 — Статический анализ для встраиваемого ПО 1:40:48 — Работа со сторонними библиотеками 1:45:05 — Диагностики для оптимизации кода 1:51:51 — Диагностики, специфичные для архитектуры 1:52:55 — Удаленные диагностики 1:54:06 — Планы на будущее PVS-Studio 1:55:28 — Заключение

    1 小时 56 分钟

关于

Системное программирование и разработка процессоров —  область довольно узкая. Но именно в ней работает множество отличных профессионалов, создавших продукты, которыми программисты пользуются ежедневно. Мы познакомим вас с этими экспертами, расскажем об актуальных задачах, которые решают в отрасли, и покажем варианты развития для системных программистов и тех, кто хочет ими стать.

你可能还喜欢

若要收听包含儿童不宜内容的单集,请登录。

关注此节目的最新内容

登录或注册,以关注节目、存储单集,并获取最新更新。

选择国家或地区

非洲、中东和印度

亚太地区

欧洲

拉丁美洲和加勒比海地区

美国和加拿大