Кент Оверстрит (Kent Overstreet) представил выпуск файловой системы Bcachefs 1.33.0. Выпуск охватывает два пакета: bcachefs-kernel-dkms с модулем ядра, собираемым при помощи системы DKMS (Dynamic Kernel Module Support), и bcachefs-tools с запускаемой в пространстве пользователя утилитой bcachefs, реализующей команды для создания (mkfs), монтирования, восстановления и проверки ФС. Пакеты собраны для Debian, Ubuntu, Fedora, openSUSE, NixOS и Arch Linux. DKMS-модуль поддерживает работу с ядрами Linux, начиная с 6.16...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=64396
Молодец этот Кент. Не сдается. И снежинок этих вертел.
> И снежинок этих вертелкто кого вертел не понятно:
> Проведена подготовка кода к переходу на использование языка Rust
>> И снежинок этих вертел
> кто кого вертел не понятно:
>> Проведена подготовка кода к переходу на использование языка RustТы бы лучше дальше процитировал. 2500 гото было, КАРЛ??!
Не фанат Линуса, но начинаю понимать за что он его не взлюбил..
> Не фанат Линуса, но начинаю понимать за что он его не взлюбил..А что не так? Думаешь Линус не знает какой овнокод в ядре?
В linux-master/fs/ext4 - 1243 goto
linux-master/fs/btrfs - 3006 goto
А вообще в fs этих goto over9000.Просто на ЭТОМ писать иначе просто неудобно.
Даже нормальной обработки ошибок нет. Даже самих ошибок!
goto - очень удобная вещь для определённых операций.
Но тем, кто больше 10 строчек на процедуру не воспринимает - не понять.
> очень удобная вещь для определённых операцийПолностью согласен.
Goto очень удобен для use-after-free, double-free и забыть освободить ресурсы.
Работает просто шикарно, используется даже чаще чем хотелось бы.
> Goto очень удобен для use-after-free, double-free и забыть освободить ресурсы.
> Работает просто шикарно, используется даже чаще чем хотелось бы.Для этого в С есть RAII (да-да, хоть и расширением).
Также открываем include/linux/cleanup.h и смотрим.
> да-да, хоть и расширениемКостылем прилепленным с боку, вы хотели сказать.
Ну есть. И что дальше?))
В ядре все равно овнякают гоутушечки.
>> да-да, хоть и расширением
> Костылем прилепленным с боку, вы хотели сказать.В си расширение компилятора - это костыль. Тогда в расте без стандарта завязка на один компилятор из коробки - это другое понимать надо?
> Ну есть. И что дальше?))
> В ядре все равно овнякают гоутушечки.Специально для неумеющих читать еще раз ссылку даю include/linux/cleanup.h
> В си расширение компилятора - это костыль.Ага.
Это значит что стд настолько убогая, что для простейших действий приходится велосипедить.> Тогда в расте без стандарта
Без в стандарта в котором буквально написано "в хз как сложить 2 числа! пусть будет UB" (даже не implementation defined)
> завязка на один компилятор из коробки
У нас было 3 (на самом деле больше)) компилятора, один с ГНУтым вендорлоком, второй отличался от первого по результатам компиляции, а третий от мелкомягких...
И ни один не реализовывал недостандарт полностью.> - это другое понимать надо?
Да, вы правильно понимаете.
> Специально для неумеющих читать еще раз ссылку даю include/linux/cleanup.h
Зачем мне ссылка на какой-то клинап, если выше
ext4 - 1243 goto
btrfs - 3006 goto
Ну и шо, помог тебе твой cleanup?))
>> В си расширение компилятора - это костыль.
> Ага.
> Это значит что стд настолько убогая, что для простейших действий приходится велосипедить.Во-первых, в ядре своя стд либа. Во-вторых, кто сказал, что можно в ядерном расте стд использовать?
>> Тогда в расте без стандарта
> Без в стандарта в котором буквально написано "в хз как сложить 2
> числа! пусть будет UB" (даже не implementation defined)Ты понимаешь что это означает конретно к сложению двух целых?
>> Специально для неумеющих читать еще раз ссылку даю include/linux/cleanup.h
> Зачем мне ссылка на какой-то клинап, если выше
> ext4 - 1243 gotoХороший пример, кстати. Надежнейшая фс с примитивным goto. Аналогов на ржавом нет.
> Во-первых, в ядре своя стд либа.А почему? Может стандартная стд была слишком унылая?
> Во-вторых, кто сказал, что можно в ядерном расте стд использовать?
Пункт 5.1.2.3/5:
The least requirements on a conforming implementation are:
— At sequence points, volatile objects are stable in the sense that previous accesses are complete and subsequent accesses have not yet occurred.
— At program termination, all data written into files shall be identical to the result that execution of the program according to the abstract semantics would have produced.
— The input and output dynamics of interactive devices shall take place as specified in 7.19.3.
Т.е без стд ты или занимаешься велосипедостроением, или сидишь без доступа к файлам и interactive devices.> Ты понимаешь что это означает конретно к сложению двух целых?
Угу.
А еще понимаю что наличие UB ломает конформанс (параграф 4).
Тебе норм программа без конформанса?>> ext4 - 1243 goto
> Хороший пример, кстати. Надежнейшая фс с примитивным goto. Аналогов на ржавом нет.Да, пример просто отличный.
Я даже процитирую анона из другой темы[1]
CVE-2022-1184 - ваще шикарная.
А теперь микрофон и все лавры передаются ox55ff с лора
"в 2013 году он закоммитил вот такую портянку github.com/torvalds/linux/commit/dc6982ff4db1f47da73b1967ef5302d6721e5b95Через 9 лет (2022 год) тысячи глаз наконец-то рассмотрели там уязвимость CVE-2022-1184.
Которую смогли исправить только со второй попытки:
первая github.com/torvalds/linux/commit/65f8ea4cd57dbd46ea13b41dc8bac03176b04233
вторая github.com/torvalds/linux/commit/61a1d87a324ad5e3ed27c6699dfc93218fcf3201ext4: check if directory block is within i_size
Бгг. Видимо Теодорчик решил, что в его коде всё within, ведь "индекс проверять надо если программист решил что тут есть шанс того, что он окажется некорректным", а оказалось, что не within. Это какое-то шанс-ориентированное программирование. Сишник к успеху шёл, не получилось, не фартануло.
Т.е у нас "Надежнейшая фс" в которой такие уязвимости живут десяток лет.
Да, на расте такого точно нету))-----------------------------
[1] opennet.ru/openforum/vsluhforumID3/136231.html#130
> Да, на расте такого точно нету))То-есть брякнувшийся на несколько часов клаудфлар мне недавно привидился? Целиком и полностью заслуга Rust с его чудесатым unwrap. И да, тоже - вот - буфера отменеджить не смогли. Сломав половину интернета.
> То-есть брякнувшийся на несколько часов клаудфлар мне недавно привидился? Целиком и полностью заслуга Rust с его чудесатым unwrap. И да, тоже - вот - буфера отменеджить не смогли. Сломав половину интернета.Т.е ты сравниваешь баг которые на 3 часа положил примерно 20% (или сколько там у клаудфари доля рынка) интернета.
И то что жило почти 10 лет в ядре линукс?
Да ты просто гейний!
>> Во-первых, в ядре своя стд либа.
> А почему? Может стандартная стд была слишком унылая?"Унылая" - это не технический термин, понятия не имею, что ты под этим понимаешь.
>[оверквотинг удален]
> — At sequence points, volatile objects are stable
> in the sense that previous accesses are complete and subsequent accesses
> have not yet occurred.
> — At program termination, all data written into
> files shall be identical to the result that execution of the
> program according to the abstract semantics would have produced.
> — The input and output dynamics of interactive
> devices shall take place as specified in 7.19.3.
> Т.е без стд ты или занимаешься велосипедостроением, или сидишь без доступа к
> файлам и interactive devices.Ну вот о том и речь.
>> Ты понимаешь что это означает конретно к сложению двух целых?
> Угу.Видимо нет. Ибо флаг переполнения раст проверяет только в дебаг сборке, а в проде лишь гарантирует цикличность. А на кой это надо, если есть функции для сложения с проверкой на overlfow, что более явно? В си они тоже есть в последнем стандарте, а до этого есть интринсики gcc. Также есть asan для проверки переполнения в дебаге.
>[оверквотинг удален]
> Которую смогли исправить только со второй попытки:
> первая github.com/torvalds/linux/commit/65f8ea4cd57dbd46ea13b41dc8bac03176b04233
> вторая github.com/torvalds/linux/commit/61a1d87a324ad5e3ed27c6699dfc93218fcf3201
> ext4: check if directory block is within i_size
> Бгг. Видимо Теодорчик решил, что в его коде всё within, ведь "индекс
> проверять надо если программист решил что тут есть шанс того, что
> он окажется некорректным", а оказалось, что не within. Это какое-то шанс-ориентированное
> программирование. Сишник к успеху шёл, не получилось, не фартануло.
>
Методичку достал? Открою тебе секрет, что в любом проекте есть баги. В тех, которые все используют, багов обычно больше. Исправили и хорошо. Тем более у нее уровень medium. Но тебе почему-то спать не дает аж с 2022 года.
> Да, на расте такого точно нету))
На расте нет проекта такого уровня. Так что не о чем тут спорить.
> "Унылая" - это не технический термин, понятия не имею, что ты под этим понимаешь.Конечно не понимаешь.
Если бы тебе доводилось работать с std в которой нет по факту ничего, то возможно поняла.> а в проде лишь гарантирует цикличность.
Вот именно! Гарантирует!!
А как в dыpяшkе? А фиг его знает, зависит от компилятора.> А на кой это надо, если есть функции для сложения с проверкой на overlfow, что более явно?
Если нужна явная проверка - вызываешь явную функцию checked_add которая возвращает optional. Чего тут непонятного?
> В си они тоже есть в последнем стандарте,
А ведро на каком? И сколько оно до него будет ползти, если на С11 перешли в 22 году?
> а до этого есть интринсики gcc.
Мы про стандарт или про вендорлок?
> Также есть asan для проверки переполнения в дебаге.
И что, сильно помогает?))
> Методичку достал?
Ну, про "надежную фс" заливать ты первой начала.
> Открою тебе секрет, что в любом проекте есть баги.
Баги да, а быdloкод уровня "мамкой клянусь тут все within" далеко не во всех.
> В тех, которые все используют, багов обычно больше.
С чего вдруг? Может пруфов?
> Но тебе почему-то спать не дает аж с 2022 года.
Потому что:
а) 22 год это всего пару лет назад, по меркам ядра - буквально вчера.
б) он отлично иллюстрирует уровень СИшных дидов
в) он великолепно поджигает пятые точки
Это как классическая дырень в ГРУБ2, можно возвращаться снова и снова.> На расте нет проекта такого уровня. Так что не о чем тут спорить.
Простите, а какого уровня?
Такого уровня дырявости? Да, 100% нету
>> а в проде лишь гарантирует цикличность.
> Вот именно! Гарантирует!!
> А как в dыpяшkе? А фиг его знает, зависит от компилятора.Зачем она нужна? Чтобы проверять переполнение? Есть же отдельные функции на это с явной сигнатурой. В си они тоже есть.
>> А на кой это надо, если есть функции для сложения с проверкой на overlfow, что более явно?
> Если нужна явная проверка - вызываешь явную функцию checked_add которая возвращает optional.
> Чего тут непонятного?Она всегда лучше явная. А по умолчанию лучше забить как раз.
>> а до этого есть интринсики gcc.
> Мы про стандарт или про вендорлок?Раз ты сравниваешь с растом и не хочешь брать последний стандарт, то бери расширение компилятора. И это не вендорлок. Вендорлок - это когда, ты не можешь ни на что повлиять и вынужден пользоваться поставщиком. Как бы изначально ядро GNU Linux и пользовалось GNU компилятором - тут все логично. Проприетарный компилятор ms или llvm под другой лицензией нужен корпам сам понимаешь для чего. Так что не понятно, про какой вендор лок ты говоришь, когда как раз gcc под GNU лицезнией и получить его код ты обязан мочь по ее условию.
>> Также есть asan для проверки переполнения в дебаге.
> И что, сильно помогает?))Вмысле? Он находит переполнения также как раст в дебаге.
>> Методичку достал?
> Ну, про "надежную фс" заливать ты первой начала.А где она не надежная? Из-за какой-то medium сve?)))
>> В тех, которые все используют, багов обычно больше.
> С чего вдруг? Может пруфов?Ну вот ты с чем сравниваешь? Давай покажи фс уровня ext на расте, чтобы использовалась также повсеместно и тогда можно сравнить. Но мы же оба знаем, что такой нет.
>> Мы про стандарт или про вендорлок?
> Раз ты сравниваешь с растом и не хочешь брать последний стандарт, то бери расширение компилятора. И это не вендорлок. Вендорлок - это когда, ты не можешь ни на что повлиять и вынужден пользоваться поставщиком.Ага, а если комилятор после компиляции кода заражает его З̶П̶П̶П̶ гнураком?
> Как бы изначально ядро GNU Linux и пользовалось GNU компилятором - тут все логично.
Логично делать вендорлок на ГНУтые расширения.
А кстати по какой причине вообще возникла необходимость в расширениях?
Возможно язык был убог и беден?
> Вмысле? Он находит переполнения также как раст в дебаге.Так чего постоянно какие-то уязвимости из-за переполнения?
Может раз он необязательный, на него просто забивают?> А где она не надежная? Из-за какой-то medium сve?)))
Я просто оставлю это тут
https://lore.kernel.org/stable/20231205122122.dfhhoaswsfscuh.../> Ну вот ты с чем сравниваешь? Давай покажи фс уровня ext на расте, чтобы использовалась также повсеместно и тогда можно сравнить. Но мы же оба знаем, что такой нет.
Аргументы уровня "сперва добейся"? Вон винда используется на 70+% десктопов, а лялекс на 4% ))
То что нечто используется повсеместно, не всегда говорит о том что что-то хорошее.
Х11 или GRUB2 тому примеры.
>> Без в стандарта в котором буквально написано "в хз как сложить 2
>> числа! пусть будет UB" (даже не implementation defined)
> Ты понимаешь что это означает конретно к сложению двух целых?По идее, изначально это сделали только ради архитектур с исключениями на знаковом переполнении, но потом стали упарываться оптимизациями - а она ему как раз.
Не важно, в линуксе поведение определили через -fno-strict-overflow.
https://github.com/torvalds/linux/blob/master/Makefile#L1090
>> завязка на один компилятор из коробки
> У нас было 3 (на самом деле больше)) компилятора, один с ГНУтым
> вендорлоком, второй отличался от первого по результатам компиляции, а третий от
> мелкомягких...
> И ни один не реализовывал недостандарт полностью.Некорректное сравнение. Если посмотришь сюда, то увидишь, что есть 3 компилятора с поддержкой с99. И те вещи, которые где-то не реализованы - минорщина. А вот у раста только 1 компилятор, понимаешь один! То есть выбора нет вообще.
> Если посмотришь сюдаhttps://en.cppreference.com/w/c/compiler_support.html
> Некорректное сравнение. Если посмотришь сюда, то увидишь, что есть 3 компилятора с поддержкой с99. И те вещи, которые где-то не реализованы - минорщина.Хахаха!
Я открыл стандарт и не увидел ничего похожего на "это минорная и нафиг не нужная вещь, можете не реализовывать" ;)
Компилятор или реализует стандарт или не реализует.
Не бывает "реализует на полшишечки".
Или "вы не понимаете это другое!!" ?> А вот у раста только 1 компилятор, понимаешь один! То есть выбора нет вообще.
Да, и это отлично.
Есть одна реализация, не может быть ситуации "я скомпилял ОДИН И ТОТ ЖЕ КОД другим компилятором" и программа теперь убивает юзеров.
>> Некорректное сравнение. Если посмотришь сюда, то увидишь, что есть 3 компилятора с поддержкой с99. И те вещи, которые где-то не реализованы - минорщина.
> Хахаха!
> Я открыл стандарт и не увидел ничего похожего на "это минорная и
> нафиг не нужная вещь, можете не реализовывать" ;)
> Компилятор или реализует стандарт или не реализует.
> Не бывает "реализует на полшишечки".
> Или "вы не понимаете это другое!!" ?Стандарты, особенно последних версий, состоят из фичей. Если она не нужна, то какая разница поддерживается она компилятором или нет? Главное, что все остальное, что используется, поддерживается.
>> А вот у раста только 1 компилятор, понимаешь один! То есть выбора нет вообще.
> Да, и это отлично.
> Есть одна реализация, не может быть ситуации "я скомпилял ОДИН И ТОТ
> ЖЕ КОД другим компилятором" и программа теперь убивает юзеров.Открою тебе сейчас секрет. Готов? Смена компилятора требует тестирования.
> есть 3 компилятора с поддержкой с99Вот это достижение, что в 2025 нашлось целых три компилятора которые осилили окаменелый дидовый с99. Прям вах!
Ничего что ядро перевели на с11 уже несколько лет как?
А этот устарелый мусор нужен только для легаси проектов.
>> есть 3 компилятора с поддержкой с99
> Вот это достижение, что в 2025 нашлось целых три компилятора которые осилили
> окаменелый дидовый с99. Прям вах!Ну может их и больше, лень искать. Переносимость си сильно сильнее чем у раста.
> Ничего что ядро перевели на с11 уже несколько лет как?
> А этот устарелый мусор нужен только для легаси проектов.Как минимум это нужно для бутстрапа компилятора. Но, конечно, растовщики такого термина не знают. У них неделя - уже старое.
И да, goto всерьёз лучше привычных в ооп call-return, потому что call-return далеко не бесплатные.
> И да, goto всерьёз лучше привычных в ооп call-return, потому что call-return далеко не бесплатные.Не бесплатные в каком смысле?
В смысле ресурсов выполнения (глубина стека и тд)?
В смысле сколько часов пограммист разгребало гото-овна?
В смысле сколько пользователей получило CVE после того как пограммист запутался в метках?Выше привели пример из биндера - функция на 1000+ строк кода.
Какова ее цикломатическая сложность?
Насколько легко в ней можно разобраться?
зы: даже Керниган и Ритчи в книге Kernighan & Ritchie 1988 глава 3.8 Goto and Labels пишут следущееC provides the infinitely-abusable goto statement, and labels to branch to. Formally, the goto
statement is never necessary, and in practice it is almost always easy to write code without it.
We have not used goto in this book.
> Выше привели пример из биндера - функция на 1000+ строк кода.
> Какова ее цикломатическая сложность?
> Насколько легко в ней можно разобраться?Ну, тем, кто не осилил в goto - лучше близко не подходить :)
Abusable != bad. Ты можешь на автомобиле людей возить, а можешь их давить, но это не значит, что все автомобили - зло.
> Ну, тем, кто не осилил в goto - лучше близко не подходитьДа-да, это был просто неправильный пограммист.
Вот если был бы Настоящий Сишник, то не было бы CVE! )))> Abusable != bad. Ты можешь на автомобиле людей возить, а можешь их давить, но это не значит, что все автомобили - зло.
Аналогия странная, но ок.
Если от авто отваливаются колеса и давят пешеходов, то он в конце-концов запрещается.
Аналогия простая.
Отвёрткой можно шурупы закручивать, а можно в глаз дать.
Молотком можно гвозди забивать, а можно микроскопы крошить.
В духовке можно тортик испечь, а можно хомячка.
Почти у любого нормального инструмента возможен абюз - но это не повод.
> Аналогия простая.Отличная аналогия! Раз ты про инструмент, может продолжим?
Работяги сували пальчики в гильтины и прессы, поэтому их стали выпускать с 2 кнопками, а с одной - запретили. Частично помогло, но особо умные во вторую кнопку запихивали зубочистку/спичку и продолжали себя калечить. В оборудование начали добавлять оптические и прочие датчики, а оборудование без них еще вроде не запретили, но продать кому-то адекватному фиг получится.> Почти у любого нормального инструмента возможен абюз - но это не повод
Еще как повод! Вся ТБ на этом строится.
Так в авто добавли всякие ремни, абс, добавляют распознавание препятствий, автоторможение перед пешиком и тд. И потом оно становится обязательным - авто без них просто за-пре-ще-ны.
> Отличная аналогия! Раз ты про инструмент, может продолжим? Работяги сували пальчики в гильтины и прессы, поэтому их стали выпускать с 2 кнопками, а с одной - запретили.А надо-то было просто сказать: инструмент - плохо, убираем.
> А надо-то было просто сказать: инструмент - плохо, убираем.Где же убираем?
Вот только что пошел и проверил - гильотина стоит на месте. С двумя кнопками и "лазерной" шторкой.Инструмент как был, так и остался. Просто его заменили/модернизировали на более удобный и безопасный вариант. Это и называется развитие.
А кто-то в развитие не может, поэтому как 50 лет назад лепил goto, так и сейчас лепит.Ну и сам факт, что с 2000+ их количество уменьшили до 600 (да, корявыми макросами, но тем не менее) показывает что они не обязательны и можно сделать иначе.
> Ну и сам факт, что с 2000+ их количество уменьшили до 600
> (да, корявыми макросами, но тем не менее) показывает что они не
> обязательны и можно сделать иначе.Можно сделать иначе != нужно сделать иначе.
1) Это радикально нестандартный код, который не будет подлежать майнтенансу.
2) В таком коде разберется примерно 0 человек и фигачить и дальше будет 1 Кент.Но это не особая проблема после вылета из майнлайна уже, есть с десяток более серьезных проблем :))
> Вот только что пошел и проверил - гильотина стоит на месте. С
> двумя кнопками и "лазерной" шторкой.Вы неправильно гильотины используете! Кто ж туда руки то сует! Голову надо, го-ло-ву! А руки как раз - вот - технология hands free, на обе кнопки хватит.
> перед пешиком и тд. И потом оно становится обязательным - авто
> без них просто за-пре-ще-ны.Ну тогда насыпьте ссылок на акты законодательства требующих это все? А то жигули вроде даже без ремней безопасности ухитряются как-то продавать.
Про то какие пункты законодательства требуют АБС, распознавание препятствий и автоторможение перед пешиком (по каким критериям его опознавать?) - вообще загадка. Нет такого законодательства. Анон сам придумал это. И все остальное - аналогично походу. Держите свои гестаперские фантазии при себе. Иначе с вами случится то же что с офицерами гестапы.
> А то жигули вроде даже без ремней безопасности ухитряются как-то продавать.Речь про автомобили, а не ведро с гайками. Ну и про нормальные страны, а не про те, в которых чтобы обойти норматив в Lada Niva Legend ставили одну боковую подушку водителя. Что кстати говорит о том, что какие-то требования есть даже в РФ.
Но раз просите Regulation, (EC) No. 661/2009 обязывает все новые машины оснащать ESС/ESP. А АБС как бы не обязателен... но ESP запрещено использовать без ABS))
В сша обязательное наличие ABS - FMVSS 126 за September 1, 2012.
Даже в индии есть требование, только уже лень искать закон.Автоторможение (automated emergency braking AEB) обязательное - в 2022 были приняты изменения ADAS, в которые были включены три системы Road system, AEB pedestrian system и Urban AEB system. Тоже самое про удержание в полосе ALKS. Смотреть Regulation 131, 152, 157.
Достаточно?))
Так "Анон сам придумал это." или ты просто газифицируешь лужу?----------------------------------------
Кстати, если вернуться к прессу.
Есть "ГОСТ Р 53010-2008 Прессы гидравлические. Требования безопасности"
Который описывает много чего, вроде автоматических заграждений, защитных клапанов, и есть такие пункты:5.3.16 Двуручные устройства управления
c) Запрещается подавать выходные сигналы, используя одну руку, руку и локоть той же руки, предплечье(я) или локоть(и), руку и другую часть тела.(остается только догадываться какою часть тела имели в виду)))
5.5.7 Двуручные устройства управления должны соответствовать ГОСТ ИСО 13851.
Запрещается запуск выходных сигналов при помощи одной руки или руки и локтя той же руки.И как бы все!
>> А то жигули вроде даже без ремней безопасности ухитряются как-то продавать.
> Речь про автомобили, а не ведро с гайками.Вопрос вполне конкретный - про запреты. Где регуляторные акты которые все перечисленное запрещают?
> В сша обязательное наличие ABS - FMVSS 126 за September 1, 2012.
В США можно легально ездить на реставрированном рыдване 1950 года. И ничего за это не будет. Какой, нахрен, у него там ESC и ABS? Вас послушать - wheeler dealer'ы - это махровые криминалы-уголовники, а не шоумэны и бизнесок.
Нельзя ли пояснить, как эти господа существуют - и даже про них снимают шоу - именно в нормальных странах? Или таки - наличие ABS не является критерием выпуска авто на дорогу, м? :)
> Даже в индии есть требование, только уже лень искать закон.Для начала расскажи как wheeler dealer'ов еще на раздербанили за якобы нарушение якобы запретов чего либо. А то оказывается что про запреты нам тут стрындели с три короба.
> system и Urban AEB system. Тоже самое про удержание в полосе
> ALKS. Смотреть Regulation 131, 152, 157.Вот только - это все не имеет ничего общего с полным запретом и по дорогам отлично ездит куча авто без этого всего. Странно, да? :)
> Так "Анон сам придумал это." или ты просто газифицируешь лужу?
Анон как я вижу - нехило газифицирует лужи. Выдав какие-то регуляции за тотальныые запреты, что довольно далеко от истины.
> Есть "ГОСТ Р 53010-2008 Прессы гидравлические. Требования безопасности"
А есть куча всяких штук которые можно условно назвать ЭТИМ и таки они - существуют, производятся и проч. Ну да, если кто будет масспрод на этом и работяга покалечится - ему может что-то такое и припомнят как отягчаюшее обстоятельство.
> (остается только догадываться какою часть тела имели в виду)))
Эврика, тут господа с гильотиной проходили. Как раз руки будут свободные - чего смотришь?!
> И как бы все!
Что - все? Реально навалом весьма опасных устройств везде. Даже обычной болгаркой можно уделаться так что потом скорая замучается откачивать. Просто получи в свою тушку куски разлетевшегося диска, узнаешь в чем прикол. А уж циркулярок которыми можно влет отпилить себе все что отпиливается - везде немеряно.
> В США можно легально ездить на реставрированном рыдване 1950 года. И ничего за это нев европе тоже можно. Правда, дороговато получается, но это не из-за отсутствия abs.
> будет. Какой, нахрен, у него там ESC и ABS?у него еще и ремней нет. Да, так тоже можно. И нельзя установить свои - раз производителем они не были предусмотрены, езди так.
А как получают серьезные травмы владельцы китайского хлама, ВНЕЗАПНО затормозившего потому что ему померещилось там что-то впереди - полный ютруп.
Зато все сертификации пройдены и все бумажечки подписаны.
(цена жырного гейропейского чинуши, подписывающего бумажечку, которую сам же и придумал - разумеется, включена в ценник.)
Есть же варианты решения.
Defer например.
Или нестет-функция (возможно даже инлайн).Чем это плохо?
Нестинг убирает линейность кода, и в этом проблема.
Ту же сложную логику удобнее читать линейно, а не прыгая от вызова к вызову.
> Нестинг убирает линейность кода, и в этом проблема.
> Ту же сложную логику удобнее читать линейно, а не прыгая от вызова к вызову.То ли дело goto.
Оно ж линей... прыг на метку афыбка_нумер_8 где-то в опе функции.
А там if и еще два прыжка на почистить_входные_данные и выйти_за_пределы_массива.
Ну и да, goto - гораздо лучше break/continue, особенно в случае вложенных циклов, потому что явно видно точку выхода.
Call chain - тоже трындецово abusable, особенно когда размазан по 100500 классов.
"Бытовые" цепочки вызовов глубже пары десятков, маршаллинга и рекурсии не считая, должны умереть.
> Call chain - тоже трындецово abusable, особенно когда размазан по 100500 классов.А если нет?
> "Бытовые" цепочки вызовов глубже пары десятков, маршаллинга и рекурсии не считая, должны умереть.
Но почему? У тебя стек не больше 2 десятков глубиной)?
Если архитектура нормальная, то абстракции легко читаются и понимаются.
Когда этих абстракций становится нахлёстнуто более чем овердопуркуа - искать ошибку в этом стеке становится весёлой затеей. И нет, юнит-тесты не помогут, они годятся только для воспроизводимого стейта. Exhaustive юнит-тесты - ну, удачи в освоении вселенной.
И есть ещё другой момент.
Абстракции абстракциями, но регистров всего ничего. Даже при регистровой конвенции. Не говоря уже о стековой.
Особенно мне нравится когда в tight inner loop лепят вызов по целому стеку методов из двух строчек, особенно там, где инлайна или нет, или его забыли.
Про то, что вызов метода - это как минимум взятие адреса структуры кроме самого вызова (а вызов - это мало того, что стековая операция, так ещё и сброс части предикторов) - почти не знают.
> We have not used goto in this book.потому что самая длинная в ней программа - прототип alloc()
И в ней строчек этак 15.
> кто кого вертел не понятно:Да сам себя он повертел случайно. Или закономерно. Впрочем какая разница. Главное что повертел, при том конкретно так.
Снежинок? Это ты про кого? Про NixOS?
Он сам снежинкой оказался, судя по "переходу" на маргинальный язык ради перехода.
> Он сам снежинкой оказался, судя по "переходу" на маргинальный язык ради перехода.Смешно.
Он топил за раст еще до того, как bcachefs попало в мейнлайн.
В 2024 годы дебиллианцы дропнули bcachefs-tools из Debian Stable, потому что у них была как обычно древняя протухшая версия rustc.И про "сделать ФС на расте" он говорил уже давно:
"We've got some initial work done on transitioning to Rust, with plans for much more" (bcachefs.org)
Filesystem in Rust - Kent Overstreet (youtube.com/watch?v=WiPp9YEBV0Q)Просто раньше это было невозможно из-за того, что си был безальтернативным в ядре и был отличный выбор - или пиши для ядра на си, или не пиши вообще.
А сейчас дидовье копротивление частично побороли и можно планировать ФС на расте.
И по этому он теперь это делает вне основной ветки разработки ядра.Перемога!
> И по этому он теперь это делает вне основной ветки разработки ядра.Простите, но рассуждения и логические выводы не ваш конек. Мои соболезнования.
Делает он это вне основной ветки отнюдь не по этому. Более того, из мейнлайна выкинули именно сишный вариант драйвера.
ФС будущего. Очень жаль, что получилось, как получилось.
В будущем и посмотрим на это все
а пока что её удалили из ядра.
Как раз допилит в том темпе котором считает нужным. А потом обратно примут, делов то.
DKMS - зачем в ядро? И так отлично работает, только не очень молодежно, но тут некуда деваться.
Ну таки да! С обочины жизни, куда тебя почему-то скинули, можно победоносно вернуться!
... а можно тихо и незаметно завернуть ласты :( Потому что кто там через год ещё-один-проект-вокруг-линугса помнить будет?Будем посмотреть!(С)
Эту фс с постоянными крупными изменениями в коде можно относить в статус бета/разработки. Почему он так рано влетел в ядро непонятно.
> Почему он так рано влетел в ядро непонятно.Пропихнули.
Так оно ЕМНИП было экспериментальным.
Т.е вроде в основной ветке, но "сами виноваты")Думаю если бы Кент не бычuлся и не ломал процессы, оно бы осталость в ядре.
Наш ответ чемберлену! То есть зфс. По факту очень громко обделались, как не было в линуксе нативно приличной ФС, так и нет. Даже нтфс местами выглядит привлекательней. Бтрфс так и не допилили и вряд ли уже.Ну вот тут и появился на горизонте Кент-спаситель. Возрадовался весь линуксовый народ да в колени бросился. А он возьми и мессией себя возомни. Это при живом то. Ну его потом и поперли. Нечего в чужой монастырь да со своим уставом
> Почему он так рано влетел в ядро непонятно.На Яжефине женился? :)
> Почему он так рано влетел в ядро непонятно.btrfs приняли в ядро в 2009, если что.
bcachefs явно стабильнее, чем btrfs в своё время (а может быть - страшно сказать - и сейчас).
дык, это будущее такое вот. Зато на хрусте.
Собаки лают, караван идёт.Успехов Кенту.
> Успехов Кенту.Это - да. Ибо! Ъ
Судя по всему раз не в ведре, то решил на раст перевести, польза проекту.
глядя на changelog, её ещё 10 лет нельзя использовать будет
> глядя на changelog, её ещё 10 лет нельзя использовать будеткак будто через 10 станет можно?
С другой стороны - ну а минусы, минусы-то какие?!
Используй не глядя на changelog, в чём проблема?
Проведена подготовка кода к переходу на использование языка Rust. Число используемых в коде операций goto сокращено с 2500 до 600.он чо, с бейсика переходит?
имеются ввиду метки в C
С сей. Там это идиоматика для обработки ошибок инициализации.
> С сей. Там это идиоматика для обработки ошибок инициализации.в ядре уже лет 10 не применяют в новом коде
> Проведена подготовка кода к переходу на использование языка Rust.Вовремя выкинули из ядра.
Это временно. Из lore.kernel.org рассылки никто не выгонял, а анонс именно там.
> Это временно. Из lore.kernel.org рассылки никто не выгонял, а анонс именно там.Так это теперь - просто нишевая тусовочка кента и его кексов. Ни кого ни к чему не обязывающая уже.
А так то крутая идея - rust в dkms гонять. Осоьенно с полисей "скачайте ночнушку". Что может пойти не так? На этом фоне ZFS пожалуй покажется не таким уж и проблемным :)
А что это у ZFS за проблемы такие, связанные именно с dkms, огласите весь список, пожалуйста? Как по мне, dkms это наименьшая из проблем, точнее вообще не проблема.
> А что это у ZFS за проблемы такие, связанные именно с dkms,
> огласите весь список, пожалуйста?Порой отваливается у народа при ребуте. И в целом - лагает с выпуском совместимых версий относительно майнлайна, порой месяцами. Т.е. такое себе в целом.
Как там кентушка будет с этим всем - вопрос интересный, он майнлайн трекает плотнее, но с его rust'ом и качем ночнушек он вообще потом по линии DKMS наестся имхо, вплоть до того что вы сможете отдохнуть от его фс - спасибо если не плюс бесконечность времени.
> Как по мне, dkms это наименьшая из проблем, точнее вообще не проблема.
А как по мне - ставить на рутфс например фс на dkms это довольно так себе идея. Или по вашему, блага цивилизации типа снапшотов на ОС не должны распостраняться? Хотя zfs для таких применений вообще в целом - не очень. ФС для файлопомоек по всем параметрам. А сабж метит в более универсальные и масштабируемые решения, которые не унылы и в иных кейсах. Правда с вылетом из майнлайна вышел небольшой профак.
> Порой отваливается у народа при ребутеНи разу не сталкивался.
> лагает с выпуском совместимых версий относительно майнлайна, порой месяцами
Ну, у меня на дебиане таких проблем в принципе нет. А бетатестеры и прочие цифродрочеры должны страдать, да.
> А как по мне - ставить на рутфс например фс на dkms это довольно так себе идея
Уже года два как использую ZFS именно в качестве корневой и единственной ФС, проблем ноль.
> Или по вашему, блага цивилизации типа снапшотов на ОС не должны распостраняться?
Какая связь между снапшотами и dkms? Всё что заявлено работающим -- всё работает, включая снапшоты.
Кто-нибудь может внятно объяснить чем эта фс принципиально отличается от btrfs и зачем нужен ещё один велосипед? Вообще ситуация с файловыми системами в линуксе удивительная -- столько разных фс и ни одной нормальной. Либо примитивная архаика, либо кривые и вечно недоделанные поделия с идиотским управлением наподобие btrfs. При том что есть zfs. Тоже не подарок, но хотя бы задумка хорошая. Казалось бы, возьми её за образец и сделай то же самое, только лучше, с учётом всех недостатков... Но нет, всех куда-то тянет не в ту сторону... Чем-то это напоминает бесконечные извращение майкрософта с несчастным меню "пуск".
И в чем ZFS "нормальная"?Она ломается каждая актуализация ядро.
При каждая актуализация ZFS соществует риск потерь...
Она работает нормально только на Солярис...
Ещё одно доказательство ущербности лицензии GPL, которая не может нормально линковаться с кодом для Солярис
может. Но разработч...вредители на зарплате от ibm нарочно запрещают это делать.
Без всяких технических причин - "патамушта магу!"
Так права на zfs принадлежат Ораклу, который активно использует Линукс. Видимо, никому zfs не нужна, раз лицензию не меняют. Стюардессу проще закопать.
А схрена ли ораклу, который "пользует линукс" (вот именно - на кой чем его вертит в свое удовольствие) - менять свою лицензию?
Которая вовсе не запрещает использовать zfs в линуксе. Запрещатели - получатели миллионных зарплат в месяц - сидят как раз по другую сторону. И вот им - настолько "не нужна", что они сознательно и намеренно пакостят. Бороться с ibm и гуглом оракл предпочитает другим способом. Для себя - незатратным.
> Ещё одно доказательство ущербности лицензии GPL, которая не может
> нормально линковаться с кодом для СолярисВы так говорите, как будто к вам прикатил Торвальдс на бэхе, его жена-каратистка использовала вас для отработки приемов, и пообещала еще и дочку на вас потренировать если Linux не поюзаете.
Не, не было такого? Ну так и не используйте Linux, кто ж вас заставляет то...
> И в чем ZFS "нормальная"?Относительно логичным управлением.
> Она ломается каждая актуализация ядро
В смысле "ломается"? У меня ничего не ломается. Другое дело что она тормозная словно ленивец какой-то, и своп нормально не работает (помимо прочего).
> В смысле "ломается"? У меня ничего не ломается.А у вон тех гентушников зато - вполне. Окзалось что нынче модно релизы новых фич тестировать прям на юзерях, активировав новые фичи по дефолту.
> Другое дело что она тормозная словно ленивец какой-то,
А с фига ли античному блочному дизайну наподобии *никсной классики быстрым быть?
> и своп нормально не работает (помимо прочего).
А также управление памятью, пдумаешь мелочи какие...
речь же не про реализацию, а про идеи
Ещё одна особь вышедшая из криокамеры нулевых... Твой нтфс даже на глаз работает медленней чем любая Линукс фс.
Ну это ложь. Я как-то испытывал разные ФС и ntfs была где-то на уровне ext4.
Только в линейном чтении. Нтфс такой лютый отстой, что современными системами без ссд пользоваться невозможно вообще никак. Думаешь, от хорошей жизни ресурсы весь софт начал пихать в огромные блобы?
> Ещё одна особь вышедшая из криокамеры нулевых... Твой нтфс даже на
> глаз работает медленней чем любая Линукс фс.Я как-то билданул один и тот же проект в винде - а потом - накатил убунту, с сидюка который Шатлворт любезно прислал. Что такое? Тот же проект разика в 3 быстрее билдится? Так я и перешел на линух. Что я, Маклауд чтоли?
Что бы сказал дедушка Фрейд о твоей фиксации на большой билд в каждой теме.
> Что бы сказал дедушка Фрейд о твоей фиксации на большой билд в каждой теме.Что я програмер и не живу вечно, вероятно. Собссно на почве таких улучшений виндов - из них девелоперс и драп-драп.
Отстойная тормозная система с более чем 9000 антиюзерскими фичами, ограничениями и хамством вендора типа рекламы и онлайнакаунтов. Теперь даже довольно пофигистичные хомы признают что маздай не зря так называли.
Ибо все что поддерживается сейчас - Win11. Другой винды у меня для вас нет. А WinXP - уже таки не поддерживает выпускаемый софт.
Какой ужос! А на счётчиках - доля снова растёт ... врут рептилоиды? :)
> Какой ужос! А на счётчиках - доля снова растёт ... врут рептилоиды? :)Каких счетчиках? Майкрософт опять кого-то на счетчик поставил^W^W лапу занес чтоб считали правильно? Вон там у валв счетчик недавно - побил рекорд. И даже просто знакомые хомы с виндой - уже наелись фокусов мс и плавно тикают на убунту. Надоели им уже постоянные улучшения качества обслуживания типа принудительных перезагрузок, отсылки клавиш, реклам, аи в блокноте и что там еще за онлайн акаунты и прочий тоталконтрол. За свои деньги такое хамство от вендора получать - очень так себе.
Хлоргексидинчиком не забывай обрабатывать. И салфеток побольше бери.
> Хлоргексидинчиком не забывай обрабатывать. И салфеток побольше бери.Я после работы с виндой как-то так и делаю, руки протираю. Стремная система, никогда не знаешь что в ней водится, можно заразы нахватать :)
> Что такое?Антивирус не включил, Kaspersky для Linux.
> Либо примитивная архаика, либо кривые и вечно недоделанные поделия с идиотским управлением наподобие btrfs.Ну видишь - в линуксе выбор есть. В винде же просто примитивная архаика ntfs.
Архаика там FAT32. А для модных и молодёжных - ReFS.
Ну почему же, там еще есть "вечно недоделанные поделия с идиотским управлением" под названием ReFS. Настолько кривая, что ее уже 13 лет как не рискуют включать в проде. Проще вычистить из кодовой базы.
да когда ж тебе надоест т-по врать-то?Ну ты ж полный д... и нихрена не знаешь ни о чем. Просто несешь бред в который уверовал.
Не рискуют, ага.
Он до сих пор не читал про cow, row и так же полупокерством тут занимается? А то его портянки только проматывать можно, не знаю что там.
Галлюцинации там в основном. Причем одни и те же из года в год - "а вот у какого-то рачедр04ера в 22м году", "а вот я в венде линукс ядро собирал-собирал" и прочая чушь.Так что проматывай дальше, ничего не потеряешь.
Откуда этому индивидууму с его дырявой флэшкой что-то знать про Refs?
Интересно, когда этот ... анонима кусок поставит виртуалочку в цоде на любимом бтрфс. А админа цода, такой же кусок, в гипере тоже бтрфс будет использовать. Вот смех. Хотя этим ссы в глаза wa под 30 - это норма(с) Ничего такого нет, на продырявленой флешке.
https://www.microsoft.com/en-us/research/wp-content/uploads/...И это веселье происходит когда можно найти то что с гораздо меньшим wa работает. Но нет, наш циферный не такой. будет биться лбом пока лично авторитеты рассылки лкмл не выкинут эту фс.
> Кто-нибудь может внятно объяснить чем эта фс принципиально отличается от btrfs1. это единственная layered fs в линуксе.
нет, бырбрысь не layered, l2arc в zfs это l2arc(advanced или adaptive replacement cache) а не fs и работает он через одно место (by design, понять и простить - у того сана для которого придумали - память измерялась в _мегабайтах_).
2. в ней есть шанс увидеть работающий EC (но етанеточна...но ты можешь помочь автору. Код не выглядит совсем уж ушлепским)
3. и минусы - чтоб ему не мешать, мы не договаривались (но он у нас гепеле поэтому мешать ему будут более сложными способами чем zfs)> Вообще ситуация с файловыми системами в линуксе удивительная -- столько разных фс и ни
> одной нормальной.да нормальная там ntfs3g, не наговаривай. Еще через пять лет французик выйдет из анабиоза, и может junctions починит. А пока и так сойдет.
> Тоже не подарок, но хотя бы задумка хорошая. Казалось бы, возьми её за образец и сделай
> то же самое, только лучшедля этого надо было не заборостроительный заканчивать. Там - математических дисеров минимум парочка за той фс.
Сейчас мы прочли привычный уже пример - как сказать, что не разбираешься в файловых системах, не говоря, что ты не разбираешься в файловых системах.
но аргументов конечно же не будет, потому что ни в чем не разбираются местные неистово-минусаторы. Просто написанное оскорбляет их религиозные чувства. Они искренне веруют что от их хамства с нулем технических аргументов неудобная им реальность как-то сама рассосется.
Последний абзац в новости.
Там нет "чем отличается от других". Там просто список фич, еще и не все на самом деле работающие. Причем это явный нейрослоп.
> По производительности Bcachefs опережает Btrfs и другие ФС на базе механизма Copy-on-Write, и демонстрирует скорость работы, близкую к Ext4 и XFS.Пруфпики будут? В прошлых новостях анон кидал ссылки на похороникс, нет там никакого "опережает".
> В прошлых новостях анон кидал ссылки на похороникс, нет там никакого "опережает".- Официант, подите сюда!
- Да, что такое?
- Что это за фигня у меня в чеке написана: "прокатило - $50"?!
- Ну значит не прокатило :(((Вот как-то так, да.
На словах все очень красиво. И производительность на уровне Ext4 и XFS, и надежность высокая "The COW filesystem for Linux that won't eat your data". А на деле же скорость работы низкая, и куча срочных критических исправлений.Не понимаю зачем делать такие заявления, если фс еще фактически сырая. Обманутые ожидания вряд ли улучшат репутацию фс
Инвестора ловим, очевидно же. Кому нужны пользователи? От них копейки не дождешься, еще и вымазать могут
> демонстрирует скорость работы, близкую к Ext4Зачем создавать что-то, что заведомо медленнее существующих решений?
И это пока. На rust там вообще без шансов будет)
Ответ, скорее всего, находится в области того, для чего он это делает. Хочет работу в google. Для этого не нужна СЕЙЧАС работающая система. Для этого надо сделать заготовку в доработку которой могут вложится большие корпорации.
>> демонстрирует скорость работы, близкую к Ext4
> Зачем создавать что-то, что заведомо медленнее существующих решений?Затем что это, блин, COW. А не твой одноразовый ext4 где ты выщипываешь волосы на всех местах случайно удалив нужный файл - ибо снапшоты этот крап вообще не умеет, а бэкапы часто делать напряжно по ресурсам.
Конечно можно при помощи LVM слеоать какое-то подобие. Но врядля ты захочешь столько брейнфака, особенно на каком-нибудь своем ноуте, без заморочек.
Ты предлагаешь удалить файл на полжёсткого диска, а потом выщипывать волосы на всех местах, что места и не прибавилось? Зачем удалять файлы, если место не нужно? Если место нужно, то зачем хранить ненужные файлы?
> Ты предлагаешь удалить файл на полжёсткого диска, а потом выщипывать волосы на
> всех местах, что места и не прибавилось? Зачем удалять файлы, если
> место не нужно? Если место нужно, то зачем хранить ненужные файлы?Я предпочитаю чтобы у лично меня...
1) Было несколько состояний системы.
2) Какое никакое право на ошибку.
3) Возможность переиграть таймлайн попробовав более удачную версию бущушего без реинсталла всей ос и переделки всех проектов с ноля нахрен.У меня это все уже было. Двадцать лет. На виртуалках. С хрена я должен соглашаться на меньшее на bare metal? Это для дино до которых за 20 лет так и не дошло.
> Затем что это, блин, COWУгу, и поэтому если у тебя установленна какая нибуть субд, да хоть мускуль сранный, ты втихую заведёшь ещё одну фс импо XFS или ext4 ... но пацанам не скажешь ;-p :-)))
> Угу, и поэтому если у тебя установленна какая нибуть субд, да хоть
> мускуль сранный, ты втихую заведёшь ещё одну фс импо XFS или
> ext4 ... но пацанам не скажешь ;-p :-)))1) Это сильно зависит от БД и характера ее нагрузки.
2) Можно просто NOCOW флаг поставить на базу. И она получит то что хотела. Да, будет чуть тормознее, но и меньше возни с менеджментом.А ваши XFS и EXT4 это дино, и боль по менеджменту на всех уровнях. Вы конечно можете юзать эти ваши сратисы или пытаться косплеить это непотребство мануально черной магией с LVM, MD, DM и проч. Но пока вы сделаете просто снапшоты, 2 реплики, с автопочинкой битой копии из исправной и прочие мелочи - с вас семь потов сойдет. А в btrfs или сабже пару команд на все.
Если вы еще не поняли - простой и ненапряжный менеджмент систем решает. А носители сакральных знаний из продов будут все больше отправляться на мороз. Вслед за ветеранюнисадминами. За то же самое: низкая производительность труда и сказы о нерешаемости задач. Такие истории никому не вперлись.
Кcтати, в Linux ядре есть автономный модуль bcache и никто его выпиливать не собирается и угадайте кто мейнтейнер, тоже Кент.Я использую bcache SSD кэширование для быстрого доступа к NAS HDD, супер тема.
Да там просто так много модулей, что никто не заметил отмененного "вора".
Может напрячь верхнюю голову и вспомнить почему выпилили, а?
А там и осознание почему только одно в не всё что он делает выпилено появится(надеюсь).
> Я использую bcache SSD кэширование для быстрого доступа к NAS HDD, супер тема.Просто когда SSD наконец протирается... ммм... тебя могут ждать интересные сюрпризы при этом :). И не, обычная FS + bcache не очень хорошо реагируют на такое. Ошибки между уровнями теряются, и...
Если у тебя btrfs какой, еще и с DUP или RAID1 - он даже может успеть поорать на это дело до того как файлуха совсем разлетится. А XFS или EXT4 в таком комбо довольно часто заканчивают в позе "фаталити" ибо фс не очень заточены иметь дело с крупноблочными сбоями. А они в том комбо - возможны.В этом смысле сабж может лучше обработать сие, явно видя какая из реплик профачена и чиня ее или юзая иной девайс под реплики. А в случае bcache - увы, уровни абстракций грохают инфо о таких вещах. И это выходит боком.
Просто перестань др-ть ssd.У меня почему-то ни один из десятка наличных не протерся. Наверное потому что я ими по назначению пользуюсь.
(ну и, кстати, 32x write amplification файловые системы на них не использую - это еще без учета последствий неточного попадания границей блоков в границы страниц)
В отличие от ранее доступного режима "rebalance", механизм "reconcile" позволяет выполнить ребалансировку не только данных (например, реплицирование нескольких копий на разные накопители),э... шито?! Т.е. волшебная звездолетная фесе при добавлении второго диска в зеркало - не переносила туда копии метаданных, они так и оставались валяться на одном-единственном?
Дайте угадаю - идея взята из бырбырбрысь и у той все точно так же?
> э... шито?! Т.е. волшебная звездолетная фесе при добавлении второго диска в зеркало - не переносила туда копии метаданных, они так и оставались валяться на одном-единственном?А кто-то переносит какие-то данные сразу после добавления диска?
Что ZFS требует resilver, что btrfs ребаланс
> Дайте угадаю - идея взята из бырбырбрысь и у той все точно так же?
У btrfs rebalance все данные приводит в соответствие с профилем, профили у данных и метаданных могут быть разные, но по дефолту для raid данных профиль метаданных тоже raid
> В отличие от ранее доступного режима "rebalance", механизм "reconcile" позволяет
> выполнить ребалансировку не только данных (например, реплицирование нескольких
> копий на разные накопители), но и метаданных в ФС (например, для переноса
> метаданных после добавления в пул дополнительного накопителя)Ну может новость просто так написана, но из неё следует, что раньше, старый ребаланс не ребалансил метаданные, а зато вот новый научился.
У Кента в анонсе прямо написано, что не поддерживал: Reconcile can now process metadata (moving it to the correct target, rereplicating degraded metadata); previously rebalance was only able to handle user data.
bcachefs data rereplicate для данных и метаданных была и отрабатывала. Ребаланс это несколько отдельное изобретение и для других вещей (например, поменял ты сжатие и ребалансишь). А реконсил - это замена ререпликейта и ребаланса вместе взятых.
> Что ZFS требует resilver, что btrfs ребалансНу так раньше ребаланс в бкэшфс не реплицировал метаданные, судя по процитированному.
> А кто-то переносит какие-то данные сразу после добавления диска?
> Что ZFS требует resilver, что btrfs ребалансты читать умеешь? Написано что ребаланс НЕ приводит к переносу копий метаданных. По крайней мере в аналогов не имеющей.
>> Дайте угадаю - идея взята из бырбырбрысь и у той все точно так же?
> У btrfs rebalance все данные приводит в соответствие с профилем, профили уну ок, считай выкрутились (поскольку dup и raid1 у нее волшебным образом два разных профиля, есть шанс что оно таки скопирует а не удалит "лишнее")
> данных и метаданных могут быть разные, но по дефолту для raid
> данных профиль метаданных тоже raidречь о добавлении диска в уже существующую фс. То что нам тут заявляли как аналогов не имеющее достижение.
> ты читать умеешь? Написано что ребаланс НЕ приводит к переносу копий метаданных.
> По крайней мере в аналогов не имеющей.Ты написал про btrfs, в котором по твоему оно работает аналогично, хотя реализация в btrfs ведёт себя правильно
> ну ок, считай выкрутились (поскольку dup и raid1 у нее волшебным образом
> два разных профиля, есть шанс что оно таки скопирует а не
> удалит "лишнее")dup = у данных есть 2 копии
raid1 = у данных есть 2 копии НА РАЗНЫХ ДИСКАХdup - дефолт когда система инициализируется с одним диском, потому что хранить вторую копию данных негде, duh, но иметь её всё равно полезно, потому что если вдруг метаданные всё же как-то будут повреждены - dup позволит их восстановить, чексуммы укажут какая из копий корректная
> речь о добавлении диска в уже существующую фс. То что нам тут
> заявляли как аналогов не имеющее достижение.В btrfs это прекрасно работает, за 10 лет поддержки хранилищ на btrfs я не наблюдал с этим никаких проблем
> Ты написал про btrfs, в котором по твоему оно работает аналогичноЭто предположение, а не истина в последней инстанции. Поскольку автор нового чуда в основном копипастил идеи оттуда - вполне логичное.
> dup - дефолт когда система инициализируется с одним диском, потому что хранить вторую
спасибо, кэп. А нельзя ли теперь с небес на землю и рассказать неграмотным, как добавляются диски в бырбыр так чтобы получить таки от этого дополнительную копию, а не удвоить вероятность отказа, и что там надо сделать отличающегося от умолчаний? Я уж не надеюсь на сравнение с bachefs, хотя было бы крайне занятно от действительно сведущего человека узнать почему там получилась какая-то такая ерунда что аж понадобились "крупнейшие изменения за последнее время". Не, ну правда - как?
> копию данных негде, duh, но иметь её всё равно полезно, потому что если вдруг метаданные
> всё же как-то будут поврежденывот кстати типичная подмена понятий.
> dup позволит их восстановить, чексуммы укажут какая из копий корректнаяили не укажут. Потому что в твое "как-то" попадают гораздо более вероятные варианты "данные повреждены на этапе до/в процессе вычисления хэша", "данные просто не читаются всей группой записанной одновременно и в почти одно и то же место диска", "хэш посчитан неверно"
Сколько лично у тебя было подтвержденных случаев чуда с восстановлением из второй копии на том же носителе?
софтрейд (разумеется не бырбырфсный) у меня уже три диска пережил.
> В btrfs это прекрасно работает, за 10 лет поддержки хранилищ на btrfs я не наблюдал с
> этим никаких проблемочень высокий штиль. А можно уточнить - что именно ты десять лет поддерживаешь? В чем заключается поддержка?
А то хранилище в моем понимании - это вооон та хреновина с (жалкой) парой сотен терабайт на несколько полок. Как-то слабо представляется замена ее бырбырфсом у которого raid6 до сих пор работает-но-это-неточно. (чо там поддерживать - я разумеется могу рассказать, но это в целом и так относительно очевидно)
А васянский локалхост с парой дисков как-то смешно называть "хранилищем".
> спасибо, кэп. А нельзя ли теперь с небес на землю и рассказать неграмотным, как добавляются диски в бырбыр так чтобы получить таки от этого дополнительную копию, а не удвоить вероятность отказа, и что там надо сделать отличающегося от умолчаний? Я уж не надеюсь на сравнение с bachefs, хотя было бы крайне занятно от действительно сведущего человека узнать почему там получилась какая-то такая ерунда что аж понадобились "крупнейшие изменения за последнее время". Не, ну правда - как?btrfs device add, btrfs balance start -mconvert=... -dconvert=...
mconvert и dconvert нужны только если у тебя существующий профиль не гарантирует использование дополнительных дисков, например для миграции с dup на raid1.
Ну и добавление устройства никогда не удваивает вероятность отказа в btrfs, потому что btrfs умеет смешанные профили (часть данных в raid1, часть данных в dup например), пускай это пока и применяется только при миграции
> Сколько лично у тебя было подтвержденных случаев чуда с восстановлением из второй копии на том же носителе?
Я лишь в мониторинге замечал как оно при scrub восстанавливалось, такого чтобы было повреждение и его не смогло исправить автоматически я у себя не видел, однако помогал другим такое чинить.
> или не укажут. Потому что в твое "как-то" попадают гораздо более вероятные варианты "данные повреждены на этапе до/в процессе вычисления хэша", "данные просто не читаются всей группой записанной одновременно и в почти одно и то же место диска", "хэш посчитан неверно"
Даже без ECC памяти это не то чтобы критично
Повреждены до вычисления хеша - точно так же были бы повреждены где угодно, не читаются всей группой одновременно - что ты вообще сделал такого что это происходит? У btrfs под raid положено не блочное устройство, а логические блоки, экстенты
Шанс того что один файл запишет в одно и то же место мал, тем более спустя много лет использования массива, и учитывая некоторые элементы рандомизации
Хеш посчитан неверно - шта?> софтрейд (разумеется не бырбырфсный) у меня уже три диска пережил.
Ага, а теперь скажи как софтрейд спасает тебя от bitrot в случае raid1, как он тебе укажет какая из копий корректная? Сравнение некорректное
> А то хранилище в моем понимании - это вооон та хреновина с (жалкой) парой сотен терабайт на несколько полок. Как-то слабо представляется замена ее бырбырфсом у которого raid6 до сих пор работает-но-это-неточно. (чо там поддерживать - я разумеется могу рассказать, но это в целом и так относительно очевидно)
raid5/raid6 в одной машине в целом нигде нормально не реализован, если есть петабайты на которых хочется так экономить (потому что это всегда про экономию, raid1/raid1cX надёжнее) - то есть CEPH.
А пара сотен террабайт с NFS и базами данных на btrfs прекрасно живут
>Проведена подготовка кода к переходу на использование языка RustОй-ой, парень не туда поворачивает. Одерните его пацаны!
> Ой-ой, парень не туда поворачивает. Одерните его пацаны!Его уже из майнлайна одернули. Но не, не помогло...
Просто за раст код доплачивают.
https://www.opennet.dev/opennews/art.shtml?num=63822
самый подходящий язык для никому ненужных переписанных поделок
>> ... использование языка Rust
> Ой-ой, парень не туда поворачивает. Одерните его пацаны!Так в ядре раста становится больше.
Неужели он должен отставать от прогресса?
Наоборот "первая ФС в ядре написанная на Раст" это отличный повод вернуться.
Можно даже от каких-то корпов получить денюжку.
Он об этом давно говорил, сейчас делает.
Ржавка может и смузизлёбное но при правильном подходе полезное - вот и посмотрим как он пользу себе причинит.
> Он об этом давно говорил, сейчас делает.Передумать никогда не поздно.
>Ржавка ... он пользу себе причинит.
Помучается и вернётся обратно на Си, ибо Раст причиняет боль.
> Проведена подготовка кода к переходу на использование языка Rust.Неужели появится хотя бы одна недырявая ФС???
> Число используемых в коде операций goto сокращено с 2500 до 600.
ТипиkAл сишечка))
> задействован макрос DARRAY(),
> Для обработки ошибок задействован макрос try(), заимствованный из Rust.Ну надо же.
> недырявая ФС???Это та самая, которую удалили из ядра из-за ненормального сопровождающего?
Ненормально в последний момент фиксить баги мелкими комитами? Ну ок, тогда да.
Только имхо лучше починить в последний момент чем через годик потому что feature freeze видите ли 🤷
Я не против раста, но комитить лучше не проспав все дедлайны. Рецензатору тоже время надо на ревью.
> комитить лучше не проспав все дедлайны.дедлайн на то и дедлайн - что если его проспать, комит не примут.
> Рецензатору тоже время надо на ревью.
его нормальные люди оставляют себе ПОСЛЕ дедлайна. Более того, все вот эти "release candidates" для того и нужны чтобы после дедлайна все окончательно поревьюить и еще раз проверить что фигни не случилось. Единственное что они должны попытаться гарантировать - что фигня не затрагивает другие подсистемы. Да и то не факт (а если затрагивает и исправить по другому нельзя - выкатывать релиз с критическим багом? Два раза делать одну и ту же работу, сперва костылем потом рефакторинг? Откатить на предыдущие работающие версии, учти - не вариант в shtable api nonsense, они уже не работают.)
А ненормальные - вот, придумывают вместо правил - понятия. Что дедлайн оказывается не для тебя, а для галочи. А ты сам должен угадать, за сколько ж до его конца надо подать с поклоном свой код для рассмотрения. Сегодня праздник, барин в заграничном вояже (это реальная история одного пула), вчера шаббат, неприлично барина беспокоить, позавчера не до тебя было. Так надо считать, да?
> недырявая ФС???Это та самая, которую выпилили из ядра из-за ненормального сопровождающего?
> в такой конфигурации добавление второго накопителя приведёт к автоматической репликации данных на добавленный диск, без необходимости выполнения каких-либо действий пользователем.что будет при ошибочном добавлении диска (с инфой)?
Это будут проблемы добавившего и его начальства. Потому, что настолько тупым быть уже даже не гуманно.
> Это будут проблемы добавившегоСогласен, если в шреддер сунуть руку, то это проблема хозяина руки.
> Потому, что настолько тупым быть уже даже не гуманно.
Ага, все верно, насколько же тупым надо быть, чтобы шреддер использовать в качестве хранилища информации.
А если без лирики?
Всё наЫхнётся?
Хоть кто нибудь проверял?
С чего вдруг "всё"? Добавил ты диск в зеркало - получил вторую копию.
zpool add сделает если что - ровно то же самое. И да, переспрашивать не будет.
(за вычетом того что там не надо "заранее создавать" что-то этакое специальное, add можешь сделать вообще в любой момент и сколько угодно раз. Ну это снова технологии цивилизации титанов, ныне утраченные безвозвратно.)
Слушайте, а без шуток, сабж портировали на e2k?
Раст не умеет генерировать код для e2k, так что нет. Точнее раст вообще ничего не умеет генерировать - там llvm под капотом.
1) Причем тут раст?
2) Раст давно есть под e2k, как и llvm.
> 1) Причем тут раст?
> 2) Раст давно есть под e2k, как и llvm.1) ты вообще новость не читал?
2) Ну значит все работает и ничего портировать не надо.
> сабж портировали наТакой unstable сабж, да ещё с токсичным сопровождающим, которого выгнали из ядра за невозможность работы в команде... Никуда не надо портировать.