| 1.1, Аноним (1), 12:54, 14/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +7 +/– |
Странно, почему весь критический код не пишется подобным образом. :)
| | |
| |
| 2.8, шолб (?), 13:40, 14/03/2026 [^] [^^] [^^^] [ответить]
| –3 +/– |
Тогда не получится делать важное табло с надутыми щоками, которое очень нужно для залезания на табурет и декламирования "посмотрите какую сложную уробору я сделяль, как мощны мои лапищи." Современное программирование с технической стороны не про практичность, а про самоутверждение. А если и условия потребуют практичности, то она будет уровня "от сохи". Зато с апломбом.
| | |
| |
| 3.29, Аноним (29), 17:43, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> нужно для залезания на табурет и декламирования "посмотрите какую сложную уробору я сделяль, как мощны мои лапищи." Современное программирование с технической стороны не про практичность, а про самоутверждение
Какое еще самоутверждение, лол? Ты правда думаешь, что современный софт состоит из хэллоуворлдов, написанных сумрачными гениями в одно лицо? Нет, это удел сугубо опенсорсия, причем мизерной его части.
| | |
| |
| 4.64, шолб (?), 23:49, 14/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ты этот современный софт глазами видел, да? Да, именно что уровень хеллоуворлдов. И таки да, либо сумрачным (чайще всего ещё и упоротым) гением, либо толпой мартышек с сдвг. Нету у меня для вас других программистов, т-щ комментатор. И заказчиков тоже нету.
| | |
|
| 3.66, Аноним (66), 00:44, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
" - Дядя, ты что - Арлекин-Петрушка?". В такой манере, как в сабже, на мой взгляд, значительно сложнее делать что-то нетривиальное - всё управление структурами внутри статически выделенной памяти, расчёт/запоминание их диапазонов и смещений и прочее ты ложишь на свои плечи, вместо, например, тупого динамического выделения нового куска памяти под очередной новый массив/структуру. Разве что реализация какого-нибудь кольцевого буфера там будет (почти) одинаковая. И в обоих случаях у тебя одинаковый шанс посчитать смещение неправильно и вылезти за пределы буфера.
| | |
|
| 2.16, Аноним (16), 14:48, 14/03/2026 [^] [^^] [^^^] [ответить]
| +6 +/– |
Вопрос из серии "почему в Солярис не ставят кресла с катапультой". Потому что это дорого. Раньше, когда информатизация была на начальном уровне, мир готов был мириться с инцидентами ИБ, потому что "писать более надёжно" было дороже, чем принять риски ИБ. Сейчас не так, всеобщая информатизация ведёт к потере гигатонн бабла из-за взломов и атак. Поэтому мир и начал двигаться в сторону секурити, начал закачивать туда бабло. Потому что это стало дешевле, чем терять деньги на атаках.
| | |
| 2.18, Jh (?), 14:56, 14/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
не факт что так лучше для критического софта. Переполнение стека никто не отменял)
| | |
| |
| 3.65, sena (ok), 00:15, 15/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Так смайлик в конце об этом и намекает :)
Задавать размеры буферов на этапе компиляции это очень странная идея, граничащая с глупостью. Чем это безопаснее, чем задать размеры буферов, например, в конфиге?
| | |
| |
| 4.74, Аноним (-), 09:46, 15/03/2026 [^] [^^] [^^^] [ответить] | +/– | Если ты задаешь такие вопросы - тебе рано в safety critical Например 1 Это на... большой текст свёрнут, показать | | |
| |
| 5.79, Анонимъ (?), 11:55, 15/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
В таком коде нет никакого free().
Речь о том, что аллокация делается один раз при старте, и даже если кто-то лажанулся в конфиге - он узнает об этом сразу.
В остальном разницы нет, совсем.
| | |
| 5.80, sena (ok), 12:29, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
по 2-4 тебе уже ответили - просто выделяем память на куче один раз при старте (и инициализируем её)
Статический анализ может быть немного лучше, но стоит ли оно необходимости перекомпиляции для изменения настроек? Думаю нет.
| | |
|
|
|
| 2.72, Аноним (1), 07:24, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Забавно, что ни один эксперт который зашёл в этот тред не не написал, что работа с указателями тупо быстрее. А так как миром правят корпорации которым подавай все самое быстрое для высоконагруженных систем... Ну вы поняли. ;)
| | |
| |
| 3.77, name (??), 11:46, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Нет. Работа с индексами тупо быстрее, особенно если это подряд идущие индексы влезающие в кеш.
Работа с указателями это ад для cpu.
| | |
|
|
| 1.2, Аноним (2), 12:56, 14/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– | |
> Использование при обработке сетевых пакетов предварительно выделенных в статической памяти буферов. Вызовы malloc и free не используются.
Жаль, что это не спасет от других тысячи способов получить UB на этом прекрасном языке.
| | |
| |
| 2.6, Аноним (6), 13:31, 14/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– | |
> Жаль, что это не спасет от других тысячи способов получить UB на этом прекрасном языке.
На этом прекрасном языке написали легковесный TCP/IP стек, в отличие от...
| | |
| |
| |
| |
| 5.15, Аноним (2), 14:48, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
[profile.release]
debug = 2
и отсутствие LTO, так как ты собрал это как библиотеку.
| | |
| 5.17, Аноним (29), 14:49, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
И что ты хотел сказать размером промежуточного файла растового компилятора? Нужно финальный бинарь мерять.
| | |
| |
| 6.39, Аноним (37), 19:19, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Размер финального стрипнутого бинаря - 11M. Да, он всасывает всю функциональность smoltcp, и превращает её в cишную либу, кроме smoltcp и тонюсенькой обёртки вокруг неё в том бинаре ничего нет.
| | |
| |
| 7.49, Аноним (29), 21:05, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Размер финального стрипнутого бинаря - 11M
> в том бинаре
Бинаря какой именно программы/библиотеки? Давай ссылку на код и опции сборки.
| | |
|
|
|
| 4.54, Аноним (54), 21:58, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
И многие знают про эту вашу "хорошую" попытку? А тот же lwIP на Сишке знают многие микроконтроллерщики.
| | |
|
| 3.11, Аноним (11), 13:56, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Правильно писать: на этом прекрасном языке написали вагон и маленькую тележку стеков которыми пользуются все, в отличие от... Ожидаемо что и UB в штуках которыми не пользуются никого не интересуют. А если начинают пользоваться, то там тоже всякого вылазит, но чаще всего "ну мы прост не реализовали эту штуку реализованную ВЕЗДЕ, во всех других ЯП, потому что нишмагли"
| | |
|
| 2.61, Аноним (61), 22:53, 14/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
> Жаль, что это не спасет от других тысячи способов получить UB на этом прекрасном языке.
От тысяч способов получить UB спасает осведомлённость о возможности UB, которую программист может почерпнуть из документации.
Но это относится только к тем, кто понимает - UB в стандарте языка есть предупреждение, а не предписание.
| | |
| |
| 3.67, Аноним (29), 00:46, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> От тысяч способов получить UB спасает осведомлённость о возможности UB, которую программист может почерпнуть из документации.
Каасика жанра: чтобы не было ошибок - просто не делай ошибок.
| | |
|
|
| 1.9, Аноним (54), 13:40, 14/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Кто-нибудь из этих проектов добавит, наконец, SCTP для микроконтроллеров?
| | |
| |
| 2.24, Аноним (24), 16:11, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
В wolf даже IPv6 не завезли (хотя с IPv4 геморнее из-за де-факто необходимости пересобирать не влезающий в MTU пакет, если только не захардкодили бит выключающий это), какое там SCTP. Плюс у вас роутер, который в проде сегодня зачем-то будет использовать IPv4, натить ничего кроме TCP и UDP не умеет.
| | |
| |
| 3.45, Аноним (54), 20:31, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Во-первых, мне это в серой зоне адресов.
Во-вторых, мой роутер на OpenWRT в IPv6 может.
| | |
| 3.56, Аноним (-), 22:00, 14/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
> В wolf даже IPv6 не завезли (хотя с IPv4 геморнее из-за де-факто
> необходимости пересобирать не влезающий в MTU
Это как? В новости написано "Из особенностей passt можно отметить: поддержка IPv6 помимо IPv4" - врут чтоли?
| | |
|
| |
| |
| 4.75, Страдивариус (?), 10:40, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Не было бы смысла - не спрашивал бы.
Смысла нет, так как ни один известный мне роутер не умеет в NAT для SCTP. Протокол хороший, но популярности не получил. Так бы на нём и HTTP/3 делать, а не на убогом QUIC.
| | |
|
|
|
| 1.12, Аноним (12), 14:13, 14/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> оптимизации на базе инструкций AVX2
Наверняка в QEMU внедрят и дропнут кору дуба.
| | |
| |
| |
| 3.38, Аноним (37), 19:12, 14/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну уберут '--without-avx2', расскажут "неразумным" любителям "хлама" что "нужно двигаться дальше".
| | |
| |
| 4.43, Аноним (54), 20:24, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Попросим какого-нибудь чата заменить ассемблерные вставки с этими вашими AVX на generic код на Сишке.
| | |
| |
| 5.69, Аноним (69), 01:39, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Ну и будешь сам свой форк поддерживать, а дистры просто кору дуба дропнут, сначала в этом пакете, а потом скажут "многие пакеты на коре дуба неработоспособны, пора её совсем дропнуть".
| | |
|
|
|
|
| 1.14, Аноним (29), 14:36, 14/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> требующих повышенной надёжности (Safety-Critical)
> написан на языке Си
Классика жанра. 🤦 Пишем софт для "повышенной надежности" с использованием языка, в котором эта надежность максимально скомпрометирована by design.
В их списке вулнов полно классических сишечных выходов за пределы буфера, но выводов такие ребята традиционно не делают:
https://www.wolfssl.com/docs/security-vulnerabilities/
| | |
| |
| 2.19, Аноним (19), 14:56, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Реалисты же. Сейчас практически все нормальные сдк для микроконтроллеров - на C, хрен туда впихнешь библиотеку на расте.
| | |
| |
| 3.26, Аноним (29), 17:29, 14/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> Реалисты же.
В реальности safety-critical и С не очень сочетаются, о чем говорит уже более полувека не прекращающийся поток классических сишечных ошибок.
| | |
| |
| 4.52, Сладкая булочка (?), 21:40, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> В реальности safety-critical и С не очень сочетаются
Если бы не сочетались, то никто бы не писал верифицированный компилятор для с.
| | |
| 4.59, Аноним (-), 22:32, 14/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
> В реальности safety-critical и С не очень сочетаются, о чем говорит уже более
> полувека не прекращающийся поток классических сишечных ошибок.
В реальности большая часть safety critical систем написана на си. А для ваших пафосных языков - даже просто гайдлайнов как sefety critical делать по сути - нет. И сертификаций и тех кто головой бы за это отвечать - тоже еще поискать. Или вон там у господ тулчейн на основе LLVM - проприетарный в хлам. Лицензия позволяет. Так что если не заплатил проприетарщику - во тебе, а не safety critical. Не, panic в runtime - совсем не "safe" в том смысле что контроль над ситуацией полностью теряется и это упс.
| | |
|
| 3.27, Аноним (29), 17:33, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Сейчас практически все нормальные сдк для микроконтроллеров - на C, хрен туда впихнешь библиотеку на расте.
Почему "хрен впихнешь"? Все эти россказни о том, что растовый код якобы получается в 10 раз больше аналогичного сишного - они уже порядком надоели и были не единожды опровержены даже тут в комментариях.
| | |
| |
| 4.70, Аноним (70), 01:46, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Ага, щщас.
То что можно извернуться, отказаться от гарантий языка, дропнуть стандартную библиотеку и запилить маленький хелловорлд — да, факт. Да и то, сишный хелловорлд с такими же допущениями будет в разы меньше.
А вот повседневный код — увы, нет. Раст выплёвывает копролитные погадки, слепленные из десятков, а то и сотен библиотек и весящие многие мегабайты, даже в релизном режиме.
| | |
|
| 3.36, Аноним (-), 18:33, 14/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Rust: #[no_mangle] pub extern "C" fn my_func()
Ada: pragma Export (C, My_Func, "my_func")
| | |
| |
| 4.60, Аноним (-), 22:34, 14/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– | |
> Rust: #[no_mangle] pub extern "C" fn my_func()
Вот когда вы сможете написать фирмварь делающую что-то осмысленное - и доверите ей свою тушку - тогда и будете расказывать как оно.
> Ada: pragma Export (C, My_Func, "my_func")
Как показал пример Arian V - продолбать ракету ценой несколько гигабаксов можно и без таких сложностей.
| | |
|
|
| 2.78, name (??), 11:51, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Все современные лифты в которых ты ездишь написаны на Си, если что.
| | |
|
| 1.40, Аноним (40), 19:46, 14/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
>использоваться в качестве работающего в пользовательском пространстве TCP/IP-стека, подменяющего сетевой стек
Зачем охранять ключи, если в пользовательском пространстве доступен весь код.
>(bare-metal)
Привет, руткит.
>все буферы и таблицы сокетов имеют фиксированный размер и настраиваются на этапе компиляции.
Атакеру много сокетов не надо.
| | |
| |
| 2.73, Аноним (73), 08:51, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Не использовать динамическую память - одно из десяти NASA'вских правил для критичного кода
Да и в MISRA насколько я помню сие весьма привествуется. Если вы не юзаете *alloc()/free и проч - вы и не облажаетесь в этом, соответственно. И из уравнения стабильности сиситемы вдолгую - выпадает "heap usage". Остается только стэк. Правда, отдельные таланты типа тойоты умудряются и с этим облажаться. Но от совсем идиотов - никакие measures не помогут.
| | |
|
| 1.48, Аноним (48), 20:55, 14/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Можно ли его собрать с выключенной поддержкой IPv4 и прочего барахла? Нужен только IPv6 SLAAC.
| | |
| |
| 2.71, Аноним83 (?), 03:13, 15/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Да никак, он написан чтобы на всяком мусоре сеть появилась.
4200 строк нужно только для TCP, и то это мало если делать хорошую реализацию, со всеми фичами, которая сможет полностью канал утилизировать.
Авто написали минимально рабочий код, чтобы хоть как то работало.
| | |
|
|