https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2723r0.html
Интересный proposal про zero-initialize по умолчанию в C++. #cppcom
TL;DR - оптимизации за последние лет 20 научились справляться с этим, и теперь zero initialize ничего не стоит, а иногда делает код даже быстрее. Удивительный факт, но вот коллеги пишут, что zero-initialize для регистров способен разбивать ложные цепочки данных, и, тем самым, улучшать код с точки зрения out of order execution.
Примут ли его?
Я сомневаюсь, что замшелые деды из стандарта пойдут на такое радикальное изменение.
Интересный proposal про zero-initialize по умолчанию в C++. #cppcom
TL;DR - оптимизации за последние лет 20 научились справляться с этим, и теперь zero initialize ничего не стоит, а иногда делает код даже быстрее. Удивительный факт, но вот коллеги пишут, что zero-initialize для регистров способен разбивать ложные цепочки данных, и, тем самым, улучшать код с точки зрения out of order execution.
Примут ли его?
Я сомневаюсь, что замшелые деды из стандарта пойдут на такое радикальное изменение.
🔥16👍8🤩1💯1
commit -m "better"
https://news.ycombinator.com/item?id=30410457 Я тут подумал, что, по сути, тема #bootstrap интересует меня с глубокого детства - как сделать что-то из ничего? Мои любимые приключенческие романы: * Робинзонада * Жюль Верн - каждое второе произведение про…
https://www.nmattia.com/posts/2022-12-18-lockfile-trick-package-npm-project-with-nix.html - вот, теперь я понял, как устроен мой VFS в Nix!
Очевидно, мне мое решение нравится больше, но тоже хорошо.
Вангую, что за такими вот "погружениями" будущее мета-пакетных менеджеров!
Очевидно, мне мое решение нравится больше, но тоже хорошо.
Вангую, что за такими вот "погружениями" будущее мета-пакетных менеджеров!
Nmattia
Nicolas Mattia – Lockfile trick: Package an npm project with Nix in 20 lines
This article explains how to package an npm project with Nix by using information from the lockfile directly to download the dependencies.
🔥3👍2🤔1
https://www.opennet.ru/opennews/art.shtml?num=58357
Кажется, намечается новый водораздел между gcc и llvm.
Если вы хотите иметь solid codebase, поддерживающую небольшое число архитектур и языков, то вам в llvm. А если никому не известный язык на древней платформе - то в gcc!
Я, кстати, почти не стебусь - проект llvm очень щепетильно относится к новым архитектурам(за исключением, пожалуй что, #loongson, но там, наверное, политика, или занесли), а вот gcc сейчас - кладбище платформ и реализаций языков(gccgo кто-нибудь пытался использовать? Я пытался)
Кажется, намечается новый водораздел между gcc и llvm.
Если вы хотите иметь solid codebase, поддерживающую небольшое число архитектур и языков, то вам в llvm. А если никому не известный язык на древней платформе - то в gcc!
Я, кстати, почти не стебусь - проект llvm очень щепетильно относится к новым архитектурам(за исключением, пожалуй что, #loongson, но там, наверное, политика, или занесли), а вот gcc сейчас - кладбище платформ и реализаций языков(gccgo кто-нибудь пытался использовать? Я пытался)
www.opennet.ru
В состав GCC включена поддержка языка программирования Modula-2
В основной состав GCC принят фронтэнд m2 и библиотека libgm2, позволяющие использовать штатный инструментарий GCC для сборки программ на языке программирования Modula-2. Поддерживается сборка кода, соответствующего диалектам PIM2, PIM3 и PIM4, а также принятому…
👍6🔥2🤯2🐳2
Forwarded from Двач
Зарубежные производители отказались поставлять в Россию «российские» процессоры «Байкал» и «Эльбрус»
Достигли цифрового суверенитета
Достигли цифрового суверенитета
😁23🔥7😱4🤬2🤡1
Forwarded from The Moscow Times
В правительстве констатировали бегство из России 100 тысяч IT-специалистов
После начала войны с Украиной из России уехали и не вернулись 10% IT-специалистов, заявил глава Минцифры Максут Шадаев на правительственном часе в Госдуме. При этом он уверяет, что 80% из них продолжают работать на российские компании, причем делают это из «дружественных» стран.
Министр напомнил, что ведомство выступает против полного запрета на удаленную работу для таких специалистов. «Ключевая мера, которую мы сейчас предлагаем все-таки обсудить, — это не вводить жесткие ограничения, потому что это, конечно, подтолкнет их к тому, чтобы они устраивались на работу в зарубежные компании», — сказал Шадаев. Однако он поддерживает запрет на удаленку для сотрудников, которые работают над важными государственными системами. Ранее Шадаев призывал создать условия для возвращения IT-специалистов в страну, показав «на деле», что «здесь можно спокойно продолжать работать».
Подписаться | Moscow Times
После начала войны с Украиной из России уехали и не вернулись 10% IT-специалистов, заявил глава Минцифры Максут Шадаев на правительственном часе в Госдуме. При этом он уверяет, что 80% из них продолжают работать на российские компании, причем делают это из «дружественных» стран.
Министр напомнил, что ведомство выступает против полного запрета на удаленную работу для таких специалистов. «Ключевая мера, которую мы сейчас предлагаем все-таки обсудить, — это не вводить жесткие ограничения, потому что это, конечно, подтолкнет их к тому, чтобы они устраивались на работу в зарубежные компании», — сказал Шадаев. Однако он поддерживает запрет на удаленку для сотрудников, которые работают над важными государственными системами. Ранее Шадаев призывал создать условия для возвращения IT-специалистов в страну, показав «на деле», что «здесь можно спокойно продолжать работать».
Подписаться | Moscow Times
👍9😐5😢2
#bootstrap, #ix
Решил тут давно стоявшую задачу - генерацию уникальных ключей для разного рода программ, но так, чтобы они были устойчивы от генерации к генерации, то есть, если нужно перестроить пакет с теми же входными данными, то и получившиеся ключи должны быть одинаковые.
Пример использования:
Оно для этого использует random(), что никак не соответствует светлой мысли о "чистой сборке" - пакет есть чистая функция от своих входов (напомню, что это важное условие возможности переиспользовать RO пакеты между разными пользователями(не обязательно даже на одном хосте)).
Собственно, решение этой задачи разбилось на 2 части:
* Немношк перепилить утилиту генерации ключей, чтобы она шла не в /dev/random, а в заранее подготовленный файл - https://github.com/pg83/ix/blob/main/pkgs/bin/dropbear/runit/keygen/ix.sh#L7
* Подложить генератору хостовых ключей этот файл, и сгенерить эти ключи. Таким образом, мы получаем "чистый" пакет, который зависит только от своего параметра seed - https://github.com/pg83/ix/blob/main/pkgs/bin/dropbear/runit/hostkeys/ix.sh#L14
Таким образом, мы имеем как бы "случайный" набор ключей, который является чистой функцией от seed. Задача пользователся системы при настройке машины указать этот самый seed, чтобы он был уникальным (это может сделать инсталлятор прозрачно для пользователя).
В процессе у меня получился интересный артефакт - "пакет с подготовленной энтропией". Вот так я прошу, чтобы он был доступен в момент подготовки ключей - https://github.com/pg83/ix/blob/main/pkgs/bin/dropbear/runit/hostkeys/ix.sh#L4, а вот так выглядит его реализация - https://github.com/pg83/ix/blob/main/pkgs/aux/entropy/ix.sh https://github.com/pg83/ix/blob/main/pkgs/aux/entropy/ix.sh#L10 - вот тут вся мякотка, передаем seed в openssl.
В целом, понятно, что мы не ухудшаем процесс по сравнению с тем, как было раньше - было "используем энтропию в текущий момент времени в качестве seed, для генерации каких-то файликов", стало - "сохраняем энтропию в какой-то момент времени, и используем ее для генерации этих же файликов снова и снова". То есть, храним не результат генерации, а ее seed.
Кстати, обнаружил красивое, пока читал исходники - https://github.com/mkj/dropbear/blob/master/dbrandom.c#L270
Тут вот написано, как нормальные люди собирают себе изначальную энтропию для работы.
(тем, кто пытался пенять мне на файлик https://github.com/catboost/catboost/blob/master/util/random/entropy.cpp#L40 должно стать стыдно - все так делают!)
Решил тут давно стоявшую задачу - генерацию уникальных ключей для разного рода программ, но так, чтобы они были устойчивы от генерации к генерации, то есть, если нужно перестроить пакет с теми же входными данными, то и получившиеся ключи должны быть одинаковые.
Пример использования:
# ix mut system bin/dropbear/runit --seed="dead beef"При установке dropbear (это такая альтернатива ssh) хочет сгенерить хостовые ключи, которые не должны меняться примерно все время жизни инсталлированной системы.
Оно для этого использует random(), что никак не соответствует светлой мысли о "чистой сборке" - пакет есть чистая функция от своих входов (напомню, что это важное условие возможности переиспользовать RO пакеты между разными пользователями(не обязательно даже на одном хосте)).
Собственно, решение этой задачи разбилось на 2 части:
* Немношк перепилить утилиту генерации ключей, чтобы она шла не в /dev/random, а в заранее подготовленный файл - https://github.com/pg83/ix/blob/main/pkgs/bin/dropbear/runit/keygen/ix.sh#L7
* Подложить генератору хостовых ключей этот файл, и сгенерить эти ключи. Таким образом, мы получаем "чистый" пакет, который зависит только от своего параметра seed - https://github.com/pg83/ix/blob/main/pkgs/bin/dropbear/runit/hostkeys/ix.sh#L14
Таким образом, мы имеем как бы "случайный" набор ключей, который является чистой функцией от seed. Задача пользователся системы при настройке машины указать этот самый seed, чтобы он был уникальным (это может сделать инсталлятор прозрачно для пользователя).
В процессе у меня получился интересный артефакт - "пакет с подготовленной энтропией". Вот так я прошу, чтобы он был доступен в момент подготовки ключей - https://github.com/pg83/ix/blob/main/pkgs/bin/dropbear/runit/hostkeys/ix.sh#L4, а вот так выглядит его реализация - https://github.com/pg83/ix/blob/main/pkgs/aux/entropy/ix.sh https://github.com/pg83/ix/blob/main/pkgs/aux/entropy/ix.sh#L10 - вот тут вся мякотка, передаем seed в openssl.
pg-> ./ix build aux/entropyАртефакт, на самом деле, довольно полезный, потому что в момент установки системы есть довольно много процессов, которые требуют сгенерить уникальный идентификатор хоста, например, /etc/machine-id, который используется в dbus.
--entropy_seed="dead beef"
--entropy_size=100
READY /ix/store/7aP.../touch
pg-> ls -ls /ix/store/7aP.../share/entropy
100 ... /ix/store/7aP.../share/entropy
В целом, понятно, что мы не ухудшаем процесс по сравнению с тем, как было раньше - было "используем энтропию в текущий момент времени в качестве seed, для генерации каких-то файликов", стало - "сохраняем энтропию в какой-то момент времени, и используем ее для генерации этих же файликов снова и снова". То есть, храним не результат генерации, а ее seed.
Кстати, обнаружил красивое, пока читал исходники - https://github.com/mkj/dropbear/blob/master/dbrandom.c#L270
Тут вот написано, как нормальные люди собирают себе изначальную энтропию для работы.
(тем, кто пытался пенять мне на файлик https://github.com/catboost/catboost/blob/master/util/random/entropy.cpp#L40 должно стать стыдно - все так делают!)
GitHub
ix/pkgs/bin/dropbear/runit/keygen/ix.sh at main · pg83/ix
ix package manager. Contribute to pg83/ix development by creating an account on GitHub.
👍6🤮5🔥4🤔2🌭1
Двач
Зарубежные производители отказались поставлять в Россию «российские» процессоры «Байкал» и «Эльбрус» Достигли цифрового суверенитета
#llvmweekly
https://reviews.llvm.org/rGc86a878e8995
"[RISCV] Add Syntacore SCR1 CPU model"
Syntacore - IMHO хороший пример российского IP бизнеса. Вон, в LLVM коммитят, и risc-v проц на гитхаб выкладывают https://github.com/syntacore/scr1.
Это вам не попил бабла на "российский проц", который потом даже в виде IP никому нафиг не сдался, не то, что в железе.
https://reviews.llvm.org/rGc86a878e8995
"[RISCV] Add Syntacore SCR1 CPU model"
Syntacore - IMHO хороший пример российского IP бизнеса. Вон, в LLVM коммитят, и risc-v проц на гитхаб выкладывают https://github.com/syntacore/scr1.
Это вам не попил бабла на "российский проц", который потом даже в виде IP никому нафиг не сдался, не то, что в железе.
GitHub
GitHub - syntacore/scr1: SCR1 is a high-quality open-source RISC-V MCU core in Verilog
SCR1 is a high-quality open-source RISC-V MCU core in Verilog - syntacore/scr1
👍5❤2🤔2
commit -m "better"
#bootstrap, #ix Решил тут давно стоявшую задачу - генерацию уникальных ключей для разного рода программ, но так, чтобы они были устойчивы от генерации к генерации, то есть, если нужно перестроить пакет с теми же входными данными, то и получившиеся ключи должны…
Кстати, вы уверены, что понимаете, что такое "рандомная последовательность нулей и единиц"?
Статистика, например, вообще обходит стороной этот вопрос!
https://en.wikipedia.org/wiki/Random_variable
"However, the interpretation of probability is philosophically complicated, and even in specific cases is not always straightforward. The purely mathematical analysis of random variables is independent of such interpretational difficulties, and can be based upon a rigorous axiomatic setup"
https://en.wikipedia.org/wiki/Random_sequence
"Axiomatic probability theory deliberately avoids a definition of a random sequence"
КМК, интуитивное представление о том, что такое random, написано вот тут - https://en.wikipedia.org/wiki/Impossibility_of_a_gambling_system. И вот тут - https://en.wikipedia.org/wiki/Kolmogorov_complexity#Kolmogorov_randomness + https://en.wikipedia.org/wiki/Algorithmically_random_sequence
Первое - это про то, что важные статистические свойства должны держаться для "нормально выбранной случайной подпоследовательности", а вторая - что настоящий random() не может быть сгенерен на универсальной машине Тюринга фиксированного размера.
Как они связаны, я не знаю, наверное, как-то должны быть.
Второе мне кажется очень естественным, потому что вот для числа PI легко записать, как вычислить любой его префикс, но вряд ли мы согласимся, что оно является рандомным, хотя, наверняка, всякие статистические критерии покажут, что оно достаточно "случайно".
Являются ли аппаратные генераторы случайных чисел алгоритмически рандомными - я ХЗ, видимо, считается, что являются. Наверное, теория об отсутствии "скрытых параметров" пытается на это ответить, но я недостаточно хорошо знаком с этой темой, чтобы об этом спекулировать.
Статистика, например, вообще обходит стороной этот вопрос!
https://en.wikipedia.org/wiki/Random_variable
"However, the interpretation of probability is philosophically complicated, and even in specific cases is not always straightforward. The purely mathematical analysis of random variables is independent of such interpretational difficulties, and can be based upon a rigorous axiomatic setup"
https://en.wikipedia.org/wiki/Random_sequence
"Axiomatic probability theory deliberately avoids a definition of a random sequence"
КМК, интуитивное представление о том, что такое random, написано вот тут - https://en.wikipedia.org/wiki/Impossibility_of_a_gambling_system. И вот тут - https://en.wikipedia.org/wiki/Kolmogorov_complexity#Kolmogorov_randomness + https://en.wikipedia.org/wiki/Algorithmically_random_sequence
Первое - это про то, что важные статистические свойства должны держаться для "нормально выбранной случайной подпоследовательности", а вторая - что настоящий random() не может быть сгенерен на универсальной машине Тюринга фиксированного размера.
Как они связаны, я не знаю, наверное, как-то должны быть.
Второе мне кажется очень естественным, потому что вот для числа PI легко записать, как вычислить любой его префикс, но вряд ли мы согласимся, что оно является рандомным, хотя, наверняка, всякие статистические критерии покажут, что оно достаточно "случайно".
Являются ли аппаратные генераторы случайных чисел алгоритмически рандомными - я ХЗ, видимо, считается, что являются. Наверное, теория об отсутствии "скрытых параметров" пытается на это ответить, но я недостаточно хорошо знаком с этой темой, чтобы об этом спекулировать.
🔥5👍2🤔2
Все делают IT прогнозы на 23 год, а я чем хуже?
Вот, делаю!
ЕБЖ, в 23 году выйдет как минимум 1 JS "фремворк" (скорее всего, для управления состоянием), которым "все, абсолютно все" захотят воспользоваться, и переписать на него весь свой код!
Вот, делаю!
ЕБЖ, в 23 году выйдет как минимум 1 JS "фремворк" (скорее всего, для управления состоянием), которым "все, абсолютно все" захотят воспользоваться, и переписать на него весь свой код!
😁24🐳4🤣4🤡3
https://github.com/ihhub/fheroes2/wiki/Change-Log
Батюшки, fheroes2 (это такой локальный мем с opennet.ru) 1.0.0 вышел, какой же завтра будет срачик!
Батюшки, fheroes2 (это такой локальный мем с opennet.ru) 1.0.0 вышел, какой же завтра будет срачик!
GitHub
Change Log
fheroes2 is a recreation of Heroes of Might and Magic II game engine - Change Log · ihhub/fheroes2 Wiki
🤣5😁3👍2💯1
commit -m "better"
Кстати, вы уверены, что понимаете, что такое "рандомная последовательность нулей и единиц"? Статистика, например, вообще обходит стороной этот вопрос! https://en.wikipedia.org/wiki/Random_variable "However, the interpretation of probability is philosophically…
Не могу не поделиться украденной ссылкой из комментариев - https://www.mccme.ru/free-books/dubna/vau-random-2ed.pdf
Небольшая заметка про природу случайности, то, как мы ее понимаем. Очень живо и понятно написано, без занудства.
Автор текста, Успенский, кстати, очень крутой был чувак - https://ru.wikipedia.org/wiki/%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9,_%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B5%D0%B2%D0%B8%D1%87
Вел у меня матлогику, я (впервые) от него услышал фразу "пустое множество пахнет фиалками" :)
(Я правильно назвал 2 из 4 критериев, которые описаны в этом тексте. Это, конечно, не может не радовать!)
Небольшая заметка про природу случайности, то, как мы ее понимаем. Очень живо и понятно написано, без занудства.
Автор текста, Успенский, кстати, очень крутой был чувак - https://ru.wikipedia.org/wiki/%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9,_%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B5%D0%B2%D0%B8%D1%87
Вел у меня матлогику, я (впервые) от него услышал фразу "пустое множество пахнет фиалками" :)
(Я правильно назвал 2 из 4 критериев, которые описаны в этом тексте. Это, конечно, не может не радовать!)
🔥8❤4👍3🤔2
https://www.npopov.com/2022/12/20/This-year-in-LLVM-2022.html
Что-то вроде годового self assessment одного из разрабов LLVM.
Мне показалась интересной первая история, про типизированные указатели в LLVM IR.
TL;DR - Раньше с указателем был связан тип, а сейчас не связан.
Казалось бы - данных больше, они богаче, можно больше получить профита?
Но мир жесток, и, несмотря на то, что информации было больше, работать с ней было сильно сложнее (как-то трансформировать и передавать между разными optimization passes), поэтому, в итоге, более простая модель оказалась предпочтительнее.
Меньше потенциальных возможностей, зато профит можно молотить быстрее, и суммарно получается лучше.
Что-то вроде годового self assessment одного из разрабов LLVM.
Мне показалась интересной первая история, про типизированные указатели в LLVM IR.
TL;DR - Раньше с указателем был связан тип, а сейчас не связан.
Казалось бы - данных больше, они богаче, можно больше получить профита?
Но мир жесток, и, несмотря на то, что информации было больше, работать с ней было сильно сложнее (как-то трансформировать и передавать между разными optimization passes), поэтому, в итоге, более простая модель оказалась предпочтительнее.
Меньше потенциальных возможностей, зато профит можно молотить быстрее, и суммарно получается лучше.
👍11🤔5👌2👎1
https://www.phoronix.com/news/Qt-6.5-Beta-Released
Вышла бета qt 6.5, я стараюсь смотреть на новые релизы пораньше, потому что каждый новый релиз QT приносит мне какую-то новую боль (очень уж у них там большие затейники сборку пишут).
"Qt Grpc is the third new module that provides QtGrpc and QtProtobuf. With QtGrpc it enables communication with gRPC services and QtProtobuf for dealing with protobuf .proto-specifications"
Тут не исправить уже ничего, Господь, жги!
Вышла бета qt 6.5, я стараюсь смотреть на новые релизы пораньше, потому что каждый новый релиз QT приносит мне какую-то новую боль (очень уж у них там большие затейники сборку пишут).
"Qt Grpc is the third new module that provides QtGrpc and QtProtobuf. With QtGrpc it enables communication with gRPC services and QtProtobuf for dealing with protobuf .proto-specifications"
Тут не исправить уже ничего, Господь, жги!
Phoronix
Qt 6.5 Beta Released With New Modules
The Qt Group has released Qt 6.5 beta just in time for Christmas as what will be their next toolkit feature release premiering as stable around the end of Q1.
😁9🤯5👍2🐳2
Купил себе планшет.
В последний раз попытка использовать планшет у меня с треском провалилась в конце 19 года. Я тогда купил себе только что вышедший и очень навороченный samsung galaxy s6 amoled, стоил он тогда, ну, скажем, 80к. Может, больше, но точно не меньше.
Характеристики можно посмотреть, например, тут - https://www.samsung.com/ru/tablets/galaxy-tab-s/galaxy-tab-s6-10-5-inch-gray-128gb-lte-sm-t865nzaaser/
Неделю назад мне пришел новенький https://aliexpress.ru/item/1005004733001677.html?sku_id=12000030865279571&spm=.search_results.3.28784aa6tLpBgu
Если вы посмотрите на характеристики, то, если посмотреть с лупой, можно заметить разницу в частоте обновления экрана, и, кажется, это все.
Ну, то есть, аналог bleeding edge из 19 года сейчас является совершенным commodity, и стоит в 4 раза дешевле.
Про что этот пост?
Этот пост про то, что, через 30 - 40 лет (ЕБЖ, конечно), никто вам не нальет чашку кофе в ресторане, сколько бы у вас не было денег, просто потому, что, а зачем что-то делать, если можно вообще ничего не делать, и жить на ББД?
В последний раз попытка использовать планшет у меня с треском провалилась в конце 19 года. Я тогда купил себе только что вышедший и очень навороченный samsung galaxy s6 amoled, стоил он тогда, ну, скажем, 80к. Может, больше, но точно не меньше.
Характеристики можно посмотреть, например, тут - https://www.samsung.com/ru/tablets/galaxy-tab-s/galaxy-tab-s6-10-5-inch-gray-128gb-lte-sm-t865nzaaser/
Неделю назад мне пришел новенький https://aliexpress.ru/item/1005004733001677.html?sku_id=12000030865279571&spm=.search_results.3.28784aa6tLpBgu
Если вы посмотрите на характеристики, то, если посмотреть с лупой, можно заметить разницу в частоте обновления экрана, и, кажется, это все.
Ну, то есть, аналог bleeding edge из 19 года сейчас является совершенным commodity, и стоит в 4 раза дешевле.
Про что этот пост?
Этот пост про то, что, через 30 - 40 лет (ЕБЖ, конечно), никто вам не нальет чашку кофе в ресторане, сколько бы у вас не было денег, просто потому, что, а зачем что-то делать, если можно вообще ничего не делать, и жить на ББД?
Samsung ru
Планшет Samsung Galaxy Tab S6 LTE (серый) - купить | Samsung RU
Планшет Samsung Galaxy Tab S6 SM-T865NZAASER - характеристики, описание, отзывы, цена на официальном сайте. Сравните с другими планшетами и выберите подходящий именно вам.
🔥4🤔4💯4
commit -m "better"
* https://lists.llvm.org/pipermail/llvm-dev/2021-October/153113.html LLVM хочет отказаться от фабрикатора, в пользу github PR's(не потому что он плохой, а потому что его забросили). Печаль. Мне гораздо более симпатичны(и удобны) тулзы, которые делают программисты…
Давненько не было новостей про #ksmbd.
https://www.opennet.ru/opennews/art.shtml?num=58377 - сразу несколько CVE в этой поделке.
В целом, мне больше нечего добавить на эту тему, кроме того, что было уже сказано (разгон основной реализации через #uring лучше), и еще раз сказать, что не надо код в ядро тянуть, его надо оттуда убирать.
https://www.opennet.ru/opennews/art.shtml?num=58377 - сразу несколько CVE в этой поделке.
В целом, мне больше нечего добавить на эту тему, кроме того, что было уже сказано (разгон основной реализации через #uring лучше), и еще раз сказать, что не надо код в ядро тянуть, его надо оттуда убирать.
www.opennet.ru
Уязвимость в модуле ksmbd ядра Linux, позволяющая удалённо выполнить свой код
В модуле ksmbd, включающем встроенную в ядро Linux реализацию файлового сервера на базе протокола SMB, выявлена критическая уязвимость (CVE-2022-47939), позволяющая удалённо добиться выполнения своего кода с правами ядра. Атака может быть проведена без аутентификации…
👍10🔥3🤔1
https://www.openwall.com/lists/oss-security/2022/12/21/6
Оч. смешная бага в парсере procfs. Все ломается, когда в имени процесса есть пробел.
Как-то уже писал, повторюсь. Я принципиально оставил в разрешенных путях для корня IX, и для имен #realm'ов только a-zA-Z0-9_, потому что как ты не экранируй, все равно какой-то инструмент на других символах сломается.
А про взаимодействие ядра и userspace - там везде, конечно, нужен машинно-генерируемый json, без ручных printf.
Я себе клятвенно пообещал, что у меня, в моей личной OS, будет только один syscall, принимающий json, и возвращающий json, все остальное будет мультиплексироваться полями этого json.
Оч. смешная бага в парсере procfs. Все ломается, когда в имени процесса есть пробел.
Как-то уже писал, повторюсь. Я принципиально оставил в разрешенных путях для корня IX, и для имен #realm'ов только a-zA-Z0-9_, потому что как ты не экранируй, все равно какой-то инструмент на других символах сломается.
А про взаимодействие ядра и userspace - там везде, конечно, нужен машинно-генерируемый json, без ручных printf.
Я себе клятвенно пообещал, что у меня, в моей личной OS, будет только один syscall, принимающий json, и возвращающий json, все остальное будет мультиплексироваться полями этого json.
🔥8🤔8❤2👌2🥴2👍1
https://github.com/rui314/mold/releases/tag/v1.8.0
Вышла новая версия #mold. #money
Removed features:
* The experimental macOS/iOS support has been removed from mold. If you want to use it, please use our #sold linker instead.
В целом, дальше IMHO можно не читать, да и следить за проектом тоже - автор попал в классическую (блин, как летит время, она уже успела ей стать!) ловушку open core, когда фичи перемещают из бесплатной версии в платную.
Наверное, можно отметить, что коллеге подкинули денег от "Uber Open Source" - https://github.com/orgs/uber/sponsoring
Nevertheless, пожелаем этому господину удачи, потому что таких безумцев нашему миру явно не хватает!
Вышла новая версия #mold. #money
Removed features:
* The experimental macOS/iOS support has been removed from mold. If you want to use it, please use our #sold linker instead.
В целом, дальше IMHO можно не читать, да и следить за проектом тоже - автор попал в классическую (блин, как летит время, она уже успела ей стать!) ловушку open core, когда фичи перемещают из бесплатной версии в платную.
Наверное, можно отметить, что коллеге подкинули денег от "Uber Open Source" - https://github.com/orgs/uber/sponsoring
Nevertheless, пожелаем этому господину удачи, потому что таких безумцев нашему миру явно не хватает!
GitHub
Release mold 1.8.0 · rui314/mold
mold 1.8.0 is a new release of the high-speed linker.
New features
The --relocatable (or -r) option has been reimplemented to improve its performance and compatibility with the GNU linkers. That o...
New features
The --relocatable (or -r) option has been reimplemented to improve its performance and compatibility with the GNU linkers. That o...
👍6🤡5😁1
#gold #rant про безопасность. Дисклеймер - это личное мнение автора этого блога, не имеющее никакого отношения к компании, в которой он работает.
Есть как бы "общепринятая" точка зрения, что "Security through obscurity" - плохо. Это уже стало мемом, catch phrase, и так далее.
Спросите безопасника, можно ли использовать этот механизм для защиты, и:
* Плохой безопасник рассмеется вам в лицо.
* Хороший - уточнит, как будет использоваться этот механизм, и является ли он основным.
Как вспомогательный механизм, security by obscurity - норм, и википедия, кстати, со мной согласна - https://en.wikipedia.org/wiki/Security_through_obscurity - читайте внимательно, не проглатывайте слова "main", "alone", и похожие.
Если смотреть на эту проблему шире, то безопасность - это не про "безопасно" vs. "небезопасно", а про вероятность.
Почему-то безопасники склонны подходить к проблеме иначе - они ищут параметры в системе, при которых систему можно обмануть, находят, вешают ярлык "not secure", и считают, что хорошо сделали свое дело. Это интересно, но имеет мало смысла, потому что в любой реальной физической системе есть дыра.
Это, конечно, в корне неверно. Нужно считать вероятности исходов, умножать их на возможные потери от исходов, и минимизировать сумму (например).
Почему второй подход не очень принят?
У меня есть два предположения на этот счет:
* Потому что коллеги не очень понимают, что это правильно.
* Понимают, но ничего сделать не могут - такой анализ довольно дорого стоит.
(Есть и третий вариант: все все понимают, но обосновать бюджет гораздо проще лозунгами "у нас тут 100500 малозначащих дыр, давайте их пофиксим, и станет 'безопасно'", чем скучными цифрами про вероятность. Его я решительно отвергаю, как маловероятный)
(Еще раз повторю: все совпадения - случайны, этот текст написан по мотивам обсуждения одного из моих постов про "замороженную энтропию" с несколькими коллегами)
Есть как бы "общепринятая" точка зрения, что "Security through obscurity" - плохо. Это уже стало мемом, catch phrase, и так далее.
Спросите безопасника, можно ли использовать этот механизм для защиты, и:
* Плохой безопасник рассмеется вам в лицо.
* Хороший - уточнит, как будет использоваться этот механизм, и является ли он основным.
Как вспомогательный механизм, security by obscurity - норм, и википедия, кстати, со мной согласна - https://en.wikipedia.org/wiki/Security_through_obscurity - читайте внимательно, не проглатывайте слова "main", "alone", и похожие.
Если смотреть на эту проблему шире, то безопасность - это не про "безопасно" vs. "небезопасно", а про вероятность.
Почему-то безопасники склонны подходить к проблеме иначе - они ищут параметры в системе, при которых систему можно обмануть, находят, вешают ярлык "not secure", и считают, что хорошо сделали свое дело. Это интересно, но имеет мало смысла, потому что в любой реальной физической системе есть дыра.
Это, конечно, в корне неверно. Нужно считать вероятности исходов, умножать их на возможные потери от исходов, и минимизировать сумму (например).
Почему второй подход не очень принят?
У меня есть два предположения на этот счет:
* Потому что коллеги не очень понимают, что это правильно.
* Понимают, но ничего сделать не могут - такой анализ довольно дорого стоит.
(Есть и третий вариант: все все понимают, но обосновать бюджет гораздо проще лозунгами "у нас тут 100500 малозначащих дыр, давайте их пофиксим, и станет 'безопасно'", чем скучными цифрами про вероятность. Его я решительно отвергаю, как маловероятный)
(Еще раз повторю: все совпадения - случайны, этот текст написан по мотивам обсуждения одного из моих постов про "замороженную энтропию" с несколькими коллегами)
👍9🤔9❤5🔥2
Я, между прочим, запилил первую версию CI - https://github.com/pg83/ix/blob/main/pkgs/die/scripts/ci
Нет, я не упоролся, это вот такой вот CI - 75% пользы за 1% вложений.
Раньше у меня не было знаний про то, как ломают сборку новые версии софта, а теперь они, в каком-то виде, есть.
Могу сделать ssh на сборочный сервер, и сделать там tail на лог.
Думаю, так оно проработает довольно долго, пока не кончится место, и нужно будет что-то радикально улучшить.
Ладно, на самом деле, основная работа в этой задаче была связана не с этим скриптом, а вот с этим вот списком - https://github.com/pg83/ix/blob/main/pkgs/set/ci/unwrap/ix.sh, и починкой всех пакетов, которые должны собираться.
Кстати, проект принимает посильную помощь, и, если у вас есть свободные 8cpu/16gb(еще лучше - 16cpu/32gb), и желание повозиться с CI, github actions, и всем таким прочим - пишите.
Нет, я не упоролся, это вот такой вот CI - 75% пользы за 1% вложений.
Раньше у меня не было знаний про то, как ломают сборку новые версии софта, а теперь они, в каком-то виде, есть.
Могу сделать ssh на сборочный сервер, и сделать там tail на лог.
Думаю, так оно проработает довольно долго, пока не кончится место, и нужно будет что-то радикально улучшить.
Ладно, на самом деле, основная работа в этой задаче была связана не с этим скриптом, а вот с этим вот списком - https://github.com/pg83/ix/blob/main/pkgs/set/ci/unwrap/ix.sh, и починкой всех пакетов, которые должны собираться.
Кстати, проект принимает посильную помощь, и, если у вас есть свободные 8cpu/16gb(еще лучше - 16cpu/32gb), и желание повозиться с CI, github actions, и всем таким прочим - пишите.
GitHub
ix/pkgs/die/scripts/ci at main · pg83/ix
ix package manager. Contribute to pg83/ix development by creating an account on GitHub.
🎄7🔥6❤2👍2👏2😐1
https://emiruz.com/post/2022-12-28-composable-sql/
Коллега генерит SQL запросы, используя M4. Это тот самый M4, на котором написаны autoconf макросы, и который отвечает за генерацию configure из них. Наверное, один из самых старых макропроцессоров.
Вспоминается анекдот:
Один пацан писал все на JavaScript, и клиент, и сервер, говорил что нравится, удобно, читабельно. Потом его в дурку забрали, конечно.
Коллега генерит SQL запросы, используя M4. Это тот самый M4, на котором написаны autoconf макросы, и который отвечает за генерацию configure из них. Наверное, один из самых старых макропроцессоров.
Вспоминается анекдот:
Один пацан писал все на JavaScript, и клиент, и сервер, говорил что нравится, удобно, читабельно. Потом его в дурку забрали, конечно.
😁17🤣10🔥7