LINUX.ORG.RU

Вышла BuguRTOS-0.8.3

 , ,


0

2

Вышла очередная версия встраиваемой ОСРВ для микроконтроллеров BuguRTOS.

С новым релизом прекращено использование google-drive для хранения архивов с исходниками и документации проекта, теперь для этих целей будет использоваться GitHub.

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

  • Пользователем dartraiden проведена коррекция орфографии комментариев документации.
  • Добавлены проверки входных параметров функций управления процессами (файл proc.c).
  • Добавлен тип status_t, теперь большинство функций, предназначенных для применения пользователем, возвращает результат выполнения.
  • Тесты для ARM-портов перенесены на libopencm3.
  • Исправлено несколько ошибок в компоненте VSMP (виртуальной SMP-машине, используемой при тестировании) и порте avr/gcc-vsmp.
  • Пересмотрен код тестов.
  • В тесте компонента sync, реализующего базовый примитив блокирующей синхронизации, исправлено несколько глупых ошибок.
  • По мнению автора, код Ядра ОС должен стабилизироваться, начиная с текущего релиза. Разработка будет сфокусирована вокруг написания новых портов, библиотек и исправления ошибок.

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

★★★★★

Проверено: leave ()
Последнее исправление: JB (всего исправлений: 3)

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

Начитался OSDev

не читал, и не осуждаю.

Ну как школьник, честное слово.

А я и есть шольник. Ты не знал?

Неизвестно, кто, когда и как его поменяет.

Вот поэтому ВМЕНЯЕМЫЕ люди примерно с 60-70х годов прошлого века рекомендуют пользоваться ДОКУМЕНТИРОВАННЫМ API, предназначенным для внешнего пользователя.
А использование статиков для «сокрытия» методов, это, в данном случае, - каргокульт, и, как уже было сказано, либо не приведет к «сокрытию», либо приведет к появлению буквально нескольких копий одной и той же функции в разных местах, что скажется на «сопровождаемости» кода.

натыкался на сегфолт

В микроконтроллере ага.
Подавляющее большинство ошибок, выловленных на данный момент, - передача «неверных» данных. Передачи нулевого указателя где-то помимо тестов я еще не разу не видел.
То есть указатель передается, но не туда, и проверить его невозможно в принципе.
Единственный вариант 100% обхода таких ошибок - генерация всех объектов внутри Ядра и предоставление пользователю только их UID плюс ABI для связи пользовательским кодом строго через прерывания.
Но в 8-битных микроконтроллерах нет на это ресурсов, так что как-нибудь в другой раз.

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

Да причем тут «ДОКУМЕНТИРОВАННОЕ API»? Ты не рассматривал вариант, что в ходе использования кто-то решит исправить/дописать твоё творение? И он может использовать любую «недокументированную» функцию. ОН ВНУТРИ ЯДРА! И именно от такого я и предлагаю защищаться.

Иначе - это проект одного и для одного человека. Без амбиций и будущего.

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

Проверка указателей на NULL? Не, не слышал.

Как будто этот ваш люникс их проверяет :)

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

То есть ты предлагаешь защищаться от тех, кто пытается что-то исправить?
Недокументированного там нет, а если есть - это косяк, и его надо исправлять.
А статики не позволят НИЧЕГО защитить, ибо те, кто «внутри», найдут способ использовать все, что угодно, и даже небо, и даже аллаха.

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

Ты идиот? Ты идиот. Какого мужского полового органа ты прицепился к статикам? Ты других слов не видел в моих сообщениях?

Я тебе 10 раз написал: ПРОВЕРЯЙ УКАЗАТЕЛИ НА NULL, прежде чем лазить по ним.

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

Во-первых, проверяются, на верхнем уровне, на нижних - нет, и не будут, ибо будет тормозить. А макаки в ядре нинужны!!1

Во-вторых, проверка именно на нуль ПОЧТИ НИЧЕГО не дает, ибо нуль, - это только одно значение из 2^16 - 2^32, и, как я уже говорил, подавляющее большинство ошибок с указателями связано с НЕНУЛЕВЫМИ значениями.

В условиях статического выделения памяти адреса передаются в виде &some_var_name, можно ошибиться с именем переменной, а передать нулевой указатель - трудно, разве что специально заморачиватся...

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