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

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

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

  1. 11 JUIN

    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 h 36 min
  2. 11 AVR.

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

    В 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 h 15 min
  3. 13 MARS

    ЦОС / Телеком: 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 h 30 min
  4. 31 JANV.

    Разработка 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 h 26 min
  5. 30/12/2024

    Дизайн процессоров: подходы и особенности индустрии / 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 h
  6. 22/11/2024

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

    В этом выпуске мы побеседовали с Николаем Иготти — разработчиком с опытом сразу во многих сферах системного программирования. Николай разрабатывал виртуальные машины (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 h 57 min
  7. 11/10/2024

    Архитектура ядра 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 h 30 min
  8. 06/09/2024

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

    В гостях у «Битовых масок» — Андрей Карпов и Юрий Минаев из 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 h 56 min

À propos

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

Vous aimeriez peut‑être aussi

Pour écouter des épisodes au contenu explicite, connectez‑vous.

Recevez les dernières actualités sur cette émission

Connectez‑vous ou inscrivez‑vous pour suivre des émissions, enregistrer des épisodes et recevoir les dernières actualités.

Choisissez un pays ou une région

Afrique, Moyen‑Orient et Inde

Asie‑Pacifique

Europe

Amérique latine et Caraïbes

États‑Unis et Canada