| 1.1, Rust (??), 09:58, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– | |
>оптимизация размещения структур данных в памяти
Rust так не может ведь? Или может? на С это запросто
| | |
| |
| 2.6, Аноним (-), 10:29, 01/12/2025 [^] [^^] [^^^] [ответить]
| +3 +/– |
Надо праздновать релиз свежего ядра, а не спорить кто что может! Накатим!
| | |
| |
| 3.56, Аноним (56), 12:37, 01/12/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ближайшие 20 лет из-за активного переписывания кода толку от линукса не будет. По сути Линус сделал откат в 90-е гг, когда было непонятно, что за инструмент лепится.
| | |
|
| 2.11, morphe (?), 10:50, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
> на С это запросто
На си это надо делать вручную, потому что структуры в памяти лежат в таком же порядке как в коде описаны, а Rust это по дефолту сам оптимизирует для лучшего layout
| | |
| |
| 3.18, Маняним1 (?), 10:58, 01/12/2025 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> На си это надо делать вручную
Сказки-то не рассказывай. С тех пор как лэйаут стал влиять на производительность С делает это автоматом.
| | |
| |
| 4.58, morphe (?), 12:45, 01/12/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> На си это надо делать вручную
> Сказки-то не рассказывай. С тех пор как лэйаут стал влиять на производительность
> С делает это автоматом.
C только выравнивание добавляет, и твоя задача как программиста сделать так, чтобы после добавления выравнивания структура не выросла слишком сильно, иногда такое надо делать по разному для разных архитектур, и отличие почти всегда только в порядке полей
Предположим
bool b
uint32_t b
bool c
uint32_t d
Займёт 16 байт, потому что после каждого bool оно добавит 3 байта для выравнивания полей b, d до границ в 4 байта требуемых uint32_t, а
uint32_t a
uint32_t b
bool c
bool d
Всего 10, потому что a, b уже выровнены
Rust тоже добавляет выравнивание, однако оптимальный порядок полей определяет сам.
В каких-то очень больших структурах конечно в теории этот порядок может быть не лучшим для кеша, однако это редкость, и в большинстве случаев Rust делает всё правильно.
| | |
| |
| 5.65, Аноним (65), 12:55, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
>однако оптимальный порядок полей определяет сам
Хорошо же в языках без ABI и с одной единственной реализацией
| | |
|
|
| 3.19, Аноним (19), 10:58, 01/12/2025 [^] [^^] [^^^] [ответить]
| +5 +/– |
В этом и проблема - для СИСТЕМНОГО ПО категорически нельзя допускать любых "сам оптимизирует", ибо если завтра добавят модуль на Си с другим лэйаутом (как в коде), растовая "оптимизация" сразу же фэйлит.
| | |
| |
| 4.29, Аноним (29), 11:16, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
Поддерживаю. Самооптимизации вполне себе могут медленно работать, наблюдал такое.
| | |
| 4.45, Аноним (45), 11:52, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
В раст эта оптимизация включается/выключается прямо из кода с помощью директив. Причем для одних структур ее можно включить, а для других выключить.
| | |
| 4.54, morphe (?), 12:31, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
> В этом и проблема - для СИСТЕМНОГО ПО категорически нельзя допускать любых
> "сам оптимизирует", ибо если завтра добавят модуль на Си с другим
> лэйаутом (как в коде), растовая "оптимизация" сразу же фэйлит.
Если структуру нужно шарить с C - то её можно явно пометить #[repr(C)], и тогда её layout будет совпадать между Rust и C
Что однако не мешает использовать в Rust коде свои, оптимизированные структуры
| | |
|
| 3.41, _kp (ok), 11:38, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
Вообще, Си, и не только он, могут оптимизировать структуры.
Но это не всегда уместно, когда то они должны располагаться в памяти жестко.
Поля тоже можно перетасовать, но подобное еще менее вероятно что понадобится.
Допустим, перетасовало поля структуры "для лучшего layout"...
А а куда, кроме как в мусорную корзину, можно передать такую структуру, неизвестного формата, не соответствующую ни исходнику, ни документации? :)
А в OS большинство структур передаются из компонента в компонент, или на сторону пользователя.
| | |
| |
| 4.55, morphe (?), 12:33, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Допустим, перетасовало поля структуры "для лучшего layout"...
> А а куда, кроме как в мусорную корзину, можно передать такую структуру,
> неизвестного формата, не соответствующую ни исходнику, ни документации? :)
> А в OS большинство структур передаются из компонента в компонент, или на
> сторону пользователя.
Если тебе важен layout для передачи кому-то ещё - укажи это явно, #[repr(C)], и тогда layout структуры в Rust будет совпадать с аналогичным описанием на языке C.
Однако это совсем не важно для внутренних структур, и структур которые шарятся только с Rust кодом
| | |
|
| 3.57, Аноним (56), 12:38, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
> структуры в памяти лежат в таком же порядке как в коде описаны
Давно не правда. Даже в паскале есть reordered.
| | |
| |
| 4.59, morphe (?), 12:50, 01/12/2025 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Давно не правда. Даже в паскале есть reordered.
В паскале структуры логические, для программиста, а в сях по стандарту "физические", для того чтобы можно было описать память ровно так как её видит устройство
И стандартного способа автоматически переупорядочить поля там нет, есть только расширения компилятора, которые мало где используют
| | |
|
|
| 2.37, Аноним (37), 11:34, 01/12/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да просто пишите вы уже на языке каком хотите, а не топите за него, троллота.
Пофиг о чем речь ц или раст.
| | |
|
| 1.2, Аноним (2), 10:22, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– | |
>Из ядра удалён код файловой системы Bcachefs
Глючная ^W эспериментальная ФС по дефолту теперь насквозь редхатовская btrfs. Её не выкинут. Даже если разработчик будет хоть сам чёрт во плоти.
| | |
| |
| 2.72, Аноним (72), 13:09, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
Как правило, последний релиз за год становится lts. Итого это будет 6.18, до конца года 6.19 никак не зарелизят.
Почему проксмокс переехал на 6.17 - им виднее, в дебиане на данный момент либо 6.12 как стабильный, либо 6.17 как бэкпорт/тестинг. 6.18 станет лтс и попадет в бэкпорт, на него переехать с 6.17 менее проблемно, чем с 6.12.
| | |
|
| 1.5, Аноним (5), 10:28, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Помню тут пару дней назад в комментах радостно рассказывали, что раст уже забросили в ядре, мейнтейнеры ушли и прочее.
| | |
| |
| 2.16, Аноним (19), 10:56, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
Не имеет значения, когда именно ржу выбросят. Просто сам факт мёртворождённого изычка не даёт ему никаких шансов. Как только гугля решит оптимизировать дармоедов, ВНЕЗАПНО окажется, что "раст оказался непригоден" и далее шлейф обещаний что завтра будет лучше, чем вчера, но деньги, про_с_раные на ржу, никто уже не вернёт.
| | |
|
| 1.8, Аноним (8), 10:41, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> В NTFS3 добавлена
Этот тот что от Paragon? Кто владеет вопросом, подскажите, что происходит с этим драйвером. Есть ещё NTFSPLUS если не ошибаюсь
| | |
| |
| 2.36, Аноним (25), 11:31, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
Да, от Paragon. У меня работает, не ловил корраптов, но репорты от других пользователей были. Второй вариант ntfs-3g через FUSE, сильно медленнее.
| | |
|
| 1.9, mos87 (ok), 10:41, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Ржавеет по-тихоньку.
А что для конечного пользователям может пригодиться?
| | |
| |
| 2.50, Аноним (-), 12:22, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
Возможно драйвера?
> драйвера Nova для GPU NVIDIA.
> драйвер Tyr
Думаю без них для "конечного пользователя" будет весьма грустно.
> реализация Binder, написанная на языке Rust.
А это сотни миллионов пользователей.
| | |
| |
| 3.69, Аноним (56), 13:07, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
> без них для "конечного пользователя" будет весьма грустно
Читаем: "Драйвер пока не готов"
| | |
| |
| 4.73, Аноним (-), 13:10, 01/12/2025 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Читаем: "Драйвер пока не готов"
А ядро уже готово))?
Чего они всё новые и новые версии выпускают.
Биндер написали и этот напишут.
| | |
| |
| |
| 6.78, Анонимусс (?), 13:24, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
> Биндер не писали, а переписывали.
Так если дрова для gpu напишут, а не перепишут, то вы первые ныть будете что нет поддержки старого мусора)))
Вы как-то определитесь что вам нужно, а потом уже набрасывайте.
| | |
| 6.79, Анонимусс (?), 13:24, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
> Биндер не писали, а переписывали.
Так если дрова для gpu напишут, а не перепишут, то вы первые ныть будете что нет поддержки старого мусора)))
Вы как-то определитесь что вам нужно, а потом уже набрасывайте.
| | |
|
|
|
|
|
| 1.10, ryoken (ok), 10:48, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Проясните плз про boot_display, с целью повышения уровня образованности. Не понятно, в каком формате его указывать?
| | |
| 1.14, Аноним (19), 10:54, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Ядро - это в принципе независимый проект, в нём не может быть "возможность писать на раст", как и "возможность похапэшных вставок" - это просто глупо и узконаправлено. Либо ты можешь писать для ядра (Си, Ди, ассемблер), либо ты идёшь в сад писать опердни - в ядре тебе делать нечего.
| | |
| |
| 2.39, Аноним (39), 11:36, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
> Либо ты можешь писать для ядра (Си, Ди, ассемблер),
Ога, на Ди, на с++)))
Ты просто пишешь для ядра на расте, а те кому не нравится, спорят с Торвальдсом и потом или закрывают варешку, или идут в сад писать опердни - в ядре таким делать нечего.
| | |
|
| 1.17, Аноним (22), 10:57, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– | |
> В состав принята реализация механизма межпроцессного взаимодействия Binder, написанная на языке Rust. Binder используется в Android для организации взаимодействия между процессами и удалённого вызова методов (один процесс Android может вызвать метод или функцию в другом процессе Android, используя Binder для идентификации, вызова и передачи аргументов между процессами). Код Binder был переписан на языке Rust в рамках инициативы Google по усилению защищённости Android.
Собака лает, караван идёт.
| | |
| 1.20, Аноним (24), 10:58, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Где то во второй декаде декабря Фряха 15 зарелизится,вот это полезная новость. Тут же сплошной бета тест. Версия 6.12-6.14 максимум в серьезных дистрах и те для фанатиков не различающмх что такое хорошо и плохо.
| | |
| |
| 2.46, Аноним (-), 12:02, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
> Фряха 15 зарелизится,вот это полезная новость.
Как у тебя в одном предложении сочитаются "фряха" и "полезность"?!
ФРЯ это бесполезная поделка нудность которой можно оценить по ее распространености.
| | |
|
| 1.21, Аноним12345 (?), 11:00, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– | |
>> Началась работа по реорганизации излишне раздутой структуры "page", используемой для управления страницами оперативной памяти. Добавлен тип 'memdesc_flags_t"
Как-то противоречиво звучит
| | |
| |
| 2.28, Аноним (25), 11:14, 01/12/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
scx_bpfland поставь, да проверю. Спойлер: ОС станет более отзывчивой.
| | |
|
| 1.40, Аноним (22), 11:38, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– | |
> В ksmbd (работающий на уровне ядра SMB-сервер) добавлен параметр для ограничения максимального числа соединений с одного IP-адреса. smbdirect, smbclient и smbserver переведены на использование типовых структур ядра.
Всегда было интересно, а вот это вот вообще зачем в ядре? Почему именно SMB, а не SSH, например?..
Выглядит как идеальный вектор атаки.
| | |
| |
| |
| 3.61, Аноним (56), 12:51, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
вопрос был про вечно дырявую самбу, причём местами - на уровне спецификации протокола.
| | |
|
| 2.60, Аноним (60), 12:51, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
скорость работы, там прирост процентов в 30 по производительности
| | |
| |
| 3.63, Аноним (56), 12:54, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
> прирост процентов в 30
Это быстро исправят переписыванием на раст.
| | |
|
|
| 1.47, Аноним (47), 12:18, 01/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> В выпуске 6.18 обновлён код чистки blob-ов в драйверах Nova-Core, Intel XE, TI PRUeth, Lantiq GSWIP, Marvell WiFi-Ex. Выполнена чистка имён blob-ов в dts-файлах (devicetree) для ARM-чипов Qualcomm, Mediatek и TI ARM64. Нейтрализована загрузка blob-ов в новых драйверах FourSemi fs2104/5s, TI TAS2783 и Qualcomm GENI.
Офигеть...
А оно хоть как-то запускается после такого?
Или "нам главное чистота крови", а работает или нет - это значения не имеет?
| | |
| |
| 2.51, Аноним (51), 12:24, 01/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
Как-то же они в интернет запостили это, должно быть что-то да работает.
| | |
|
|