The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"wolfIP и passt - легковесные стеки TCP/IP, работающие без динамического выделения памяти"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"wolfIP и passt - легковесные стеки TCP/IP, работающие без динамического выделения памяти"  +/
Сообщение от opennews (??), 14-Мрт-26, 12:54 
Разработчики криптографической библиотеки wolfSSL развивают TCP/IP стек wolfIP, оптимизированный для использования на встраиваемых устройствах, имеющих ограниченные ресурсы, а также для систем, работающих в режиме реального времени, и решений, требующих повышенной надёжности (Safety-Critical). Для предсказуемого потребления ресурсов в wolfIP не используется динамическое выделение памяти  - все буферы и таблицы сокетов имеют фиксированный размер и настраиваются на этапе компиляции. Код проекта написан на языке Си и распространяется под лицензией GPLv3...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=64989

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +9 +/
Сообщение от Аноним (1), 14-Мрт-26, 12:54 
Странно, почему весь критический код не пишется подобным образом. :)
Ответить | Правка | Наверх | Cообщить модератору

8. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –3 +/
Сообщение от шолб (?), 14-Мрт-26, 13:40 
Тогда не получится делать важное табло с надутыми щоками, которое очень нужно для залезания на табурет и декламирования "посмотрите какую сложную уробору я сделяль, как мощны мои лапищи." Современное программирование с технической стороны не про практичность, а про самоутверждение. А если и условия потребуют практичности, то она будет уровня "от сохи". Зато с апломбом.
Ответить | Правка | Наверх | Cообщить модератору

29. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от Аноним (29), 14-Мрт-26, 17:43 
> нужно для залезания на табурет и декламирования "посмотрите какую сложную уробору я сделяль, как мощны мои лапищи." Современное программирование с технической стороны не про практичность, а про самоутверждение

Какое еще самоутверждение, лол? Ты правда думаешь, что современный софт состоит из хэллоуворлдов, написанных сумрачными гениями в одно лицо? Нет, это удел сугубо опенсорсия, причем мизерной его части.

Ответить | Правка | Наверх | Cообщить модератору

64. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –1 +/
Сообщение от шолб (?), 14-Мрт-26, 23:49 
Ты этот современный софт глазами видел, да? Да, именно что уровень хеллоуворлдов. И таки да, либо сумрачным (чайще всего ещё и упоротым) гением, либо толпой мартышек с сдвг. Нету у меня для вас других программистов, т-щ комментатор. И заказчиков тоже нету.
Ответить | Правка | Наверх | Cообщить модератору

66. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (66), 15-Мрт-26, 00:44 
" - Дядя, ты что - Арлекин-Петрушка?". В такой манере, как в сабже, на мой взгляд, значительно сложнее делать что-то нетривиальное - всё управление структурами внутри статически выделенной памяти, расчёт/запоминание их диапазонов и смещений и прочее ты ложишь на свои плечи, вместо, например, тупого динамического выделения нового куска памяти под очередной новый массив/структуру. Разве что реализация какого-нибудь кольцевого буфера там будет (почти) одинаковая. И в обоих случаях у тебя одинаковый шанс посчитать смещение неправильно и вылезти за пределы буфера.
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

16. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +7 +/
Сообщение от Аноним (16), 14-Мрт-26, 14:48 
Вопрос из серии "почему в Солярис не ставят кресла с катапультой". Потому что это дорого. Раньше, когда информатизация была на начальном уровне, мир готов был мириться с инцидентами ИБ, потому что "писать более надёжно" было дороже, чем принять риски ИБ. Сейчас не так, всеобщая информатизация ведёт к потере гигатонн бабла из-за взломов и атак. Поэтому мир и начал двигаться в сторону секурити, начал закачивать туда бабло. Потому что это стало дешевле, чем терять деньги на атаках.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

18. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от Jh (?), 14-Мрт-26, 14:56 
не факт что так лучше для критического софта. Переполнение стека никто не отменял)
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

65. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +2 +/
Сообщение от senaemail (ok), 15-Мрт-26, 00:15 
Так смайлик в конце об этом и намекает :)

Задавать размеры буферов на этапе компиляции это очень странная идея, граничащая с глупостью. Чем это безопаснее, чем задать размеры буферов, например, в конфиге?

Ответить | Правка | Наверх | Cообщить модератору

74. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 15-Мрт-26, 09:46 
> Чем это безопаснее, чем задать размеры буферов, например, в конфиге?

Если ты задаешь такие вопросы - тебе рано в safety critical.

Например:
1) Это намного лучше подлежит статическому анализу, анализу потребления ресурсов и оценке worst cases. Нет, статический анализатор и проч - понятия не имеют - будет ли успешен этот вызов динамической аллокации в этой системе в этих конкретных условиях или где.

2) Если у тебя нет *alloc() и free() то ты в них не облажаешься.

3) Более того ты не облажаешься и в проверке того что *alloc() вернул null - ибо "never happens".

4) И вообще из уравнения выпадает "heap memory usage". Если вся остальная система следует тому же паттерну, это намного более надежный и предсказуемый софт, для которого намного проще оценивать долговременную надежность и стабильность. Потому что если ты alloc() а потом free() забыл - оно может месяцами подтекать память пока она не кончится окончательно, и отловить ВСЕ такие плюхи - упс.

Стэк это automatic mem management по сути. В простейшей форме. И требующий внимания к лайфтаймам, да. Но это работает. Еще можно заводить просто переменные в памяти с статичной аллокацией. Это не обязано быть в стеке. Но факт в том что heap можно из уравнения убрать. И динамическое управление памятью. Так намного надежнее: если на старте системе хватило памяти - она уже не закончится. Хоть как.

Ответить | Правка | Наверх | Cообщить модератору

79. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +2 +/
Сообщение от Анонимъemail (?), 15-Мрт-26, 11:55 
В таком коде нет никакого free().

Речь о том, что аллокация делается один раз при старте, и даже если кто-то лажанулся в конфиге - он узнает об этом сразу.

В остальном разницы нет, совсем.

Ответить | Правка | Наверх | Cообщить модератору

88. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 15-Мрт-26, 17:11 
> Речь о том, что аллокация делается один раз при старте, и даже
> если кто-то лажанулся в конфиге - он узнает об этом сразу.

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

> В остальном разницы нет, совсем.

Вообще-то есть. В простых низкоуровневых окружениях типа фирмварей, бутлоадеров и проч при этом - отпадает нужда в реализации malloc(), управлении heap и вообще - этом понятии.

А вон тот код - с *alloc() - не будет переносим на такие платформы - и вы почем зря стрельнули себе в пятку лишний раз.

Ответить | Правка | Наверх | Cообщить модератору

80. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от senaemail (ok), 15-Мрт-26, 12:29 
по 2-4 тебе уже ответили - просто выделяем память на куче один раз при старте (и инициализируем её)

Статический анализ может быть немного лучше, но стоит ли оно необходимости перекомпиляции для изменения настроек? Думаю нет.

Ответить | Правка | К родителю #74 | Наверх | Cообщить модератору

89. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 15-Мрт-26, 17:14 
> по 2-4 тебе уже ответили - просто выделяем память на куче один
> раз при старте (и инициализируем её)

И заодно получаем
1) Все радости менеджмента кучи. Что для фирмварей, бутлоадеров и проч как бы аргумент. Поэтому там на это любят забивать.
2) Код который на кейсы из 1) напрочь не портабелен.
3) Чтоб вы понимали в линухе например то что *alloc() не вернул null еще ничего не гарантирует. И оно по дефолту МОЖЕТ внезапно брякнуться в sigsegv в рантайме. Ибо man overcommit...

> Статический анализ может быть немного лучше, но стоит ли оно
> необходимости перекомпиляции для изменения настроек? Думаю нет.

Вы не понимаете. Есть весьма большая разница между по сути пруфаемым в компилтайме жором ресурсов (минус дурные вещи типа рекурсий, VLA  и косяков в оценке worst case стека, первые два явно запрещены вещами типа MISRA) - и упованием на heap based mem mgmt. Который, скажем прямо, довольно специфичная штука и надежности точно не друг.

Ответить | Правка | Наверх | Cообщить модератору

98. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от senaemail (ok), 15-Мрт-26, 23:33 
>> по 2-4 тебе уже ответили - просто выделяем память на куче один
>> раз при старте (и инициализируем её)
> И заодно получаем
> 1) Все радости менеджмента кучи. Что для фирмварей, бутлоадеров и проч как

бутлоадеру вообще вся память доступна в единоличное пользование, ему ли беспокоится про нехватку памяти :)

фирмваре - да, может быть ембеду такое нужно, там и не такие извраты встречаются...

> 3) Чтоб вы понимали в линухе например то что *alloc() не вернул
> null еще ничего не гарантирует. И оно по дефолту МОЖЕТ внезапно
> брякнуться в sigsegv в рантайме. Ибо man overcommit...

Именно поэтому я и написал, выделить и проинициализировать, а не просто выделить. Во время инициализации как раз и брякнется - то что нам нужно.

Но самый прикол в том что и статически выделяемая память не выделяется вся сразу при запуске бинарника. Есть два типа такой памяти .bss — неинициализированные глобальные/статические данные, они точно также приведут к аварийному завершению при попытке доступа при отсутствии свободных страниц, и .data - загружается при попытке записи, то есть точно также приводит к аварийному завершению при попытке доступа и отсутствию свободных страниц.

То есть реально разницы с динамическим выделением нет. И там и там возможно аварийное завершение в рантайме.

Ответить | Правка | Наверх | Cообщить модератору

25. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от timur.davletshin (ok), 14-Мрт-26, 16:24 
В подобных стеках традиционно масса дыр.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

72. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (1), 15-Мрт-26, 07:24 
Забавно, что ни один эксперт который зашёл в этот тред не не написал, что работа с указателями тупо быстрее. А так как миром правят корпорации которым подавай все самое быстрое для высоконагруженных систем... Ну вы поняли. ;)
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

77. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от name (??), 15-Мрт-26, 11:46 
Нет. Работа с индексами тупо быстрее, особенно если это подряд идущие индексы влезающие в кеш.
Работа с указателями это ад для cpu.
Ответить | Правка | Наверх | Cообщить модератору

2. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –3 +/
Сообщение от Аноним (2), 14-Мрт-26, 12:56 
> Использование при обработке сетевых пакетов предварительно выделенных в статической памяти буферов. Вызовы malloc и free не используются.

Жаль, что это не спасет от других тысячи способов получить UB на этом прекрасном языке.

Ответить | Правка | Наверх | Cообщить модератору

6. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –1 +/
Сообщение от Аноним (6), 14-Мрт-26, 13:31 
> Жаль, что это не спасет от других тысячи способов получить UB на этом прекрасном языке.

На этом прекрасном языке написали легковесный TCP/IP стек, в отличие от...

Ответить | Правка | Наверх | Cообщить модератору

10. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +2 +/
Сообщение от Аноним (2), 14-Мрт-26, 13:41 
Плохая попытка.
https://github.com/smoltcp-rs/smoltcp
Ответить | Правка | Наверх | Cообщить модератору

13. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (13), 14-Мрт-26, 14:20 
ls -lh smoltcp/target/release/libsmoltcp.rlib
17M авг  1  2022
Ответить | Правка | Наверх | Cообщить модератору

15. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (2), 14-Мрт-26, 14:48 
[profile.release]
debug = 2

и отсутствие LTO, так как ты собрал это как библиотеку.

Ответить | Правка | Наверх | Cообщить модератору

37. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (37), 14-Мрт-26, 19:09 
На C++ это не проблема.
Ответить | Правка | Наверх | Cообщить модератору

17. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (29), 14-Мрт-26, 14:49 
И что ты хотел сказать размером промежуточного файла растового компилятора? Нужно финальный бинарь мерять.
Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

39. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (37), 14-Мрт-26, 19:19 
Размер финального стрипнутого бинаря - 11M. Да, он всасывает всю функциональность smoltcp, и превращает её в cишную либу, кроме smoltcp и тонюсенькой обёртки вокруг неё в том бинаре ничего нет.
Ответить | Правка | Наверх | Cообщить модератору

49. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (29), 14-Мрт-26, 21:05 
> Размер финального стрипнутого бинаря - 11M
> в том бинаре

Бинаря какой именно программы/библиотеки? Давай ссылку на код и опции сборки.

Ответить | Правка | Наверх | Cообщить модератору

82. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (82), 15-Мрт-26, 13:07 
Не дам.
Ответить | Правка | Наверх | Cообщить модератору

54. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (54), 14-Мрт-26, 21:58 
И многие знают про эту вашу "хорошую" попытку?  А тот же lwIP на Сишке знают многие микроконтроллерщики.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

11. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (11), 14-Мрт-26, 13:56 
Правильно писать: на этом прекрасном языке написали вагон и маленькую тележку стеков которыми пользуются все, в отличие от... Ожидаемо что и UB в штуках которыми не пользуются никого не интересуют. А если начинают пользоваться, то там тоже всякого вылазит, но чаще всего "ну мы прост не реализовали эту штуку реализованную ВЕЗДЕ, во всех других ЯП, потому что нишмагли"
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

32. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 14-Мрт-26, 18:07 
Угу.

См. CVE-2009-1897.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

62. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 14-Мрт-26, 23:07 
> См. CVE-2009-1897.

В 2009 сабж еще не релизнулся даже...

Ответить | Правка | Наверх | Cообщить модератору

84. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 15-Мрт-26, 13:54 
> В 2009 сабж еще не релизнулся даже...

Это просто пример этого поведения:

> Жаль, что это не спасет от других тысячи способов получить UB на этом прекрасном языке.

.

Ответить | Правка | Наверх | Cообщить модератору

35. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от Аноним (-), 14-Мрт-26, 18:23 
Ave Ada. Ave SPARK.
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

55. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 14-Мрт-26, 21:59 
> Ave Ada. Ave SPARK.

Rest in peace Arian V, rest in peace...

Ответить | Правка | Наверх | Cообщить модератору

86. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 15-Мрт-26, 14:30 
https://www.opennet.dev/openforum/vsluhforumID3/139497.html#85
Ответить | Правка | Наверх | Cообщить модератору

91. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 15-Мрт-26, 18:52 
> https://www.opennet.me/openforum/vsluhforumID3/139497.html#85

Ну так и тойота на сишке профакалась - потому что они правила MISRA обошли. А не обходили бы - и сишка мало чем хуже. Его в safety critical более чем.

Ответить | Правка | Наверх | Cообщить модератору

61. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +2 +/
Сообщение от Аноним (61), 14-Мрт-26, 22:53 
> Жаль, что это не спасет от других тысячи способов получить UB на этом прекрасном языке.

От тысяч способов получить UB спасает осведомлённость о возможности UB, которую программист может почерпнуть из документации.
Но это относится только к тем, кто понимает - UB в стандарте языка есть предупреждение, а не предписание.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

67. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (29), 15-Мрт-26, 00:46 
> От тысяч способов получить UB спасает осведомлённость о возможности UB, которую программист может почерпнуть из документации.

Каасика жанра: чтобы не было ошибок - просто не делай ошибок.

Ответить | Правка | Наверх | Cообщить модератору

9. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от Аноним (54), 14-Мрт-26, 13:40 
Кто-нибудь из этих проектов добавит, наконец, SCTP для микроконтроллеров?
Ответить | Правка | Наверх | Cообщить модератору

24. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (24), 14-Мрт-26, 16:11 
В wolf даже IPv6 не завезли (хотя с IPv4 геморнее из-за де-факто необходимости пересобирать не влезающий в MTU пакет, если только не захардкодили бит выключающий это), какое там SCTP. Плюс у вас роутер, который в проде сегодня зачем-то будет использовать IPv4, натить ничего кроме TCP и UDP не умеет.
Ответить | Правка | Наверх | Cообщить модератору

45. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (54), 14-Мрт-26, 20:31 
Во-первых, мне это в серой зоне адресов.
Во-вторых, мой роутер на OpenWRT в IPv6 может.
Ответить | Правка | Наверх | Cообщить модератору

56. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –1 +/
Сообщение от Аноним (-), 14-Мрт-26, 22:00 
> В wolf даже IPv6 не завезли (хотя с IPv4 геморнее из-за де-факто
> необходимости пересобирать не влезающий в MTU

Это как? В новости написано "Из особенностей passt можно отметить: поддержка IPv6 помимо IPv4" - врут чтоли?

Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

76. Скрыто модератором  +1 +/
Сообщение от Аноним (76), 15-Мрт-26, 10:47 
Ответить | Правка | Наверх | Cообщить модератору

31. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (31), 14-Мрт-26, 17:57 
https://github.com/richlegrand/usrsctp-esp32
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

46. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от Страдивариус (?), 14-Мрт-26, 20:37 
Можно. А смысл?
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

57. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (54), 14-Мрт-26, 22:01 
Не было бы смысла - не спрашивал бы.
Ответить | Правка | Наверх | Cообщить модератору

75. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Страдивариус (?), 15-Мрт-26, 10:40 
> Не было бы смысла - не спрашивал бы.

Смысла нет, так как ни один известный мне роутер не умеет в NAT для SCTP. Протокол хороший, но популярности не получил. Так бы на нём и HTTP/3 делать, а не на убогом QUIC.

Ответить | Правка | Наверх | Cообщить модератору

81. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (81), 15-Мрт-26, 12:58 
Да причём здесь NAT, если нужно в приватной сети?
Ответить | Правка | Наверх | Cообщить модератору

83. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Страдивариус (?), 15-Мрт-26, 13:28 
> Да причём здесь NAT, если нужно в приватной сети?

Видимо, разработку оплачивают те, кому нужно, чтобы их девайсы ходили в интернет, а не которые ты там в своей приватной сети юзать собираешься. Тут ты можешь сам написать - это же тебе надо, это же open source.

Ответить | Правка | Наверх | Cообщить модератору

12. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (12), 14-Мрт-26, 14:13 
> оптимизации на базе инструкций AVX2

Наверняка в QEMU внедрят и дропнут кору дуба.

Ответить | Правка | Наверх | Cообщить модератору

23. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от Аноним (54), 14-Мрт-26, 15:57 
Соберём с --without-avx2.
Ответить | Правка | Наверх | Cообщить модератору

38. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –1 +/
Сообщение от Аноним (37), 14-Мрт-26, 19:12 
Ну уберут `--without-avx2`, расскажут "неразумным" любителям "хлама" что "нужно двигаться дальше".
Ответить | Правка | Наверх | Cообщить модератору

43. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (54), 14-Мрт-26, 20:24 
Попросим какого-нибудь чата заменить ассемблерные вставки с этими вашими AVX на generic код на Сишке.
Ответить | Правка | Наверх | Cообщить модератору

69. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (69), 15-Мрт-26, 01:39 
Ну и будешь сам свой форк поддерживать, а дистры просто кору дуба дропнут, сначала в этом пакете, а потом скажут "многие пакеты на коре дуба неработоспособны, пора её совсем дропнуть".
Ответить | Правка | Наверх | Cообщить модератору

90. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 15-Мрт-26, 18:49 
> Попросим какого-нибудь чата заменить ассемблерные вставки с этими вашими AVX на generic
> код на Сишке.

А он там и так скорее всего есть - ибо у ARM или RISCV какого - AVX нету. Вот хоть как.

Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

14. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –2 +/
Сообщение от Аноним (29), 14-Мрт-26, 14:36 
> требующих повышенной надёжности (Safety-Critical)
> написан на языке Си

Классика жанра. 🤦 Пишем софт для "повышенной надежности" с использованием языка, в котором эта надежность максимально скомпрометирована by design.

В их списке вулнов полно классических сишечных выходов за пределы буфера, но выводов такие ребята традиционно не делают:

https://www.wolfssl.com/docs/security-vulnerabilities/

Ответить | Правка | Наверх | Cообщить модератору

19. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (19), 14-Мрт-26, 14:56 
Реалисты же. Сейчас практически все нормальные сдк для микроконтроллеров - на C, хрен туда впихнешь библиотеку на расте.
Ответить | Правка | Наверх | Cообщить модератору

26. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (29), 14-Мрт-26, 17:29 
> Реалисты же.

В реальности safety-critical и С не очень сочетаются, о чем говорит уже более полувека не прекращающийся поток классических сишечных ошибок.

Ответить | Правка | Наверх | Cообщить модератору

52. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Сладкая булочка (?), 14-Мрт-26, 21:40 
> В реальности safety-critical и С не очень сочетаются

Если бы не сочетались, то никто бы не писал верифицированный компилятор для с.

Ответить | Правка | Наверх | Cообщить модератору

59. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –1 +/
Сообщение от Аноним (-), 14-Мрт-26, 22:32 
> В реальности safety-critical и С не очень сочетаются, о чем говорит уже более
> полувека не прекращающийся поток классических сишечных ошибок.

В реальности большая часть safety critical систем написана на си. А для ваших пафосных языков - даже просто гайдлайнов как sefety critical делать по сути - нет. И сертификаций и тех кто головой бы за это отвечать - тоже еще поискать. Или вон там у господ тулчейн на основе LLVM - проприетарный в хлам. Лицензия позволяет. Так что если не заплатил проприетарщику - во тебе, а не safety critical. Не, panic в runtime - совсем не "safe" в том смысле что контроль над ситуацией полностью теряется и это упс.

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

95. Скрыто модератором  +/
Сообщение от Аноним (95), 15-Мрт-26, 20:20 
Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

27. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (29), 14-Мрт-26, 17:33 
> Сейчас практически все нормальные сдк для микроконтроллеров - на C, хрен туда впихнешь библиотеку на расте.

Почему "хрен впихнешь"? Все эти россказни о том, что растовый код якобы получается в 10 раз больше аналогичного сишного - они уже порядком надоели и были не единожды опровержены даже тут в комментариях.

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

70. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (70), 15-Мрт-26, 01:46 
Ага, щщас.

То что можно извернуться, отказаться от гарантий языка, дропнуть стандартную библиотеку и запилить маленький хелловорлд — да, факт. Да и то, сишный хелловорлд с такими же допущениями будет в разы меньше.

А вот повседневный код — увы, нет. Раст выплёвывает копролитные погадки, слепленные из десятков, а то и сотен библиотек и весящие многие мегабайты, даже в релизном режиме.

Ответить | Правка | Наверх | Cообщить модератору

87. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (87), 15-Мрт-26, 16:31 
> Да и то, сишный хелловорлд с такими же допущениями будет в разы меньше.

Пруфани, будь добр. Ты ж не балабол, не?

Ответить | Правка | Наверх | Cообщить модератору

92. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –1 +/
Сообщение от Аноним (-), 15-Мрт-26, 19:06 
>> Да и то, сишный хелловорлд с такими же допущениями будет в разы меньше.
> Пруфани, будь добр. Ты ж не балабол, не?

Я не он но могу привести характерный пример погадка. Librsvg после "перепишем на..." - стал вот тупо в разы жирнее, и теперь это одна из самых гигантских либ в моей системе теперь.

Эта либа после переписывания - стала настолько тормозной, кривой, д@рьмовой и проблемной, что гномеры вообще дропанули ее usage - и написали свой блин парсер SVG с горя. Вот уж благодетели е...чие с их безопасТностью на брейнфаке!

Ответить | Правка | Наверх | Cообщить модератору

97. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от Аноним (87), 15-Мрт-26, 20:58 
>>> Да и то, сишный хелловорлд с такими же допущениями будет в разы меньше.
>> Пруфани, будь добр. Ты ж не балабол, не?
> Я не он но могу привести характерный пример погадка. Librsvg после "перепишем
> на..." - стал вот тупо в разы жирнее, и теперь это одна из самых гигантских либ в моей системе теперь.

Ага, "я не он и на вопрос отвечать не буду, но вот ... <далее следует линч негров>" и опять же, без какой либо конкретики. Классные пруфы, че.

Посмотрел: размер librsvg.so 4.6MB, ls -lSr подсказывает, что рядом libcrypto.so (4.3МБ) из опенссл, а уже "за", следует libopus, libvpx (4.8), libaom (6.5) ... libavcodec.so (17МБ) или там libgccjit.so (36МБ) ... ну а замыкают всякие libopenblas и libmupdf на полсотни МБ. У тебя там WLS, что ли? Тогда ваше мнение очень важно для нас!

Ответить | Правка | Наверх | Cообщить модератору

36. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 14-Мрт-26, 18:33 
Rust: #[no_mangle] pub extern "C" fn my_func()

Ada: pragma Export (C, My_Func, "my_func")

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

60. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –2 +/
Сообщение от Аноним (-), 14-Мрт-26, 22:34 
> Rust: #[no_mangle] pub extern "C" fn my_func()

Вот когда вы сможете написать фирмварь делающую что-то осмысленное - и доверите ей свою тушку - тогда и будете расказывать как оно.

> Ada: pragma Export (C, My_Func, "my_func")

Как показал пример Arian V - продолбать ракету ценой несколько гигабаксов можно и без таких сложностей.

Ответить | Правка | Наверх | Cообщить модератору

85. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 15-Мрт-26, 14:27 
> Как показал пример Arian V - продолбать ракету ценой несколько гигабаксов можно и без таких сложностей.

В которой сознательно не добавили проверки для горизонтальной скорости из Float64 в Int16, так как Ariane 4 не выходил за пределы Int16.

А вот Ariane 5 вышел — горизонтальная скорость у него набирается в пять раз быстрее. Исключение было легитимно поднято.

В Ada если в теле task было поднято исключение, и оно распространяется за его пределы (нет обработчика внутри тела), то задача считается abnormal и completed.

Супервайзер SRI обнаруживает, что задача завершилась ненормально. Для него любое аномальное завершение — неисправность. Разницы между программной и аппаратной ошибкой нет. Предписанное поведение при неисправности (по спецификации): зафиксировать контекст ошибки, записать диагностический пакет в выходную шину, завершить работу SRI.

Данные шли в ту же шину, в которую шли навигационные данные.

OBC на другом конце шины не различал "это навигационный пакет" и "это диагностика об ошибке" — такого разграничения в протоколе не было. Диагностический паттерн был интерпретирован как данные об ориентации ракеты. Значения оказались экстремальными. OBC добросовестно скомандовал максимальное отклонение сопел для "коррекции" отклонения, которого не было.

Резервный SRI упал той же ошибкой немного раньше — идентичное железо, идентичный код, идентичные входные данные. Переключиться было не на что.

Это было сознательным организационным решением, не чьей-то забывчивостью.

Ответить | Правка | Наверх | Cообщить модератору

94. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (-), 15-Мрт-26, 19:28 
> В которой сознательно не добавили проверки для горизонтальной скорости из Float64 в
> Int16, так как Ariane 4 не выходил за пределы Int16.

Ну так и Тойота - сознательно забила на правила MISRA. А если правилам MSIRA следовать и не срезать углы - сишка довольно таки "safe" во всех смыслах штука.

Представляете, на си написано куча фирмварей last line of defence и управления, для всяких критичных вещей. Типа управления опасными промышленными процессами, транспорт, энергетика и что там еще.

Элонмаск - вообще летает в космос на линухе. А что, так можно было. Ессно обычного линуха и x86 страхует rad-hard МК и там избыточность есть по принципу 2 из 3. Т.е. сбоящий по любой причине девайс - просто будет деактивирован/перезапущен. Без утери контроля над критичным процессом. А у высокопарных академов с их адами - любое отклонение от идеала выбивает из колеи как правило.

> А вот Ariane 5 вышел — горизонтальная скорость у него набирается в
> пять раз быстрее. Исключение было легитимно поднято.

И легитимно обработано й0псом о небесную твердь, ценой несколько гигабаксов. Безопасненько, чего.

> В Ada если в теле task было поднято исключение, и оно распространяется
> за его пределы (нет обработчика внутри тела), то задача считается abnormal
> и completed.

Кого е...т ваши микродетали? Мы рассматриваем процесс в целом и насколько то что получилось - safe. Кажется, ЭТО было не совсем "safe" по итогам. Мягко говоря.

> OBC на другом конце шины не различал "это навигационный пакет" и "это
> диагностика об ошибке" — такого разграничения в протоколе не было. Диагностический
> паттерн был интерпретирован как данные об ориентации ракеты. Значения оказались экстремальными.

Наверное господа уверовали что за них компилер подумает - и кодили не приходя в сознание. А вот сишники в отличие от - часто допирают до структурирования пакетов, валидации и прочих CRC, во избежание. Как же так?

> OBC добросовестно скомандовал максимальное отклонение сопел для "коррекции" отклонения,
> которого не было.

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

> Резервный SRI упал той же ошибкой немного раньше — идентичное железо, идентичный
> код, идентичные входные данные. Переключиться было не на что.
> Это было сознательным организационным решением, не чьей-то забывчивостью.

Это было - минимум дюжиной разных организационных факапов, скажем так. А если все делать правильно - то и сишка не хуже сработает. У той же MISRA допустим правила довольно жесткие, лажу выбивают хорошо. Вот только они тоже - неудобные порой бывают для програмеров, тоже возникает соблазн срезать угол. Но если углы не срезать - safety critical на сях полно. А вы на чем думали всякие ECU и автомотив например? И да, если какой ABS поприкалывается или там педаль электронного газа - вы на раз умрете. А как вы думали? Если оно ВНЕЗАПНО вас куда-то приложит то. Но в целом - все более-менее живые.

Ответить | Правка | Наверх | Cообщить модератору

78. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от name (??), 15-Мрт-26, 11:51 
Все современные лифты в которых ты ездишь написаны на Си, если что.
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

93. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (93), 15-Мрт-26, 19:23 
Иронично, что именно неработающий лифт вдохновил Грэйдона Хора создать Rust.
Ответить | Правка | Наверх | Cообщить модератору

34. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –1 +/
Сообщение от Гуманоид (?), 14-Мрт-26, 18:12 
Почему сразу не было сделано таким образом?
Ответить | Правка | Наверх | Cообщить модератору

40. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (40), 14-Мрт-26, 19:46 
>использоваться в качестве работающего в пользовательском пространстве TCP/IP-стека, подменяющего сетевой стек

Зачем охранять ключи, если в пользовательском пространстве доступен весь код.
>(bare-metal)

Привет, руткит.
>все буферы и таблицы сокетов имеют фиксированный размер и настраиваются на этапе компиляции.

Атакеру много сокетов не надо.

Ответить | Правка | Наверх | Cообщить модератору

41. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним10084 и 1008465039 (?), 14-Мрт-26, 19:57 
Не использовать динамическую память - одно из десяти NASA'вских правил для критичного кода
Ответить | Правка | Наверх | Cообщить модератору

73. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (73), 15-Мрт-26, 08:51 
> Не использовать динамическую память - одно из десяти NASA'вских правил для критичного кода

Да и в MISRA насколько я помню сие весьма привествуется. Если вы не юзаете *alloc()/free и проч - вы и не облажаетесь в этом, соответственно. И из уравнения стабильности сиситемы вдолгую - выпадает "heap usage". Остается только стэк. Правда, отдельные таланты типа тойоты умудряются и с этим облажаться. Но от совсем идиотов - никакие measures не помогут.

Ответить | Правка | Наверх | Cообщить модератору

96. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (95), 15-Мрт-26, 20:31 
Дело в неполной детерминированности времени работы аллокаторов.
Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

42. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (42), 14-Мрт-26, 20:20 
Странно, что не на Zig. Он как раз под такое и заточен.
Ответить | Правка | Наверх | Cообщить модератору

44. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от Аноним (54), 14-Мрт-26, 20:27 
И не подерётесь с рaстаманaми, и не подерётесь ;)
Ответить | Правка | Наверх | Cообщить модератору

53. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Сладкая булочка (?), 14-Мрт-26, 21:53 
> Он как раз под такое и заточен.

Пока он заточен на то, чтобы в новых версиях ломать синтаксис.

Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

47. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (47), 14-Мрт-26, 20:50 
По описанию на удивление очень годно и вкусно
Ответить | Правка | Наверх | Cообщить модератору

48. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним (48), 14-Мрт-26, 20:55 
Можно ли его собрать с выключенной поддержкой IPv4 и прочего барахла? Нужен только IPv6 SLAAC.
Ответить | Правка | Наверх | Cообщить модератору

50. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  –1 +/
Сообщение от Аноним (50), 14-Мрт-26, 21:11 
> Код проекта написан на языке Си
> Safety-Critical

Ну смешно же.

Ответить | Правка | Наверх | Cообщить модератору

58. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +1 +/
Сообщение от Аноним (54), 14-Мрт-26, 22:04 
Просмеёшься, потом приходи.
Ответить | Правка | Наверх | Cообщить модератору

51. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Dmitry (??), 14-Мрт-26, 21:18 
А как с производительностью у такого стека?
Ответить | Правка | Наверх | Cообщить модератору

71. "wolfIP и passt - легковесные стеки TCP/IP, работающие без ди..."  +/
Сообщение от Аноним83 (?), 15-Мрт-26, 03:13 
Да никак, он написан чтобы на всяком мусоре сеть появилась.
4200 строк нужно только для TCP, и то это мало если делать хорошую реализацию, со всеми фичами, которая сможет полностью канал утилизировать.

Авто написали минимально рабочий код, чтобы хоть как то работало.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру