Операционные системы / Linux / Zephyr / HAL и BSP / ARC-V
В гостях у «Битовых масок» - Алексей Бродкин из Synopsys. Он работает в компании уже 16 лет и сейчас руководит инженерами, которые разрабатывают Linux и операционные системы реального времени. Поговорим с гостем об особенностях ОС и их поддержки для разных процессоров и архитектур. А еще обсудим на примере ARC-V, зачем большому вендору вкладываться в создание процессорного семейства, которое будет использовать набор команд открытой архитектуры RISC-V.
Почему вероятность появления новой большой и полноценной операционной системы очень мала? Что представляет из себя уровень аппаратных абстракций в ОС? Можно ли начинать разработку операционной системы до появления микросхемы в кремнии? Как взаимосвязаны прерывания, их обработчики и планировщик задач? Ответы на эти и другие вопросы - в одиннадцатом эпизоде «Битовых масок».
Полезные ссылки:
• MicroPython: github.com/micropython/microp...
• Ticket spinloks в RTOS NuttX: github.com/apache/nuttx/pull/...
• Ticket spinloks в Zephyr RTOS: github.com/zephyrproject-rtos...
• Выпуск «Битовых масок» с Александром Разинковым: • Сетевые протоколы / Ге...
• Dashboard, который показывает изменение размера референсного приложения в Zephyr: stats.zephyrproject.org/testi...
• "Deep trace debug" от Synopsys: www.synopsys.com/company/reso..., www.synopsys.com/news/pubs/sn... и dvcon-proceedings.org/wp-cont...
• Статья “The Night Watch” - оригинал на английском: www.usenix.org/system/files/1...
The Night Watch, перевод №1: erra.livejournal.com/358792.html
The Night Watch, перевод №2: habr.com/ru/articles/203276/
✅ Подписывайтесь на Telegram-канал подкаста: t.me/+bx50QfUlw4pkZDEy
🎧 Слушайте «Битовые маски» на других платформах:
Яндекс.Музыка: music.yandex.com/album/26508178
Apple Podcasts: podcasts.apple.com/ru/podcast...
Все площадки: engineer.yadro.com/podcasts/c...
00:00:00 - Тизер
00:01:31 - Вступление
00:01:50 - Представление Алексея
00:02:41 - Начало карьеры и текущая деятельность Алексея
00:07:00 - Микроконтроллер vs. микропроцессор
00:10:43 - ОС, над которыми работает команда Алексея
00:11:45 - Почему может появиться/не появиться еще одна ОС/RTOS
00:16:13 - Что такое ОС и зачем она нужна
00:20:41 - Создание драйверов
00:27:23 - Микроядерные ОС
00:32:40 - Уровень аппаратных абстракций: HAL и BSP
00:40:29 - разница между полномасштабной ОС и RTOS
00:47:14 - Миграция фич из полномасштабных ОС в RTOS
00:57:41 - POSIX как механизм абстракции
01:01:16 - Дорастет ли Zephyr до полномасштабной ОС
01:05:59 - Управление проектом Zephyr RTOS
01:08:41 - Поддержка новой архитектуры в Linux
01:18:18 - Linux в гетерогенных системах
01:22:44 - Использование компонентов других производителей крупными производителями
01:26:11 - Обработка прерываний и планировщик задач в ОС
01:36:50 - Семейство ARC-V на базе RISC-V от Synopsys
01:50:03 - Заключение
01:50:41 - Благодарности
#linux #rtos #riscv #zephyr
ребята, подкасты просто огонь. но выставляйте уровень звука с микрофонов, пожалуйста. или на монтаже. очень тихо
Добрый день! Спасибо за обратную связь, рады, что нравится подкаст. Послушали на разных устройствах - со звуком всё в порядке, всех спикеров слышно хорошо даже не на полной громкости динамиков. Возможно, стоит послушать подкаст с другого устройства и выставить громкость на нужный уровень
@@ultimate_engineer Проблема звука есть, тихо на максимальной громкости. При этом другие ролики с ютуба звучат нормально на значительно меньшей громкости, дело не в устройстве.
Да, действительно другие ролики несколько громче, постараемся разобраться, что можно сделать в следующих выпусках
@@eklepilkina я конечно понимаю, что такой жанр как подкаст лучше недогрузить по звуку, чем перегрузить. просто очень ютубная реклама, которая перегружена априоре, по ушам бьет, когда влазит... я без претензий, просто ваш подкаст очень нравится, ну и хочется помочь вам сделать ваш продукт качественнее. Добра вам :)
@@MrCter Спасибо большое за обратную связь, это полезно :)
Было интересно, познавательно и увлекательно. Докладчик, большой молодец, ведущие тоже.
отличная встреча. спасибо!
Спасибо вам! Рады, что понравился выпуск!
Совершенно случайно наткнулся. Очень качественно и доступным языком о возможностях и нюансиках-проблемах. Отличный подкаст, спасибо.
Спасибо большое! Стараемся!
Спасибо большое за информацию. Интересно. Вызывает интерес к профессии.
Спасибо вам! Очень радостно читать такие комментарии!
DSP-ядро для датчика освещения... М-м-м-м! Сразу чувствуется специалист. *Ох, и объясняльщик, конечно! >Периферия на кристалле -- это физическое устройство, собранное из логических элементов, транзисторов и т.д. и подключенное физически к центральному процессору либо как набор специальных регистров, либо как набор специальных адресов памяти. Т.е. когда мы пишем в эти специальные регистры или адреса, мы физически меняем уровни напряжений на каких-то входах и выходах этого внешнего для процессора устройства. Также периферия может быть внешней по отношению к кристаллу, как у "больших" процессоров. Тогда ей выделяется какой-то диапазон адресов памяти, а в ней самой должен быть декодер адреса, который позволяет ей понимать, когда происходит обращение к ней, а когда не к ней. Так, например, подключаются внешние микросхемы оперативной памяти, и доступ к ней оказывается принципиально совершенно таким же, как ко внутренней: просто используем нужные адреса и всё. >Когда мы в коде оперируем непосредственно регистрами или адресами памяти для доступа к какому-то оборудованию/периферии -- это no-HAL, т.е. без абстракции. Порой этот уровень бывает нужен либо если HAL не предоставлен (хотя в этом случае пишется свой), либо если нужен какой-то специфический режим работы оборудования, который предоставленный производителем HAL не реализует. >Когда у нас есть какие-то более или менее человекочитаемые абстракции (функции, структуры), которыми "обёрнут" низкоуровневый доступ, это и есть HAL. Обычно производитель условного чипа предоставляет некий комплект исходного кода и заголовочных файлов, который позволяет задействовать функционал оборудования в виде логических этапов: peripheryInit(), peripherySetConfig(), peripheryRead(), peripheryWrite() и так далее. Как правило, HAL предоставляемый производителем, позволяет заменять чипы одного семейства, не изменяя или минимально изменяя код. >BSP, как правило, строится уже поверх HAL и реализует функционал оборудования, которое находится за пределами чипа -- на плате. Т.е. мы для, например, включения красного светодиода, припаянного на плате, вместо того, чтобы в коде писать chip_pin_set_high(pin_12) /*red LED here*/ будем писать red_led(ON), например. Уровни (слои) абстракции могут отсутствовать. Например, BSP может обращаться к оборудованию минуя HAL, но это, естественно, плохо сказывается на переносимости. Также никто не запрещает вообще не использовать слои абстракции и писать что-то вроде ((volatile uint32_t*)(0x98677652ul)) = 0; Но тогда лучше сразу запастись галоперидолом.
Микроконтроллер отличается от универсального микропроцессора тем, что он всегда имеет набор универсальных дискретных портов ввода-вывода, а часто ещё и аналоговых, включающих ЦАП-АЦП. Также у микроконтроллеров могут быть встроенные таймеры и другие периферийные устройства, которые необходимы для организации управления различными устройствами, начиная от бытовой техники, типа термопода или стиральной машины, и кончая достаточно сложной промышленной автоматикой. Первые однокристальные микроконтроллеры фирмы Intel, выпущенные в 1976 году, основывались на гарвардской архитектуре и имели всего 64 байта встроенного ОЗУ, а также 1 Кб или 2 Кб встроенного ПЗУ. Память можно было расширить до 256 байт (адресная шина 8 бит), а максимальный размер ПЗУ - 4 Кб. Но даже с такими скромными ресурсами можно было создавать множество полезных устройств. Современные микроконтроллеры уже намного круче, могут содержать на борту уже мегабайты памяти и ОЗУ, иметь разрядность 32 или даже 64 бита, но главное, что у них всегда будет набор универсальных дискретных и аналоговых портов ввода-вывода, через которые они могут получать сигналы с различных датчиков или кнопок, а также управлять внешними исполнительными устройствами, двигателями, контакторами, соленоидами и т.п. Универсальный микропроцессор тоже может всё это делать, но только с помощью дополнительных микросхем, обеспечивающих ему ввод-вывод дискретных и аналоговых сигналов.
В принципе... в принципе... я с автором-докладчиком согласен (хотя я и отпетый виндоид), но... человек не понимает разницу между битиками-электрончиками и сигналами. Прискорбно
Ну и в уровнях абстракции плавает, так скажем.
а когда знакомые слова начнутся?........и еще вопрос.....почему мне это ютуб выдал в рекомендациях?
возможно, Ютуб знает о вас больше, чем вы сами :))
ОСРВ нужны в РВСН в разных странах!!!!!!!