LINUX.ORG.RU

Вышла BuguRTOS-1.0.0!

 , ,


1

3

Вышла очередная версия встраиваемой операционной системы реального времени BuguRTOS-1.0.0.

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

Характерными особенностями BuguRTOS являются:

  • Отказ от управления памятью в ядре - рекомендуется статическое выделение памяти.
  • Все системные вызовы имеют сложность O(1).
  • Минимальные требования к размеру стеков процессов (задач).

В данный момент поддерживаются ветки 0.6.x и 1.0.x, поддержка ветки 0.7.х прекращена.

С выходом первой версии проект переходит на семантическое версионирование. BuguRTOS ветки 1.0.х имеет следующие особенности:

  • Обработка прерываний в два этапа: обработчик прерывания выполняет минимальную необходимую обработку, после чего генерирует виртуальное прерывание, которое делает все остальное.
  • Отдельный поток ядра, который обрабатывает виртуальные прерывания и системные вызовы, реализует функции планировщика и работу на холостом ходу.
  • Отказ от традиционных блокирующих примитивов синхронизации в ядре, вместо них есть один обобщенный примитив (bgrt_sync_t), который можно адаптировать под различные задачи.
  • Реализация традиционных примитивов синхронизации в библиотеках, фактически BuguRTOS-1.0.х представляет собой платформу для прототипирования/моделирования API различных ОСРВ.

В данный момент написана библиотека native, реализующая:

  • Мьютексы.
  • Семафоры.
  • Условные переменные.
  • Сигналы (что-то вроде событий).
  • Блокирующий IPC.

В BuguRTOS-1.0.0 произошли следующие изменения:

  • Удален процесс холостого хода и всё, что с ним связано(см. выше).
  • Добавлен слой виртуализации прерываний (см. выше).
  • В дескриптор процесса добавлено поле udata, позволяющее сделать аналог UTCB в L4.
  • Переработан код планировщика.
  • Переработан код диспетчера системных вызовов.
  • Переработан код «циклических» системных вызовов с целью снизить опасность DoS, и количество переключений контекста, подробности.
  • Переработан низкоуровневый код.

В дальнейшем планируется развивать BuguRTOS путем добавления портов на новые архитектуры, новых API, исправления возможных ошибок в коде ядра.

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

★★★★

Проверено: leave ()

Ответ на: комментарий от bga_

Только те, которые владеют английским на уровне 1 класса начальной школы. Не обобщайте.

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

Судя по коду там лажа, т.к. раньше было так:

https://github.com/shkolnick-kun/bugurtos/blob/0.6.x/kernel/syscall.c

Надо исправить bgrt_code_t func; на void (*func)(void);

Хотя так, как есть, тоже будет работать...

А ещё не всегда sizeof(bgrt_code_t) == sizeof(void *).

В общем лучше бы этот код вообще убрать...

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

Местами код действительно странноват, но если это действительно школьник написал, то в принципе довольно неплохо.

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

Уупс, пока править не буду, ибо это тянет на мажорный релиз (ломает обратную совместимость же!), а делать его из-за такой ерунды - глупо.

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

Почему ты думаешь, что это просто фантазии, и что они эротические?

Пока фантазии Маркса, Столмана и Оруэла сбываются, и я не сказал бы, что мне это нравится...

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

Чтобы придать изюминку эротическим фантазиям об ОБЧР :)

Почему ты думаешь, что это просто фантазии, и что они эротические?

Сужу о других по себе :D

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

Хорошая у тебя фантазия! Я хочу такой же шампунь, как у нее, такую же!

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