Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
2428 - Telegram Web
Telegram Web
#безопастный_rust

Продолжаем цикл заметок про то, что Rust не является memory safe language.

Самое главное тут, конечно, договориться, что значит "memory safe". Почему это важно, я писал в https://www.tgoop.com/itpgchannel/1828

Часто слышу определение "в коде нет unsafe блоков".

В связи с этим я задаю два вопроса:

* https://blog.yossarian.net/2021/03/16/totally_safe_transmute-line-by-line - вот, очень даже safe код, исходя из этого определения.

* Является ли отношение "не содержит unsafe" транзитивным, потому что в stdlib есть unsafe.

Обычно после этого коллеги начинают рассказывать про soundness кода.

Что такое soundness?

По сути, это синоним "мамой клянусь". То есть, у нас нет формального доказательства того, что код ведет себя так, как надо, но автор кода сумел уболтать других людей, что это правда.

Поэтому вот вам самая мякотка - Rust является memory "мамой клянусь"-safe language.

Проблема в том, что и С, и С++ - это тоже "мамой клянусь"-safe language, а если там в коде ошибка - то это skill issue "да вы просто не умеет в С".

Я даже готов согласиться, что в классе "мамой клянусь"-safe языков, Rust один из наиболее безопасных (в каком-то смысле), но на этом все.
😁2810🤡7👍5🔥4👎3🤔1🤮1👌1🐳1
Тем временем, у моей реализации #runsvdir https://www.tgoop.com/itpgchannel/1998 уже есть 4 open source альтернативы:

* оригинал из runit
* мой вариант на python
* вариант на Rust (https://github.com/maratik123/runsvdir)
* и мой же вариант на С++ (https://github.com/pg83/ix/blob/main/pkgs/bin/ix/runsvdir/cpp/m.cpp)

На приложенном скриншоте - все 4, на одной и той же конфигурации.

Хуже всех (по потреблению памяти) python, потом идет оригинальный из runit (меня это удивило, он, вроде как, на С), потом вариант на Rust, а пижже всех - мой, на С++.

Оптимизациями памяти я даже не занимался (посмотрите код, он максимально дубовый), можно лучше.
17👍6🔥4🤔3🤯2🤡1🆒1
Forwarded from Дидлошная (Alex Beaver)
😁298🤔3🐳2👍1🔥1
Админ за работой.
34👍4🔥4❤‍🔥3🆒1
Фига я снова в телевизоре!

Болты Генона я тоже читаю, хорошие каналы.
👏9👍53🔥1
Тут @SergeySabbath, закинул мой канал в тройку своих самых любимых. Скрывать не буду, мне очень приятно.

https://www.tgoop.com/IT_Friday/646

А накидайте в комменты свои любимые каналы по IT-шной тематике или около неё. Можно несколько.

Может я и подписчики найдут что-то новое и интересное для себя

Если брать строго IT, то я регулярно слежу за

https://www.tgoop.com/SysadminNotes

https://www.tgoop.com/itpgchannel

https://www.tgoop.com/dereference_pointer_there

https://www.tgoop.com/sysadmin_tools

Есть большое количество ещё других, ни о ком не забыл и всех помню, но как-нибудь сделаю ещё отдельный пост 🌝
🔥116🌭3👍2🆒1
Технологический Болт Генона
Тут @SergeySabbath, закинул мой канал в тройку своих самых любимых. Скрывать не буду, мне очень приятно. https://www.tgoop.com/IT_Friday/646 А накидайте в комменты свои любимые каналы по IT-шной тематике или около неё. Можно несколько. Может я и подписчики найдут…
👍12❤‍🔥6🔥3😁21
😁40💯11👍5🤔5🤬3🐳3🍾2
#Kent Предложка:

"Свежую драму от Кента подвезли. Читаешь, думаешь, блин, несправедливо человека банят: https://www.patreon.com/posts/trouble-in-116412665

потом открываешь лор, а там: https://lore.kernel.org/all/citv2v6f33hoidq75xd2spaqxf7nl5wbmmzma4wgmrwpoqidhj@k453tmq7vdrk/"

https://www.phoronix.com/news/Bcachefs-Uncertain-Kernel-Issue

https://www.opennet.ru/opennews/art.shtml?num=62276
😁12🔥5👍3🐳21
commit -m "better"
#sched_ext Какие-то демонстрационные шедулеры у меня получилось заставить работать (но и результат, ожидаемо, никакой), а вот что-то серьезное уже не работает: https://github.com/sched-ext/scx/issues/823 Товарищи захотели перехватить static функцию из ядра…
Вышло ядро 6.12, https://www.opennet.ru/opennews/art.shtml?num=62243, и, наконец-то, у меня получилось завести #sched_ext.

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

Но тот эффект, который обещали авторы, воспроизвести пока не получилось.

Когда я запускаю компиляцию во все потоки, scx выходит через какое-то время, с ошибкой:

https://gist.github.com/pg83/602ee9f04e80d36d8651fec0e0af13d6

Начало положено, и, наверное, у меня скоро перестанет тормозить браузер (https://www.tgoop.com/itpgchannel/139)!

Ну и, конечно, очень приятно, что это не kernel panic, а вполне себе падение user space приложухи, которую можно перезапустить.
🔥15😁63👍1
commit -m "better"
попробую пожить с корнем на ней.
Эксперимент с #F2FS считаю завершенным, она за пару лет развалилась на всех 4 устройствах (ноут и 3 сервера), где я ее использовал на root разделе.
😁36🐳4👍3🆒1
Forwarded from Valuable AI
маразм, конечно, крепчал; для меня все началось, когда NIPS заставили переименовать в NeurIPS из-за того, что это совпадает с жаргонным наименованием сосков (nipples -> nips); указания лингвистов на то, что слово nips в этом значении появилось позже, чем конференция, не помогло; жду, когда переименуют абсолютно черное тело (да-да, физики, придут и за вами)

P.S. картинку стащил из рабочего чата, источник не знаю
😁30🤡10💩5🐳4😢2🔥1
Картина маслом - админ готовится к тому, чтобы написать свою первую программу на Rust!
🦄86🥰19😁14😭9💅7😍6💔43💋3🎉2🤡1
Forwarded from Ряды Фурье
В 2019 году вышло исследование про супердолгожителей. Тех дедушек и бабушек, которые умудрились прожить больше 100 лет. Ну, знаете, горный воздух, свежие овощи, минимум быстрых углеводов, крепкая семья, верные друзья, спокойные отношения, прогулки каждый день, низкое атмосферное давление, вот это всё — прям идеальная картина.

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

Они овощами не впечатлились ни разу.

Первое, что их удивило — что всего один фактор на 69-82% снизил количество супердолгожителей. Это наличие свидетельства о рождении. Когда их начали выдавать, видимо, это резко сократило шансы дожить до 100 лет. Опасные бумажки, однако.

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

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

Например, в выборках самых пожилых людей часто наблюдаются уровни курения 17-50% [6] и уровни неграмотности 50-80% [5,6]. При обследовании "голубой зоны" Икарии Хрисохоу и др. отметили, что среди самых пожилых людей: более 95-98% случаев имеют заработную плату ниже медианной, умеренное или высокое потребление алкоголя (5,1-8,0 л/год), 10% неграмотных, в среднем 7,4 года образования и 99% курящих среди мужчин [3].


А потом случилось страшное:

Более недавние исследования выявили потенциальную роль ошибок [13-16] и операторских смещений [17] в создании моделей выживания в старческом возрасте и данных. В свою очередь, эти выводы вызвали реакцию с потенциально разрушительными последствиями: что при таких моделях большинство, если не все рекорды удивительного возраста могут быть ошибками [18].


Итальянцы старше 100 лет сосредоточены в беднейших, наиболее отдаленных провинциях с самой короткой продолжительностью жизни, в то время как американские супердолгожители сосредоточены в популяциях с неполными регистрами рождений и смертей. Обе эти закономерности трудно объяснить биологически, но они легко объясняются экономическими факторами, способствующими пенсионному мошенничеству и ошибкам в отчетности.


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

Ну и это касается даже Японии:

Высококачественные системы всеобщей регистрации часто содержат необнаруженные частые ошибки. Например, вопреки предыдущим утверждениям о том, что "Япония имеет... одни из самых качественных данных о самых пожилых людях" [24], расследование японских записей в 2010 году показало, что 238 000 столетних жителей на самом деле пропали без вести или умерли [25].


Исследование вот.

Секрет долгожительства во многих случаях — систематическая подделка документов!
🔥38😁19👌5🤡32👍1💯1
Forwarded from The After Times
Media is too big
VIEW IN TELEGRAM
🔥27🫡11😁8👍42🥰2👏1
commit -m "better"
#безопастный_rust Продолжаем цикл заметок про то, что Rust не является memory safe language. Самое главное тут, конечно, договориться, что значит "memory safe". Почему это важно, я писал в https://www.tgoop.com/itpgchannel/1828 Часто слышу определение "в коде нет…
https://www.opennet.ru/opennews/art.shtml?num=62286

https://foundation.rust-lang.org/news/rust-foundation-collaborates-with-aws-initiative-to-verify-rust-standard-libraries/

TL;DR - пока фанбои кричат, что "soundness достаточно", взрослые дяди занимаются формальной верификацией unsafe кода, потому что понимают, что memory "мамой клянусь"-safety - недостаточно!

А unsafe кода там прилично:

Currently, the Rust standard library contains approximately 35,000 functions, including 7,500 marked as unsafe.
😁15👍13🤪43🆒2🤔1
Будни #bootstrap

В очередной раз переделал цепочку bootstrap.

Раньше, на самых ранних стадиях, у меня был сумасшедший скрипт, которые пытался найти подходящий компилятор и shell, а дальше все работало с этими компилятором и shell.

Маленькая проблема заключалась в том, что происходило это в runtime, и команда не зависела от окружения. То есть, могло что-то сломаться, человек менял компилятор или shell, и дальше все ломалось, потому что компилятор и shell были уже закешированы.

Выкинул этот скрипт, сделал так, что компилятор и shell система ищет на configure стадии, и дальше цепочка bootstrap уже зависит от того, что было найдено (или нет).

Финальный аккорд выглядит как-то так - https://github.com/pg83/ix/blob/main/pkgs/bld/boot/0/ind/ix.sh

На самом деле, изменений по всей пакетной базе было сделано очень много, но показывать их особого смысла нет.

Главное - цепочка стала гораздо более робастной, и устойчивой к изменениям окружения, которые могут случаться у пользователей, во время установки #stal/ix
👍156❤‍🔥3🆒2🔥1
2025/07/13 02:03:59
Back to Top
HTML Embed Code: