The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Проекта по интеграции с Qt web-движка Servo, развиваемого на языке Rust, opennews (??), 09-Апр-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


11. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  –6 +/
Сообщение от Аноним (11), 09-Апр-24, 15:00 
>за счёт применения компонента, в котором благодаря языку Rust минимизировано возникновение уязвимостей, вызванных ошибками при работе с памятью

То есть, по факту, причина выбора как всегда - отсутствие желания нести ответственность и проектировать своими руками и головой корректно работающий код без ошибок? Объясните пожалуйста, почему в любом проекте где используется Rust, его использование оправдывают "отсутствием уязвимостей, вызванных ошибками при работе с памятью", если это должно быть ответственностью пишущего?

Ответить | Правка | Наверх | Cообщить модератору

14. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +5 +/
Сообщение от Аноним (13), 09-Апр-24, 15:09 
Пиши на чём-угодно, тебя кто-то заставляет писать на Rust?
Ответить | Правка | Наверх | Cообщить модератору

41. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (41), 09-Апр-24, 16:34 
Потому что по данным MS (и не только их) ошибки памяти - это процентов 70 ошибок, которые совершают разрабы. Вот они и хотят решить проблему кардинально. Читаешь здесь про CVE в ядре, иксах и прочем и видишь одно и то же: use after free, double free, выход за границу буфера, так что скорее всего статистика верна.
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

60. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +1 +/
Сообщение от Аноним (9), 09-Апр-24, 18:03 
И? Если нет кода то будет 0 процентов ошибок.
Ответить | Правка | Наверх | Cообщить модератору

72. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (72), 09-Апр-24, 18:34 
Ну расскажи MS, гуглу и прочим дискордам, вконтактам и дропбоксам что кода на расте нет.
Ответить | Правка | Наверх | Cообщить модератору

100. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (100), 09-Апр-24, 21:52 
Объясните мне доходчиво, как при индексации массива, зная длину буфера, когда счетчик достигнет нуля, впринципе возможно выйти за границы?
Вот где здесь

while(--i) {
    // do stuff
}

возможно за границы выйти?

Или вот

free(ptr);
ptr=nullptr;

решает абсолютно все проблемы

У меня просто в голове не укладывается, это же элементарные языковые конструкции, чтобы их не использовать или использовать неправильно, нужно быть хз кем

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

102. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (100), 09-Апр-24, 21:57 
*вернее, даже так
while(--i != 0)
Ответить | Правка | Наверх | Cообщить модератору

137. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +4 +/
Сообщение от Аноним (137), 10-Апр-24, 08:30 
> *вернее, даже так

while(--i != 0)

Поздравляю, ты уже вышел за пределы буфера, если i изначально 0.

Еще более доходчивые объяснения нужны?

Ответить | Правка | Наверх | Cообщить модератору

103. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +4 +/
Сообщение от Аноним (103), 09-Апр-24, 22:00 
> Объясните мне доходчиво, как при индексации массива, зная длину буфера, когда счетчик
> достигнет нуля, впринципе возможно выйти за границы?
> while(--i) {
>     // do stuff
> }
> возможно за границы выйти?

А ты обращайся не в цикле, а просто к элементу.
Или вычисляй i в условной конструкции которая зависит от десятка условий и фазы луны.

> free(ptr);
> ptr=nullptr;

А если у тебя несколько потоков? И объекто создается где-то в одном месте, а умирает в совершенно другом

> решает абсолютно все проблемы

Но пограммисты на си-шке их так и не смогли решить.

> У меня просто в голове не укладывается, это же элементарные языковые конструкции,
> чтобы их не использовать или использовать неправильно, нужно быть хз кем

Нужно быть разрабом ядра)

Ответить | Правка | К родителю #100 | Наверх | Cообщить модератору

129. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (129), 10-Апр-24, 02:43 
> А ты обращайся не в цикле, а просто к элементу.
> Или вычисляй i в условной конструкции которая зависит от десятка условий и
> фазы луны.

Как здесь, например
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-28448
?

> А если у тебя несколько потоков? И объекто создается где-то в одном
> месте, а умирает в совершенно другом

как здесь например
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-32810
?

>> решает абсолютно все проблемы
> Но пограммисты на си-шке их так и не смогли решить.

как видим, раста-мани тож нишмагли.

> Нужно быть разрабом ядра)

или ржавым сектантом)

Ответить | Правка | Наверх | Cообщить модератору

136. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (136), 10-Апр-24, 07:15 
Ну так пусть M$ Винду на Rust и переписывает, раз в ней столько ошибок.
Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

151. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от нах. (?), 10-Апр-24, 23:59 
Так они ж - уже!
Переписькивали-переписькивали и даже переписькали цельный кусок GDI.
И он по слухам даже включен в сборки реальной винды.

Чтобы им попользоваться, нужно скачать insider build, принести в жертву рыжую девственницу, произнести главное демоническое заклинание и перезагрузиться строго в ночь на ивана купалу, но это немного неточно - всех кто это пытались сделать, на следующее утро находили мертвыми с перегрызенным острыми зубами горлом.

Ответить | Правка | Наверх | Cообщить модератору

139. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (138), 10-Апр-24, 08:41 
>Читаешь здесь про CVE в ядре, иксах и прочем и видишь одно и то же: use after free, double free, выход за границу буфера, так что скорее всего статистика верна.

Уже придумали решение на уровне CPU - CHERI.

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

144. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (144), 10-Апр-24, 11:03 
У интел давно есть инструкция bound, но накладные расходы таковы, что оно того не стоит. Делать одну проверку один раз за цикл или даже один раз за несколько циклов оказалось сильно дешевле. Программисты только не могут никак научится правильно писать эти проверки. А компиляторы правильно кидать warning в таких местах.
Ответить | Правка | Наверх | Cообщить модератору

46. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +2 +/
Сообщение от Аноним (-), 09-Апр-24, 16:58 
> То есть, по факту, причина выбора как всегда - отсутствие желания нести ответственность и проектировать своими руками и головой корректно работающий код без ошибок?

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

А еще большая проблема это сами СИшники, которые из года в год уде десятки лет делают одни и те же ошибки с памяьтью, но если предложить им использовать санитайзеры, то слышны ЧСВшные крики, что они профи и моугт сами писать хороший код (что не правда).

> Объясните пожалуйста, почему в любом проекте где используется Rust, его использование оправдывают "отсутствием уязвимостей, вызванных ошибками при работе с памятью", если это должно быть ответственностью пишущего?

Так пишущие любители дыряшки на себя такую ответственность не берут.
Приходится исправлять это другими методами.

Вот тебе аналогия.
Водитель на ЗИЛе должен уметь переключать мешалку без синхронизаторов, настраивать карбюратор и определять обороты по вою мотора и коробки, тк тахометр умер еще в 86 году.
Но зачем?! Водитель должен следить за дорогой.
Так что тут предлагается мерседес с коробкой автомат, датчиками слепых зон и удержанием в полосе.
Потому что инструменты должны быть качественные и современные, а не овно из прошлого века.


Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

57. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (57), 09-Апр-24, 17:42 
У этого мерседеса колеса квадратные.

Особенно когда есть C++. Особенно C++ через 20 лет когда войдут в обиход модули и прочее из нынешних стандартов.

Ответить | Правка | Наверх | Cообщить модератору

66. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  –1 +/
Сообщение от Аноним (-), 09-Апр-24, 18:24 
К сожалению из-за одного диктатора (великодушного, но тем не менее) у нас в ядре С++ нету.
И не будет. Судя по всему принципиально.
Так что тут выбирать особо не из чего.

C++23, очень крут, но все равно не избавляет от проблем памяти полностью.
Даже использование miraclePtr не стало панацеей, хотя некоторые надеялись.

Ответить | Правка | Наверх | Cообщить модератору

71. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (71), 09-Апр-24, 18:34 
По-моему недавно поднималось обсуждение насчет использования плюсов в ядре. Наверно кончилось ничем, так что да, в ядре выбор невелик.
Ответить | Правка | Наверх | Cообщить модератору

79. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Анонин (-), 09-Апр-24, 18:58 
Тут обсуждалось opennet.ru/opennews/art.shtml?num=60436

> Наверно кончилось ничем

Это было немного предсказуемо, не так ли))

С другой стороны аргументы у них не очень сильные. Схожесть синтаксиса это не плюс.
Потому что сишники будут писать на "с с классами".

Concepts слишком новая фича.
Напомню, что ядро только недавно перешло на с11 с с89 что ли))
А тут сразу хотят C++14 или C++20!

Ответить | Правка | Наверх | Cообщить модератору

145. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (144), 10-Апр-24, 11:07 
>Потому что сишники будут писать на "с с классами".

Так по рукам бить надо за использования сырых указателей.

Ответить | Правка | Наверх | Cообщить модератору

82. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +2 +/
Сообщение от Аноним (9), 09-Апр-24, 19:20 
Раст с его ансейфами не избавляет от проблем с памятью.
Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

127. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (127), 10-Апр-24, 02:08 
Не избавляет, но сокращает их количество. https://www.opennet.ru/opennews/art.shtml?num=59044 как пример.
Ответить | Правка | Наверх | Cообщить модератору

130. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (129), 10-Апр-24, 02:46 
> Раст с его ансейфами не избавляет от проблем с памятью.

раст и без ансейфа не избавляет от проблем с памятью:
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust

Ответить | Правка | К родителю #82 | Наверх | Cообщить модератору

133. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (133), 10-Апр-24, 06:58 
Вы ссылкой ошиблись :-) По вашей ссылке отлично видно, что избавляет.
Ответить | Правка | Наверх | Cообщить модератору

146. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (129), 10-Апр-24, 13:21 
> Вы ссылкой ошиблись :-) По вашей ссылке отлично видно, что избавляет.

use-after-free, buffer-overflow, segmentation-fault отлично доказывает, да.

Ответить | Правка | Наверх | Cообщить модератору

109. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (107), 09-Апр-24, 22:58 
Панацеей не стало, однако по данным Google [1] внедрение MiraclePtr предоставило защиту от 57% уязвимостей класса use-after-free. То есть достигнута половина того что дает Rust всего лишь введением одного небольшого приема программирования, без переписывания проекта.

[1] https://www.silkway.news/ru/otsenka-effektivnosti-primeneniy.../

Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

112. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +2 +/
Сообщение от Аноним (-), 09-Апр-24, 23:14 
> Панацеей не стало, однако по данным Google [1] внедрение MiraclePtr предоставило защиту
> от 57% уязвимостей класса use-after-free.

Ты забыл добавить что там возросло и потребление памяти и нагрузка на процессор)
Ну и это касается только use-after-free, а ведь еще есть double-free, out-of-bounds и тд


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

Неа, там гораздо сложнее.
И ссылки лучше давать на первоисточники (ну или на пенек, чисто из уважания)))
security.googleblog.com/2024/01/miracleptr-protecting-users-from-use.html

Reaching this level of effectiveness, however, required additional work. For instance, we not only rewrote class fields to use MiraclePtr, as discussed in the previous post, but also added MiraclePtr support for bound function arguments, such as Unretained pointers.
Т.к уже не "всего лишь введение одного небольшого приема"

Смотрм дальше
The main cost of MiraclePtr is memory. Specifically, the memory usage of the browser process increased by 5.5-8% on desktop platforms and approximately 2% on Android.
И это только борьба с одной из ошибок, которые позволяет избежать Раст.
С которой "успешно" поборолись на чуть выше 50 процентов)

Ответить | Правка | Наверх | Cообщить модератору

135. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (135), 10-Апр-24, 07:13 
Тэкс, а сколько оверхед у Раста с включенной runtime-проверкой?
ЕМНИП там таки есть вариант компиляции с runtime-проверкой, и без.

ЗЫ. У старущего турбо-паскаля runtime-проверка выхода за границы массива тоже включалась. Можно было орать, что безопасный язык, аж с начала 90-х годов.

Ответить | Правка | Наверх | Cообщить модератору

125. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (-), 10-Апр-24, 01:04 
Если всё настолько плохо, что ты готов соглашаться с рантайм стоимостью решения, то miracleptr довольно странный выбор. Есть сборка мусора, есть swift с его счётчиками ссылок. Если твоего энтузиазма уже не хватает на статическое управление памятью, то тебе туда.
Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

131. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от 12yoexpert (ok), 10-Апр-24, 03:06 
> Особенно C++ через 20 лет когда войдут в обиход модули и прочее из нынешних стандартов.

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

Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

99. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (99), 09-Апр-24, 21:17 
>То есть, по факту, причина выбора как всегда - отсутствие желания нести ответственность

Наоборот, ответственный подход к разработке, а не тяп-ляп — AS IS всё спишет.

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

140. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Пряник (?), 10-Апр-24, 10:00 
Хотят переложить ответственность на компьютер.
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

149. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (149), 10-Апр-24, 16:46 
> отсутствие желания нести ответственность и проектировать своими руками и головой корректно работающий код без ошибок?

У тебя странное представление о том, зачем пишут программы. Цель - не «нести ответственность» и не «своими руками». Цель - сделать что-то нужное и полезное. Не ломом асфальт подметать как вас в армии учили, а решать задачу с наилучшим балансом «затраты / результат».

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

154. "Проекта по интеграции с Qt web-движка Servo, развиваемого на..."  +/
Сообщение от Аноним (154), 11-Апр-24, 08:02 
Это называется свидетельство канарейки. После внедрения раста все ошибки работы с памятью и гонки не случайны.
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру