16+
About the podcast
Системное программирование и разработка процессоров – область довольно узкая. Но именно в ней работает множество отличных профессионалов, создавших продукты, которыми программисты пользуются ежедневно. Мы познакомим вас с этими экспертами, расскажем об актуальных задачах, которые решают в отрасли, и покажем варианты развития для системных программистов и тех, кто хочет ими стать.
Genres and tags
В юбилейном, 25 выпуске «Битовых масок» гостем стал Михаил Коробков — основатель сообщества FPGA-Systems и одноименной конференции, издатель FPGA-Systems Magazine. Михаил более 10 лет занимается FPGA и программируемой логикой, работает в отделе прототипирования YADRO.
Михаил провел для ведущих подкаста Елены Лепилкиной и Антона Афанасьева обзорную экскурсию в мир FPGA — от начала отрасли до актуальных проблем, включая особенности российского рынка. Помимо аппаратной части, в подкасте осветили и языки ПЛИС-разработки (спойлер: тема оказалась весьма острой). Наконец, Михаил поделился «теплыми ламповыми» воспоминаниями о том, как зарождалось сообщество FPGA-Systems, как появилась одноименная конференция и журнал.
Героем 24 выпуска «Битовых масок» стал Артём Кашканов из группы мониторинга производительности ПО YADRO, ранее — специалист по аппаратной трассировке в Intel.
Артём — создатель популярного YouTube-канала, где он показывает, как создает новые необычные вычислительные устройства и возвращает к жизни старые, основанные на устаревших элементных базах. Также Артём пишет о своем увлечении на Хабре и регулярно участвует с восстановленной техникой в тематических мероприятиях.
С Еленой Лепилкиной и Антоном Афанасьевым герой обсудил свое увлечение вычислительной техникой, рассказал о пути к нему и об интересных устройствах, над которыми работает сейчас. Кроме того, Артём подробно остановился на аппаратной и других видах трассировки — применительно как к современным, так и к ретрокомпьютерам.
YouTube-канал Артёма: https://youtube.com/c/ArtemKashkanov/
Телеграм-канал BrainfuckPC: https://t.me/brainfuckpc
Статьи Артёма на Хабре: https://habr.com/ru/users/radiolok/articles/
Мы готовим новый сезон «Битовых масок» и хотим учесть вашу обратную связь при планировании выпусков. Пожалуйста, пройдите опрос(https://surveys.yadro.com/s/cmfe1uvat04a6so01l9leghnv/?utm_source=surveys&utm_medium=referral&utm_campaign=bitmask_podcast&utm_content=opros), чтобы подкаст стал еще более интересным и полезным для вас.
В 23 выпуске «Битовых масок» к Антону Афанасьеву и Елене Лепилкиной присоединилась Алина Галичина из группы модульной верификации YADRO. Алина получила высшее образование на кафедре волоконно-оптических систем связи и перешла в разработку и верификацию цифровых схем. Кроме того, у героини есть несколько патентов, связанных с реализацией алгоритмов цифровой обработки сигнала.
С Алиной ведущие обсудили множество вопросов, связанных с разными типами верификации, погрузились в трассировку печатных плат и порассуждали об аппаратной разработке в принципе. Как обещали, прилагаем ссылки на публикации и патенты Алины.
Видео на YouTube: https://youtu.be/1Syc3UQ4BWg
Видео на Rutube: https://rutube.ru/video/457793032a3949795ad34d07204f41bc/
Статья https://habr.com/ru/articles/588703/
Тайм-коды:
00:05 - Тизер
01:05 - Представление Алины Галичиной
01:54 - Путь Алины в RTL-разработку. Источники знаний по RTL и верификации
07:43 - Связь цифровой обработки сигналов и FPGA
12:05 - В чем разница написания под FPGA и под ASIC
17:01 - Симуляторы для FPGA: зачем они нужны, какие ограничения имеют
22:54 - Трассировка печатных плат и цена ошибки на этом этапе
29:14 - Искусственный интеллект в САПР
33:23 - Какие существуют виды верификации
38:18 - Инструменты для функциональной и формальной верификации
42:01 - На каких этапах лучше использовать функциональную, а на каких — формальную верификацию
47:39 - Полное функциональной покрытие: насколько оно реализуемо
52:54 - UVM-методология и новые фреймворки для верификации
56:31 - Нужна ли функциональная верификация для маленьких блоков
1:00:36 - Влияние архитектуры процессора на его верификацию
1:05:25 - Случайные тесты в верификации
1:06:48 - Специфика верификации Wi-Fi-чипов
1:11:21 - Дополнительные задачи в процессе верификации
1:13:17 - Разница в верификации аналоговых и аналогово-цифровых схем
1:16:03 - Дороговизна верификации аналогово-цифровых схем
1:17:50 - Автоматизация для верификаторов
1:25:05 - Чем должна заканчиваться работа верификатора
1:29:27 - Методологии автоматизации в верификации
1:33:38 - Как упростить анализ верификационных тестов в RTL
1:36:58 - Консервативность и мотивация в разработке «железа» по сравнению с разработкой ПО
1:40:01 - Оптимизация рабочих процессов в верификации
1:47:25 - Создание тестового окружения с нуля
1:49:49 - Проблемы при автоматизации верификационных тестов
1:52:25 - Open-source в RTL и верификации
1:54:38 - Заключение
#RTL #FPGA #верификация
Гостем 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
В 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 — Заключение
В юбилейном, 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/
В 19 выпуске к ведущим подкаста «Битовые маски» присоединился Антон Бондарев, создатель и активный разработчик Embox — свободной кросс-платформенной RTOS для встроенных систем.
Руководствуясь богатым опытом разработки собственной операционной системы, Антон проанализировал использование Linux для встроенных систем и описал сферы, где другие операционные системы (в том числе Embox) выглядят предпочтительнее. Мы обсудили нюансы поддержку разных архитектур в ОС, проблемы портирования драйверов, порассуждали о том, насколько Linux и другие ОС могут быть настоящими real-time ОС и насколько каждая из них POSIX-совместимая. Наконец, обсудили развитие студентов в сфере системного программирования — в том числе на примере самого́ Антона, начинавшего проект Embox еще в аспирантуре матмеха СПбГУ.
Видеоверсия выпуска на YouTube: https://youtu.be/1LUFhkkKNnk
Видеоверсия выпуска на Rutube: https://rutube.ru/video/d65d6dfb18a095e59d17b0501beb8dbb/
Подписывайтесь на 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 - Заключение
Гость 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 - Заключение
В этом выпуске мы побеседовали с Николаем Иготти — разработчиком с опытом сразу во многих сферах системного программирования. Николай разрабатывал виртуальные машины (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
В этом выпуске мы продолжим погружаться в тему системного программирования и познакомим вас с Дмитрием Точанским — инженером с опытом работы более 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 — Заключение
