Грег Кроа-Хартман (Greg Kroah-Hartman), отвечающий за поддержку стабильной ветки ядра Linux, высказался в поддержку разработки новых компонентов ядра на языке Rust. Как человек, через которого последние 15 лет проходит вся информация об ошибках и уязвимостях в ядре Linux, он утверждает, что большинство ошибок в ядре вызваны специфичными для языка Си мелкими краевыми случаями, которые полностью исключены в коде на языке Rust...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=62756
что и требовалось доказать
Таки что и кому требовалось доказать ?
местным луддитам доказать преимущества применения кода на расте в этом ихнем ядре
Строго говоря, доказательств нет, есть мнение сопровождающего.
Мнение (то есть думки из области мнимого) у местных экспертов, не сделавших ни одного коммита в ядро. Иначе они бы видели письмо от Грег Кроа-Хартман с анкетой и имели представление о его роли.
>имели представление о его роли.Я где-то ставил под сомнение его роль?
>не сделавших ни одного коммита в ядро.
К чему этот высер?
>>имели представление о его роли.
> Я где-то ставил под сомнение его роль?Я ответил на этот вопрос в той части моего сообщения, что ты выкинул при цитировании.
Грег озвучил не "мнение", а пожелание заказчиков (спонсоров). Он не сопровождающий", а, как минимум, второй после Линуса человек.
>>не сделавших ни одного коммита в ядро.
> я него не понял.Это нормально, ведь ты непричастен к ядру.
то что мнение эксперта надо учитывать никто не спорит, но делать из него кумира не надо, а если завтра он сиганет с моста золотые ворота, ты что скажешь? что он молодец?
> то что мнение эксперта надо учитывать никто не спорит, но делать из него кумира не надо,А кто делает из него кумира?
Его мнение интересует только про ядро.
А например делать блинчики с мукой или без муки - я лучше спрошу маму или тещу.> а если завтра он сиганет с моста золотые ворота, ты что скажешь? что он молодец?
утрирование и доведение до абсурда, плохой подход, но для этого форума сойдет
так у тебя просто 2 кумира Грег Хартман и Теща, и не очень много критического мышления по всей видимости ))
> так у тебя просто 2 кумира Грег Хартман и Теща, и не
> очень много критического мышления по всей видимости ))повторюсь еще раз: "утрирование и доведение до абсурда, плохой подход, но для этого форума сойдет"
Тебе перечислять всех людей которые в чем-то разбираются, по моему мнению?
или ты так, просто потроллить?
>Мнение (то есть думки из области мнимого) у местных экспертов, не сделавших ни одного коммита в ядро.Это ты про себя так самокритично? Похвально!
>>Мнение (то есть думки из области мнимого) у местных экспертов, не сделавших ни одного коммита в ядро.
> Это ты про себя так самокритично? Похвально!Да, глупый наброс от неспособного нажать на ссылку принимается за похвалу.
>>>Мнение (то есть думки из области мнимого) у местных экспертов, не сделавших ни одного коммита в ядро.
>> Это ты про себя так самокритично? Похвально!
> Да, глупый наброс от неспособного нажать на ссылку принимается за похвалу.Невозможно нажать на то, чего нет. Ссылок на твои коммиты в ядро нет. И это логично – нет коммитов, нет и ссылок.
>>>>Мнение (то есть думки из области мнимого) у местных экспертов, не сделавших ни одного коммита в ядро.
>>> Это ты про себя так самокритично? Похвально!
>> Да, глупый наброс от неспособного нажать на ссылку принимается за похвалу.
> Невозможно нажать на то, чего нет. Ссылок на твои коммиты в ядро
> нет. И это логично – нет коммитов, нет и ссылок.Характерная для фанатов Free Software по своей подлости и примитивности ложь.
1-я ссылка - под моим ником.
2-я ссылка - Информация об авторе, Сайт:Ты тот самый Юзер235, я верно понимаю?
>>>>>Мнение (то есть думки из области мнимого) у местных экспертов, не сделавших ни одного коммита в ядро.
>>>> Это ты про себя так самокритично? Похвально!
>>> Да, глупый наброс от неспособного нажать на ссылку принимается за похвалу.
>> Невозможно нажать на то, чего нет. Ссылок на твои коммиты в ядро
>> нет. И это логично – нет коммитов, нет и ссылок.
> Характерная для фанатов Free Software по своей подлости и примитивности ложь.
> 1-я ссылка - под моим ником.
> 2-я ссылка - Информация об авторе, Сайт:Казалось бы, дать ссылку на коммит очень легко, но ты в который раз юлишь и изворачиваешся. А все дело в том, что в ядре твоих коммитов нет. Я заходил на твой профиль на гитхабе и видел ачивки, но пошел в указанные репозитории и поискал твои следы. Если они когда-то и были, то их выкинули за ненадобностью.
> Ты тот самый Юзер235, я верно понимаю?
Вангуешь ты так же плохо как и кодишь.
>>>>>>Мнение (то есть думки из области мнимого) у местных экспертов, не сделавших ни одного коммита в ядро.
>>>>> Это ты про себя так самокритично? Похвально!
>>>> Да, глупый наброс от неспособного нажать на ссылку принимается за похвалу.
>>> Невозможно нажать на то, чего нет. Ссылок на твои коммиты в ядро
>>> нет. И это логично – нет коммитов, нет и ссылок.
>> Характерная для фанатов Free Software по своей подлости и примитивности ложь.
>> 1-я ссылка - под моим ником.
>> 2-я ссылка - Информация об авторе, Сайт:
> Казалось бы, дать ссылку на коммит очень легко, но ты в который
> раз юлишь и изворачиваешся.Я отвечаю хаму, оболгавшему меня в № 623, так, как он того заслужил -- показываю его "уровень".
> А все дело в том, что в
> ядре твоих коммитов нет. Я заходил на твой профиль на гитхабе
> и видел ачивки, но пошел в указанные репозитории и поискал твои
> следы. Если они когда-то и были, то их выкинули за ненадобностью.Вот сейчас ты сообщил:
1. Искать не умеешь -- ты не показал команду, какой пытался найти. Просто соврал.
2. Не понимаешь, что такое git. Нельзя просто так взять и выкинуть коммит из linux. Можно сделать новый коммит, отменяющий старый.
3. Не понимаешь, что такое форки... но это тебе не объяснить, учитывая п.2.
>> Ты тот самый Юзер235, я верно понимаю?
> Вангуешь ты так же плохо как и кодишь.Ну я ж не по фото вас различаю, а по назойливости, унылому стилю и "риторике" -- гнилой софистике.
Все очень просто – твоих коммитов в ядре нет, все остальное – твой словесный понос.
> Все очень просто – твоих коммитов в ядре нетСпециально для немеющих искать Гитхап повесил плашку:
Arctic Code Vault Contributor
@STrusov contributed code to several repositories in the 2020 GitHub Archive Program.History
100% unlocked · Unlocked 2020-02-02 18:00:00 +1000
torvalds/linux
raspberrypi/linux
microsoft/WSL2-Linux-Kernel
these repositories, and more, were archived> все остальное –
> твой словесный понос.Ты пиши ещё, мне наруку примеры столь упорного и гнилого поведения анонимных активистов Free Software. В штатах вам финансирование обрезали, значит ты "местный". ;)
>[оверквотинг удален]
> 100% unlocked · Unlocked 2020-02-02 18:00:00 +1000
> torvalds/linux
> raspberrypi/linux
> microsoft/WSL2-Linux-Kernel
> these repositories, and more, were archived
>> все остальное –
>> твой словесный понос.
> Ты пиши ещё, мне наруку примеры столь упорного и гнилого поведения анонимных
> активистов Free Software. В штатах вам финансирование обрезали, значит ты "местный".
> ;)Talk is cheap. Show me the code.
https://github.com/torvalds/linux/commits?author=STrusov <- тут пусто
>[оверквотинг удален]
>> raspberrypi/linux
>> microsoft/WSL2-Linux-Kernel
>> these repositories, and more, were archived
>>> все остальное –
>>> твой словесный понос.
>> Ты пиши ещё, мне наруку примеры столь упорного и гнилого поведения анонимных
>> активистов Free Software. В штатах вам финансирование обрезали, значит ты "местный".
>> ;)
> Talk is cheap. Show me the code.
> https://github.com/torvalds/linux/commits?author=STrusov <- тут пустоБеда твоя в том, что ядро ты увидел впервые, у тебя нет своей копии репозитория и потому ты полез в веб интерфейс, одержимый желанием что-то мне доказать.
Если бы ты работал с ядром, ты бы сделал привычное
git log --author=trusovА потом бы скопировал из выдачи номер хеша в url.
https://github.com/torvalds/linux/commit/4a54feea1765a79ac84...
> https://github.com/torvalds/linux/commit/4a54feea1765a79ac84...Беда твоя в гордыне. Что мешало сразу показать эту ссылку?
>> https://github.com/torvalds/linux/commit/4a54feea1765a79ac84...
> Беда твоя в гордыне. Что мешало сразу показать эту ссылку?Я уже объяснял: помешала твоя ложь в исходном "вопросе", в #623.
Ты сам задал тон. В ответ я наглядно показал зрителю, кто ты есть.
Ты мог бы поблагодарить меня за бесплатное обучение, поскольку в таком раскладе выходит, что оболгал ты меня не со зла, а от неумения работать с git. Но ты даже это не понял и продолжаешь хамить. ;)
>> Беда твоя в гордыне.
> неумения работать с gitЯ не нуждаюсь в бесплатном обучении и умею работать с git, но гордыня ослепила тебя и ты никак не поймешь, что совсем не интересно клонировать ради тебя репу с ядром и искать там твои коммиты.
> В ответ я наглядно показал зрителю, кто ты есть.
Не только, ты раскрыл в том числе себя. Высокомерие и заносчивость так и лезут из тебя.
>>> Беда твоя в гордыне.
>> неумения работать с git
> Я не нуждаюсь в бесплатном обучении и умею работать с gitФакты:
1. Найти коммит ты не смог.
2. Не подписываешься. Соврать тебе не долго.> гордыня ослепила тебя и ты никак не поймешь, что совсем не
> интересно клонировать ради тебя репу с ядром и искать там твои
> коммиты.Очередная гнусная софистика.
Факты:
1. У тебя нет копии репозитория.
2. С ядром ты не работаешь.Следовательно, твоё мнение об ядре не имеет веса, но ты его вставил.
>> В ответ я наглядно показал зрителю, кто ты есть.
> Не только, ты раскрыл в том числе себя. Высокомерие и заносчивость так
> и лезут из тебя.Проецируй дальше.
Дружище, как же я рад снова читать твоё сообщение. Я уж волноваться начал когда ты пропустил утренний постинг.> 1. Найти коммит ты не смог.
Вроде по-русски написал – ты не настолько интересен, что бы ты заморачиваться.
> 2. Не подписываешься. Соврать тебе не долго.
Здоров ли ты, не переутомился? Ты заблокировал постинг, а теперь жалуешься на анонимность. Где логика?
> Факты:
> 1. У тебя нет копии репозитория.
> 2. С ядром ты не работаешь.
> Следовательно, твоё мнение об ядре не имеет веса, но ты его вставил.Факт в том, что я задал вопрос, а не высказал мнение. Похоже, русский язык ты не понимаешь.
> Дружище, как же я рад снова читать твоё сообщение. Я уж волноваться
> начал когда ты пропустил утренний постинг.С каких пор анонимный врун мне друг?
>> 1. Найти коммит ты не смог.
> Вроде по-русски написал – ты не настолько интересен, что бы ты заморачиваться.Враньё уровня детского сада. Неделю назад ты начинал наглее, но теперь "сдуваешься".
>> 2. Не подписываешься. Соврать тебе не долго.
> Здоров ли ты, не переутомился? Ты заблокировал постинг, а теперь жалуешься на
> анонимность. Где логика?Легко и непринуждённо изобличаю тебя во вранье, лови цитатки:
>> Ты тот самый Юзер235, я верно понимаю?
> Вангуешь ты так же плохо как и кодишь.Юзер235, впрочем, точно такое же аноним -- то есть некто без имени.
>> Факты:
>> 1. У тебя нет копии репозитория.
>> 2. С ядром ты не работаешь.
>> Следовательно, твоё мнение об ядре не имеет веса, но ты его вставил.
> Факт в том, что я задал вопрос, а не высказал мнение. Похоже,
> русский язык ты не понимаешь.Ты сделал крайне тупой наброс, показывающий твоё неумение работать с git, и пытаешься оправдаться.
Факт в том, что тебя бомбит уже неделю на равном месте.
> Факт в том, что тебя бомбит уже неделю на равном месте.Да так бомбит, что я с "двух машин на Росе" (ц) себе по четыре анонимных ответа пишу. ;)
> С каких пор анонимный врун мне друг?Хорошо, братан.
> Юзер235, впрочем, точно такое же аноним -- то есть некто без имени.n00by в туже корзину. Кличка в интернете, безликое нечто.
> Ты сделал крайне тупой набросЯ сделал крайне удачный наброс и тебя бомбит больше недели. Да как бомбит, взрыв в Бейруте отдыхает!
В общем, ты написал достаточно, беру твои писули в зачёт за обучение тебя работе с git. Хорошо видно, что активисты Free Software не только не умеют работать с кодом, но и необучаемы, а потому следует избавить от вас "Сообщество".
> В общем, ты написал достаточно, беру твои писули в зачёт за обучение
> тебя работе с git. Хорошо видно, что активисты Free Software не
> только не умеют работать с кодом, но и необучаемы, а потому
> следует избавить от вас "Сообщество".Продолжай разговаривать с голосами в голове, это неоценимый вклад в психиатрию.
>следует избавить от вас "Сообщество".Я тебя тоже в блоклист гитхаба занёс, мне там неадекваты не нужны.
>Русский язык. Полный курс для начальной школы (Ф. С. Алексеев)Ты так и не прочитал или не помогло?
Причем мнение сильно однобокое, с кучей граничных условий.
Например, предполагается, что писать на Расте будут столь же квалифицированные специалисты, что для языка, имеющего более низкий порог входа, очевидно неверно.
Соответственно, не учитывается усложнение сопровождения кода не из-за языка, а именно из-за квалификации пишущих на нем.
> Скорость разработки возрастает благодаря снижению трудозатрат на отладку
> и наличию в языке строгих гарантий, позволяющих выявлять ошибки
> на ранней стадии написания кода, ещё до начала тестирования продуктаПо сути, всё ускорение разработки будет основано на вере в непогрешимость и невероятную стабильность раста и на экономии времени на тестирование по той же причине
Что значит вере? Раст на уровне своего дизайна исключает много возможностей совершить ошибки, как ты не пиши код ( за исключением нескольких мест) вера тут не причем.
> позволяющих выявлять ошибки
> на ранней стадии написания кода, ещё до начала тестирования продуктаКак можно ДО тестирования понять, что ошибок нет ?
Это из разряда "а вы сразу пишите правильный код без ошибок и на тестировании кучу времени сэкономите"
> Как можно ДО тестирования понять, что ошибок нет ?Напр. у тебя программа не компилируется, потому что ты пишешь в переменную с двух потоков без соответствующих локов.
Вот ты взял и нашел ошибку не просто до тестирования, а до получения самой программы)))
Ну так компилятор отбраковывает в Расте гораздо больше некорректных программ
Чёт вспомниается история с либой для работы IP.
> Чёт вспомниается история с либой для работы IP.Ну ты бы ссылку привел или хотя бы название.
А то гуглить мне лениво.ps это почти как анекдот про психбольницу и шутки под номерами
> Создатели Раста заверяют, что он на уровне своего дизайна исключает много возможностей совершить ошибкиПофиксил
Да на вере. Может на фактах, вон гугл свой отчёт приводил на сколько процентов на факту ускорилась разработке и уменьшилось число багов. Вон команд Tor тоже недавно писала что довольна. Вот и Грег не по наслышке фактами делится.
Извините, это у Rust более низкий порог входа? Просто хочу убедиться, что всё правильно понял.
читай внимательнее
> Например, предполагается, что писать на Расте будут столь же квалифицированные специалисты, что для языка, имеющего более низкий порог входа, очевидно неверно.Но ведь раст не является языком с более низким порогом входа: вон даже многие сишники не одолели (в том числе среди комментаторов здесь). )))
Неуловимый Джо тоже неодолим
Квалификация? Я вас умоляю!Куча дров написано ребятами, которые С увидели вчера, а код должен быть завтра, иначе ЗП не будет. И на качество им глубоко наплевать.
Вот для таких, в первую очередь, и нужен Раст.
>есть мнение сопровождающегоФормально правдивая, скромная такая фраза, которая одним махом принижает авторитет человека, "через которого последние 15 лет проходит вся информация об ошибках и уязвимостях в ядре Linux"
ЗЫ это один из действенныз приемов газлайтинга.
Это - логика.
В срачах она редко встречается, поэтому с непривычки ее легко спутать с демагогией.
Но это - логика.
>Газлайтинг — это одна из форм психологического насилия. Один человек, манипулируя другим, запугивает его, заставляет сомневаться в собственных силах, адекватности суждений и даже в воспоминаниях.Я так понимаю, ты решил ввернуть модное словечко, но вспомнил только это.
>Газлайтинг — это одна из форм психологического насилия. Один человек, манипулируя другим, запугивает его, заставляет сомневаться в собственных силах, адекватности суждений и даже в воспоминаниях.
>Я так понимаю, ты решил ввернуть модное словечко, но вспомнил только это.Ты просто не заметил (или сделал вид), что далее через запятую: Газлайтинг -..... "определённые психологические манипуляции, совершаемые с целью выставить жертву «дефективной», ненормальной"
Похоже я прав: пример доморощенной демагогии.
>Ты просто не заметил (или сделал вид), что далее через запятуюЯ просто взял цитату не из Википедии, если ты не заметил.
>совершаемые с целью выставить жертву «дефективной», ненормальной
И где я выставляю так называемую жертву дефективной или ненормальной, в твоём воспалённом воображении?
Зачем ты пытаешься заставить меня сомневаться в собственных силах и адекватности суждений, ты хочешь выставить меня дефективным и ненормальным?
Выставить? Нет конечно.
Судя по твоим бредовым заявлениям ты просто "дефективный и ненормальный".
Но это нормально. Т.к мы на сайте компьютерного меньшинства.
И прочий абьюзинг небинарных персон
Было б что перечеркивать. Авторитет начинается во дворе, а не за комплюктером! Кнопошки давить и ребеночек может.
А потом таким Раст нужен
Через Грега проходит не только информация об ошибках, но он собирает "статистику", кто из коммитеров где работает. То есть когда кому-то потребуются люди, он может спросить Грега, а тот сделает выборку из своей базы.
>>есть мнение сопровождающего
> Формально правдивая, скромная такая фраза, которая одним махом принижает авторитет человека,
> "через которого последние 15 лет проходит вся информация об ошибках и
> уязвимостях в ядре Linux"
> ЗЫ это один из действенныз приемов газлайтинга.Отдельного внимания заслуживает количество плюсов, что этот деятель накрутил на то своё сообщение, #4.
Там дальше удалось выявить, что он изображает в этой теме минимум двух персонажей (начал отвечать как "Негоро", когда первого занёс в ЧС).
В другой теме он же был "Себастьян Перейра" и "Перейра Себастьян".
В общем, занятная активность. Надеюсь, ему за это платят.
Политически обусловленное мнение при том, как и всё, что делает Linux Foundation уже довольно давно.
Пластмассовый мир победил, макет оказался сильней.
Политикой не интересуются только дети. И только дети считают её избыточной. Разработка больших программных продуктов — а ядро это большой программный продукт — занятие в первую очередь социальное, и только потом уже техническое. Везде, где сталкиваются интересы бы хотя бы двух человек начинается либо политика, либо драка. Написать хороший код довольно просто, каждый кто умеет кодить делал это хотя бы пару раз в жизни. Сложно писать хороший код в команде, и делать это каждый день. Учитывая разнообразие интересов и людей (а стало быть и способов мышления), ядро начинается и заканчивается политикой, с кодом где-то там внутри.
Это не мнение, а заключение эксперта.
Не бывает только pros. Всегда есть pros and cons. И только собрав их все в одну таблицу и внимательно проанализировав можно сделать вывод о том, что же перевешивает в конкретной ситуации.
> что и требовалось доказатьЧто старички на подсосе крупных контор?
Тут главное вылавировать между интересами контор и сообщества, если последнее имеет смысл.
Что-то можно будет считать доказанным, когда Кроа-Хартман и Кук сами выучат раст. Ах, да - им же придётся учить его непрерывно - с каждой "стабилизацией порции АПИ", так что равьюить код на им будет некогда.
> переосмыслить и привести в порядок APIЛюбопытный эксперимент. :)
Конечно любопытный. Выкинут из ядра все goto и что ты будешь делать?
пересяду на васик, без ваших энтих ядер от лукавого
Но в расте есть break - чем тебе не goto?
Технически любое изменение PC является goto. Включая if/while/for/loop и включая вызовы подпрограмм и выход из них (return).Разница появляется в языках высокого уровня. В Rust нет специальной инструкции goto. Причина - наличие механизмов, решающих сходные проблемы более надёжным способом. В первую очередь наличие механизма деструкторов, которые позволяют выполнять код при уничтожении переменной. Наряду с move-семантикой это закрывает все реальные потребности в goto. По своей сути получается, что компилятор сам пишет эту часть кода за тебя.
> Технически любое изменение PC является goto. Включая if/while/for/loop и включая вызовы подпрограмм и выход из них (return).Вроде только goto из них способен на long jump (как вызов функции) поэтому его хейтят? Хотя надо смотреть конкретные кейсы.
goto в Си работает в пределах одной функции. Для длинных переходов есть setjmp/longjmp.Большая часть кейсов использования последних относится к обработке ошибок, тестам, дебагу. Надо ли объяснять, что в большинстве современных языков есть встроенные более надежные способы? Ещё для реализации кооперативной многозадачности. В Rust (и многих других) для этого есть async.
Оба механизма опасны. Даже базовым goto можно, например, стек испортить. А при помощи long jump можно испортить что-нибудь ещё более важное, вроде состояния аллокатора памяти. В худшем случае ошибка обнаружится где-нибудь в продакшене.
async - это как бы не совсем многозадачность. И поддержка асинхронного программирования в Rust, на мой взгляд, сделана как-то странно.
Господа теоретики, в ядре нет setjmp.
А покажи нам свои коммиты в ядро, товарищ практик.
Я показал: нажимаешь на ник, и видишь ссылку в анкете.
> Господа теоретикиПонятное дело, что setjmp/longjmp это функции для юзерспейса. Я в контексте юзерспейса и объясняю, зачем они используются.
Вроде бы там было что-то, что позволяет без MMU использовать ядро. Скорее всего там есть эквивалентный механизм, который таки используется для чего-то.
Кстати добавлю, что async из Rust вполне пригоден для использования в кернелспейсе.
Да не надо вообще юзерспейс проецировать на ядро: требования различаются, потому и подходы могут быть разные.Там троль приплёл goto к "переосмыслить и привести в порядок API", спровоцировал бессмысленный спор.
API менять весьма рискованное дело, и результат может получиться всякий.
Отсутствие goto, т.е. отсутсвие возможности использовать безусловные переходы сильно усложнит программирование конечных автоматов и выходы из вложенных циклов. Фактически все парсеры и сканеры станут работать гораздо медленнее. С другой стороны, может это заставит отказаться от xml и сериализации в текст.
let result = 'block: {
do_thing();
if condition_not_met() {
break 'block 1;
}
do_next_thing();
if condition_not_met() {
break 'block 2;
}
do_last_thing();
3
};Очевидно, оно и с произвольными циклами работает:
'a: loop {
'a: loop {
break 'a;
}
print!("outer loop");
break 'a;
}Как видишь, никаких проблем. С одной стороны семантика сильно порезана, а с другой стороны функциональность сохранена. Нет возможности перепрыгнуть вызов free и получить утечку например.
> сильно усложнит программирование конечных автоматов
Скорее pattern matching на порядки упростит всё. И тип-суммы, которые enum. И парсер-комбинаторы типа https://github.com/rust-bakery/nom. В целом рекомендую сходить, да посмотреть, как на самом деле, а не как рандомы сказали.
> let result = 'block: {break blockN -- это ли не goto, только по другому обозначен?
Проблема с оригинальным goto в том, что можно перепрыгнуть выделение/высвобождение памяти. Выход из блока видимости означает вызов всех деструкторов и подобного. Это тот же самый break для циклов, только от цикла остался только блок.
> Конечно любопытный. Выкинут из ядра все goto и что ты будешь делать?Я сразу тебе скажу, что твой прогноз глуп и несбыточен, поскольку сделан человеком без опыта.
Окей, ИИ, перепиши мне ядря linux на rust
OK, AI, сконвертируй мне модуль ядра нa Rust в код на C.
Даже так будет лучше, потому что не будет магии с указателями. Только работать быстрее не станет, а то и медленнее. Потому что у компилятора Rust есть гарантии не нулевого указателя и длины массива, а не просто *void.
Все, капец ядру, если правда то, что пишут. Корпы его подмяли под себя. Все эти разговоры о якобы более безопасном коде не имеют ничего общего с реальностью.
>Корпы его подмяли под себяРазморозился!
А кто его будет сопровождать? Неужто т.н. "сообщество"?
вообще-то, как показывает практика, пишут полезное только мелкие конторы. крупные корпы только мешают: пытаются насаждать свою херню, деньги жмут, шантажируют отзывом девелоперов. вобщем, корпы не нужны - нужен малый и средний биз, юзающий ядро для своих нужд без игр в политику. и таки это и есть "сообщество" чтобы корпоративные клоуны за 30 серебряников тут не пели.
если бы я был великодушным диктатором типа линуса, я бы принципиально не принмал код от людей, связанных с фирмами с оборотом от редхат и выше: гугл - нафиг, ибм - нафиг, м$ - нафиг. прямо в лицензии указать такое и заживём
вот это проект что надо был ба:)
Ну ты не Линус, и поэтому Linux сегодня - это самая продвинутая ОС в мире, установленная на устройствах от мобильников до самых мощных кластеров в TOP500. Линус, в отличие от тебя, обременен техническими знаниями, и знает, сколько времени потребовалось бы реализовать то же самое на чистом энтузиазме. Поэтому Linux в течение нескольких лет с конца 90х получил industrial-grade поддержку SMP, NUMA, серьезных файловых систем, оборудования с поддержкой горячой замены памяти и даже процессоров. Того, что админы локалхостов видели в лучшем случае на картинках.
А что делать с кодом (собственностью) фирм, которые завтра продадутся корпам? (Как РедХат продался АйБиЭму.) Выкидывать из проекта? Бессмысленная (и даже вредная) дискриминация.
С мотивами согласен. С методами - нет.
Это скорее хорошо. Можно будет агитировать людей переходить на BSD, Plan9, Hurd.
>Можно будет агитировать людей переходитьАгетируй не агетируй, а все равно все останутся на Линукс. Отвалится только 2-3% пользователей, считай статистическая погрешность. В свое время бухтели по поводу системД, много недовольных было, дебаты целые проходили, и чем все закончилось? Все мейнстримныне дистры используют системД или его компоненты. Те же artix или devuan они не свободные от системД как себя позиционируют, они используют компоненты. Есть всякие kiss, obarun, joborun, но это васянские поделки с пустыми репозиториями. Единственное что более менее так это antiX, все остальные прогнулись или маргинальщина.
> В свое время бухтели по поводу системД, много недовольных было, дебаты целые проходили, и чем все закончилось?Есть в отсталых странах такое неверное понимание демократии.
Борьба между разными течениями нужна не для того, чтобы у руля оказались не те, а вот эти, "более правильные".
Она - для того, чтобы рулящие видели края и не отрывались от действительности.
В общем, демократия тормозит развитие, потому что нужно идти на компромисся с архаичными элементами.
Если имеет место развитие - да, тормозит... по сравнению с прямолинейной диктатурой.
Но гораздо лучше демократия тормозит - деградацию. За это мы ее и любили.
Ну, насчет деградации можно и поспорить. Но не имеет смысла.
Действительно, какой смысл тут спорить, раз 1991 год всё показал.
> нужно идти на компромисся с архаичными элементамиТебе напомнить, к чему привело "спрячь бабушкин паспорт"?
>Она - для того, чтобы рулящие видели края и не отрывались от действительностиОна - про делёж кормушки. Поскольку даже начинаются политические игры, не имеющие к реальному вопросу никакого отношения
>Борьба между разными течениями нужна не для того, чтобы у руля оказались не те, а вот эти, "более правильные".А я думал, вы будете про опасность монокультуры рассуждать. А нет, вы просто хотите получить доступ к кормушке
Дележ кормушки вместо демократии как раз приводит к монокорыту Главного Демократа и его прихлебателей. И ничего политического в таких играх нет.
> Дележ кормушки вместо демократииДемократия это один из видов делёжки кормушки. Мне не важно, сколько голосов было за вариант, который мне не нравится - один от диктатора или сотня от демократов.
>И ничего политического в таких играх нет.Есть. Вы ничего не пишите про разработку, исключетельно про политику.
верно, ведь при отсутствии демократии ничего делить не нужно и всё идёт в один карман
Не забывай, что короля играет свита. Самый жёсткий диктатор - ничто без своей команды, лояльность которой ему приходится покупать допуском к корыту.
> Самый жёсткий диктатор - ничто без своей командыНет у диктаторов никакой "лояльной команды", они окружают себя холуями, которым подбрасывают с барского стола. Того, кого нужно покупать, диктатору проще уничтожить.
Тем более, что от большого ума диктаторами и не становятся...
>> команды, лояльность которой ему приходится покупать допуском к корыту.
> холуями, которым подбрасывают с барского столаЭто одно и то же
> Того, кого нужно покупать, диктатору проще уничтожитьНе всегда
> от большого ума диктаторами и не становятсяХы... Принцип "кто палку взял - тот и капрал" имеет очень мало общего с реальностью.
> Это одно и то жеЭто принципиально разные люди. Команда состоит из ярких личностей, которые двигают дело сами, готовы спорить и встать к рулю, если понадобится. Для диктатуры такие опаснее любого врага. Ей годятся только холуи - которые боятся даже показаться быть умнее хозяина и только послушно бегут толпой исполнять его капризы.
> Команда состоит из ярких личностейКоторых недопущенные к кормушке называют холуями.
Вот как раз среди холуев решительное разделение на допущенных и не допущенных - одна из опор мировоззрения.
> все равно все останутся на ЛинуксЧто значит _ВСЕ_???
Я останусь на Windows и Android.
>Что значит _ВСЕ_???Я останусь на Windows и Android.
ВСЕ значит то, что ВСЕ те, кто сейчас пользуется линуксом и дальше продолжат им пользоваться. Принципиально уйдет совсем мало людей, статистическая погрешность. Народу по большей части плевать, работает сервер и ладно или запускается десктоп, а как там все внутри и на чем работает безразлично. Про окна и андроид вообще речи не идёт они к тем самым "ВСЕ" не имеют отношения так как не используют Линукс. Хотя есть и те кто пользуется сразу всеми системами, но они тоже вряд ли что то поменяют радикально, а если поменяют, то их тоже можно отнести к этим самым "ВСЕ" и они можно сказать тоже войдут в эту часть статистической погрешности или не войдеюут в зависимости от их принципиального решения, как пользователи Линукс, хотя бы частично. Надеюсь я ответил на твой вопрос.
> Про окна и андроид вообще речи не идёт они к тем самым
> "ВСЕ" не имеют отношения так как не используют Линукс.Вообще-то андроид еще как использует ядро линукса.
А по остальным пунктам согласен, большинству адекватных людей пофиг на идеологию, главное чтобы работало хорошо.
Про тебя речи и не было, очевидно же что разговор о тех всех кто использует линукс.
3% от полутора - это сколько?
Статистическая погрешность
Для сустемДы ещё ничего не кончилось. То, что его ПРОДАВИЛИ в некоторые дистры, ещё не сделало тупее остальных! Есть куча форков старых добрых линуксов, где сразу же сказано, что это "форк без заразы поттеринга". К тому же, куча старого софта даже не пытались "завязать на сустемДы" - оно по-прежнему работает на любом линуксе.
Это как бы борьба на выживание - корпорасты нянчатся с анальными зондами пока это вообще имеет смысл (в контексте бизнеса на линуксе). Как только адекваты откажутся от корпорастных перделок, сразу кирдык - никому нафиг не надо тратить деньги на поттеринговые зонды.
Просто покажи хотя бы десяток больших деплоев в публичный прод этих форков-без-заразы. Больших — ну скажем, от тысячи серверов. Да хоть больше сотни покажи. Нетфликс на freebsd пока что, а больше буйных нет. У васянов на локалхостах что угодно будет работать, даже дос.
Genode/Sculpt
Так какая выгода корпорациям от внедрения нового языка?
Контроль.
Каким образом это дает им контроль?
Помните, как NSA кинула кличь "Всем на Rust!" Не о простых же пользователях они так пекутся, а о своём удобстве. Значит, в непрозразночности Rust-кода они усмотрели таки для себя удобные возможности сокрытия.
Знаю, может что-то и заметили для себя, а может и задумались о повышении безопасности софта.
Если перечитать тот отчёт, то они не только не только Rust рекомендуют, но и Ada. Да и вообще, только никому не говорите, они ещё рекомендует C#, Java и Python. Но верующие в погрешимость раста видят только раст.
> Если перечитать тот отчёт, то они не только не только Rust рекомендуют, но и Ada.Ада... вы думаете местные сишники ее осилят?
Да и не все с ней так гладко. Где-то в комментах уже расписывали что и как.> Да и вообще, только никому не говорите, они ещё рекомендует C#, Java и Python.
> Но верующие в погрешимость раста видят только раст.А кто из этих трех без сборщика мусора?
Вот то-то и оно!
Ещё называли Go, ладно с GC. Тогда Swift, подходит по всем параметрам без GC, похож на С, удобно переписывать с C. Только проблема в том что используется целиком для iOS.
> Ещё называли Go, ладно с GC. Тогда Swift, подходит по всем параметрам без GC, похож на С, удобно переписывать с C.Я на нем пишу по работе.
Нифига он на С не похож.Во-первых, там есть ARC.
ARC automatically frees up the memory used by class instances when those instances are no longer needed
Я бы назвал это GC, но тут можно и поспорить))
Но там есть autoreleasepool с ручным управлением.Во-вторых, там куча функциональных подходов.
let sum = fahrenheit.map({ (degreesFahrenheit) -> Double in
return (degreesFahrenheit - 32.0) / 1.8
}).filter({ (degreesCelsius) -> Bool in
return degreesCelsius <= 20.0
}).reduce(0.0) { (result, degreesCelsius) -> Double in
return result + degreesCelsius
}
Думаю СИшников кондрашка хватила бы.> Только проблема в том что используется целиком для iOS.
Да и нет.
Сейчас есть проекты которые используют кроссплатформенные кода для андроида. И я читал блог про использование на винде.
Плюс яблочники перепиливают Foundation под универсальную либу написанную на самом свифте.Т.е теоретически получаем кросс-код для ios/macos/watchos + андроид + винда + линукс
Весьма неплохо если ты делаешь приложения типа "офис"
swift.org/platform-support/
Да и они экономически уже контролируют.
Видимо не все контролируют ещё. Аппетит растет во время еды
Контроль чего ? у них и так линус на побегушках, только и успевает что принимать под козырёк новые хотелки, скоро уже мозоли подмышками появятся как у иной перелётной птицы
Да и права все на код и логотипы принадлежат тому надо кому, ещё и в правовом поле той страны надо какой, суды которой, по случаю чего, "правильно" решат спор между корпами и какими-то голодранцами от абстрактного сообщества
Как чёрный вариант, линукс "элопят"! (см. историю Нокии) Сначала туда внедряют хрен пойми что, разводят хайп, вносят смуту, раскол (как было с systemD), потом появляются форки, усилия распаляются в никуда, а в результате имеет 10 полуживых недолинуксов и полный раздрай. Корпам нужна одна православная вендяшечка, анально засунутая во все ПК и отдающая "телеметрию" по первому запросу. А "альтернативы" должны быть такими убогими, чтобы даже мысли не было туда соваться.
А в лине телеметрии нет?
>>Корпы его подмяли под себяС разморозкой! Корпы подмяли его под себя в конце 90х-начале 2000х, начиная с IBM, а следом SGI и многие-многие другие. И если бы не они, то никакого разительного преимущества у Линукс бы не было, и совершенно не факт, что эту нишу не заняла какая-нибудь FreeBSD, например. Именно корпы превратили средненькую в техническом плане поделку в мощную современную ОС, влив туда миллионы строк кода и миллиарды долларов.
> Именно корпы превратили средненькую в техническом плане поделку в мощную современную ОСОчень грубая ошибка! поделка так и осталась "средненькую в техническом плане", просто её обвешали новым дровами и чутка прилизали кишки. Принципиально ничего в этом "монолитном куске Г" не поменялось - ни микроядерность, ни модульность так и не появились. Есть зачатошные потуги а-ля "загрузка блоба в рантайме", но это лишь малая доля того, что требует настоящая модульность.
А гениальная и не нужна особо. Нужна достаточно хорошая (читай: средняя) сейчас, а не гениальный Hurd когда-то там в будущем, но это не точно. Я живу сегодня и кушать тоже хочу сегодня, а заказчики готовы платить только за результаты, а не за крутые идеи. Но ты на меня не смотри, я старый, у меня дети и ипотека, ты дерзай, воплоти мечту в жизнь, форкни ядро и сделай правильно.
> А гениальная и не нужна особо. Нужна достаточно хорошая (читай: средняя) сейчас, а не гениальный Hurd когда-то там в будущем, но это не точно.Ну... Хурд ИМХО гениальным не был даже в момент создания.
> Я живу сегодня и кушать тоже хочу сегодня, а заказчики готовы платить только за результаты, а не за крутые идеи. Но ты на меня не смотри, я старый, у меня дети и ипотека,
Как и у тех, кто пишет 80+% кода ядра.
Потому что это нормально. Не всем же дают гранты за танцы в фуррисьюте антилопы.> ты дерзай, воплоти мечту в жизнь, форкни ядро и сделай правильно.
Форкнуть? Там же куча плохих идей и кода.
Надо советовать написать все самостоятельно с нуля!
Stallman (GNU Hurd/Mach) was right. Tanenbaum (Minix) was right.
Господа, мы на пороге рождения нового языка CRUST! Даёшь кору в ядро!!
Мы находимся на пороге перехода на BSD, прощай, Linux! 🚀💻
Там тоже Раст. Тебе не скрыться и не спрятаться!
Да и ктому же, FreeBSD давно и глубоко под Шлангом (читай, под Apple) ходит.
Пока ещё есть DragonFly BSD, которая собирается GCC.
Возможно это их и спасает от раста в ядре.
Говоришь, Lua в ядре лучше, чем Rust? Ну ок…
> Говоришь, Lua в ядре лучше, чем Rust? Ну ок…Lua в песочнице работает, а rust в ядре планируют - разные вещи.
большой ли компанией переходите, какого рода проекты? Расскажите как решили вопрос с security updates прикладного софта, было бы интересно узнать кто из вендоров оказывает такую поддержку хотя бы лет на 5.
Сраст. Хмм, весьма содержательное название в свете заваливания нестабильной ржавчины в ядро )
CRUSTиться
Все правильно говорят, Раст в ядре нужен. Ещё обязательно нужно добавить интерпретатор питона и писать модули ядра на питоне. Это даст кучу плюсов: быстрое прототипирование, кучу новых мейнтейнеров умеющих в питон, а ещё это своременно и молодежно. А всех недовольных дедов сишников под сраку и на пенсию.
Ты хотел пошутить, а прототипы дров вполне себе пишут на питоне.
Только зачем в ядро, если это для прототипирования?
В энтих ваших BSD уже есть Lua в ядре и позволяет писать модули. Или это _другое_?
Неясно что курили NetBSDшники.. Но забористо..
И в итоге оно безопаснее и гибче, нежели eBPF.
Но настолько медленнее (на порядк_и_!), что кроме прототипирования никуда и не годится, в отличие от.
В отличиии от NetGraph на FreeBSD.
А eBPF настолько дыряв что использовать его в продуктиве на постоянку будет только уж совсем отмороженный.
Поздно. Его уже используют в продуктах.
https://github.com/luainkernel
>Ещё обязательно нужно добавить интерпретатор питона и писать модули ядра на питоне. Это даст кучу плюсов: быстрое прототипирование, кучу новых мейнтейнеров умеющих в питонА если добавить JS ? Ого-го сколько новых мейнтейнеров вольётся! Так ипредствляю себе новости: "Вышло новое ядро xx.уу. В подготовке этого релиза использованы патчи от 20200 разработчиков"
А если посчитать овер9000 однострочных зависимостей, которые тащит каждый из этих патчей, так вообще 100500 разработчиков получится.
Нет, пока я ядро не добавят Javascript, ничего коренным образом не улучшится. Только Javascript спасёт усех.
Надо чтобы искусственный интеллект кодил, хоть прям сразу в бинарник.
Читал мнения экспертов Опеннета и воплощал это в машинных кодах.
Судя по последним новостям, внедрение раста в ядро находится не "в процессе", а на "нулевом" шаге – большинство народа, вообще не понимает что такое Раст и зачем он нужен. Приходится вещать базу.
Разработчики ядра: я знаю только дыряшку и два языка знать я не могу, памагити
Любой фулл стек школьник: каждый день валяю HTML/CSS/JS и ещё сверху бекенд на чём угодно - думаю выучу ещё один язык для удовольствия¯\_(ツ)_/¯
Какой упоротый коммент. Госпадин думает что-то ещё есть люди которых этим растам не забодали
Какой удар по местным луддитам. Одно дело полоскать rust-активистов с анимешными аватарами, но тут целый Грег. Лидеры проекта твёрдо и чётко решили, что rust'у быть в ядре.
Они что-то там вякнули, вот только есть одно но: линакс написан на сишке и время в зад не воротишь. И что такого, спросишь ты? А то, что прочь из проекта написаного на сишке со своими брейнфаками! Ищите свой расовый проект, как его там раст-ос этот, когда найдете, будете туда продавать свои удобрения
> Они что-то там вякнули, вот только есть одно но: линакс написан на сишке и время в зад не воротишь. И что такого, спросишь ты? А то, что прочь из проекта написаного на сишке со своими брейнфаками!Погоди, а кто написал линукс? Линус и написал.
И если он решит "пора внедрять брейнфаки" - то это его дело.
А твоим мнением может подтереться.> Ищите свой расовый проект, как его там раст-ос этот, когда найдете, будете туда продавать свои удобрения
Это решат те, кто за проект отвечает. В частности Грег из этой новости.
И чем его компилировать? Раст в gcc уже доделали?
Специально для тех, кто не знает как компилировать, Раст, по умолчанию отключен
Вопрос был другой.
> Вопрос был другой.Если не знаешь как компилировать, значит тебе и не нужно. Поэтому отключено, специально для людей которым не это не нужно.
Будет нужно – откроешь мануал и прочитаешь. Комменты на опенете тебе не помогут.
но при написании кода на Ц ты обязан позаботиться, чтобы код на ржавом не сломалсяиронично
На данный момент отключен, а если примут решение новые подсистемы ядра писать на Rust? Даже не просто модули для оборудования, которое, в случае чего, можно и не покупать, а важные внутренности ядра.
Личное мнение : Хр. бы с ним, с кодом в ядре на Rust, главное, чтобы этот код успешно компилировался компилером gccrs. Чтобы бинарный код производился _единым_ кодогенератом для обоих фронтендов: C и Rust.
> И чем его компилировать? Раст в gcc уже доделали?Проблема курицы и яйца. Зачем добавлять раст в gcc, если его нет в ядре.
А сейчас у них появится стимул.Тем более, не одним же gcc. Есть прекрасный свободный clang, который и раст собирает, и ядро отлично компиляет (2+ млрд разношерстных андроид устройст тому доказательство)
Он не свободный, а пермиссивный. Поэтому корпы везде его и суют.
Я выбрал свободу кода, защиту его от закрытия, ты выбрал свободу закрывать код, делать киллерфичи в закрытом виде, либо вообще пустить всю разработку на закрытый вариант, если основные силы разработчиков находятся под твоим контролем, как у крупных компаний. Мне, как простому пользователю, очевидно, не выгодна пермиссивщина.
Нет уж, спасибо, собирать ядро Шлангом - моветон.
Вообще-то, его уже добавили, но он ещё неработоспособный.
там и не только, вроде были какие-то проблемы с ловлей боровов, полные алгоритмы которых исходной конторой не особо раскрывались как и некоторые нюансы
> clang, который и раст собираетшланг не собирает раст, у них просто бэк общий (LLVM). но да, он получше гнутого уныния будет
Уже к 15 версии планируют минимальную рабочую версию
https://rust-gcc.github.io/2025/02/06/2025-01-monthly-report...44 страница
https://fosdem.org/2025/events/attachments/fosdem-2025-6507-...
Свежий доклад 01.02.2025
https://fosdem.org/2025/schedule/event/fosdem-2025-6507-rust.../
Кто мне - человеку, который пишет на Си, объяснит, как язык Си имеет отношение к тому, что прогаммист обратился к памяти, которую сам ранее освободил? Или вот это вот "некорректное освобождение ресурсов при обработке ошибок"? Детский лепет. Корпы подмяли ядро под себя. И майки это все возглавляют, так что нет иллюзий о том, что там кто-то думает о безопасности. Надежда на то, что будет как минимум одна версия ядра, а которой будет только Си.
> Кто мне - человеку, который пишет на Си, объяснит, как язык Си имеет отношение к тому, что прогаммист обратился к памяти, которую сам ранее освободил?Непосредственное отношение имеет. Он разрешает это делать.
Голову включать надо в любом языке программирования.
Ага, пишите без ошибок, а также будьте здоровыми и богатыми.
Даже гениальная голова от подобного рода ошибок не спасёт.
Да ладно. Проследить за тем, чтобы не возникало упомянутых ошибок, не надо сверхспособностей.
Сверхспособностей не надо. Нужна 100% внимательность и память. А человеческий мозг на них не способен.
Да ладно... То есть вот ракеты человек может строить, а проследить за тем, чтобы в коде не было ошибок по невнимательности, мозг не тянет?
Ракету не один человек строит. И не при помощи сишечки. И бюджеты совсем другие.
А ракеты всё равно порой падают.
> То есть вот ракеты человек может строитьСтроить то может... но и ракеты падают, иногда даже с человеческими жертвами.
Вдруг кто-то по !невнимательности! поставит датчик ввер ногами?
А защиты от дурака не будет. И что тогда?Плюс в айтишечке нет таких вложений в безопасность как в космос. И вряд ли вы захотите тратить на софт в десять раз больше ресурсов.
Покажи свой безошибочный код.
>Голову включать надо в любом языке программирования.Только одни компиляторы не дают безголовым программировать, а другие с радостью компилируют любую чушь. Си относится к последним
А можно пример кода программы на Rust в которой запрещено так делать?
fn main() {
{
let a = Box::new(7);
println!("{}", *a);
}
println!("{}", *a); // compile-time error
}
https://play.rust-lang.org/?gist=a01b6354d0af1dde030340f8de2...
:ferrisClueless:
правда miri нисходит ошибку, bless miri
Красиво, красиво, ничего не скажешь.
> fn main() {
> {
> let a = Box::new(7);
> println!("{}", *a);
> }
> println!("{}", *a); // compile-time error
> }Абсолютно неубедительно.
> Абсолютно неубедительно.Вы вроде не просили вас в чём-то убеждать, вы просили пример.
Давайте пойдём дальше: впилим Хруст в проц, а то эти долбанные машинные коды ничего не делают за кривокодера и дают обратиться чёрти куда.
>Давайте пойдём дальше: впилим Хруст в проц, а то эти долбанные машинные коды ничего не делают за кривокодераСпали в анибиозной камере ? Так для спящих скажу- у вас была ЭВМ с тегированной памятью,ушли в историю.Славились отлаженным софтом, т.к большинство ошибок очень быстро вылазили по срабатыванию защиты.Это потом Бабаян в Эльбрусе подсмотрел идею с защитой.Но ребята кто делал процессор риск-5 обнаружили что патенты то истекли, а для безопасности эта очень хорошая вещь и в какую спецификацию включили эту защиту.У АRM при виде этого расширения начало подгорать и в 64 битной версии тоже включили тегирование памяти и затем добавили и аппаратную защиту от подмены адреса возврата функций.Все, большинство ошибок работы с памятью вызовет срабатывания защиты тега памяти. И только x64 в пролете, для нее уже не натянешь тегирование , приходится на уровне компиляторов изобретать защиту.
>Надежда на то, что будетНе будет! Точнее будет как в свое время у дебиан голосование по инитам, до тех пор, пока не проголосуют правильно. А всех особо недовольных отменят или выгонят.
Время покажет. Есть же версия ядра без раста. Так что я лично думаю, что старые программисты ядра очень даже могут захотеть на нее переключиться. Им собственно ничего другого и не остаётся по большому счету.
> Есть же версия ядра без раста.Её нет.
Libre linux
Нет. Это ядро, освобождённое от проприетарщины. Rust под открытой лицензией, его из ядра не удалят.
Это ядро, которое освобождено от раста в том числе. Его вычистили от проприетаргого кода и раста.
Хм, возможно я ошибался. Но в примечаниях к выпуску видел только "добавлены примитивы для обнаружения rust". Но не нашёл слов что его оттуда удаляют.
Кстати, да, я тоже этого не увидел. Возможно они его оставили. Возможно я ошибся
Стремная фигня от каких-то латиноамериканских комми которые умеют только удалять?
И у которых каждый релиз "удалена поддержка" очередных ноутбуков?
Отличный вариант для тех, кто готов ради щво60дки жрать помои.
Для тебя стремная. Для других нет. И если бы не вот эта свобода, которую ты готов отбросить ради мнимого удобства, платил бы ты за всё в ИТ, вот буквально за всё. Тебе никто и никогда не позволил бы скачать и установить пиратский шиндовс. Только благодаря движению за свободу по, майки это позволяют тебе, ибо понимают, что в противном случае человек может переидти на Линукс.
> Для тебя стремная. Для других нет.Для горстки извращенцев - нет.
Для нормальных людей - да, они используют нормальное ядро.> И если бы не вот эта свобода, которую ты готов отбросить ради мнимого удобства, платил бы ты за всё в ИТ, вот буквально за всё.
Так как я сам программист, то я не очень против.
Труд должен оплачиваться. И я ценю время и усилия других людей, тк знаю как пишется софт.
А столманновских коммуняк с их "отобрать и поделить" я просто презираю.> Тебе никто и никогда не позволил бы скачать и установить пиратский шиндовс.
Чушь. Люди качают и винду, и фильмы, и игры.
И наличие ЖоПЛи на это никак не влияет.> Только благодаря движению за свободу по, майки это позволяют тебе, ибо понимают, что в противном случае человек может переидти на Линукс.
Лол, ну у тебя фантазии.
Линукс на дестопе это убожество. 4% это только подтверждают.
Так работай на фирму и пускай тебе платят. А если люди хотят разрабатывать свободное по и развивать программирование, тебе какое дело? Я надеюсь, ты за свой виндовс и вижуал студию заплатил а нескачал их с торрентов, ведь труд должен оплачиваться! Я также надеюсь ты продуктами свободного по вообще не пользуешься по тем же соображениям. Майков в Линукс никто не звал ведь. А чего полезли раз 4% всего? Потому что на самом деле гораздо больше. Плюс серверы.
> Я надеюсь, ты за свой виндовс и вижуал студию заплатил
> а нескачал их с торрентов, ведь труд должен оплачиваться!За винду мне заплатил производитель ноута (а я - ему)
За студию заплатила фирма.
И да, не качаю с торрентов ни винду, ни студию, ни игры.> Я также надеюсь ты продуктами свободного по вообще не пользуешься по тем же соображениям.
С чего это вдруг? За них заплатили корпы. Плюс я не нарушаю лицензию, пользуясь ими.
> Потому что на самом деле гораздо больше.
Нет, не больше. Да и 4% это с учетом огороженного стимдестка и проприетарщика Вальв.
> Плюс серверы.
А вот и правильный ответ!
Майки сейчас на азуре зарабатывают больше чем на винде и х-коробке.
Ну так и работает "тихая бюрократия". Причём, далеко не только там. Есть куча разных движений и контор, занятых анализом своей профильной сферы и тех кто и что там делает, как и на какие темы высказывается итд итп. Если по ним что-то не так - сообщают наверх.
Сверху - "спускают" директиву ответственным выпилить конкретного сотрудника.В итоге, вроде бы "сообщество за цветной код( написанный исключительно не белыми )" никак не связано с разработкой какого-нить линукса, а по сути - "совершенно случайно" во второй конторе выпиливаются те кого не одобрили в первой. И это в лучшем случае, ведь может появиться какой-то пьяный неадекват и просто сбить чувака или ещё чего. Случайность, бывает. А то, что именно он предлагал революционные идеи, которые многих отодвинут от кормушки и ограничат коррупцию и был точкой притяжения остальных - так это слухи и случайности.
Там ещё следующий уровень - это всякая регулярная сертификация и аттестация, организованна частными конторами тех кого надо. В итоге, неугодные выпиливаются вообще по косвенному формальному признаку и это полностью скрывает цели и планы вышестоящей структуры, а неугодные - выкидываются из ключевых направлений. Разработка ПО, Образование, Медицина итд итп
Собсно, недавние разоблачения ЮСАИД примерно это и обрисовали в общем и целом
Покажи как это сделать на питоне.
Ну ты либо не пишешь на Си, либо пишешь helloword-ы, либо накидываешь на вентилятор
ППКС, чувак просто не в теме.
В том же, мной любимом Free Pascal, компилятор следит за многими вещами и банально не даст скомпилировать. В С компиляторы более "Либеральны" и позволяют делать многое, что в Free Pascal не дозволено. Походу ребят из Раста осенило и они сделали что-то подобное
>Кто мне - человеку, который пишет на Си, объяснит, как язык Си имеет отношение к тому, что прогаммист обратился к памяти, которую сам ранее освободил?Допускает такое. Нужно остановить компиляцию, и вывести строку с ошибкой. Но си коварно продолжает, встраивая в код UB
Есть Valgrind для програм на Си, который выявляет такие ошибки на этапе выполнения, раз уж программист их допустил. Вообще-то программистам надо развивать внимательность при написании кода. Без этого никакой язык не спасет. Эти все отговорки о якобы ужасных ошибках на Си - детский сад на самом деле. Просто веских аргументов в пользу раста нет на самом деле
> Есть Valgrind для програм на СиНет, он выявляет только самое элементарное.
> Просто веских аргументов в пользу раста нет на самом деле
Тыщщи cve на дыряшке с тупыми однообразными ошибками - лучший аргумент в пользу раста))
ЗЫ: такое ощущение что вы не писали ничего больше лабы в универе. Потому что достаточно один раз поискать странный креш, который возникает у заказчика рандомно и не воспроизводится у вас, и сразу станет ясно, что с си не все так просто.
> на этапе выполненияА rust на этапе компиляции. Разницу _замечаешь_?
И что? Фри Паскаль тоже это якобы делает на этапе компиляции.
> И что?Железобетонный аргумент.
Ну так выходит даже Фри Паскаль лучше Си
>Есть Valgrind для програм на Си, который выявляет такие ошибки на этапе выполненияВы забыли сказать "может быть". Поскольку хитрые ошибки так не найти
>Вообще-то программистам надо развивать внимательность при написании кодаВот жаль вас нельзя посадить писать код внимательным. Сразу бы на своей шкуре бы это почувствовали
Точно не адепты раста и хейтеры Си. Который раз уже тут повторяю, что нельзя винить язык по причине глупости программистов.
Мне вообще кажется, что виной всему ихняя, западная, система образования. Вернее ее отстутствие.
Сегодня ойти модно-молодежно, вот и идут туда все подряд. А понимания как работает компьютер и что вообще такое память отсутствует в принципе.
Вот такие вот и придумали себе раст, и черт знает еще что, что бы не думать. И чтобы не утруждать себя работой по пониманию основ информатики.
> Точно не адепты раста и хейтеры Си. Который раз уже тут повторяю, что нельзя винить язык по причине глупости программистов.А можно винить каменный молоток в том что он плохо забивает гвозди (но хорошо - мамонтов)?
Или оголенные провода скрученные кое-как?
Конечно нельзя! Просто это плохой инструмент.
Примерно как СИ говняно спроектированный (коммитетом) недоязык-переассемблер.> Мне вообще кажется, что виной всему ихняя, западная, система образования. Вернее ее отстутствие.
Что-то я не слышал про кучу великих программеров воспитанных в совке на самом лучшем образовании))
Си - классный язык. Просто надо уметь в нем работать. Да и даже не то чтобы как-то по особому уметь, а просто следить за тем, что делает код. Элементарно. Ещё раз: эти примеры якобы минусов Си - несерьёзны.
> Си - классный язык.Что правда?
А чего Ритчи писал, что на получившемся куске стандарта писать не возможно?
"The fundamental problem is that it is not possible to write real programs using the X3J11 definition of C. The committee has created an unreal language that no one can or will actually use."
Ну ладно, примем мнение анона за истину, куда же до него автору языка.> Просто надо уметь в нем работать.
Т.е нужны просто Настоящие Программисты? Всего-то.
> Да и даже не то чтобы как-то по особому уметь, а просто следить за тем, что делает код. Элементарно.
Ага, только ни у кого не получается.
Даже у акса-калов типа Тцо, которые 30 лет в ядре программируют.> Ещё раз: эти примеры якобы минусов Си - несерьёзны.
По мнению анона с богом забытого форума.
Очень весомо)
>Который раз уже тут повторяю, что нельзя винить язык по причине глупости программистов.Логика сишников: перила строить не нужно, главное просто быть внимательным. А если вы невнимательны, у вас кружится голова и всё такое прочее - живите в одноэтажном доме.
Си виновен в том, что собирает даже заведомо нерабочий код, не говоря уже про выявление каких-то неочевидных багов
Шикарно, шикарно. Теперь достаточно встроить бэкдор, вирус или что-то там еще в rust runtime и дело в шляпе. Линус молодец, очень не хочет чтобы и дальше АНБ, ЦРУ и т.д. тыкали его палкой в задний проход..
Надо набраться смелости и сказать настоящую правду: не АНБ и ЦРУ, а масоны и рептилоиды!
Мы тут не причём. Но rust одобряем.
Как это не причём? Вы раньше заставляли замедлять наши процессоры, а теперь ещё и более медленный язык втюхиваете.
Что такое rust runtime?
> Что такое rust runtime?Очередной наркоманский бред Олежки. Не обращай внимание, проходи мимо.
А то он сейчас начнет рассказывать как суперепупер надежную систему писал...
>> Что такое rust runtime?
> Очередной наркоманский бред Олежки. Не обращай внимание, проходи мимо.
> А то он сейчас начнет рассказывать как суперепупер надежную систему писал...А как же global_allocator? panic_handler?
-"Ну дебилы" (с) Лавров.
>> Что такое rust runtime?
> Очередной наркоманский бред Олежки. Не обращай внимание, проходи мимо.
> А то он сейчас начнет рассказывать как суперепупер надежную систему писал...А то что расто-маны до сих договориться не могут что можно называть рантаймом а что нельзя, и постоянные отсылки на С шную базу, показывают просто нулевую готовность проекта к серьезным проектам.
что мешало в рантайм gcc встроить?
или в рантайм llvm'а(хотя, не уверена на 100%, что он есть) ?
может скажем ей? А, зачем... девочка-программист это примерно морская свинка.
> может скажем ей?она и так знает, как и первые, так и лучшие программисты - девочки, не мужское это дело писать программы :)
> что мешало в рантайм gcc встроить?
> или в рантайм llvm'а(хотя, не уверена на 100%, что он есть) ?Потому как runtime gcc это абсолютно другое. Языки низкого уровня не требуют НИКАКОГО runtime. Это не runtime как таковой - это набор дополнительных библиотек.
Языки высокого уровня всегда имеют runtime для реализаций своего синтаксиса для недопрограммистов - чтобы им программировать попроще было в стиле строка = строка1+строка2. JAVA, С Sharp, VB, Rust и т.д. - все имеют рантайм.
Интересно, недопрограммисты на rust не знают что у RUST есть runtime.. Позорище..
>> Языки высокого уровня всегда имеют runtime для реализаций своего синтаксиса для недопрограммистовКакой же бред.
>> JAVA, С Sharp, VB, Rust и т.д. - все имеют рантайм.
Свалил все в одну кучу и думал никто не заметит. Во-первых, managed языки типа Java или C# действительно имеют рантайм намного жирнее такового в C/C++. И дело тут не в синтаксисе (им занимается компилятор), а в том, что там есть Garbage Collector, JIT-компилятор, код для обработки исключений (точно так же, как и рантайм С++ для раскрутки стэка и деструкторов).
Rust тут приведен через запятую либо от банальной неграмотности (скорее всего), либо как жалкая манипуляция. Его рантайм - минимальный по сравнению с managed языками, с которыми ты поставил его вместе. Рантайм раста сравним с рантаймом C++, к которому у тебя никаких претензий.
>[оверквотинг удален]
> Свалил все в одну кучу и думал никто не заметит. Во-первых, managed
> языки типа Java или C# действительно имеют рантайм намного жирнее такового
> в C/C++. И дело тут не в синтаксисе (им занимается компилятор),
> а в том, что там есть Garbage Collector, JIT-компилятор, код для
> обработки исключений (точно так же, как и рантайм С++ для раскрутки
> стэка и деструкторов).
> Rust тут приведен через запятую либо от банальной неграмотности (скорее всего), либо
> как жалкая манипуляция. Его рантайм - минимальный по сравнению с managed
> языками, с которыми ты поставил его вместе. Рантайм раста сравним с
> рантаймом C++, к которому у тебя никаких претензий.Аха, переменными динамического размещения в памяти занимается компилятор.. Ну уровень недопрограммиста понятен..
> Аха, переменными динамического размещения в памяти занимается компилятор..Что такое «переменная динамического размещения»?
> Что такое «переменная динамического размещения»?Видимо, что-то из той же области, что и "рантайм для реализаций синтаксиса" 😂
Забей - персонаж галлюцинирует...
та, что в куче, небось ?
> та, что в куче, небось ?Ну в таком случае этот персонаж сказал, что C и С++ не умеют работать с кучей, ведь у них нет рантайма, который, по его же словам ответственен за эти "переменные динамического размещения":
ОН: Языки низкого уровня не требуют НИКАКОГО runtime.
ОН: Языки высокого уровня всегда имеют runtime для реализаций своего синтаксиса для недопрограммистов
ОН: в стиле строка = строка1+строка2
ЕМУ: дело тут не в синтаксисе (им занимается компилятор)
ОН: Аха, переменными динамического размещения в памяти занимается компилятор..То есть если это про heap, раскручивая этот поток мыслей, им занимается НЕ компилятор, а рантайм, которого в Си и Си++ нет, соответственно динамической памяти в этих языках быть не может.
Но вообще, так глубоко копать и не надо, все уже было понятно на фразе "в стиле строка = строка1+строка2". Человек сначала утверждает, что языках низкого уровня нет рантайма и приводит в пример конструкцию высокого уровня "строка = строка1+строка2", видимо не имея вообще никакого опыта в программировании. Иначе как тут не знать, что в том же С++ прекрасно пишется std::string str3 = str1 + str2, и эта конкатенация будет обработана компилятором.
ну и ?
>Это не runtime как таковой - это набор дополнительных библиотек.я в курсе.
никто и не говорит, что там, условно, интерпретатор.
или у нас уже уязвимость в библиотеке - это не уязвимость ?
>>никто и не говорит, что там, условно, интерпретатор.
>>или у нас уже уязвимость в библиотеке - это не уязвимость ?в С и тем более в С++ есть рантайм, и это не только откомпилированная стандартная библиотека. Перед тем, как выполнится первая строчка из main(), для рантайма языка есть немало работы. Даже если первой строчкой в main() будет std::cout << "Hello World!", что это за добрая фея, которая создала std::cout, который каким-то образом связан со стандартным потоком вывода процесса? Когда она это сделала? stdout в Си - аналогично.
Так что нет вооще никаких проблем создать "заряженный" вариант gcc, который мог бы добавлять зловред в каждый откомпилированный бинарник.
А что все именно к рантайму прицепились? Система либо скомпрометирована, либо нет, если да, то есть масса способов внедрить вредоносный код. Что мешает обучить этому линкер, например? Так что без разницы, на каком языке написан код, и какой рантайм его языка - если его компилировать в скомпрометированной среде, способ всегда найдется. Что в Си, что в Расте.
у джавы - jvm, у cs, vb - clr. интерпретаторы байткода.
у раста такой же "набор доп. библиотек".
> у джавы - jvm, у cs, vb - clr. интерпретаторы байткода.Не спорю с основной мыслью, но хотелось бы уточнить технические детали.
Что у джавы, что у дотнета сегодня нет никаких интерпретаторов байт-кода. Сегодня и те, и другие используют либо JIT-компиляцию, либо AOT-компиляцию. Интерпретаторами байт-кода они были много-много лет назад - Java до конца 90х, ну а дотнет с самого начала имел JIT-компилятор. Разве что классический Visual Basic использовал интерпретатор, но даже он с 5, кажется, версии начал предоставлять опцию компиляции в машинный код.
> что мешало в рантайм gcc встроить?
> или в рантайм llvm'а(хотя, не уверена на 100%, что он есть) ?И зачем это все в gcc? llvm? У нас что, компиляторами пользуются бизнесмены, конечные потребители? Которые вообще не знают что вообще такое компилятор, линковщик.. Глупость какая-то.
> У нас что, компиляторами пользуются бизнесмены, конченые потребители?походу что да (поправил опечатку, не благодари).
Ни один из возражавших этой не-морской-не-свинке не ответил по существу.
Вероятно, вы просто не знаете. (нет, я снова не буду ни ее ни вас просвещать. Пусть ваша конченность останется навсегда)
> нет, я снова не буду ни ее ни вас просвещатьО нет! Гуру не хочет поделиться с нами своей мудростью!
Что же делать?!
рантайм gcc в конечную программу встраивается.
для того у них и исключение в лицензии для него.
вот с опеннета даже цитата
>Как объяснил Brett Smith, инженер, занимающийся вопросами лицензионного соответствия FSF, в состав GCC входят библиотеки времени исполнения (GCC Runtime Library), которые автоматически __встраиваются в обьектный код__ каждого приложения, создаваемого GCC.обьектный код, если что - это бинарник
> рантайм gcc в конечную программу встраивается.бедная жертва википедии...
Ладно уж, расскажу, в честь праздника (прошедшего дня алкоголика, а не то что вы подумали). А то от местных экспертов ты это точно не узнаешь, они не в курсе, для них там "особая магия".
В райнтайме gcc, в отличие от, нет ничего волшебного.Это три-четыре (со временем их становится больше) крошечных .o, невидимым для тебя образом добавляющиеся к твоему hello.o при окончательном вызове линкера - можешь руками это сделать. В общем-то можно было бы догадаться об их существовании, если спросить себя - чем таким уж особенным функция main отличается от любой другой написанной тобой? Правильный ответ - а ничем, одна из особенностей Си, что там вообще нет волшебства. Соответственно, ее тоже нужно откуда-то кому-то вызвать, и ее return должен кому-то вернуть управление. Очень теоретически это могла бы быть сама операционная система, но в современных это так не принято, да и почистить бы там надо бы, прежде чем просто так обрывать работу кода.
Вот это и прочую механическую мелочь делают в тех .o, чтоб не самому каждый раз для каждого хеловрота.
Как нетрудно догадаться - ведро линукса не вызывается из операционной системы, возвращать управление ему тоже некому, поэтому сишный рантайм там при сборке - правильно, отключен нафиг, вместе с libc и прочими бесполезными в ядре невидимыми частями.
Что такое liberty, зачем этот троянец появился на свет и в какой версии мы без него прекрасно жили - оставляю для самостоятельного изучения. Магии снова нет. (Разумеется, при сборке ведра - тоже не нужна)
С хрустом так просто с первой попытки не получилось, потому что в нем-то как раз всякой магии - хоть отбавляй. С пол-года хрустики бились головами об эту проблему, но, по слухам, кажись все же ее победили, эти парни настоящие ассы, достаточно вспомнить вызовы panic() вместо обработки ошибок - внутри этой самой магии (т.е. ты в своем-то коде такого не делаешь, но... уп-с, за тебя это сделал шибкоумный компилятор).
Но ета неточна, потому что желающих лезть проверять около нуля.
Вы разницы не видете между "gcc" и "рантайм gcc" ?
> Теперь достаточно встроить бэкдор, вирус или что-то там еще в rust runtime и дело в шляпе.Ого, а вот и белки-истерички подтянулись!
Что мешает сейчас встроить бекдов в жлобси?
А ничего, там дыреней еще на 10 лет припасено!
> Что мешает сейчас встроить бекдов в жлобси?компиляторов С вагон и тележка а раст только один, так понятней?
>> Что мешает сейчас встроить бекдов в жлобси?
> компиляторов С вагон и тележкаа сколько из них смогут скомпилировать ядро?
> а раст только один,
и тут ты соврал (а может просто не знаешь, тк можешь только генерировать бред)
> так понятней?
неа
> а сколько из них смогут скомпилировать ядро?кто-то считал чтоли, кроме шланга и гцц знаю
https://bellard.org/tcc/tccboot.html
> и тут ты соврал
назови второй - наперёд сразу скажу не надо бреда про gcc потому что это затычка а не компилятор
> Please note, the compiler is in a very early stage and not usable yet for compiling real Rust programs.
> https://bellard.org/tcc/tccboot.htmlА вы уверены что оно соберет современное ядро?
TCC поддерживает только до ISOC99. А ядро уже сколько лет с11.
В сети пишут что tccboot мог только 2.4.х ядра компилять.Поэтому таки остаются два - гцц и шланг.
> Поэтому таки остаются два - гцц и шланг.проприетарных компиляторов как овна за баней
https://community.intel.com/legacyfs/online/drupal_files/art...
>> Поэтому таки остаются два - гцц и шланг.
> проприетарных компиляторов как овна за банейТак весь сыр-бор начался с белок-истеричек:
"Теперь достаточно встроить бэкдор, вирус или что-то там еще в rust runtime и дело в шляпе."Представь как у них сгорит гузно, если ты швободистое ведро предложишь собирать проприетарщиной?
> проприетарных компиляторов как овна за банейхм, я думал что будет вполне очевидно, про какие компиляторы идет речь, но...
придется уточнить, что интересуют только открытые компиляторы
Откройте этот код на Раст о котором все говорят, там на каждый блок камент SAFETY потому что код вызывает unsafe, где там безопасность непонятно.
У вас там методичка раз в три года обновляется? Меняйте почаще, а то совсем скучно с вами
Раст даже в unsafe блоках делает некоторый контроль, например по владению. Поэтому даже эти блоки у него более безопасны, чем вообще без контроля, как в си.
Ну так а смысл?? Проще анализатор натравить на сишечку и найти проблемные места, чем ПЕРЕписывать всё на раст только ради раста.
> Проще анализатор натравить на сишечку и найти проблемные местаЕсли было бы проще - так уже давно бы сделали.
Но что-то не сложилось и типичный си-код дыряв как шапка-ушанка Шарика из Простоквашино.> чем ПЕРЕписывать всё на раст только ради раста.
Ты новость читал? Они хотят писать НОВЫЙ код драйверов на расте, а не переписывать старый.
Ну вот и всё.
Ядро, лет через десять, будет полностью переписано.
>позволит не только снизить число ошибок при работе с памятью, но и сократить время разработки. Скорость разработки возрастает благодаря снижению трудозатрат на отладку и наличию в языке строгих гарантий, позволяющих выявлять ошибки на ранней стадии написания кода, ещё до начала тестирования продукта.
Позволяющих выявлять ошибки на ранней стадии, ещё до написания кода.
нет кода - нет ошибок, действительно.
А вы боялись и в шутку говорили что ядро перепишут на Rusy. Ну так пусть весь Линукс перепишут.
Не будет. Будет гнить как венда-10 - годами что-то там будут костылить, дописывать, а потом выйдет весь в белом АМД и выкатит новую архитектуру. :) Этот вариант куда вероятнее, чем перепись миллионов строк кода на непойми чём.
Что примечательно, за раст в ядре топят те кто код не пишет - торвалдсы, хартманы всякие. Ну посмотрим - им сверху видней, может и правда там уже очередь желающих на раст бесплатно писать.
Скорее всего на них надавили как следует. Не, ну если бы к тому, что нужно в ядро продвинуть Раст, пришли сами торвалдсы и ко, тогда ещё все понятно, но тут все это дело возглавляют клопы. Торвалдс сам написал не мало кода на Си в ядре, да и как он теперь будет проверять код на расте? Короче скорее всего Линус теряет контроль над детищем ещё больше.
> Торвалдс сам написал не мало кода на Си в ядре, да и как он теперь будет проверять код на расте?Думаете, Си — единственный язык, на котором Торвальдс способен писать?
мы думаем что он и на си уже не способен ("концепции" и хеловроты на три строки не в счет). А раньше еще вроде в перл мог, но это неточно.
А ты что, вундеркинд, пишущий на 2 языках сразу?! За всю историю ИТ таких не было и не будет. "Универсалы" знают ОДИН язык хорошо и остальные языки на уровне "пользователя". По-другому просто не бывает. Достаточно месяц не касаться любого из языков и уже начинаешь сомневаться, какие там вообще есть ключевые слова :) Это мне напоминает веб-m@kak, которых просят и сишарпить, и похапэхать, да ещё страничку жабосрипта наваять - НЕ ВЫЙДЕТ. Либо на шарпе наг0вн0кодят, либо в JS %%ерню напишут. По-другому никак.
Даже удивительно, как полиглоты существуют.
Что практика нужна — это само собой.
Да неудобно после Rust, где скобочки после if не нужно ставить, возвращаешься и по привычке тоже не пишешь.
Но знать несколько языков даже на среднем уровне лучше, чем знать один со всем библиотеками и функциями. Расширять знание парадигм программирования полезно, а не зацикливаться на одном лишь ООП. Программист не справочное пособие, для этого документация есть, чтобы не запоминать функции.
Я был знаком (т.е. конкретно писал программы) на примерно 20 языках. Сейчас от этих "побед" остался только пепел воспоминаний :) Сейчас пишу на C# и это практически единственный инструмент, на котором я гарантирую качество. Если я сяду за некогда любимый Дельфи (уж что может быть проще после C#?) я там такую лапшу понапишу!
Всяк язык требует непрерывной практики. И не только язык - вся платформа требует постоянно её использовать. Оставь C# на пол-года и не вспомнишь даже как открыть файл :)
Тогда, судя по здешним комментам, каждый второй опеннетовец усиленно коммитит в ядро.
Выпрашивать чтобы мой код приняли в майнстрим у меня нет нужды, после недавних публикаций по санкиям и подавно. Есть колаборы всякие кто этим занимается.
А у тебя вообще есть такой код?
У меня есть а у тебя?
> У меня естьИ что это за код? Ты его где-то публиковал?
> И что это за код? Ты его где-то публиковал?драйверы, часть опубликована, некоторые заказчик просил не публиковать, есть и в майнстриме но не я комитил правда копирайт сохранён так что не против но сам тратить время на попрошайничество не намерен
> но сам тратить время на попрошайничество не намеренПочему обязательно попрошайничество?
А как это ещё назвать если код от людей и для людей без поддержки корпораций не принимают и на 5 итерацииhttps://patchwork.kernel.org/project/dri-devel/cover/2024092...
а никому ненужный кроме корпораций раст будет залетать насрав в рот майнтейнерам?
Там уже 7-я итерация. Эта ссылка на твой код?Почему такие "люди для людей" не сделают свой форк ядра? Код полностью открыт и свободет. Корпорации свои изменения закрыть не могут. Так почему же не форкают?
> Там уже 7-я итерация. Эта ссылка на твой код?нет, но автор уже тоже наелся майнстрима и это уже другой человек после него продолжил проталкивать
> Почему такие "люди для людей" не сделают свой форк ядра?
только вылупился чтоли? этими форками весь гитхаб завален, есть и специальные проекты где собирают все непринятые патчи
https://github.com/armbian/build/tree/main/patch/kernel/archive
> нет, но...Но когда ты покажешь свой код?
> только вылупился чтоли?
Отсутствие своего кода компенсируешь хамством? Типичный лороипанутый линуксоид.
> этими форками весь гитхаб завален, есть и специальные проекты где собирают все непринятые патчи
Форк - это не один патч, а продолжение развитие проекта усилиями новой команды. Например OpenBSD - форк NetBSD. А у Linux есть подобный форк? Судя по всему нет и не будет.
> Форк - это не один патч, а продолжение развитие проекта усилиями новой команды.серьёзно, а мужики то не знают
https://github.com/torvalds/linux/forks
> Например OpenBSD - форк NetBSD. А у Linux есть подобный форк? Судя по всему нет и не будет.
и кому он может быть нужен кроме подсанкционных структур?
> серьёзно, а мужики то не знают
>
> https://github.com/torvalds/linux/forksТы и твои мужики похоже вообще не знают как работает GitHub, а так же то, что форк на Гитхабе - это совсем необязательно форк проекта о котором ты со мной споришь.
> и кому он может быть нужен кроме подсанкционных структур?
Это вообще неинтересно. Интересно то, что форк вполне себе полноценный и из него заимствуют целые куски, в том числе и Linux дистрибутивы.
> форк на Гитхабе - это совсем необязательно форк проекта о котором ты со мной споришьс чего ты взял что я с тобой спорю - я тебя учу, код тебе ещё рано показывать
>> форк на Гитхабе - это совсем необязательно форк проекта о котором ты со мной споришь
> с чего ты взял что я с тобой спорю - я тебя
> учу, код тебе ещё рано показыватьНикого ты не учишь, а просто сливаешь.
> нет, но автор уже тоже наелся майнстрима и это
> уже другой человек после него продолжил проталкиватьА причины отказа какие? (Да, мне лень читать даже рассылки даже для пять итераций, не то что семи)
Ну и с чего вдруг мейнтейнер должен его принят? Может оно вообще не нужно в ядре.
Меня вообще забавляют персонажи, которые припераются к тебе в репу "я сделяль, срочно примите в апстрим". А нужно оно вообще проекту их не интересует. Еще и обижаются потом, когда их распрекрасный патч не принимают.
> А причины отказа какие?это не отказ а очень длительный процесс и обычное дело для майнстрима, если за это не платят нафига оно нужно
> Ну и с чего вдруг мейнтейнер должен его принят? Может оно вообще не нужно в ядре.
ну раст то точно майнтейнерам нужен ага, новости посмотри внизу страницы а не только вверху как там растовики ножками сучить начали
>> А причины отказа какие?
> это не отказ а очень длительный процесс и обычное дело для майнстрима,
> если за это не платят нафига оно нужноЭто всего лишь качественный review, чтобы не "хуяк хуяк и в апстрим".
>> Ну и с чего вдруг мейнтейнер должен его принят? Может оно вообще не нужно в ядре.
> ну раст то точно майнтейнерам нужен ага, новости посмотри внизу страницы а
> не только вверху как там растовики ножками сучить началиНужен. Они говорят, что новый код на Си обычно хуже, чем новый код на Расте, что неудивительно. Ты считаешь иначе и можешь это аргументировать?
> Они говорят, что новый код на Си обычно хуже, чем новый код на Расте, что неудивительно. Ты считаешь иначе и можешь это аргументировать?ты хоть один драйвер написал или под копирку лозунги повторять только можешь и кто такие они? на раст в ядре один драйвер который с закрытыми глазами без ошибок можно было написать на С - откуда вы берёте этот бред про них
> ты хоть один драйвер написал или под копирку лозунги повторять только можешьАргумент в стиле "сперва добейся".
> и кто такие они?Линус, Грег и компания. Тебе мало? Форкни ядро и докажи свою правоту.
Глаза можешь не закрывать.
> Аргумент в стиле "сперва добейся".в технических темах как-то подругому может быть? это не философия где можно задвигать всякую хню, как можно рассуждать о качестве кода никогда не писав его, ты не понимаешь что он делает, и самое смешное ты не исключение - я не видел ещё ни одного топящего за раст чтобы он хоть что-то понимал в ядре
> Линус, Грег и компания.
они тот драйвер на dri-devel даже не видели, чего ты несёшь
> в технических темах как-то подругому может быть?Вот и покажи свой код.
> они тот драйвер на dri-devel даже не видели, чего ты несёшь
Через них проходят все изменения в ядре. Чего ты сам несёшь?
> Вот и покажи свой код.посмотри, только чего ты там поймёшь если не разбираешься
https://limewire.com/d/8d19b7c8-6147-49f1-975c-e11b3a9112e6#...
> Через них проходят все изменения в ядре
думаешь они все форки смотрят, нивный, ты хоть подумай для чего тогда майнтейнеры
>> Вот и покажи свой код.
> посмотри, только чего ты там поймёшь если не разбираешься
> https://limewire.com/d/8d19b7c8-6147-49f1-975c-e11b3a9112e6#...Огрызок чужого большого драйвера. Ты это хотел бы в апстим принести?
>> Через них проходят все изменения в ядре
> думаешь они все форки смотрят, нивный, ты хоть подумай для чего тогда
> майнтейнерыКакие форки? Речь про изменения, принимаемые в ядро.
> Огрызок чужого большого драйвера. Ты это хотел бы в апстим принести?ясно было с самого начала что бисер метать не стоит, но твой чужой код где? ты же вообще не в теме
> Речь про изменения, принимаемые в ядро
и где ты там видишь драйверы на расте чтобы сравнить с сишными
Я сюда не пиписьками меряться пришёл.Вот тебе один из первых драйверов на Rust. Сравнивай его с сишным вариантом, если тебе это так интересно. https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-n...
> Я сюда не пиписьками меряться пришёл.это называется по-другому - мнение имеешь но сам код никогда не писал, мне это было очевидно с самого начала, просто твоё мнение в таком случае ничего не стоит вот и набиваешь цену чужим авторитетом. Но зачм - оно ценней от этого не станет.
Почему не писал? Я как раз этим и зарабатываю. Я лишь системным кодом серьёзно не занимался, а лишь прикладным.
> Я лишь системным кодом серьёзно не занимался, а лишь прикладным.у меня наоборот. С растом знакомился поверхностно но без оплаты скучно, может когда нибуть в ядро завезут примеры с настоящими драйверами тогда пригодится - сейчас не вижу смысла время тратить. Я так то не противник раста, просто на форумах народ дурачится. Мне кажется многие так же думают. Майнтейнерам только безаотернативно лишней работы привалило.
> Что примечательно, за раст в ядре топят те кто код не пишет - торвалдсы, хартманы всякиеТопят ревьюверы. Те, кто годами читали и исправляли разны омнокод с практически одинаковыми ошибками. Вообще удивительно как они это выдержали!
> Ну посмотрим - им сверху видней, может и правда там уже очередь
> желающих на раст бесплатно писать.Так писать будут драйверы.
И их уже начали, просто в мейнлайне этого нет, как раз из-за копротивления.
Асаши, nova, что-то еще было, но забыл.
> Топят ревьюверы. Те, кто годами читали и исправляли разны омнокод с практически одинаковыми ошибками.торвалдс сам этого одежду или как там главаря у этих кличут - несколько лет заставлял переделывать, как же так - на раст же без ошибок должно получаться?
> Так писать будут драйверы.
так кто писать будет? вот представь - дописал я драйвер аппаратного кодека для кодирования видео а базовый весь на С и вся подсистема v4l2 на нём - это сколько лет мне надо было бы на раст трахаться с ним? причём проблема с безопасностью меня волнуют меньше всего - проблема в том что инфы по аппаратуре нет.
>причём проблема с безопасностью меня волнуют меньше всегоТак и живём. Напишут код, лишь бы работало, а он и не работает, и дыряв
Он работает а дыра у тебя на ж..пе, этим же местом ты и мыслишь - чтобы не было дыр нужны полные спецификации аппаратуры - где ты видел такое в отрытом доступе? тебе лапшу вешают про софтовую безопасность котороая невозможна в принципе без доверия к железу.
>чтобы не было дыр нужны полные спецификации аппаратурыКогда у вас случается очередное переполнение стека, это не от недостатка спецификаций, а от того, что до сих пор не научились не портить память.
> Когда у вас случается очередное переполнение стекамульитмедия это не руление форсунками или тормозами - запускай отдельно под гипервизором если так боишься
> это не от недостатка спецификаций
верификация без них невозможна, но когда они есть зачем нужен раст если есть языки с человеческим синтаксисом как у С
>запускай отдельно под гипервизором если так боишьсяГипервизор не защитит от дырявого кода. Если код падает с ошибкой, то хоть десят гипервизоров запусти - падать не перестанет
>с человеческим синтаксисом как у СОсобенно всякие char *(*(**foo[][8])())[];
> Если код падает с ошибкой, то хоть десят гипервизоров запусти - падать не перестанетпопробуй уже код написать хоть раз - какая разница ошибка в коде или от несоблюдения спецификации которой нет, больше скажу - вероятность от ошибки в коде на порядки меньше, у Маска ракеты на миллиарды долларов в космос летают на С и линуксе, зачем мне твоя лапша про безопасность раст - оне не даёт ничего, резервирование решает при обеспечении надёжности и как раз 10 гипервизоров. Иди подучись базовым наукам.
Сразу видно, код вы не писали.
> резервирование решает при обеспечении надёжности и как раз 10 гипервизоровРезервирование решает при условии, что у вас код хоть иногда работает. Но если он всегда падает в каком-то месте, то все 10 гипервизоров упадут одинаково
> Резервирование решает при условии, что у вас код хоть иногда работает. Но если он всегда падает в каком-то месте, то все 10 гипервизоров упадут одинаковокод тестируют вообще-то на разных заданных нагрузках и кейсах, но тестирование не даёт 100% гарантии как и раст, это у тебя только в фантазиях код падает постоянно, ракеты не такие глупые люди запускают. Раст поможет чтобы код не ломали на кейсах которые выходят за рамки нормальных условий - эти ненормальные условия надо специально создавать, а ракетки летают и нас рать им на твой раст.
>>может и правда там уже очередь желающих на раст бесплатно писать.Большую часть нового кода ядра пишут люди на зарплате.
Просто остальных всех разогнали. Кон Коливас передаёт привет.
>> Просто остальных всех разогнали. Кон Коливас передаёт привет.Без разбора правдивости этого заявления - что это меняет по факту исходного сообщения? Большинство нового кода пишут люди на зарплате, поэтому фраза "бесплатно писать" не имеет смысла.
> Кон Коливас передаёт привет.О, конечно. Нужно же принимать фиксы от любогоо васяна! Они же Сообщество!
А могли бы еще посадить секретаршу писать ядро. Или певца. Или сантехника.
Возможно получилось бы даже лучше.
> Большую часть нового кода ядра пишут люди на зарплате.поэтому там нифига и нет, а есть в разных сторонних проектах типа armbian, libreelec, в ядре сейчас только то что интересует корпорации а с растом будет ещё хуже
>> желающих на раст бесплатно писатьКстати да. За деньги могу писать на чем угодно, но ради хобби ни писать на чем то типа на rust, python, pascal, java, lua.. Да нафиг. Не лежит душа к этому списку.
Логично же, на то оно и хобби, что б было интересно.
> Что примечательно, за раст в ядре топят те кто код не пишет
> - торвалдсы, хартманы всякие. Ну посмотрим - им сверху виднейНу вообще говоря, у них есть более общий взгляд на ситуацию, чем у рядового мейнтейнера. Они ж осуществляют управление разработкой и поддержкой, и им в этом плане более понятно, какие работы сколько времени занимают.
В целом, обеспечение возможности написания драйверов на Rust -- это идея неплохая, ибо сам по себе Rust далеко не плохой язык. Вот сообщество у него паршивое -- это факт. Но не исключено, что там могут найтись несколько сильных разработчиков, которых можно будет подключить к разработке ядра.
В общем, будем посмотреть.
Другими словами "найти способных прогеров все сложнее, остались один веб обезьяны-смузихоебы с раст". Жду не дождусь когда через год выйдет новый молодёжный язык и будут и его внедрять в ядро.
Ну тут типичное словоблудие уровня "Мы подаём вам идею как решение".Если тезисно, то:
1. Никто не собирается переписывать старый код (не ну вы что, мы вам идею как решение, а вы про работу)
2. Раст позволит решить множество проблем (старый код? ой не душните... в старом коде проблемы никуда не денутся, говорите нового не будет? не уходите от темы)
3. Дайте нам почет, славу, права, желательно с поражением в правах других, признайте нашу победу и мы пойдём. Плодами нашей победы воспользуются другие... может быть. Напишут там, перепишут... проблемы решат. Чертовы нахлебники
чего ты ждал от человека, занимающегося мелким пакостничеством и не написавшим ни строчки полезного кода за последние лет 20?Он занят своей жоп секьюрити, и более ничем.
> Ну тут типичное словоблудие уровня "Мы подаём вам идею как решение".Неа, это не "идея как решение".
Это скорее "мы описываем вам будущее, чтобы вы к нему готовились вот прям сейчас.
Потому что вы мало на что не влияете, а мы протолкнем это решение хотите вы этого или... хотя какая разница, все равно спрашивать не будем."И что смешно, они абсолютно правы))
Так что все растохейтеры могут дружно готовиться идти на Хурд.
>> Ну тут типичное словоблудие уровня "Мы подаём вам идею как решение".
> Неа, это не "идея как решение".
> Это скорее "мы описываем вам будущее, чтобы вы к нему готовились вот
> прям сейчас.
> Потому что вы мало на что не влияете, а мы протолкнем это
> решение хотите вы этого или... хотя какая разница, все равно спрашивать
> не будем."
> И что смешно, они абсолютно правы))
> Так что все растохейтеры могут дружно готовиться идти на Хурд.А кто будет писать код в ядро? Старый код не перепишут - надо будет поддерживать. Новый не напишут, ибо идеологи, мейнтейнеры, манагеры и прочие, но не программисты. Как показал опыт одного стартапа из Беркли, в таких ситуациях эмоционально не зрелые старики срутся, сообщество теряет концентацию и размазывается.
> А кто будет писать код в ядро?Те же кто и сейчас. Сейчас 80%+ кода (88% вроде по последнему отчету LF, но мне лень искать пруф) пишут люди на зп. Сейчас речь идет о драйверах на расте. Это в 99% случаев будут делать сами производители железок. Корпы просто наймут нужных людей.
> Старый код не перепишут - надо будет поддерживать.
Его точно также будут поддерживать практически те же люди. Ну и может немного новых.
Тут нюанс в том, что большинство растовиков и так знают си. А вот наоборот - нет.Или вы думаете что как только Линус скажет "да", все сишники хлопнут дверью и уйдут? Или перейдут в rust-free-kernel? Кто оплатит банкет?
А кушать-то хочется))> сообщество теряет концентацию и размазывается
Поясните пожалуйста что есть "сообщество" в контексте написания ядра.
>> А кто будет писать код в ядро?
> Те же кто и сейчас. Сейчас 80%+ кода (88% вроде по последнему
> отчету LF, но мне лень искать пруф) пишут люди на зп.
> Сейчас речь идет о драйверах на расте. Это в 99% случаев
> будут делать сами производители железок. Корпы просто наймут нужных людей.У нас уже есть пара серьезных контрибуторов которые просто всё своё вынесли в юзерспейс. Верно? Если такими вдруг станут все (нет, ну а зачем контрибутить?) то вдруг станет понятно что такое сообщество. Ну и да... Вы так лихо отождествляете драйверы с производителями железок, а вой на болотах за "подсистему DMA".
>> Старый код не перепишут - надо будет поддерживать.
> Его точно также будут поддерживать практически те же люди. Ну и может
> немного новых.
> Тут нюанс в том, что большинство растовиков и так знают си. А
> вот наоборот - нет.И растовики будут хорошо и вдумчиво писать на си там где надо и на расте там где надо? Ну ок..
> Или вы думаете что как только Линус скажет "да", все сишники хлопнут
> дверью и уйдут? Или перейдут в rust-free-kernel? Кто оплатит банкет?
> А кушать-то хочется))Просто будет в лучшем случае некоторая стагнация, а в худшем "не мировая революция". Таких несколько было и ничего хорошего кроме фрагментации и вахтёрских механизмов воздействия не случилось.
>> сообщество теряет концентацию и размазывается
> Поясните пожалуйста что есть "сообщество" в контексте написания ядра.Я это... я мелкий смигрант-селфхостер-эгоист. Говоря о том что сообществу станет хуже, я опасаюсь что хуже станет лично мне. Вот systemd free система начала тяготить лично меня только в 2к25. Да там всё можно решить, но я дистрибутивом пользуюсь не для того чтобы самому решать. Тут же то же самое будет - вынужденный выход из зоны комфорта. Ну и опять всё легаси отрыгнёт.
> то вдруг станет понятно что такое сообщество.А, т.е. сейчас не понятно))
> а вой на болотах за "подсистему DMA"
Не, там как раз из-за драйверов, которые задели DMA.
> И растовики будут хорошо и вдумчиво писать на си там где надо и на расте там где надо?
Растовики будут стараться не писать на си насколько это возможно.
Другое дело, что поправить прототип функции растовик в си сможет, а сишник - нет.> Я это... я мелкий смигрант-селфхостер-эгоист.
Т.е. вы просто потребитель ядра линукс, ничего не коммитящий в ядро и просто беспокоящийся, чтобы его пятая точка оставалась в тепле в сие неспокойное время?
Тогда какое отношение вы имеете к сообществу?
>> то вдруг станет понятно что такое сообщество.
> А, т.е. сейчас не понятно))
>> а вой на болотах за "подсистему DMA"
> Не, там как раз из-за драйверов, которые задели DMA.Т.е. теперь "кривой код который никто и не собирался поддерживать, не работающий там куда его контрибутнули и собутствующие обидки и перевод стрелок" это "задели DMA"? Ну ок.
>> И растовики будут хорошо и вдумчиво писать на си там где надо и на расте там где надо?
> Растовики будут стараться не писать на си насколько это возможно.
> Другое дело, что поправить прототип функции растовик в си сможет, а сишник
> - нет.Ну пока только оидки и истерики. Мы комит продавим а дальше пусть мейнтейнер работает.
>> Я это... я мелкий смигрант-селфхостер-эгоист.
> Т.е. вы просто потребитель ядра линукс, ничего не коммитящий в ядро и
> просто беспокоящийся, чтобы его пятая точка оставалась в тепле в сие
> неспокойное время?
> Тогда какое отношение вы имеете к сообществу?А если я вдруг мейнтейнер конкретного драйвера в пакетном менеджере конкретного дистрибутива? И опакечиваю определённое легаси совершенно бесплатно и практически без упоминаний десятилетиями? А Вы кто? Аноним, посматривающий на мужские пятые точки? :) Всё сходится.
> кривой код который никто и не собирался поддерживатьЭто неправдивое утверждение. Код был рабочим, просто мейнтейнер не захотел его принимать.
И когда ему предложили его поддерживать, то он тоже отказался от помощи, сказав что мейнтейнер ДМА будет только один.И драма вообще не вокруг DMA. А вокруг мейнтейнеров с синдромом вахтера в терминальной стадии, которые считаю что это их код, их територия и никого туда не пускают. Хотя по факту они никак не отвечают за качество кода (и количество омокода, которое просачивается сквозь мейнтейнерские ревью это только доказывает) - их никто не поругает и не уволит.
> А если я вдруг мейнтейнер конкретного драйвера в пакетном
> менеджере конкретного дистрибутива?В конкретном дистрибутиве конкрентый драйвер? Кул стори бро))
Но даже если так, то да, ты часть сообщества.> посматривающий на мужские пятые точки
Т.е. это единственно на что вы обратили внимание в моей фразе?)
> А Вы кто?
А я растописатель. Но разумеется не в ядре - туда же его диды не пускают))
Но буду рад добавлению раста в любой проект. Особенно в такой важный как ядро.
Просто любая дискуссия с растованаби сводится к мужским задницам и к тому что диды не пускают. Совпадение наверное.А часть сообщества [пользователей Linux] я и без опакечивания... а Вы не часть сообщества [разработчиков Linux] по определению. К слову, выпилить x86 ассемблер из мезы, которая от чего-то и под спарк собирается - это не то, чтобы кул-стори. Программист об этом вообще не думает, он просто тырит код... а майнтейнер обычно вынужден разбираться с этим в одного.
> Просто любая дискуссия с растованабиНу наконец-то ты порвался и перешел на личности))
А я даже удивляться начал, неужели адекватный собеседник-растохейтей попался.> А часть сообщества [пользователей Linux] я и без опакечивания...
Внезапно оказалось что сообщества разные.
> а Вы не часть сообщества [разработчиков Linux] по определению.
По какому такому определению?)) Сами придумали, сами расстроились что оно не работает?
Тот же Мигель Охеда более чем является частью "сообщества [разработчиков Linux]"> К слову, выпилить x86 ассемблер из мезы, которая от чего-то и
> под спарк собирается - это не то, чтобы кул-стори.Еще как кул-стори. Не нашлось желающих поддерживать ненужных хлам, поэтому код выпилили.
А вот желающие могли бы взять на себя поддержку.> а майнтейнер обычно вынужден разбираться с этим в одного.
Сам виноват.
Так уж и порвался? Просто потерял интерес. Ничего нового. А покуда ты Аноним и не покажешь ссылку на условный гитхаб если ты прям программист, ну или на худой конец оркид, если ты ученый, то... будут тебе ванаби тыкать как раз из-за отсутствия у тебя субъектности и личности. Нельзя перейти на то, чего нет. Нипарвись :) Подумай о попах Грега Кроа-Хартмана и Кейса Кука, может отпустит :)
> Показано, что основным источником проблем с безопасностью является новый код и повышению его качества следует уделять основное внимание.Иными словами проблема в новых программистах. Может DEI не работает и попытки опустить уровень системного программирования обречены на провал?
Проблема в том, что новый код менее отлажен. Ошибки всегда были и у новых, и у старых программистов
Так это же классическое EEE, мы сейчас на первой букве
На второй. Embrace уже был в виде щедрых платиновых спонсоров. Теперь идёт Extend.
последней. Тот линукс что был у нас раньше - уже успешно extinguished.Удивительно, но это сделала не корпорация Зла.
У меня неудобный вопрос.С 1979 года существует Ада, который специально создавался для написания архинадежных программ, где всяческие ошибки отлавливаются на этапе компиляции. Практически всё нормально работающее ПО для авиации, космонавтики, АЭС и подобных областей пишется именно на Ада.
Ошибки в ядре были и раньше, язык, позволяющий их порешать появился ещё до линукса. Но это было не нужно.
И только когда появился раст, вдруг стало прямо дофига в ядре ошибок и именно только раст позволяет их решить.
Вам не кажется это странным, ув. друзья?
> С 1979 года существует Ада,Да, и это великолепный пример того как нужно проектировать ЯП.
> Ошибки в ядре были и раньше, язык, позволяющий их порешать появился ещё до линукса. Но это было не нужно.
Потому что:
1. стало больше устройств - раньше был настольный комп и сервак в локалке, а теперь к нему добавился роутер, телефон (с банковским приложением), головное устройство автомобиля, возможно умные часы и тд.
2. оно все подключено к интернету и если раньше проблема "нажал backspace 28 раз -> получил рут" была не очень актуальной, тк нужен физ.доступ
3. У ады есть некоторые проблемы с лицензированием> И только когда появился раст, вдруг стало прямо дофига в ядре ошибок и именно только раст позволяет их решить.
Дофига ошибок было и раньше, но всем было пофиг.
> Вам не кажется это странным, ув. друзья?
Конечно, это же заговор анунаков и рептилоидов)
> Дофига ошибок было и раньше, но всем было пофиг.И вдруг резко стало не пофиг. Именно в тот момент, когда корпорации начали двигать раст, как серебряную пулю от всего.
Совпадение? Не думаю. 😁
Нет, просто раст появился, а раньше не было ничего похожего.
Как выше написали про аду, что у неё какие-то проблемы с лицензией могут быть, значит она не подходит
>. У ады есть некоторые проблемы с лицензированиемКакие ??? GNAT -gpl,его даже НАСА использовала и министерство обороны России.
Ада как и паскаль относится к языкам академического типа, т.е. появившимся не столько эволюционно, сколько системно разработанным для решения определённого комплекса задач с каким-то уровнем гарантий. Отсюда определённые сложности.
Для вчерашнего скрипткидди, с трудом осилившего базу сей любой язык, требующий планирования архитектуры перед разработкой уже является препятствием. А ада, внезапно, сложнее и жёстче паскаля. Для низкоквалифицированных программистов, пишущих ядро (увы, гениев там нет и не будет) всё это не нужно.
>И только когда появился раст, вдруг стало прямо дофига в ядре ошибок и именно только раст позволяет их решить.
>Вам не кажется это странным, ув. друзья?Странным? Кажется, что это является "кому-то" очень удобным для их делишек.
За поддержку безошибочно работающего кода никто не будет платить. Ада облегчает доказательство корректности кода и, следовательно, облегчает выявление логических ошибок. Бэкдор в такой код уже не внедришь. А у раста даже формальной спецификации нет, там ошибки можно в сам язык добавлять.
Язык только частичный контроль делает. Там кроме этого и других ошибок будет достаточно, которые компилятор не в силах проконтролировать, он же не знает как должен работать ваш алгоритм
> А у раста даже формальной спецификации нет, там ошибки можно в сам язык добавлять.Ferrocene, a Rust toolchain qualified for safety-critical environments.
The Ferrocene Language Specification (FLS) is a document describing the Rust language.
The FLS is not intended to be used as the normative specification of the Rust language, nor is it meant to replace the decision-making processes of the Rust project.
https://spec.ferrocene.dev/general.html
https://www.tuvsud.com/en/services/product-certification/ps-...сертифицированый компилятор и ненормативная спецификация языка вдохновлённая Ada reference manual
>С 1979 года существует АдаВы пишите на этом языке? Что там с динамическим выделением памяти? Что там с афинными типами? С алгебраическими типами данных? Зависимыми типами? Что ещё там есть из интересного?
>Практически всё нормально работающее ПО для авиации, космонавтики, АЭС и подобных областей пишется именно на Ада.Там потребности гораздо скромнее, чем в примитивном ядре.
Всё, что надо из интересного, в Ада есть.
Для примитивного ядра хватит.> Там потребности гораздо скромнее, чем в примитивном ядре.
Ну так и раст собираются использовать для совсем примитивных и скромных драйверов.
>Всё, что надо из интересного, в Ада есть.Всё это что? Если уж вы рекламируете аду, то потрудитесь рассказать о её возможностях
>Ну так и раст собираются использовать для совсем примитивных и скромных драйверов.В misra c вообще без алокаций живут, вы же не собираетесь опускаться до их уровня?
>В misra c вообще без алокаций живут, вы же не собираетесь опускаться до их уровня?Не, это вы наивно думаете, что вам не придется, если захотите в нишу Ады и мисры. А с растом произойдет ровно то же самое что и с ними. Будет "равенскар профайл для раста" или "мисра раст" с кучей выкинутых фич (в том числе танцев вокруг кучи, что сделает большинство нынешних понтов про боровчекер бесполезными).
> Не, это вы наивно думаете, что вам не придется, если захотите в нишу Ады и мисры.А мы хотим?
Я пока такого не слышал.Пока речь про ядро которое, слава богу-машине, не рулит самолетами или атомными станциями.
Вот если кто-то захочет - пусть делает.
>Не, это вы наивно думаете, что вам не придется, если захотите в нишу Ады и мисрыФормально верифицированный код может обойтись и без этой ерунды. Одно дело запустить куда-то ракету, и другое дело работать с произвольной файловой системой.
> вам не придется, если захотите в нишу Ады и мисры
> Будет "равенскар профайл для раста" или "мисра раст" с кучей выкинутых фичРаст уже можно использовать при разработке критических систем, в частности авто ISO 26262, ASIL-D), пром (IEC 61508, SIL4) и медицина (IEC 62304, SIL 4). Другие – на подходе.
И нет, выкидывать ничего не пришлось. Угадай почему? )
Т.е ты предлагаешь добавить в ядро ЯП разработанный по заказу Министерства обороны США?
Который стандартизованный под MIL-STD.
Имя которого - зарегистрированная торговая марка, и даже сделать форк может быть проблематично.
Так же не все компиляторы отрытые и одобренные FSF.Отличная идея! Просто генитальная!
GNAT - это вообще GCC.
> Практически всё нормально работающее ПО для авиации, космонавтики, АЭС и подобных
> областей пишется именно на Ада.напомните пожалуйста, что случилось с ariane5 и как там нормально сработало ПО?
> Вам не кажется это странным, ув. друзья?
тем кто ни на каком языке программирования не умеет - видимо, может почудиться.
> напомните пожалуйста, что случилось с ariane5 и как там нормально сработало ПО?Пожалуйста:
"Процедура на языке Ада, обрабатывающая эту исключительную ситуацию, была исключена из соображений сохранения производительности системы."
>> напомните пожалуйста, что случилось с ariane5 и как там нормально сработало ПО?
> "Процедура на языке Ада, обрабатывающая эту исключительную ситуацию, была исключена из
> соображений сохранения производительности системы."Потому что "кроилово ведет к попадалову")
Примерно как выкинуть проверки массивов для СИ ради скорости... а точно, их по умолчанию не добавляют.
>напомните пожалуйста, что случилось с ariane5 и как там нормально сработало ПО?Напоминаю специально тебе, т.к. ты не знал, да забыл, потому пересказываешь в духе "эффекта Манделы" через десяток врущих свидетелей, пересказавших друг другу и пул изнасилованных учеными журналистов, что там проблема была не в ПО и не в языке, а в человеческом факторе -- там cофт для Ариан 4 эффективные манагеры без проверок втащили на новую ракету. Никакой раст от такого защитить не способен в принципе.
> что там проблема была не в ПО и не в языке, а в человеческом факторето есть как так не в языке? Разьве он не безопастный?!
Нам же все уши прожужжали что йезык и должен каким-то чудом предотвращать человеческий фактор?!
Как так не в по, когда по и угробило ракету?
> Никакой раст от такого защитить не способен в принципе.вот те на...
(кстати, способен - нет кода - нет проблемы, человеческий фактор ничего не втащит)
>> что там проблема была не в ПО и не в языке, а в человеческом факторе
> то есть как так не в языке? Разьве он не безопастный?!Кривляния тебе к лицу)
> Нам же все уши прожужжали что йезык и должен каким-то чудом предотвращать человеческий фактор?!
Да, оно предотвращает случайные ошибки, а не намеренное ломание.
> Как так не в по, когда по и угробило ракету?
Помню на одном заводе был пресс для штамповки, который запускался двумя кнопками: пол метра одна от другой. Ну чтобы только двумя руками нажимать.
Что делает безмозглый работяга? Правильно, он засовывает в одну кнопку спичку, ну чтобы можно было что-то подправить в процессе.
Как ты можешь догадаться, попу он себе сейчас подтирает одной рукой. Единственной.Думаю его можно переучить на СИ и он будет отстреливать себе *опу, но уже в виртуальном пространстве))
Ада не даёт гарантий безопасности работы с памятью.
>Ада не даёт гарантий безопасности работы с памятью.Решение искуственных проблем. В мишон критикал не дергают память туда-сюда, а выделяют заранее сразу всю и только по делу. В сишке, обмазанной мисрой, тоже не страдают фигней, чтоб не преодолевать собственноручно созданные трудности. Не просто "не дают гарантий", а не пользуются ненадежными механизмами и исключают предпосылки. И с растом, если дорастет, будет то же самое: вот вам список из N десятков фич, которыми запрещено пользоваться, если хотите в клуб ответственных применений. Большинство нынешних "фанатов" отсеются на этапе "да как так-то"?
> Решение искуственных проблем. В мишон критикал не дергают память туда-сюда, а выделяют заранее сразу всю и только по делу.В ядре (ну то, которое дико универсально) у тебя такой фокус пройдет?
Может покажешь наработки?> В сишке, обмазанной мисрой, тоже не страдают фигней, чтоб не преодолевать собственноручно созданные трудности. Не просто "не дают гарантий", а не пользуются ненадежными механизмами и исключают предпосылки.
Именно за этим раст в ядро и внедряют. Исключить человеческий фактор для целого класс типичных сишных ошибок.
> И с растом, если дорастет, будет то же самое: вот вам список из N десятков фич, которыми запрещено пользоваться, если хотите в клуб ответственных применений.
И это норма.
Напомню что SPARK это подмножество АДА.
Может будет какой-то Super Rust. Не вижу в этом ничего плохого.Кстати посмотри еще adacore.com/gnatpro-rust
We’re developing GNAT Pro for Rust with the intent to support safety-certification needs such as avionics (DO-178), rail (EN-50128), space (ECSS-E-ST-40C and ECSS-Q-ST-80C) and others.
АДАвцы не просто так стали Silver Member в Rust Foundation. Наверное они что-то знали.
adacore.com/press/adacore-joins-rust-foundation-as-silver-member> Большинство нынешних "фанатов" отсеются на этапе "да как так-то"?
Очень сомневаюсь.
>В ядре (ну то, которое дико универсально) у тебя такой фокус пройдет?Ядру, чтоб стать "почти честным RT", нужно стать дико специализированным. И у тебя этот "максимализм" тоже пройдет при столкновении с требованиями регуляторов.
>Именно за этим раст в ядро и внедряют. Исключить человеческий фактор для целого класс типичных сишных ошибок.
Т.е. героически преодолевают собственноручно созданные трудности, ЧТД. Еще и не стесняются щоки надувать. Они просветлятся неизбежно, но потом.
>Может будет какой-то Super Rust. Не вижу в этом ничего плохого.
В том то и дело, что будет не супер, а подмножество. И нынешние "киллерфичи" вполне возможно отвалятся, как решения, для которых исключат сами предпосылки.
>We’re developing GNAT Pro for Rust with the intent to support safety-certification needs such as avionics (DO-178), rail (EN-50128), space (ECSS-E-ST-40C and ECSS-Q-ST-80C) and others.
АДАвцы не просто так стали Silver Member в Rust Foundation. Наверное они что-то знали.
Я этот движ наблюдаю с попкорном уже N лет. Пока это все на уровне гиммиков для заманивания молодежи в области, которые не покрыты списком тиобе. Именно те, от которых зависит наличие электричества в розетке -- откуда оно берется большинство фанатов популярных новых языков представляет слабо.
>Очень сомневаюсь.
Отрицание <-- вы находитесь здесь
> Ядру, чтоб стать "почти честным RT", нужно стать дико специализированным. И у тебя этот "максимализм" тоже пройдет при столкновении с требованиями регуляторов.Значит это будет уже другое ядро.
Потому что нынешний stabler api is nonsense регуляторов тоже расстроит.
>>Может будет какой-то Super Rust. Не вижу в этом ничего плохого.
> В том то и дело, что будет не супер, а подмножество. И нынешние "киллерфичи" вполне возможно отвалятся, как решения, для которых исключат сами предпосылки.Может быть. Я не спорю.
Вот когда решат урезать раст, тогда и поговорим.> ... для заманивания молодежи в области, которые не покрыты списком тиобе. Именно те, от которых зависит наличие электричества в розетке -- откуда оно берется большинство фанатов популярных новых языков представляет слабо.
Но это не отменяет а) избыточность АДА для ядра б) необходимость что-то делать с СИшниками бракоделами
>>Очень сомневаюсь.
> Отрицание <-- вы находитесь здесьСомневаюсь в том что "Большинство нынешних "фанатов" отсеются на этапе "да как так-то"?".
Ну так это мое право))
Я бы не отсеялся, тк мне интересны эти области.
>Решение искуственных проблем. В мишон критикал не дергают память туда-сюдаУ вас чёрно-белый мир. Есть критическая инфраструктура, и есть обычный пк, падающий от пинга смерти. Вот от последнего как раз и хотят избавится. Никому не нужен супернадёжный софт без динамеческого выделения памяти, если там ничего не сделать
Вы там, товарищи анонсы, под копирку пишите или это один и тот же спец по мишон критикам?Не буду повторяться, вот ссылка.
Мисра и компания решали проблемы сишки, для роста это не нужно.https://www.opennet.dev/openforum/vsluhforumID3/136071.html#440
Ада не нужен. Время нещадно закопало этот язык, а вот Сишечка прекрасно показала, насколько удобно её спроектировали.
А зачем они всё это наболтали? Это всё уже было сказано не раз, чуть ли не дословно (или вообще копипастой балуются?).
Проблема возникла с добавлением ещё одной абстракции - почему бы не поискать решение вместо шума? Какой-то инфантильный абсурд...
Всё хорошо, только в каждую подсистему придётся всё же пихать кучу обвязок для раста.
Они аргументируют это возможностью переработать систему и привести всё к порядку, но будем честны — если они с сями устроили такую помойку, то раст не сможет чудом всё это разрулить. Бесполезно двигать кровати, но они пытаются. Нет планирования, поделие торвальдсва как было запускалкой posix-совместимого назло конкурентам из AT&T, так и осталось несмотря на всю гору костылей и лютейшее продвижении со стороны гигантов.За раст цепляются в надежде привлечь в gpl-ловушку молодых и наивных, потому как старые и бородатые годами предпочитают сраться в чатах вместо работы и вообще к тем самым дидам-профессорам отношение имеют примерно никакое.
Если бы условный явист или питонист мог бы на своём инструменте делать драйвера и писать системное — то и их игрушки также бы пытались протащить в ядро, поверьте.
Однако, я всё же за раст в ядре. Я не верю в чудеса и понимаю, что выхлоп будет больше словесным, но во-первых любопытно посмотреть чем всё кончится (стоя подальше, конечно же), а во-вторых может если долго будут вместе тужиться, то в боевых условиях из раста всё же получится нормальный язык — или хотя бы появится понимание хотелок к следующему языку, который придёт к нему на смену.
Рже не место в таком специальном проекте, как ведро. Хотят - пусть пишут вторые Иксы, Емакс, Тундырбёрд, но лезть в системное - там и без растовых приседаний тошно.
> Показано, что основным источником проблем с безопасностью является новый код и повышению его качества следует уделять основное внимание.Открыли Америку. Конечно, чем "старше" код, тем больше вероятность, что за время его использования кто-то нарвется на корнеркейс и отловит на нем ошибку.
Возможно всё это подозрительно похоже на то, что Rust внедряют для того, чтобы потом в будущем LLM-агенты писали код на нём вместо всяких людишек. Причём в итоге перепроверять код будет как будто бы легче, так как всякие проблемы типа UB, use after free исключены.
У сишников было пятьдесят лет, на то, чтобы в языке появились афинные типы, алгебраические типы данных, желательно ещё и зависимые типы(для абстракций нулевой цены), ещё куча всего из теории типов. Но нет, сишники продолжают притворятся шлангом.
Зачем в "переносимом" ассемблере всё это?
Затем чтобы не делать дэʼгенеративных ошибок, когда сравниваются крокодилы с апельсинами, потому что в этом куске кала все enum'ы это инты?
Или когда генитальные программисты кастуют что угодно к чему угодно через void* ?
А забытые null терминаторы для строк?Просто открой в поиске на этом сайте новости "в ядре исправили уязвимость" и посмотри насколько тупые там ошибки.
В том и прикол - это тупые ошибки тупых дилетантов - когда каждый мусорщик думает, что книга "С++ за 20 дней" это РЕАЛЬНО :))))))))))))
Сам Си не при чём - он просто делает то, что ты попросил.
Затем, что этот ассемблер используют для написания больших программ, которые должны быть надёжными, а не только для прошивок микроконтроллеров
Затем что Си - это не ассемблер.
Да и не переносимый. От платформы зависит, сколько байтофф в инте.
А если писать типо uint_8 то нет проблем с переносимостью вообще
> А если писать типо uint_8 то нет проблем с переносимостью вообщеО, начинаются отмазки.
СИ переносимый, но если писать uint_8 и танцевать с бубном.
СИ безопасный, но ошибки (одни и те же) уже лет 50.Сейчас ядро не сбилдишь С23, потому что... в 23 стандарт добавили Bool!
А в ведре накостыляли typedef _Bool bool и enum { false = 0, true = 1 }.Вопрос - Каким же дном должен быть язык, если в нем не boolean который математике существует с 1850х?
Ответ - он должен быть СИшкой)
> Вопрос - Каким же дном должен быть язык, если в нем не boolean который математике существует с 1850х?Зачем тебе boolean, если есть char/int ? Ты все равно адресовать меньше одного байта не можешь, дак какая разница? Вот поэтому его и не было столько лет, что был не нужен именно в самом языке как ключевое слово. А кому был нужен, те обходились макросами и typedef'ами.
> А если писать типо uint_8 то нет проблем с переносимостью вообщеХватит уже, наелись такой переносимости.
Когда у тебя есть uint64_t и ты его пытаешься засунуть в printf - а какой спецификатор использовать, %lu или %llu ? PRIu64 !
То есть, вся переносимость находится в препроцессоре, а ни язык ни стандартная библиотека ни+ера не переносимые.
Но в ядре-то это зачем?
> ещё куча всего из теории типовЛучше скажите зачем все это и какой практичный софт написан на языках, где все это есть?
>> ещё куча всего из теории типов
> Лучше скажите зачем все это и какой практичный софт написан на языках, где все это есть?Арти подойдет? Это вариант ТОР на расте, от самих авторов ТОР.
Андроид? Более чем практичный софт - 1.5 ляма строк кода на расте в версии 13. А сейчас еще больше.
Cosmic - тоже раст. И тоже практичный.
Ты сейчас сам себе перечислил какие-то местечковые проекты для самоубеждения, что вся эта фуфлотеория нужна. Ради бога - пиши, варись в этой академической каше, но конкретно языку Си это нафик не нужно.
> Ты сейчас сам себе перечислил какие-то местечковые проекты для самоубеждения,Аахаха, вот это у тебя самомнение)
AOSP это уже "местечковый проект"?> что вся эта фуфлотеория нужна. Ради бога - пиши, варись в этой академической каше, но конкретно языку Си это нафик не нужно.
Пока получается, что СИшка не нужна нигде, кроме ядра. И даже в ядре ей нашли замену.
>>> ещё куча всего из теории типов
>> Лучше скажите зачем все это и какой практичный софт написан на языках, где все это есть?
> Арти подойдет? Это вариант ТОР на расте, от самих авторов ТОР.
> Андроид? Более чем практичный софт - 1.5 ляма строк кода на расте
> в версии 13. А сейчас еще больше.
> Cosmic - тоже раст. И тоже практичный.А что там из теории типов кроме суммы типов, которая и в с++ есть?
Кстати, в C++ нету честной суммы типов, кроме специального случая в виде std::expected. std::variant — это очень близко, но всё-таки не сумма, так как в вариант нельзя сложить два одинаковых типа. Не знаю, часто ли это может стать проблемой на практике. А ещё с вариантом, равно как и с expected, равно как и с optional очень неудобно работать из-за отсутствия паттерн-матчинга и хоть чего-то похожего на монады.
Для академических олухов, закукленных на своих кафедрах: на Си написано столько, что тебе за 10 жизней не прочесть! И без всяких алгебраических типов, прикинь!Ядро - это проект для "высокоуровневого ассемблера", по-другому никак. И там просто нечего делать всем твоим перечисленным плюшкам. Хочешь выёживаться "сверх-программистским мозгом" - вали в Haskel, там таких как ты полно.
> Для академических олухов, закукленных на своих кафедрах: на Си написано столько, что тебе за 10 жизней не прочесть! И без всяких алгебраических типов, прикинь!Из овна и палок (саманный кирпич) человечество построило столько, что современным архитекторам и не снилось.
Но по какой-то причине овно и палки сейчас в строительстве практически не используются, почему то бетон и железо.
Хотя овна люди выдают много и стабильно, а палок наломать можно в ближайшей посадке.> Ядро - это проект для "высокоуровневого ассемблера", по-другому никак.
Как видим есть еще варианты)
> И там просто нечего делать всем твоим перечисленным плюшкам.
Твое мнение очень важно! Настолько что аж пофиг.
> Хочешь выёживаться "сверх-программистским мозгом" - вали в Haskel, там таких как ты полно.
О, а идея хорошая.
Давайте в ядро еще и хаскель добавим.
А в ассемблере (x86 или arm) эти типы есть и вся эта куча всего из теории типов? Получается ассемблер дно, но почему-то раст в него компилируется (С++ом из LLVM-IR, ахахаха).З.Ы. Си создавался как кроссплатформерный ассемблер и не более. Ничего из перечисленного в нем нет, потому что 1) не нужно, и без этого миллион драйверов и ОСей написано, а 2) в асм этого нет
А почему в статье нет полной цитаты этого человека?>But for new code / drivers, writing them in rust where these types of bugs just can't happen (or happen much much less) is a win for all of us, why wouldn't we do this? C++ isn't going to give us any of that any decade soon, and the C++ language committee issues seem to be pointing out that everyone better be abandoning that language as soon as possible if they wish to have any codebase that can be maintained for any length of time.
Т.е. этот дурачок совсем оторван от реальности. На каком основании он сделал такие выводы? Крупные проекты на цпп поддерживаются десятилетиями, тот же хромиум, который является монополистом в мире браузеров или UE. А где хотя бы один крупный и зрелый проект на расте, чтобы такое заявлять?
Да и каковы критерии поддерживаемости? Судя из контекста, это безопасТная работа, т.е. сами определили термин в рамках методички и сами на его основе что-то утвердили, выдав желаемое за действительное.
В С++ проблемы такие же как в дыряшке, может слегка получше.
Сейчас в сообществе С++ раскол и разброд из-за Safe-C++.
С эпичной TEH DRAMA в комитете WG21.
Если тебе не лень, можешь почитать izzys.casa/2024/11/on-safe-cxx/
Это один из бывших комитетчиков, который слегка поехал кукухой.> Крупные проекты на цпп поддерживаются десятилетиями
Да, например LLVM [1]
Но им приходится
"... 1.1 до 2.4 млн строк кода увеличен охват кодовой базы, вовлечённой в fuzzing-тестирование. Также был расширен используемый для fuzzing-тестирования инструментарий, а число применяемых для проверки fuzzing-движков увеличено с 12 до 15"
И тем не менее:
"12 новых проблем, из которых 8 были вызваны ошибками, приводящими к повреждению памяти. 6 выявленных уязвимостей приводили к переполнению буфера, 2 к обращению к уже освобождённой памяти"А теперь представь такое для ядра с 40 миллионов строк.
> А где хотя бы один крупный и зрелый проект на расте, чтобы такое заявлять?
AOSP например. [2]
Куча языков - С, С++.
Плюс 1.5 миллиона строк кода на расте, причем нового кода на нем было написано больше всего.
Ну и результат:
Security impact
To date, there have been zero memory safety vulnerabilities discovered in Android’s Rust code.[1] opennet.ru/opennews/art.shtml?num=60707
[2] security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html
>И тем не менее:
>"12 новых проблем, из которых 8 были вызваны ошибками, приводящими к повреждению памяти. 6 выявленных уязвимостей приводили к переполнению буфера, 2 к обращению к уже освобождённой памяти"Компилятор это вообще то место, где подобных ошибок не должно возникать. Одно дело - операционная система, которая вынуждена работать с низкоуровневыми особенностями, но компилятор - он же просто читает и пишет файлы.
> Компилятор это вообще то место, где подобных ошибок не должно возникатьНо они ВНЕЗАПНО возникают!
И с этим пытаются бороться, но не совсем успешно.
Правильно, поскольку сишники даже компилятор без уязвимостей написать не могут. И там проблема не в том, что нужно выжать ещё 5% скорости для системного вызова или что-то вроде этого. Просто любая большая программа на си/плюсах будет содержать ошибки управления памятью
> Правильно, поскольку сишники даже оптимизирующий компилятор написать не могут.Исправил.
Что забавно, что единственные два нормальных компилятора на си написаны (или скорее переписаны с си) на плюсы.
Но даже с плюсами есть проблемы((
>Исправил.Испортил. Проблема не в коде получившемся после компиляции, проблема в коде самого компилятора
> Компилятор это вообще то место, где подобных ошибок не должно возникать.Но они возникают)
И приходится костылять санитайзеры, фаззеры и тд.
> сами определили термин в рамках методички и сами на его основе что-то утвердили, выдав желаемое за действительное+1. Я вообще не понимаю, как можно прыгать в язык, ВСЯ реклама которого базируется на единственной узкой фиче "а у нас надо гемороиться с КАЖДЫМ указателем!". Невелика фича, чтобы вот так фундаментально менять основы. Тот же язык D прекрасно справляется с указателями, но почему-то гугля молчит в тряпочку, будто этого языка и вовсе нет! (хотя Ди и является прямым преемником С++)
> +1. Я вообще не понимаю, как можно прыгать в язык, ВСЯ реклама которого базируется на единственной узкой фиче "а у нас надо гемороиться с КАЖДЫМ указателем!".Разве? Там же еще есть линейные типы, хорошая std либа (а не уродливый огрызок в дыряшке, заставляющий велосипедить)...
> Невелика фича, чтобы вот так фундаментально менять основы.
По твоему мнению. У других оно другое и они решили, что расту в ядре быть.
> Тот же язык D прекрасно справляется с указателями, но почему-то гугля молчит в тряпочку, будто этого языка и вовсе нет!
D или SafeD ?
> (хотя Ди и является прямым преемником С++)
Судя по активности - его уже закопали.
В Rust нет честных линейных типов, так чтобы не только в конструктор можно было параметры передавать, но и в деструктор. А иногда бывает надо.
>D или SafeD ?С осени 2024 Уолтер Брайт принял решение, что по умолчанию теперь будет SafeD.
>Тот же язык D прекрасно справляется с указателямиВ D есть сборщик мусора, так что никак он не справляется
Пользуемся только его подмножеством BetterC, чего для ядер ОС, для Bare Metall будет достаточно, и нет сборщика мусора вообще.
D так себе "справляется с указателями". Хотя сейчас туда пытаются затащить в каком-то виде подход из Rust, но получается слабенько.
Rust имеет свои плюсы и минусы.У меня только один вопрос. Rust очень быстро развивается, в связи с этим - будут морозить определенную версию rust на весь период lts версии, а обычную версию ядра держать на свежем Rust?
Это уже сделано - при появлении ломающих изменений создается новый Edition.
doc.rust-lang.org/edition-guide/editions/index.html
Это позволяет зафиксировать версию языка.И даже работает в других проектах
https://source.android.com/docs/setup/build/rust/building-ru...
Четно зафиксирован edition
edition defines the Rust edition to use for compiling this code. This is similar to std versions for C and C++. Valid values are 2015 and 2018 (default).Это примерно как зафиксировать версию СИшки на С89 или с11.
Т.е тут никаких проблем не должно быть.
> Это примерно как зафиксировать версию СИшки на С89 или с11. Т.е тут никаких проблем не должно быть.Да нет. C стандартизован. Rust нет. И не будет.
> C стандартизован.Максимально дерьмовым стандартом.
В котором сложение int a + b это UB и ломает конформанс.
Про который автор языка Денниса Ритчи писал:
"The fundamental problem is that it is not possible to write real programs using the X3J11 definition of C. The committee has created an unreal language that no one can or will actually use."> Rust нет.
У него есть RFC. Чего вполне хватает, например для работы интернета - RFC 2026
rfc-editor.org/info/rfc2026> И не будет.
Заявление из разряда "раст в ядро никогда не примут"))
Напомню что K&R C был сделан в 1978 году.
А первый "стандарт" в 1989.
Си многие годы не изменяется.
Rust меняется на глазах.Теперь берем модуль R на Rust.
Имеем версию ядра Q lts срок поддержки + 2 года. Модуль R на Rust Z edition.
Имеем версию ядра W lts срок поддержки + 1 год. Модуль R на Rust X edition.
Имеем версию ядра E lts срок поддержки + 6 месяцев. Модуль R на Rust C edition.
В ядре E нашли критическую ошибку в модуле R на Rust C edition. Исправили её.
Но в версии модуля R на Rust Z и X edition этого сделать невозможно, так как нет каких-то нововведений, которые есть в C edition.
Как вот это разруливать?
С СИ проще, стандарту сто лет в обед.
Не будет ли путаницы?
> Си многие годы не изменяется.Сравни С89 и С23.
> Теперь берем модуль R на Rust.
> Имеем версию ядра Q lts срок поддержки + 2 года. Модуль R на Rust Z edition
> Но в версии модуля R на Rust Z и X edition этого сделать невозможно, так как нет каких-то нововведений, которые есть в C edition.
> Как вот это разруливать?Ты придумал какую-то странную ситуацию.
Это делается по другом.
Просто в ядро принимаются только тот раст код который Edition N.
Примерно как сейчас С должен быть С11 и не больше.
Твой код на С23 просто не примут в ядро.
Тут будет точно так же.Посмотри как это сделано в андроиде
https://source.android.com/docs/setup/build/rust/building-ru...
edition defines the Rust edition to use for compiling this code. This is similar to std versions for C and C++. Valid values are 2015 and 2018 (default).> С СИ проще,
но дырявый
> стандарту сто лет в обед.
А толку если там UBшек еще на 100 лет припасено.
> Не будет ли путаницы?
Нет не будет.
Ты придумал проблему, которую уже успешно решили.
>придумал проблему, которую уже успешно решилиНу и хорошо. Ждем больше безопасного кода.
> в связи с этим - будут морозить определенную версию rust на весь период lts версииСкажу больше. Они не будут переписывать старые C модули на Rust. Они будут постоянно переписывать созданные ими Rust модули.
Браво. Ладони хлопок для этого господина.
Да ничего.Вон в ФФ есть раст - чуть устарел раст в системе - новый ФФ не собрать, обновил раст и уже старую версию ФФ не собрать... красота...
В дебиане есть общесистемный rust и rust-mozilla для сборки ФФ... Но ведь арче такого не нужно, видимо ядро тоже будет роллингом :)))
What a week, huh? (c)
Думаю горение пятых точек любителей дыряшек вызовет очередное глобальное потепление.Надо будет заказать себе чашку "слезы растохейтеров".
И ведро попкорна.ps интересно, это еще стадия отрицания "никто раст не примет!1111" или уже принятие "сейчас все мейнтенеры убегут на БСД, план9, на Хурд11!!"
Такие ошибки, как
> обращение к памяти после её освобождения, выход на границу буфера (частично), некорректное освобождение ресурсов при обработке ошибок и забытые проверки возвращаемых кодов ошибокне решаются заменой языка. Это - ошибки программиста. Даже на Basic, который большинство таких ошибок якобы отслеживает, как говорится, "из коробки", все перечисленные ошибки вполне достижимы.
Но впрочем, пускай пробуют. Много мы их видели, но мы здесь, а где они? Успехов им на их славном поприще.
> Это - ошибки программиста.…которые язык ДОПУСКАЕТ.
Наверняка и Раст допускает это
Ну так товарищ уже писал что фри Паскаль тоже отслеживает ошибки. Так почему ни он, а Раст?
> Ну так товарищ уже писал что фри Паскаль тоже отслеживает ошибки.
> Так почему ни он, а Раст?Потому что он отслеживает только часть.
При этом не превнося ничего нового по сравнению сишкой - ни нормальных типов, енамов, паттерн матчинга, асинка и тд
Тому, кто не может понять, что количество new должно равняться количеству delete, никакой Rust не поможет.
Тому, кто не может понять, что понять — это одно, а _не ошибиться_ нигде — это другое, уже ничего не поможет.
Не должно. Было бы всё так просто - память бы выделяли на стеке, без всякой кучи.
Тонкость в том, что ядро - это не совсем обычная программа, это прям высший уровень сложности. Поэтому ДИЛЕТАНТЫ там категорически не приемлемы! А проталкиватели раста наоборот - хотят внедрить язык, чтобы "каждая обезьяна могла писать код". В ядре.Помимо того, что Ржа будет узконаправленно заставлять программиста приседать вокруг каждого указателя, она ещё и создаст гетерогенную среду, где прежде чем что-то исправить, придётся ещё посмотреть - знаешь ли ты тот язык, на котором написан ошибочный модуль. Привет, ш_B_а6одка!
> Тонкость в том, что ядро - это не совсем обычная программа, это прям высший уровень сложности. Поэтому ДИЛЕТАНТЫ там категорически не приемлемы!А кто тогда там пишет кривой код вида "запутался в размерах буфера" или не проверил within i_size блок или нет?
Кто этих дилетантов допустил к разработке?
А погоди, это же пишет один из первых разработчиков ядра, уважаеммый растохейтер Теодор Тцо!
opennet.ru/openforum/vsluhforumID3/135976.html#196> А проталкиватели раста наоборот - хотят внедрить язык, чтобы "каждая обезьяна могла писать код". В ядре.
Судя по багам бибизяны в ядре уже. А вот защиты от них пока нету.
Просто приводят компенсируют инструментом уровень ядрописак.> Помимо того, что Ржа будет узконаправленно заставлять программиста приседать вокруг каждого указателя,
Правильно. Не нужно приседать. Хороший SIGABRT когда-нибудь вылезет.
> она ещё и создаст гетерогенную среду, где прежде чем что-то исправить, придётся ещё посмотреть - знаешь ли ты тот язык, на котором написан ошибочный модуль.
Знать новые языки конечно не нужно. "С89 хватит всем" (с)
> Привет, ш_B_а6одка!
А вот тут именно Свобода - не хочешь раст, форкай или катись на Хурд.
А почему Раст нужно "внедрять"?
Потому что у (многих) его фанатиков имеются определённые... гм... особенности мЫшления.
Немного погуглил на тему продвижения Rust. Оказалось, методы те же, что и про продвижении других, скажем так, спорных социальных инициатив.
Внедряйте любой другой язык с афинными типами, вперёд. Заодно язык написать не забудьте
Короче кроме усложнения ядра, при каждом новом выпуске оного придется идти в магазин за новым компом, так как на старом оборудовании ядро не будет работать. Это и есть контроль корпов: писать код на более сложном языке, который не гарантирует более высокую безопасность, и заставлять людей покупать новые компы. А это огромная прибыль ради которой весь этот цирк устроили. Если бы ни монетарная выгода, ни один бизнес не встал бы а защиту какого-то раста
Такая же история как с Goolang, когда пичкали прилавки магазинов Chromebook ами на Chrome os, и писали какой Goolang инноваторский.
> Короче кроме усложнения ядра, при каждом новом выпуске оного придется идти в магазин за новым компом, так как на старом оборудовании ядро не будет работать.Фантастический бред.
> Это и есть контроль корпов: писать код на более сложном языке, который не гарантирует более высокую безопасность,
Гарантирует больше чем СИ, и этого уже достаточно.
> и заставлять людей покупать новые компы.
А чего они не могут сидеть на старой версии? К чему такое желание обновиться на что-то новое?
> А это огромная прибыль ради которой весь этот цирк устроили. Если бы ни монетарная выгода, ни один бизнес не встал бы а защиту какого-то раста
Именно. Речь о прибыли. И репутации.
Когда твои программы ломают, воруют данные, создают ботнеты... и все из-за того что какой-то туп0й СИшник запутался в сплите строки...
Да, это денежные и репутационные потери.
Раст ничего не гарантирует больше чем Си. Голову надо включать на любом языке программирования. То что Раст гарантирует - так это проблемы совмещения двух языков в ядре. И в разы более жирные исполняемые файлы, что для чего надо будет покупать все новую аппаратуру. Ядро Линукс перестанет быть тем чем оно является на данный момент и потеряет ниши, которые занимает много лет. Вуаля тут вылезет виндовм: мол для чего пользоваться непонятным разжирневшим Линукс, когда есть виндовс!?
> Раст ничего не гарантирует больше чем Си.Ты сможешь сравнить в расте enum'ы разных типов? А в дыряшке?
Вот то-то и оно.> Голову надо включать на любом языке программирования.
Но за 50 лет сишники так и не научились.
> То что Раст гарантирует - так это проблемы совмещения двух языков в ядре.
Судя по мнению людей пишущих ядро - это не большая проблема.
> И в разы более жирные исполняемые файлы,
Пруфы пожалуйста.
Тут уже были долбодятлы рассказывающие про гигобайтные хеллоуворлды, а потом, когда им показывали код на ~500 байт, позорно сливавшиеся.> для чего надо будет покупать все новую аппаратуру.
Почему проблемы нищуков должны останавливать прогресс?
> Ядро Линукс перестанет быть тем чем оно является на данный момент
Кучей кода полной глупых багов?
> и потеряет ниши, которые занимает много лет.
Это какие? Крутиться на подкроватном локалхосте на коре2duo?
Невелика потеря)> Вуаля тут вылезет виндовм
Откуда вылезает? У них примерно 70% дестопного рынка. А у линукса 4%.
А на серверном они неплохо зарабатывают на том же ядре.
И думаю у ни на обновление парка деньги найдутся.
> Раст ничего не гарантирует больше чем Си.Гарантирует. Например, гарантирует не выход за пределы массива в safe. Си это _не_ гарантирует.
Гарантирует при соответствующем коде от программиста
У нас есть тайный орден непогрешимых программистов, код которых гарантированно безошибочен.
> Гарантирует при соответствующем коде от программистаЭто условные гарантии, то есть зависящие от другого условия, которое непроверяемо. Таким образом, это пустое место, а не гарантии.
Это что получается, теперь и ядро будет тормозить?
А у меня к ним нет других чувств, кроме благодарности. Благодарности за то, что на Phyton ядро не переписали. Иначе у меня компьютер будет часа 3 стартовать, и я не успею на на нем ничего посчитать.
ну компиляция точно станет медленнее
Когда доделают свой Rust до взрослого состояния, тогда пусть и приходят. Если ещё будет кому бггг.
> Когда доделают свой Rust до взрослого состояния, тогда пусть и приходят.Но это решают не я и не ты.
А Линус и Грег. И они решили.
Мы можем принять изменения или свалить на бздю.
> свалить на бздюА толку? BSD копирует драйверы из ядра Linux. Будут писать новые GPU драйверы на rust = в BSD в ядре будет rust.
Если мы имеем бинарные файлы, имеет значение, на чем были исходники?
> Если мы имеем бинарные файлы, имеет значение, на чем были исходники?Если у вас есть только бинарные файлы - имеют, вероятно, вас. А в Linux - stable api nonsense и драйвер подходит - только к своей версии ядра, и никак иначе. В BSD драйверы к тому же через прослойку совместимости с ядром Linux, так что удачи.
> Авторские права на имя и логотип Rust принадлежат Rust Foundation.Сомнение закралось. А когда всё будет сделано, она не захочет иметь отчисления с каждой установленной копии Rust? Ну по типу Java от Oracle.
С сайта Фонда:Распространение модифицированной версии языка программирования Rust, компилятора или менеджера пакетов Cargo с изменениями, отличными от тех, что разрешены выше, и называние их Rust или Cargo требует явного письменного разрешения от Rust Foundation. Обычно мы разрешаем такое использование при условии, что изменения (1) относительно незначительны и (2) очень чётко объяснены конечным пользователям.
...
Использование товарных знаков Rust в составе другого товарного знака требует письменного разрешения от Rust Foundation и может включать дополнительные условия использования и плату за использование.
>> Авторские права на имя и логотип Rust принадлежат Rust Foundation.
> Сомнение закралось. А когда всё будет сделано, она не захочет иметь отчисления с каждой установленной копии Rust? Ну по типу Java от Oracle.А что мешает такое сделать Linux Foundation?
linuxfoundation.org/brand-guidelinesBy using The Linux Foundation brand materials, you agree to the The Linux Foundation Terms of Service, The Linux Foundation Trademark Usage Guidelines, these Linux Foundation branding guidelines, and all Linux Foundation rules and policies, as may be updated from time to time.
...
The Linux Foundation may review use of the branding materials at any time and reserves the right to terminate or modify any use.
Короче ждём раст-фри ядро линукс. А пока что можно пользоваться тем, что есть без раста. Благо список поддерживаемого железа в текущей версии ядра - весьма широкий.
> Короче ждём раст-фри ядро линуксПочему Linux, может Грег Кроа-Хартман nix. Или Грегnix, или Кроаnix, или Хартманix.
И энтот Грег туды-жа.Ну то, что ядро в том виде в котором мы его знаем начали закапывать, это уже понятно. А вот, кто бенефициары сего действа, пока не понятно. Не уж-то сам гражданин Торвальдс? Или ему сделали предложение, от которого он не может отказаться? Ну тады, надо дать самый зеленый свет сей затее. Как говорится лучше быстрый конец, нежели ужас без конца.
А мантайнерам думаю пока массово покавать чемоданы, энтот титаник больше не жилец. Аминь!
Все верно говорит (пишет), как не бубнили сишники.
Все равно придет rust, или учитесь или оставайтесь верны С.
Но хватит бубнить итд про Rust:)
И правильно, надо сейчас, все драйвера писать на rust, обязательно!
>в платформе Android. Показано, что основным источником проблем с безопасностью является новый код, и повышению его качества следует уделять основное внимание. Для старого кода наблюдается экспоненциальная зависимость безопасности от времени (например, 5-летний код в среднем имеет в 3.4 раза меньшую плотность уязвимостей, чем новый код).Этот параграф доказал ненужнось языка программирования Rust.
Понятия «основной» и «единственный» для вас тождественны?
>>в платформе Android. Показано, что основным источником проблем с безопасностью является новый код, ... (например, 5-летний код в среднем имеет в 3.4 раза меньшую плотность уязвимостей, чем новый код).
> Этот параграф доказал ненужнось языка программирования Rust.Слава богу в ядре только старый код и новый писать не нужно.
Надо просто заморозить ядро лет на 10, и только исправлять ошибки (и молиться чтобы при исправлении не сделать новых).
А то что там какие-то новые железки и фичи.. ну это для смузихлебов, диды могут комфортно сидеть на 2.6 и корке2duo.
Когда читаю подобное о Rust, пусть и в несчастной Википедии, то начинаю сомневаться в его адептах, а затем и в самом языке:„const — постоянные. Живут в течение всего времени работы программы. А именно, у них вообще нет определённого адреса в памяти. Это потому, что они встраиваются (inline) в каждое место, где есть их использование“
А что тут не понятного?
Если Вы используете в ррограмме констану со значением в один байт одну тысячу раз, то код программы будет примерно на 1000 байт больше.
> значением в один байт одну тысячу раз, то код программы будет примерно на 1000 байт больше.Вещи типа LTO как правило вносят свои коррективы в это состояние дел.
"Если Вы используете в ррограмме констану со значением в один байт одну тысячу раз, то код программы будет примерно на 1000 байт больше."Сразу же, прошу прощения и вношу поправки в свой спич ;(
Так как не являюсь программистом, да и вообще не считаю себя программистом. Дисклаймер.Словосочетание "код программы" надо понимать как инструкции процессора на котором они будут выполнятся.
Так вот, где собака порылась!
Константа - это не сферическая константа в вакууме. А то значение которое будет присутствовать в каждом из 1000 инструкций процессора, то это будет +1000 байт к объему инструкций.Теперь возьмем константу размером в один байт находящуюся в памяти при (например) 32х разрядной адресации памяти (32 бита это 4 байта). То при косвенной адресации в операнде будет адрес ячейки памяти размером в 4 байта. Умножаем на тысячу использований константы, получаем +4000 байт к объему инструкций.
Итого программа на 3000 байт больше!
Не все так просто в нашем мире ;)
Суровая реальность такова, что программы на C++ и Rust собираются полдня. Надо ещё производительное железо иметь. Сборка программ на чистой сишке реактивна несколько секунд, и всё готово.
> Суровая реальность такова, что программы на C++ и Rust собираются полдня. Надо ещё производительное железо иметь.Это проблема только программеров и сборщиков софта.
Обычных людей волнует чтобы оно выполнялось быстро.> Сборка программ на чистой сишке реактивна несколько секунд, и всё готово.
А потом трятяться часы на фиксы)
> А что тут не понятного?Человеки, пишущие техническую статью в таком стиле, не инженеры, не программисты и даже не люди. Это мелкие оболтусы.
Я не пишу технические статьи.
И да, я не человек (для Вас), так мелкий мимокрокодил ;)
Спс. Будьте Человеком!!!
> Показано, что основным источником проблем с безопасностью является новый код
> и повышению его качества следует уделять основное вниманиеХорошо потроллил, намекнув от кого надо ставить загородки с высоким напряжением :)
> основным источником проблем с безопасностью является новый кодВсысле основным источником проблем с безопасностью Rust, является новый код самого Rust.
>> основным источником проблем с безопасностью является новый код
> Всысле основным источником проблем с безопасностью Rust, является новый код самого Rust.Но его пока в ядре нету, только сишка.
Получается парадокс - растовики изобрели машину времени и подбросили СИшникам прямо в штаны плохой код на СИ.
Чудовищное коварство!!
Давайте уже на Zig переходить, раст вроде прошлый век
> Давайте уже на Zig переходить, раст вроде прошлый векУ Zig нет даже исчерпывающего перечня UB. Писать на нём — как ходить по минному полю. Кроме того, его подход к работе с указателями крайне подозрителен, учитывая что компилятор на LLVM: у LLVM очень строгие правила в отношении pointer provenance и т п. и я сильно подозреваю, что авторы Zig облажались с этим.
>> Внедрение Rust также даст возможность структурировать внутренние программные интерфейсы ядра таким образом, что будут практически исключены ошибки использования внутреннего API - в ядре накопилось слишком много сложных и запутанных API, создающих большую нагрузку на мэйнтейнеров в их работе по проверке, что данные API используются правильно.Переход на Rust изменит ситуацию со сложными и запутанными API? Или просто сложные и запутанные API появятся теперь и на Rust? =)
Внедрение Rust гарантирует что новое API будет использоваться правильно?
> Внедрение Rust гарантирует что новое API будет использоваться правильно?Раст позволяет на уровне системы типов задизайнить АПИ так, что им невозможно неправильно воспользоваться. Это одна из мега-фич раста.
Собственно, всё что написал ГКХ - очевидные и известные вещи для тек, кто знаком с растом. Споры возникают на ровном месте из-за того, что горит кресло у людей, которые вообще ничего в теме не понимают, но кидаются комментировать (включая некоторых разработчиков ядра).
95% комментариев на опеннете в темах про раст - это чистые фантазии людей, не имеющие отношения к реальности. Иногда это интересно почитать просто что бы поугорать, а иногда видишь что опять вся тема - чьи-то буйные фантазии, можно сразу закрывать потому что делать там/тут нечего.
Типизация не гарантирует грамотное API и не гарантирует неправильное его использование.
Как ты воспользуешься неправильно, когда апи тебе предоставляет только валидные в данном контексте методы для выполнения?
Нет смысла объяснять такое сишнику, у него есть только int и он будет смотреть на тебя с искренним удивлением и не понимать как ты можешь запретить ему сунуть int в int.
Очередная забавная дихотомия =) Можно не объяснять. Всё уже ясно =)
Ладно, давай на примере покажу. На самом тупом, известном любому вебдеву.Есть у тебя объект, представляющий хттп-ответ. Чё с ним можно сделать:
- установить код ответа (200 ОК)
- установить хедер (Content-Type: text/plain)
- отправить что-нить в тело ответа, ну например "hello world"Супер частая ошибка в рантайме - ты начал что-то отправлять в тело, а после этого пытаешься установить код ответа или хедеры. АПИ тебе это позволяет. Но это баг в логике программы, потому что если тело уже начали отправлять, то значит код ответа и хедеры уже отправлены.
В расте это решается элементарно:
- Есть тип HttpResponse у которого вот эти три операции описанные выше
- http_response.status_code(200) возвращает тот же HttpResponse обратно
- http_response.set_header("Content-Type", "text/plain") nоже возвращает HttpResponse
- http_response.write_body("hello world") возвращает новый тип HttpResponseBody
- HttpResponseBody имеет только один метод: write_body(). Ну что бы ещё чё-нить в тело дописать (отправить в сокет)Тут разумеется упрощённый пример без обработки ошибок и всякого разного. Так вот, с таким АПИ ты физически не сможешь собрать код, если уже начал писать в тело, а потом попытался установить код ответа. Потому, что у HttpResponseBody нет метода status_code(u16).
И тут человек незнакомый с растом скажет: так я же могу продолжать юзать этот старый http_response, нафиг мне HttpResponseBody возвращённый из HttpResponse::write_body() ? И вот тут вступает в дело ownership/borrowing. HttpResponse::write_body() *поглощает* объект, на котором его вызвали.
let mut response: HttpResponse = /* ... */;
response.write_body("hello world");
response.status_code(200); // <-- не соберётся, потому что "response" поглощёнТо есть тебе ничего не остаётся кроме как взять новый тип и работать уже с ним:
let mut response: HttpResponse = /* ... */;
let mut body_writer = response.write_body("hello");
body_writer.write_body(" world");Все эти правила поглощения описываются в сигнатуре функции.
Надеюсь, так понятно. Хватит уже кривляться, хыкать и хэкать, лучше поймите про что идёт речь и возрадуйтесь.
А Rust подскажет тому, кто пишет API, какие сигнатуры нужно прописать? Разговор же не об использовании API, о том как его реализуют. А не прописав нужные сигнатуры, получаем тот же кривой API, только уже на Rust.Указанная проблема на любом языке программирования решается тем, что response в принципе тело сообщения не должен принимать. И тогда без всяких поглощений разработчик будет вынужден использовать правильную логику.
Чисто логически newtype + ownership дают возможность сделать гарантированно безопасно. Без ownership не получится, поэтому только раст. Что касается желания разработчика сделать безопасный апи - речь же не об этом. ГКХ сказал что раст позволяет, если есть желание, это сделать. И это правда. А другие языки не позволяют в принципе, и это тоже правда.Если пример с респонсом недостаточен, зацени вот такое: в расте мутексы прячут защищаемый объект внутри себя. То есть ты никак не можешь получить к этому объекту доступ, кроме как через АПИ мутекса (вызвав lock()):
let mut mutex = Mutex::new(String("hello"));
let string = mutex.lock();
println!("the string is {}", string);И пока ты значение переменной string не дропнешь, мутекс больше никому не даст доступ к охраняемому объекту (они будут ждать на операции lock()).
Возможно только в расте и только из-за системы владения.
В той же жаве или любых других языках у тебя охраняемый объект всегда отдельно от замка́ его охраняющего и на твоей совести не забыть вызвать лок и потом его вернуть.
Мьютексы для внутренних переменных процесса — это круто, наверное, но бесполезно.
> 95% комментариев на опеннете в темах про раст - это чистые фантазии
> людей, не имеющие отношения к реальности. Иногда это интересно почитать просто
> что бы поугорать, а иногда видишь что опять вся тема -
> чьи-то буйные фантазии, можно сразу закрывать потому что делать там/тут нечего.Так и есть. Фантазии про гарантии правильного API (на любом языке) доставляют =)
Не на любом, а на расте. В других это невозможно. Почитай про newtype pattern и сложи это вместе с поглощением переменных. Это комбо позволяет давать доступ программисту только к валидным действиям. Ты в самих исходниках физически не сможешь неправильно воспользоваться - компилятор не пропустит.
> Переход на Rust изменит ситуацию со сложными и запутанными API? Или просто сложные и запутанные API появятся теперь и на Rust? =)Местами просто не придется городить костыли.
Например ты указал что функция возвращает Result(int value, enum FunctionErrors).
Это значит, что в каждом месте где она вызывается надо будет проверить "а нет ли ошибки".
И exhaustive проверить все ошибки если они там есть.И даже если бы в СИ использовались енамы, то в нем ты можешь сравнить enum Error_1 и enum Error_2 потому что в убогости это все инты.
А вот в расте у тебя такой фокус не пройдет - оно не скомпиляется с ошибкой по типам.При этом не будет ошибок из-за костылей "передаем -1 если ошибка А, -2 если ошибка Б..."
А именно это было вот в этой CVE, на минуточку в OpenSSH
opennet.ru/opennews/art.shtml?num=62742
"Суть проблемы в том, что в коде функции verify_host_key_callback() при вызове функции verify_host_key() проверяется только код ошибки "-1", а другие коды, такие как "-2", игнорируются. В итоге функция verify_host_key_callback() может вернуть успешный код "0", несмотря на возврат ошибки "-2" функцией verify_host_key()."> Внедрение Rust гарантирует что новое API будет использоваться правильно?
Я уверен, что разработчики ядра найдут как отстрелить себе ногу даже на расте.
Это будет сложнее, но навык писания на дыряшке не пропьешь.
Например добавят логических ошибок)
Тогда нет отличия от C++ , ведь там тоже местами понагорожены костыли.
Тогда все плюсы Rust, нивелируются.
И нет разницы.
Но если нет разницы зачем Внедрять какой то там Rust, если это то же что и C++ .
Вся это реклама про расплередение памяти Rust, это просто грамотная акция.
> Тогда нет отличия от C++ , ведь там тоже местами понагорожены костыли.
> Тогда все плюсы Rust, нивелируются.Боюсь ты не правильно понял прочитанное.
В расте НЕ нужно городить костыли, как на менее развитых языках.> И нет разницы.
Разве в С++ появились enums с associated values?
Или паттерн матчинг из коробки (а не 100500 велосипедов от васянов)?> Но если нет разницы зачем Внедрять какой то там Rust, если это то же что и C++ .
К счастью не "то же")
Как минимум в расте не дырявого наследия СИ в виде тон UB.> Вся это реклама про расплередение памяти Rust, это просто грамотная акция.
Ты можешь так думать, я не буду тебя переубеждать.
> будут практически исключены ошибки использования внутреннего API - в ядре накопилось слишком много сложных и запутанных API, создающих большую нагрузку на мэйнтейнеров в их работе по проверке, что данные API используются правильноТо есть на что жалуются мейнтейнеры что сопровождение c Rust будет сложнее. Вот главный мейнтейнер как раз говорит обратное, что поддержка будет проще. Прямо так и говорит.
Я не поклонник Rust'а, но расскажу своё понимание ситуации (хотя кому это нужно?).
Linux начали разрабатывать в 1990-м году на С. Почему на С ? Потому что в то время GNU C был единственным бесплатным компилятором. Не было бесплатных компиляторов Паскаля, Модулы, Ады, С++ и т.д. Понятно что С ненадёжный язык (априори, потому что это обобщёный язык ассемблера). Но никаких других бесплатных общественных компиляторов долгое время не было (кроме Free Pascal Compiler, но Free Pascal ненадёжный). И вот появился Rust, бесплатный, общественный, надёжный. Конечно, гугль с майкрософтом загорелись идеей протащить его в Linux, чтобы получить конкурентное преимущество своих продуктов (гугль пиксель, кромбук, azure linux, wsl).
Бесплатный только сыр в мышеловке. Чем-то кому-то придется заплатить. А для этого нужно рассматривать как минимум альтернативные издержки. Хм... и чего же они боятся? Зачем представляют бесплатно?p.s. у меня предположений хороших пока нет, можете это считать предрассудками
>Linux начали разрабатывать в 1990-м году на С. Почему на С ? Потому что в то время GNU C был единственным бесплатным компилятором.Правильно, но не точно. Корпорасты тупо забили на Си, ошибочно считая его устаревшим. Всё внимание уделялось C++. Копилефт не про бесплатность. Сообщество GNU хотело свою экосистему, поэтому нужен был редактор и компилятор. К концу нулевых корпорасты спохватились и поняли свою ошибку, в то время единственный компилятор поддерживающий современные стандарты был один GCC. Вот тут-то они и стали раскручивать LLVM.
>Конечно, гугль с майкрософтом загорелись идеей протащить его в Linux, чтобы получить конкурентное преимущество своих продуктов (гугль пиксель, кромбук, azure linux, wsl).
В этом что-то есть, но не забывай что основной язык Windows это всё-таки C#. А когда Rust только-только начал набирать популярность Майкрософт, в своём стиле, попытался создать его конкурентный аналог. Если ядро станет, на Расте, безопасным оно не будет, просто отпадут характерные для Си уязвимости. В общем сухом остатке, станет плохо. Размеры исходников кратно увеличатся, время компиляции кратно возрастёт.
А почему Rust, а не более близкий к C Go? Ведь тоже контроль обращений к памяти... Или в Rust есть прямая адресация и правильные указатели как в C?
> А почему Rust, а не более близкий к C Go? Ведь тоже
> контроль обращений к памяти... Или в Rust есть прямая адресация и
> правильные указатели как в C?У Go сборщик мусора, с которым они достаточно долго воевали, чтобы он не затупливал в неподходящие моменты. Вроде исправили. Но все равно нет контроля что и когда очистится.
Купленные Бигтехом Линукс Фоундейшн и Каноникал за Бигтеховский Rust в ядре, отлично, что дальше?
Дальше внедрение прослушки в вашей стене, приложите ухо и услышите как мы его уже у вас устанавливаем
отрицание: У раста нет стандарта, поэтому он не настоящий язык
гнев: Раст - это раковая опухоль
торг: Пилите свой форк с блекджеком и ржавчиной=== [вы находитесь здесь] ===
депрессия: Rust довольно тяжело изучать
принятие: Rust позволил нашей команде повысить продуктивность
Модераторы удалили толковые сообщения в защиту Си и критику Раста. Апологеты Раста в качестве аргументов используют хамство и пытаются ввести людей в заблуждение. Запомните! В системной разработке, нет ничего лучше чистого Си. Си является плотью и кровью экосистемы GNU/Linux.
В плотницкой работе нет ничего лучше топора. Проблема в том, что даже у мастера топорище не-нет, да и скользнёт в руке. Хорошо, если лезвие в бревно не в том месте войдёт. А если по ноге?
Ты можешь сколько угодно заниматься софистикой и словестной эквилибристикой. Сути дела оно не поменяет.
Мне вот интересно,откуда берутся идиоты,знающие особенности языка и допускающие вот такое:
"При использовании Rust можно будет оставить в прошлом такие проблемы, как обращение к памяти после её освобождения, выход на границу буфера (частично), некорректное освобождение ресурсов при обработке ошибок и забытые проверки возвращаемых кодов ошибок, что позволит мэйнтейнерам сосредоточиться на реальных ошибках, таких как состояния гонки и проблемы с логикой, а не рассеивать при рецензировании внимание по мелочам."? Что это за мантра?
А что не так?
Критика Си опирается на мелких проблемах, которые несведущему человеку представлены чрезмерно раздуто.
Эти "мелкие проблемы" очень так немелко повышают когнитивную нагрузку при разработку на C.