LINUX.ORG.RU

Компания Open Source Security спонсирует разработку gccrs

 , gccrs, ,

Компания Open Source Security спонсирует разработку gccrs

2

5

12 января компания Open Source Security, известная разработкой grsecurity, объявила о спонсировании разработки фронтенда к компилятору GCC для поддержки языка программирования Rust — gccrs.

Изначально gccrs разрабатывался параллельно с оригинальным компилятором Rustc, но из-за отсутствия спецификаций к языку и частых ломающих совместимость изменений на раннем этапе разработка была временно заброшена и возобновилась только после выхода Rust 1.0.

Open Source Security мотивируют своё участие возможным появлениям кода на Rust в ядре Linux и тем, что ядро собирается чаще всего компилятором gcc. Дополнительно к этому, программы на нескольких языках сразу могут иметь уязвимости, вызванные именно этим фактом (см. Exploiting Mixed Binaries), которых бы не было в программах на чистом C или C++.

На данный момент Open Source Security спонсируют работу одного разработчика, который будет работать над gccrs в течение следующего года, с возможностью выделения средств на увеличение штата. Так же в процессе участвует британская компания Embercosm, специализирующаяся на разработке GCC и LLVM и предоставившая оформление официального трудоустройства разработчиков для данной инициативы.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 2)
Ответ на: комментарий от crypt

https://www.opennet.ru/opennews/art.shtml?num=50620 - ядро 5.0 успело войти в состав Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo и других непрерывно обновляемых дистрибутивов

Fedora 30 и Ubuntu 19.04 – непрерывно обновляемые дистрибутивы? Я тебя поздравляю, ты нашёл несколько дыр в новых ядрах. И чо?

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Если ОС и процессоры «должны» следить за безопасностью, а на деле имеем кучу уязвимостей в сишном софте, о чём это говорит? Надо выкинуть ОС или процессор? Или всё разом?

andalevor ★★★
()
Ответ на: комментарий от anonymous

Еще раз для заржавелых чуваков. С дает программисту свободу и накладывает ответственность. Да, вокруг «сишных дыр» надо плясать с бубном, чтобы дать гарантии невозможности их эксплуатации. C это системный язык, для написания портируемых низкоуровневых систем. Сишный драйвер GPU будет работать и на x86, и на arm, ppc,

Бро, ну не надо.

C мёртв, за исключением легаси (ядро относится туда же). Вместо него C++, который, если верить его автору, совершенно другой язык и за использование в нём C-измов, кодера нужно гнать ссаными тряпками. В нём даже new фактически запрещён. Raw-указатели сишным методом приводить нельзя.

Да и чтоб реально написать драйвер, который и на x86, и на arm и на ppc придётся обмазываться всякими uint32_t и проверять endianess, что убьёт всю хвалёную «свободу». Фактически современный C++ - это 3 разных языка, развесёлый sizeof(short) <= sizeof(int) <= sizeof(long), строгий с uint32_t и современные кресты с RAII. Это ещё ассемблер и шаблоны не считая.

Разница между C++ и Rust фактически только в том, что в Раст добавили сейф-подмножество, выкинули развесёлую часть старого C и идиотизм с ООП, и привели умолчания к такому виду, чтоб выстрел в ногу не происходил случайно. В остальном пожалуйста, делай что хочешь, даже аналог reinterpret_cast есть.

khrundel ★★★★
()
Ответ на: комментарий от andalevor

Если ОС и процессоры «должны» следить за безопасностью, а на деле имеем кучу уязвимостей в процессорах и ОС, о чём это говорит?

Fixed that for you.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от spbob

И?

Если пенсионер достанет свой старый COBOL и напишет в 2021 систему документооборота для антикафе, которое открывает внук, это что, как-то отменит факт смерти COBOL?

Самый популярный язык системного и прикладного программирования загнан в нишу, вон, последний пример, wolfssl - это блин либа для интернета вещей. + 2 «фирмвари» для ембеддеда.

khrundel ★★★★
()
Ответ на: комментарий от khrundel

Самый популярный язык системного и прикладного программирования загнан в нишу

у любого языка есть своя ниша, чтобы всё на одном языке написано - такой подход давно устарел. Embedded это такая нехилая ниша, доминирующая ниша, самая технологичная. Вот раст я вообще не встречал нигде, даже не в нише :)

spbob
()
Ответ на: комментарий от spbob

Оправдания.

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

Раст собственно и появился, потому что те языки, которые попёрли C/C++ почти отовсюду, во многих местах тупо неприменимы, а программировать по-старому уже не шибко-то хочется.

Вот, сейчас назревает ужасное: плюсы в ядро не пускают, а Раст, вероятно, пустят.

khrundel ★★★★
()
Ответ на: комментарий от khrundel

Вот, сейчас

вот скоро, вот еще чуть-чуть :) вот это и есть оправдание - нет нигде раста, а С как был так и будет благодаря своей простоте, лаконичности и портируемости на любую архитектуру - ему по этим показателям С++ в подмётки не годится, про раст и упоминать нечего.

spbob
()
Ответ на: комментарий от derlafff

Разве это так работает? Почему мэинтейрнер не может потерять интерес к сопровождению пакета в дистрибутиве X? Тем более, что были уже истории когда мэинтейрнер уходил, а пакеты повисали в воздухе с угрозой удаления. Я имею в виду, забить может кто угодно. При этом шанс, что забьёт мэинтейрнер дистрибутива X гораздо выше, т.к. это только один из сотен дистрибутивов, у которых почти у каждого свой менеджер и формат пакетов. В то время как в случае с flatpak разработчику достаточно поддерживать один формат пакетов для всех дистрибутивов. Но даже если разработчик совсем не хочет создать пакет и его поддерживать этим может заниматься другой человек, мэинтейрнер, но один, а не по одному в каждом из сотен дистрибутивов.

andalevor ★★★
()
Ответ на: комментарий от spbob

Тут надо запостить мемчик про «вы находитесь здесь», но мне лень.

Факт остаётся фактом, C/C++ сдаёт позиции, Раст набирает. Вон даже вспомненная выше Фуксия что-то на Расте содержит.

khrundel ★★★★
()
Ответ на: комментарий от khrundel

Фуксия что-то на Расте содержит

что-то содержит, но основные части системы - ядро, драйверы, графический движок на С++. Микроядро причём уже переписано с С на С++ а не на раст, т.е. вся база на С++. Так что и тут будущего у набирающего холостые обороты раста не видно :)

spbob
()
Ответ на: комментарий от spbob

Не, ты вообще не вдупляешь.

Представь, если б у Шаттлврота получилось и он смог бы в 2015 году выйти и сказать «Вендекапец наступил! Смотрите, с серверов винду попёрли, 70% всех консьюмерских устройств работает на андроиде/айос, винда сохранилась только в нише десктопов, но и там её теснит Убунту, которая устанавливается на 20% новых компов и с каждый годом эта доля растёт. Пацаны, го на Убунту, за ней будущее». А ему бы ответили: «Подумаешь 20%, Убунта твоя уже 10 лет существует, а всё какие-то жалкие 20%, позор да и только. Вон сколько старых компов на XP работают, сколько на висте и семёрке, на них никто операционку переустанавливать не будет. У меня на работе как раз недавно новые компьютеры купили и на них всех винда».

Если посмотреть на страницу Фуксии в вики, то там перечислены несколько языков. 2 из них - это пет-проекты самого гугла, не очень понятно, насколько они реально полезны. Тот же Dart, например. 4 - языки, выбранные не по блату. Это C, C++, Python и Rust. Заметь, нет ни Java, ни JS, ни C#, ни D, ни Nim. Питон как бы особый язык, для своей ниши и в ней очень распространённый и модный, его включение понятно. А вот C/C++ и Rust конкуренты, сам факт принятия сопляка Раста в этот список явно намекает, куда всё идёт. Понятно, что в списке есть и C/C++, но сам понимаешь, найти нужное количество опытных кодеров на Расте пока что сложно, да и переиспользование старого кода тоже в пользу C/C++ работает.

khrundel ★★★★
()
Ответ на: комментарий от khrundel

Если посмотреть на страницу Фуксии в вики

не там смотри

https://fuchsia.dev/fuchsia-src/contribute/governance/policy/programming_lang...

языки, выбранные не по блату

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

Con: The properties of the language are not yet well-understood, having selected an unusual language design point (e.g., borrow checker) and having existed only for a relatively short period of time
Rust is approved for use throughout the Fuchsia Platform Source Tree, with the following exceptions:

    kernel. The Zircon kernel is built using a restricted set of technologies that have established industry track records of being used in production operating systems.
spbob
()
Ответ на: комментарий от crypt

Все «за». А кто делать то хочет? В оракле почему-то не захотели вести разработку одновременно нескольких версий, одна из которых нужна в дебиане. В итоге мэинтейрнеры дебиана смогли только выкинуть виртуалбокс на мороз.

andalevor ★★★
()
Ответ на: комментарий от hateyoufeel

непрерывно обновляемые дистрибутивы?

тот факт, что нет, как раз играет в мою пользу. ты этого, видимо, не понял.

crypt ★★★★★
()

Пока какой-нибудь MS/Google/Apple не начнет пилить вовсю на Rust, язык, какой бы он не был замечательный милый и прекрасный - так и будет в странном состоянии.

ponchik-2
()
Ответ на: комментарий от balsoft

Хмм, а может тогда попробовать запилить конвертор Cargo.{lock, toml} => shakebuild.com вместо пинания игрушек на мобиле…

q0tw4 ★★★★
()
Ответ на: комментарий от balsoft

Ну если реализовать shake на расте. Хотя на хаскеле монады удобные. Ну я думал о том, чтоб и писать на хаскеле сам пакет, но хаскель в реальной жизни - такое. Раст поближе к железу будет. Но зато скриптовать сборку на хаскеле круто, особенно если в сборке участвуют кастомные ЯП, кодогеренация и прочие хитрости в большом количестве.

q0tw4 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.