LINUX.ORG.RU

Вышла BuguRTOS-2.0.0!

 , ,


1

2

31 августа вышла очередная мажорная версия BuguRTOS 2.0.0.

BuguRTOS — встраиваемая ОСРВ, ориентированная на применение в программах микроконтроллеров, которая может работать в режимах мягкого и жесткого реального времени.

Основные особенности BuguRTOS:

  • отказ от управления памятью в ядре;
  • пониженные требования к размерам стеков процессов;
  • полностью вытесняемое ядро (код ядра выполняется в отдельном потоке и может быть вытеснен обработчиком прерываний практически в любой момент, за исключением небольших участков);
  • виртуализация прерываний (виртуальные прерывания в BuguRTOS, - это аналог файберов в Zephyr Project);
  • настраиваемый интерфейс системных вызовов (пользователь может легко отключить ненужные системные вызовы, добавить свои или полностью переписать всю таблицу системных вызовов);
  • отсутствие в коде ядра привычных примитивов синхронизации типа семафоров и мьютексов, вместо них есть базовый примитив, на основе которого можно реализовать широкий спектр блокирующих примитивов синхронизации.

В новой версии приозошли следующие изменения:

  • переработан диспетчер системных вызовов (использован паттерн X-macro);
  • переработан API ядра (функции заменены на макросы, для передачи нескольких аргументов теперь используется переменное число параметров, что в сочетании с новым диспетчером системных прерываний позволило добиться гибкости настроек таблицы системных вызовов);
  • обновлена библиотека native API и руковоство по началу работы с BuguRTOS;
  • благодаря Филиппу Клаусу Краузе (разработчику SDCC) добавлен порт STM8/SDCC, в тестах используется свободная библиотека libstm8;
  • код проекта проверен статическим анализатором adlint;
  • исправлено две ошибки.

Фактически BuguRTOS 2.0.x представляет собой платформу для прототипирования ОСРВ, которую можно использовать для обучения низкоуровневому системному программированию.

Планируется расширение функциональности BuguRTOS за счет реализации новых библиотек API, а также перенос на новые архитектуры.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: DeadEye (всего исправлений: 6)

Посмотрел на дату. Все нормально, новость своевременная!

YogSagot ★★
()

Приятно видеть, что проект развивается и стабильно катится вперёд.

melkor217 ★★★★★
()

Ох, суровая ОС! Поставил себе на десктоп - брат жив... вроде.

Gonzo ★★★★★
()

Накануне Дня знаний вышла очередная мажорная версия BuguRTOS-2.0.0.

shkolnick-kun

Символично. Кстати, когда мы увидим первый телефон или десктоп на сей прекрасной ОС-и?

densss ★★★★
()

Планируется расширение функционала BuguRTOS за счет реализаций новых библиотек API, а так же перенос на новые архитектуры.

Ты аккуратнее с этим, а то тут у каждого второго бугурт только от слова «функционал».

CYB3R ★★★★★
()
Ответ на: комментарий от Gonzo

Посмотрел по диагонали, <anon@legion> - очень говорящее имя :) Легион безымянных героев и два контрибьютора... Ну молодцы, чо!

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от densss

Символично. Кстати, когда мы увидим первый телефон или десктоп на сей прекрасной ОС-и?

BuguRTOS это встраиваемая ОСРВ, ориентированная на применение в программах микроконтроллеров, которая может работать в режимах мягкого и жесткого реального времени.

Никогда не юзал, но видимо, эта ОСь не для Десктопа.

anonymous
()

Какой-нибудь продакшен на этом крутится?

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Оно работает на Arduino с 2010 года тащемта.

anonymous
()

Удачное название, разработчики ваще ребята.

Valeg ★★★
()
Ответ на: комментарий от mos

Накануне Дня знаний

По-моему, в данном конкретном случае, это было написано так, к слову. Ты не умеешь отличать «тонкий намёк» и «толстый намёк» от «так себе» сказанного слова.

anonymous
()
Ответ на: комментарий от gns

два контрибьютора

при чем по графику активности видно, что в основном все делает автор. как-то так.

Gonzo ★★★★★
()
Ответ на: комментарий от anonymous

Гм, мне кажется, что юное дарование таким прожектом может принести пользу российскому IT

bookman900 ★★★★★
()
Ответ на: комментарий от CYB3R

Ты аккуратнее с этим, а то тут у каждого второго бугурт только от слова «функционал».

Так он сюда бугурт фармить и приходит же.

ya-betmen ★★★★★
()

Автор, как всегда, на высоте и по форме, и по содержанию. Так держать!

anonymous
()
Ответ на: комментарий от CYB3R

Тут скорее у людей бугурт от слова бугурт, такая вот рекурсия. Автору респекты и успехов, все выдержано в должном стиле.

ncrmnt ★★★★★
()

Ну замах на рубль, конечно. Но, как я понял, шоб тот бугурт поднять, на таргете уже нужно иметь какую-то ОСь. Иначе, как сие понимать?

#include<native.h> //Native API include
    /*Project includes, defines, declarations etc.*/

    /*
    Some other code here.
    */
    int main(void)
    {
        init_bugurt();
        /*Initialize everything*/
        start_bugurt();
        /*
        Don't write anything here, as control never reaches this place.
        */
    }
gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 2)
Ответ на: комментарий от gns

Ну замах на рубль, конечно. Но, как я понял, шоб тот бугурт поднять, на таргете уже нужно иметь какую-то ОСь. Иначе, как сие понимать?

мне кажется в линуксе чет-на подобии, запускается груб (или иной загрузчик) инициализирует все необходимо для запуска процесса main и пускает main или как-то так

bonta ★★★★★
()
Ответ на: комментарий от rsync

линукс же не реального времени ос. наверное негарантированным временем отклика, там где это критично. А вот где это критично я хз) мне кажется шо ракеты выпущенные по игил, что управления ядерными реакциями - везде можно обойтись ос не реального времени, хз, надо когда-то ознакомиться с темой когда будет время, интересно так то. Если кто знает где реально прям оправданы ос реального времени - напишите пожалуйста

bonta ★★★★★
()
Ответ на: комментарий от gns

Такие вещи работают на голом железе. A Native API - это разные сервисные библиотеки от вендора для повышения удобства работы с таким железом, чтобы, там, номера регистров каждый раз руками не указывать и тому подобное. Автор-«школьник» это знает, в отличие от тебя, ламера трехзвездного.

anonymous
()
Ответ на: комментарий от bonta

лор подтверждает репутацию сборища идиотов

Представь, например, турбину, делающую насколько тысяч оборотов в минуту. Или да, ту же ракету, летящую со скоростью несколько сотен км/ч. И ответь себе на вопрос - каковы могут быть последствия в случае задержки реакции от системы управления на несколько миллисекунд.

anonymous
()
Ответ на: комментарий от anonymous

В данном случае Native API, - это библиотека, реализующая семафоры, мьютексы, условные переменные и блокирующий IPC поверх дефолтной таблицы системных вызовов ядра.

shkolnick-kun ★★★★★
() автор топика
Ответ на: комментарий от bonta

bonta> мне кажется шо ракеты выпущенные по игил, что управления ядерными реакциями - везде можно обойтись ос не реального времени

Давай посадим тебя на автомобиль с электронной педалью газа, которая управляет двигателем через Windows 10.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

Дык а че, нормально будет, я так в юности на девятке ездил, когда в карбюраторе порвалась мембрана ускорительного насоса и мотор после резкого вдавливания педали конкретно задумывался на секунду-другую.

anonymous
()
Ответ на: комментарий от anonymous

Так это тоже рыл тайм :) задержка-то прогнозируемая. В случае Win/Lin да и всего прочего общего назначения - ты давишь педаль в пол и гадаешь: оно сразу рванёт или через 1-3-100 секунд.

Ну а так ещё в копилку, более мирное и безопасное: процессинг звука в реальном времени с минимальными (идеально - нулевыми) задержками.

h4tr3d ★★★★★
()
Ответ на: лор подтверждает репутацию сборища идиотов от anonymous

«Представь, например, турбину, делающую насколько тысяч оборотов в минуту. Или да, ту же ракету, летящую со скоростью несколько сотен км/ч. И ответь себе на вопрос - каковы могут быть последствия в случае задержки реакции от системы управления на несколько миллисекунд.»

Представь, какие будут последствия, если на ракете будет стоять ОС, написанная двумя школьниками в нерабочее время?

anonymous
()
Ответ на: комментарий от h4tr3d

Даже не реалтайм, а теплый ламповый аналоговый закон Бернулли.

anonymous
()
Ответ на: комментарий от h4tr3d

«Катали мы ваше солнышко...»

Ну тогда компилятор должен превращать этот main в точку входа в процессор. baremetal разный бывает. Я тоже когда-то правил первые три байта операционной системы :)

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

компилятор должен превращать этот main в точку входа в процессор

ВНЕЗАПНО, он это умеет начиная с первого возникновения этого самого компилятора под микроконтроллеры.

anonymous
()
Ответ на: комментарий от gns

Ты походу кроме писюков и ring 3 на них под управлением жирных многозадачных ОС вообще ничего не видел. Все компиляторы сей и плюсов что под DSP, что под микроконтроллеры знают, что main нужно при линковке в entrypoint таргет-камня пихать.

anonymous
()
Ответ на: комментарий от anonymous

Представь, какие будут последствия, если на ракете будет стоять ОС, написанная двумя школьниками в нерабочее время?

Таки фобос-грунт полетел бы, не?

Deleted
()
Ответ на: комментарий от gns

компилятор должен превращать этот main в точку входа в процессор

Компилятор не должен превращать. Линкер должен превращять.

Я тоже когда-то правил первые три байта операционной системы

Оно и видно, что ты не в курсе, что кроме утилитки gcc в gnu toolchain еще зачем-то есть утилита ld и конфиги для нее, ведь мейкфайлы ты либо вообще сам не писал, копипастя готовые, либо и вовсе cmake использовал. Прикладник с гуманитарием головного мозга такой прикладник.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.