Trail of Bits на грант от DARPA запилили исследование тулинга вокруг Clang
Выглядит оно увлекательно(все врут)
На самом деле есть вопросы к посту, потому что в конце они рассказывают про свой тулинг (возможно, пост специально написан в таком ключе), но почитать всё равно интересно.
Тулинг от ToB
https://github.com/trailofbits/vast
https://github.com/trailofbits/pasta
Полностью по ссылке
The future of Clang-based tooling
https://blog.trailofbits.com/2023/07/28/the-future-of-clang-based-tooling/
Выглядит оно увлекательно
The Clang AST is a lie
The Clang CFG is a (pretty good) lie
LLVM IR as the one true IR is a lie
Encore: the lib in libClang is a lie
Encore the second: compile_commands.json is a lie
Final encore: Compilers textbooks are lying to you (sort of)
На самом деле есть вопросы к посту, потому что в конце они рассказывают про свой тулинг (возможно, пост специально написан в таком ключе), но почитать всё равно интересно.
Тулинг от ToB
VAST is an experimental compiler pipeline designed for program analysis of C and C++https://github.com/trailofbits/vast
Peter's Amazing Syntax Tree Analyzerhttps://github.com/trailofbits/pasta
Полностью по ссылке
The future of Clang-based tooling
https://blog.trailofbits.com/2023/07/28/the-future-of-clang-based-tooling/
🤡4👍1
До сих пор тестовые выпуски Asahi Linux базировались на пакетной базе Arch Linux.
. . .
Переход обусловлен тем, что Fedora Linux имеет официальную поддержку ARM64 в upstream ветке. Кроме того, переход поможет команде Asahi Linux сфокусировать усилия на обратном инжиниринге оборудования, в то время как Fedora Asahi будет заниматься поддержкой дистрибутива. Также миграция на Fedora позволит разработчикам Asahi Linux напрямую взаимодействовать с сопровождающими upstream репозиториев Fedora для исправления проблем в сборках ПО.
Проект Asahi переводит свой дистрибутив для ARM-чипов Apple на Fedora Linux
https://www.opennet.ru/opennews/art.shtml?num=59545
👍11🤔3👎1🫡1
Forwarded from Rotten Mechanism (Şėʀɢᴇγ Ɲσʀᴅ)
Посты на моём канале выходят не часто, но люди требуют хлеба и зрелищ) Попробуем ввести рубрику #БыстрыеКрафты дабы разнообразить контент.
При сборке внешних iButton для флиппера частенько остаются не повреждённые DS1990, собрал себе на днях комбо ключ на 3 ячейки, так как флип не всегда удобно доставать, а универсалки подходят далеко не везде. Схема проста до безобразия, после поднесения таблетки к считывателю, кнопкой замыкается линия данных нужной микросхемы. Дизайн "На коленке" в стиле раннего Rotten Mechanism^^
При сборке внешних iButton для флиппера частенько остаются не повреждённые DS1990, собрал себе на днях комбо ключ на 3 ячейки, так как флип не всегда удобно доставать, а универсалки подходят далеко не везде. Схема проста до безобразия, после поднесения таблетки к считывателю, кнопкой замыкается линия данных нужной микросхемы. Дизайн "На коленке" в стиле раннего Rotten Mechanism^^
👍9🔥6🆒2👏1
Forwarded from ITTales :(){ :|:& };:
Я тут решил разобраться с тем как работает cloud-init чтобы найти хоть какие-то спецификации для конфигурации. Забегая вперёд скажу - их нет. С архитектурной точки зрения это просто какой-то ужас. Но что-то откопать таки удалось.
Начнём с того что cloud-init поддерживает большое количество датасорсов, там и OpenStack, и OpenNebula, и AWS, и Azure, и Google Cloud, и всё такое…
Все они собираются в единую структуру - instance metadata, которая слава богу имеет стандартизированную спеку. Её можно использовать в скриптах и темплейтах, но передать её напрямую ни через один датасорс нельзя.
Что же из себя представляет датасорс? Как правило это метод получения конфигурации из облака, который, в зависимости от облака в котором работает, превращает метаданные облака в instance metadata. Меня интересовали в первую очередь форматы OpenStack configDrive и NoCloud, которые позволяют передавать метаданные инстанса через ISO или файловую систему со специально определённый лейбл.
И тут начинается самое весёлое, так как единого стандарта нет, но есть некоторые негласные соглашения. А именно, что данные передаются в виде четырёх структур: meta-data, user-data, vendor-data и network-config (именование может быть разное, но суть примерно одна)
- meta-data - более-менее общий для всех клаудов, в нём чаще всего передают
- user-data - позволяет принимать в себя cloud-config структуру, которая тоже не стандартизирована, но тоже имеет общепринятые поля, либо вообще может быть чем угодно, например баш-скриптом, jinja-темплейтом для cloud-config’а или скрипта, так и конкатенировать в себя всё вышеперечисленное.
- vendor-data - тоже самое что и user-data, но по логике предоставляется вендором, а не пользователем
- network-config - у разных вендоров разный, но в NoCloud он более-менее стандартизирован и представляет собой конфиг netplan в чистом виде.
Начнём с того что cloud-init поддерживает большое количество датасорсов, там и OpenStack, и OpenNebula, и AWS, и Azure, и Google Cloud, и всё такое…
Все они собираются в единую структуру - instance metadata, которая слава богу имеет стандартизированную спеку. Её можно использовать в скриптах и темплейтах, но передать её напрямую ни через один датасорс нельзя.
Что же из себя представляет датасорс? Как правило это метод получения конфигурации из облака, который, в зависимости от облака в котором работает, превращает метаданные облака в instance metadata. Меня интересовали в первую очередь форматы OpenStack configDrive и NoCloud, которые позволяют передавать метаданные инстанса через ISO или файловую систему со специально определённый лейбл.
И тут начинается самое весёлое, так как единого стандарта нет, но есть некоторые негласные соглашения. А именно, что данные передаются в виде четырёх структур: meta-data, user-data, vendor-data и network-config (именование может быть разное, но суть примерно одна)
- meta-data - более-менее общий для всех клаудов, в нём чаще всего передают
instance-id, local-hostname и public-keys для ssh.- user-data - позволяет принимать в себя cloud-config структуру, которая тоже не стандартизирована, но тоже имеет общепринятые поля, либо вообще может быть чем угодно, например баш-скриптом, jinja-темплейтом для cloud-config’а или скрипта, так и конкатенировать в себя всё вышеперечисленное.
- vendor-data - тоже самое что и user-data, но по логике предоставляется вендором, а не пользователем
- network-config - у разных вендоров разный, но в NoCloud он более-менее стандартизирован и представляет собой конфиг netplan в чистом виде.
👍12✍5
Технологический Болт Генона
На 0:34 автор показывает заклёпки интересные, такие ни разу не видел, а потом нашёл пост уважаемого @dlinyj, который подробней рассказал и написал о них Взрывные заклёпки https://dlinyj.livejournal.com/865859.html И ещё интересного Если деталь доступна…
Пока по интернетам лазил в поисках всяких интересных исторических экскурсов в computer science наткнулся на прекрасное - реставрация сырорезки от IBM (той самой International Business Machines) аж ~1920 года
IBM Computing Cheese Cutter [Restoration]
https://www.youtube.com/watch?v=z8VhNF_0I5c
Сырорезки, изначально изготавливал Dayton и она стала одной из четырёх компаний потом "родивших" IBM, который мы сегодня знаем.
https://www.harpgallery.com/shop/item26052.html
Патент тоже имеется -
https://patents.google.com/patent/US728181A
Периодически люблю покопаться в таких исторических вехах.
Сначала ты продаёшь сырорезки, а потом RedHat поглощаешь 🌝
IBM Computing Cheese Cutter [Restoration]
https://www.youtube.com/watch?v=z8VhNF_0I5c
Сырорезки, изначально изготавливал Dayton и она стала одной из четырёх компаний потом "родивших" IBM, который мы сегодня знаем.
Embossed "The Computing Scale Co. of Dayton, Ohio," the company later became IBM.
https://www.harpgallery.com/shop/item26052.html
Патент тоже имеется -
US728181Ahttps://patents.google.com/patent/US728181A
Периодически люблю покопаться в таких исторических вехах.
Сначала ты продаёшь сырорезки, а потом RedHat поглощаешь 🌝
👍15🔥7✍2
Forwarded from KazDevOps
nxs-data-anonymizer — инструмент для анонимизации баз данных
Поддерживает PostgreSQL (все версии) и MySQL/MariaDB/Percona (все версии).
Решение строится на следующих основных идеях:
⚙️ Потоковая обработка данных. Не обязательно предварительно готовить и сохранять где-то на диске дамп исходной базы. Инструмент может менять на лету данные, которые ему передаются на stdin. А выдавать всё — на stdout.
⚙️ Значения описываются Go template. То, на что вы хотите заменить нужные вам ячейки в таблице, определяется шаблонами как в Helm, который многим должен быть знаком.
⚙️ Использование условий и данных других ячеек в строке. Фильтры могут быть гибкими и делать те или иные подстановки в зависимости от значений других (или даже себя самого) ячеек в той же строке.
⚙️ Проверка уникальности данных.
Подробный рассказ про инструмент в статье на Хабре.
💻 Ссылка на GitHub
Поддерживает PostgreSQL (все версии) и MySQL/MariaDB/Percona (все версии).
Решение строится на следующих основных идеях:
⚙️ Потоковая обработка данных. Не обязательно предварительно готовить и сохранять где-то на диске дамп исходной базы. Инструмент может менять на лету данные, которые ему передаются на stdin. А выдавать всё — на stdout.
⚙️ Значения описываются Go template. То, на что вы хотите заменить нужные вам ячейки в таблице, определяется шаблонами как в Helm, который многим должен быть знаком.
⚙️ Использование условий и данных других ячеек в строке. Фильтры могут быть гибкими и делать те или иные подстановки в зависимости от значений других (или даже себя самого) ячеек в той же строке.
⚙️ Проверка уникальности данных.
Подробный рассказ про инструмент в статье на Хабре.
💻 Ссылка на GitHub
🔥3👍2❤1
🫡
EXCLUSIVE: Hacking tool Flipper Zero tracked by intelligence agencies, which fear white nationalists may deploy it against power grid
Racially and ethnically motivated violent extremists may seek to exploit the hacking capabilities of a new cyber penetration tester.
https://www.dailydot.com/debug/flipper-zero-racially-motivated-extremists-fusion-center-alert-nypd/
EXCLUSIVE: Hacking tool Flipper Zero tracked by intelligence agencies, which fear white nationalists may deploy it against power grid
Racially and ethnically motivated violent extremists may seek to exploit the hacking capabilities of a new cyber penetration tester.
https://www.dailydot.com/debug/flipper-zero-racially-motivated-extremists-fusion-center-alert-nypd/
🫡9👀5🤡3
Технологический Болт Генона
Интересный пост про то почему с Rust перешли на Zig tl;dr In the ensuing discussion, @jamii name-dropped TigerBeetle, a reliable, distributed, fast, and small database written in Zig in a similar style, and, well, I now find myself writing Zig full-time,…
Я и сам стараюсь следить за его развитием, но что-то писать на нём полноценное не довелось ни разу.
Zig для меня — это новый C
https://habr.com/ru/articles/753078/
Чаты в телеге
@ziglang_ru
@zig_ru
Сам язык Zig имеет ряд интересных решений, которые выделяют его на фоне других «убийц» языка C. Коротко:
- встроенная система сборки;
- прямое использование заголовочных файлов написанных на C;
- компиляция кода написанного на C компилятором Zig;
- выполнение comptime кода во время компиляции;
- механизм аллокации памяти с возможностью выбора аллокатора;
- и другие.
. . .
А почему не Rust?
На этот вопрос я специально оставил ответ на конец. И ответ банален и прост. Rust не замена C. Вообще. Это не значит, что его нельзя использовать вместо C. Отнюдь. И даже совместно можно. Но не так, как можно С совмещать с Zig. Одна из киллер фитч языка Zig, возможность напрямую взаимодействовать с кодом языка C. Хотя Zig в этом не уникален. Есть ряд других языков (C2, C3, V, Vox, и ещё несколько языков, названия которых я забыл), которые делаю практически то же самое, что и Zig. Пытаются заменить C, как язык системного программирования и межпрограммного использования библиотек. В языке Zig взаимодействие с языком C работает в обе стороны. То есть можно написать библиотеку на Zig, соблюдая некоторые правила, которую можно будет использовать в проекте написаном на C, или на другом языке, где можно подгружать библиотеки написанные на C.
Zig для меня — это новый C
https://habr.com/ru/articles/753078/
Чаты в телеге
@ziglang_ru
@zig_ru
❤4
Forwarded from sad dev diary
rust is elegant they say
https://github.com/rust-lang/rust/blob/master/compiler/rustc_error_codes/src/error_codes.rs#L10
https://github.com/rust-lang/rust/blob/master/compiler/rustc_error_codes/src/error_codes.rs#L10
😁12🤣2
Forwarded from ReactOS головного мозга
Заколоченные окна:
Microsoft с 30 сентября перестанет продлевать лицензии российским компаниям
Microsoft с 30 сентября перестанет продлевать лицензии российским компаниям
👍13🫡10😁3👎1
Forwarded from TechnoOops
Всё ещё мучаюсь вопросом как решить проблему прогона тестов bash под MacOS не используя MacOS. На днях нашёл очень перспективное, на первый взгляд, решение.
Но нужно чуть подробностей, поэтому, начну по порядку.
А что расходится?
1. Вот лично у меня одна из вечных проблем:
2. Вот недавно напоролся на немного разную работу
символ
Как можно решить мою проблему?
Ну часть решений я писал выше.
Сейчас чуть подробнее про новое найденное мною: https://chimera-linux.org
Что они говорят:
Кажется, что это то, что надо!
ну то есть, я хотел:
но musl мне тоже ОК.
Дополнительные плюсы:
*
Минусы:
* Официального docker образа не нашёл. Есть вот такое: https://hub.docker.com/r/takano32/chimeralinux/tags
К сожалению, даже нет GitHub репа этого докер образа, что бы посмотреть как он его собирал.
Именно этот образ я попробовал. Что вижу:
* судя по всему, это, действительно, chimera linux
* там BSD утилиты, а не GNU.
Фатальный недостаток: проблемы, которые у меня воспроизводятся на MacOS на этом образе не воспроизводятся. Пробовал, правда, только
Поэтому, пока не знаю, стоит ли двигаться дальше с этим. Но как возможный вариант пока оставлю. Если найдётся ещё какая то проблема, то есть расхождение между поведением GNU и BSD утилит попробую ещё раз потестировать на этом образе. Вполне возможно, что может помочь и тогда включу его в цикл тестирования.
Но нужно чуть подробностей, поэтому, начну по порядку.
А что расходится?
1. Вот лично у меня одна из вечных проблем:
sed. Поведение GNU sed и BSD sed расходится. Есть трюки, которые позволяют их сделать похожими вплоть до идентичности. Например, опция -E. Она _почти_ всегда даёт одинаковый результат в обоих реализациях. Хороший совет для себя самого: всегда использовать эту опцию. Она, кстати, и выражения позволяет немного проще писать. Но всё равно, я не верю в 100% сходство. Без тестов на целевой платформе я такое выпускать боюсь.2. Вот недавно напоролся на немного разную работу
bash. К сожалению, не могу здесь привести подробностей. Но казалось, что в конструкции типа такого:xargs -I% bash -c "func \"%\" \"${arg2}\"символ
% не подставляется. Было очень странно и непонятно. Как можно решить мою проблему?
Ну часть решений я писал выше.
Сейчас чуть подробнее про новое найденное мною: https://chimera-linux.org
Что они говорят:
Chimera uses a novel combination of core tools from FreeBSD, the LLVM toolchain, and the Musl C library, delivering a fresh experience with several major benefits.
Кажется, что это то, что надо!
ну то есть, я хотел:
BSD userland утилиты, которые можно собрать напротив glibc+linux...
но musl мне тоже ОК.
Дополнительные плюсы:
*
apk как пакетный менеджер.Минусы:
* Официального docker образа не нашёл. Есть вот такое: https://hub.docker.com/r/takano32/chimeralinux/tags
К сожалению, даже нет GitHub репа этого докер образа, что бы посмотреть как он его собирал.
Именно этот образ я попробовал. Что вижу:
* судя по всему, это, действительно, chimera linux
* там BSD утилиты, а не GNU.
Фатальный недостаток: проблемы, которые у меня воспроизводятся на MacOS на этом образе не воспроизводятся. Пробовал, правда, только
sed.Поэтому, пока не знаю, стоит ли двигаться дальше с этим. Но как возможный вариант пока оставлю. Если найдётся ещё какая то проблема, то есть расхождение между поведением GNU и BSD утилит попробую ещё раз потестировать на этом образе. Вполне возможно, что может помочь и тогда включу его в цикл тестирования.
💅3❤1👍1