|
2.8, pda (ok), 10:22, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +9 +/– |
А читаем мы по диагонали...
"Проблема может быть решена использованием языков программирования, гарантирующих безопасную работу с памятью, или обвязок с дополнительными проверками"
"уже существующие проекты на С/C++ переработать достаточно проблематично, особенно если они предназначены для выполнения в окружениях с ограниченными ресурсами, таких как встраиваемые системы и устройства интернет-вещей"
| |
|
|
|
5.217, Аноним (220), 09:57, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
я тебя огорчу:
...
Based on components for the Arduino Uno
Needs AVR-GCC on the system for linking
Needs AVR-Libc on the system for support libraries
...
растаманы недалеко ушли от go-пошников - тупо шмаляют обертки вокруг C и бьют себя пяткой в грудь.
много вам г#вна придется сьесть, чтобы написать компилятор для другой архитектуры
| |
|
6.243, topin89 (ok), 14:42, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
А тебе шашечки или ехать?
Писать на расте можно? Можно. А линковка на любых платформах, кроме может redox, берётся системная, а не самописная
| |
6.265, Аноним (265), 20:32, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> тупо шмаляют обертки вокруг C и бьют себя пяткой в грудь.
И что тут преступного? Придумать концепцию, подходящий синтаксис, внедрить хуки. Предварительно обработать свой код и передать сишному компилятору. Коллекция GCC так и строится.
В инструкции по установки rustc прямо написано что нужен компилятор плюсов вроде (или библиотека плюсов).
| |
|
|
|
|
2.16, Аноним (16), 10:39, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
Проблемы и приватности и тивоизации.
Как на устройстве запускать и свои сервисы работы с деньгами и одновременно неизвестный любой другой код и чтобы не поломали.
| |
|
|
4.180, A (?), 21:42, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
Вам-то - да. Но они-то мыслят: через банкомат ты много не продашь книг, кино, музла, фуфлоты и др. цифро-услуг.
| |
|
5.184, YetAnotherOnanym (ok), 21:49, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Да просто экономят. Банкомат требует техобслуживания, инкассаторская служба тоже недешёвое удовольствие, с владельцем помещения надо договариваться, питание, связь, вот это всё. Ну, и впаривать фуфло, да.
| |
5.345, 2student (?), 16:32, 13/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
когда были онлайновые магазины с CD программ, кино и музыки было ответственней, потому-что приходилось за этим ходить пешком, и сто раз думал что купить и на что потратить деньги.
| |
|
4.260, Аноним (265), 19:45, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Тут антимаркетинговые факторы начинают работать. Дождь, вечер, лень, очередь, не всегда за углом и тд. Да и банкам накладно ставить банкоматы на каждом шагу.
| |
|
3.162, kusb (?), 20:12, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
Полный сброс контекста, чтобы даже ОС не была задействована в это время. Всё состояние ОС сохраняется, запускается программа для работы с деньгами из шифрованного места, расшифровывает себя и дальше...
Главное не давать основной ОС трогать в том числе незашифрованную часть программы для работы с деньгами.
| |
|
4.238, Аноним (235), 13:52, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Главное не давать основной ОС трогать в том числе незашифрованную часть программы
>расшифровывает себя и дальше...
Дальше известно как. Ищет бинарники и модифицирует их добавлением своей копии.
| |
|
3.266, Аноним (265), 20:39, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Контейнеры, виртуальные машины, контрольные группы, разделение пространства имен, песочницы, работа в другом профиле, использование аппаратных токенов и многое другое. Если не изменяет память, то вкладки современных браузеров разделеня как песочницы. Главное не пускать грязь на системный уровень и многофакторная авторизация.
| |
|
2.24, _kp (ok), 10:52, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
Там же сказали, для использования существующей кодовой базы без переписывания, ибо объёмы весьма внушительны.
Rust тут ни причём, ибо даже никак не относится к решению задачи - использования, того что уже есть.
| |
|
3.255, ЗанудаВФорточке (?), 19:33, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Адепты раста не упускают возможности попиариться. )) Своего кода крохи. Натолкнулся что раст в работе используют менее 10%. остальные для развлечения. Go, например, рядом на сайте используют на работе 70 процентов.
| |
|
|
3.177, Аноним (177), 21:29, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Хруст их очень устраивает. Их не устраивает переписывать миллиарды строк кода _старого барахла_. Плюс это они делают не только для своего старого барахла, но и для твоего, наСИльник, ибо лицензия BSD. Ты то раст ни в жисть не выберешь, а ошибки как делал так и продолжишь штамповать. Даже если тебе пригрозят отрезать выступающие части тела, ибо клиника.
| |
|
4.195, Аноним (-), 02:12, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Ты в своем праве отправиться курить бамбук и не пользоваться сишным софтом. Можешь начать с операционки и кернела, редокс ждет тебя.
| |
|
|
2.120, Аноним (120), 16:44, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +1 +/– |
Мне, с моим отсутствующим мозгом, кажется что проверка каждого обращения к памяти настолько сильно уронит производительность, что пользоваться ей будет почти невозможно
| |
|
3.269, _kp (ok), 21:16, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Мне, с моим отсутствующим мозгом, кажется что проверка каждого обращения к памяти
> настолько сильно уронит производительность, что пользоваться ей будет почти невозможно
Есть же тестовые и отладочные сборки.
Эту среду можно рассматривать и как средство обнаружения проблем, что бы подправить исходник, и он точно стабильно работал в нативном виде.
| |
|
|
|
4.321, ptr (??), 14:18, 06/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Поддержку то можно наваять. Но когда у тебя только 2К оперативки, даже если поддержка будет кушать 500 байт, желания ее использовать - никакого
| |
|
3.194, Аноним (-), 02:11, 02/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
> Как Вы представляете себе Rust, например, для CH32V003?
А это что за зверь? Клон GD32 с RISCV ядром и прочим обвесом "как у STM32"?
| |
|
|
5.336, Аноним (335), 10:19, 08/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> http://www.wch-ic.com/products/categories/47.html?pid=5
Похоже на RISCV с обвесом "как у STM32". Но, кажется, все ж не классическим F103 в 103-й версии, это фэйл. И у катайцев есть какие-то устаканившиеся клоны которые 1 в 1 совпадают? F103 на ARM например штук пять фирм минимум гонит и они более-менее совместимы и по ядру и по регистрам, вплоть до вливки 1 и того же бинаря во все и даже работать будет, правда не факт что идеально точно, но лучше чем нифига.
| |
|
|
3.219, Аноним Ваноним (?), 10:26, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
ну я так понимпю, тут и на си не сахар: или мимикрия апи под stm32(с надеждой, что китайцы все нормально сделали) или самому по даташиту и riscv асмом сидеть разбираться. Да господи, офф доки по avr и stm бывают нерабочими. Так что не понимаю, что уже там на раст бухтеть, все мы сидим и пользуемся откровенным говном.
| |
|
2.197, Аноним (-), 02:17, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> Ну зачем аппаратный огород городить когда уже Rust есть?
Он так то тоже далеко не все в рантайме проверять может - некоторые проверки не халявные по скорости, увы. Скажем integer overflow.
Одно дело если железка в рантайм эксепшн кидает что переполнение математики, это не требует кода на проверки. Совсем другое если надо нормальную математику проверками carry-флагов разбавить, скорость всякого крипто и мультимедии резко упадет в разы если так сделать. А оно такое надо? Это даже из си можно сделать подцепив ubsan и особенно asan но это будет мало чем лучше Java какой-нибудь.
| |
2.257, Аноним (265), 19:39, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Топик для Аудита (тестирования) кода на Си и плюсах. Причем тут раст? Если удастся внедрить контроль владения данными в компилятор Си то раст станет не нужен. Причем речь идет о владение динамически выделенными данными в куче.
| |
|
|
2.169, Аноним (-), 20:59, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +1 +/– |
> Настоящий сишник меняет аппаратуру под себя. Диктует свои правила.
Если посмотреть на то как изменилось современное железо... эээ... вообще-то да, все именно так :).
Процы стали делать удобными для именно сишки, самые видные это Cortex'ы армовские. Железо чего-то стало mem-mapped, без всяких in/out в левых адресных пространствах. И так далее. И чего это они? :)
| |
|
3.229, Nope (?), 13:11, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +3 +/– |
Главный прогиб под C - это RISC-V, где нет флагов.
Соответственно весь тот геморой, который нужен для сложения числе размера в два раза больше слова реализуется один в один как C код, сложение, сравнение и т.д., без всяких add adc
| |
|
|
|
|
7.251, x3who (?), 19:03, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Если это нигде не сделано - это не значит, что не нужно. Реализация этих флагов проста, а выподвыверты чтобы их обойти будут стоить дополнительных тактов ЦПУ.
| |
|
6.272, _kp (ok), 21:29, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Ну и много ли хотя бы в 32х битном коде на ассемблере работы с флагами вне операций сравнения? Если без них можно обойтись, то и проблемы нет.
Для многих процессоров, возьмем для примера cortex m3 stm33, можно написать весь код на Си, включая таблицы векторов прерываний. Единственное останется несколько ассемблерных макросов для барьеров, прерываний, и подобных мелочей.
Сейчас на ассемблере не пишут, и вполне можно оптимизировать процессор под код из под компилятора.
| |
|
|
|
|
2.221, Аноним (221), 11:11, 02/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
> Настоящий сишник меняет аппаратуру под себя. Диктует свои правила.
правила диктует прогресс а он сдерживается рынком. Появился запрос на использование общих сетей передачи данных и всплыл вопрос о безопасном их использовании - на начальном этапе начали использовать псевдобезопасные языки но в конечном итоге всё равно перейдут на безопасные процессоры потому что без доверенной аппаратной платформы на которой исполняется код никакой безопасности нет в принципе.
| |
|
|
4.234, Аноним (221), 13:32, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Как рынок сдерживает прогресс?
инновационные продукты из-за высокой цены могут себе позволить единицы -> производство не окупается а все R&D сидят на дотациях -> тем кто дотирует требуется время чтобы окупить вложения -> сдерживают конкуренцию огораживанием разработок патентами.
Если ты не заметил - рынок десятилетиями был огорожен дырявыми процессорами интеля.
| |
|
|
2.263, Аноним (265), 20:05, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Unix захватил мир процессоров вместе с С. Мелкомягкие писали свой первый код на С. Всё это предопределило архитектуру процессора. Дальше легаси вступило в действие.
| |
|
3.314, adolfus (ok), 21:49, 04/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
С был спроектирован так, чтобы эффективно отображаться на две существующие на тот момент времени архитектуры -- гарвардскую и фоннеймановскую, снабженные стеком. Поскольку других архитектур не появилось и не появится в обозримом времени, этот язык переживет всех.
| |
|
4.338, Аноним (-), 10:31, 08/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> С был спроектирован так, чтобы эффективно отображаться на две существующие на тот
> момент времени архитектуры -- гарвардскую и фоннеймановскую, снабженные стеком. Поскольку
> других архитектур не появилось и не появится в обозримом времени, этот
> язык переживет всех.
Да вообще-то в сишке адресное пространство так то одно на всех и вот на именно гарвардца который гарвардец не только в железе но и в логике - оно с теми еще гландами и автогеном получается.
Если кто хочет посмотреть как си на гарварде - вон авр есть. Весь мозг сломаешь с тамошними указателями. То-есть они как бы и так указатели и сяк, но вот тут такие а вот тут не такие, и не сойти с ума при этом - не очень просто.
| |
|
|
|
|
2.18, пох. (?), 10:44, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
так он бы смог, конечно, смог бы - но пока на эту архитектуру кроме readme.md ничего толком портировать не удалось.
(отдельно станет интересненько когда выяснится что милиард взаимозависящих крейтов неведомых авторов на ней компилируютца...только не совсем работают)
P.S. не то чтобы я верил в то что любой сишный код и в мсовской-то конструкции будет работать а не падать, но у них-то всегда остается ход конем - взять да и скомпилировать небезопастным образом.
| |
|
3.89, Аноним (-), 15:04, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
Хотя, если так подумать, в рантайме лайфтаймы и выходы за границы отслеживать проще. В том же расте, если перенести лайфтаймы в рантайм при помощи RefCall и Arc, то компилятор перестаёт ругаться. Паники иногда в рантайме случаются, правда. Но зато думать не надо, прям как в C.
| |
|
4.97, непох (?), 15:58, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> зато думать не надо
Если вы не думаете, то вы трупп.
Поэтому стремление к "поменьше думать" несколько удручает.
| |
4.170, Аноним (-), 21:01, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Хотя, если так подумать, в рантайме лайфтаймы и выходы за границы отслеживать проще.
Какой-нибудь диапазон значений int - и его переполнение - в компил тайме не больно то отследишь в общем случае. А в рантайме без поддержки железом не халявно получается, так что даже хруст это только в дебаг билде делает. Ну вы же понимаете что дебагбилд у дева час покрутится а релиз годами у легиона юзерей? С понятной разницей в уровне оттестированости и факапов.
| |
|
5.241, Аноним (-), 14:18, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> в рантайме без поддержки железом не халявно получается
В рантайме *с* поддержкой железа не халявно получается. Спекулятивное выполнение, позволяет процессору все эти проверки проскакивать, выполняя полезный код пока какая-нибудь из прошлых проверок не скажет, что было переполнение.
Проверки небесплатны вне зависимости, поддержаны они железом или нет. Если они поддержаны железом, значит тебе дополнительных компараторов придётся засовывать в конвеер и длину спекуляций увеличивать. Либо отдельный специализированный конвеер выделять под эти проверки, что наверное глупость: иногда его производительности будет не хватать и он будет ограничивать скорость выполнения кода, а иногда его производительность будет избыточна, и он будет простаивать тогда, когда мог бы ускорять выполнение кода.
| |
|
6.283, Аноним (-), 22:40, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Для процессора переполнение int'а это не ошибка вовсе. Для задумки программиста это может быть ошибкой. А компилятор вполне может помочь, если задумка программиста будет закодирована в коде. Когда ты используешь + для любого сложения, то происходит потеря информации о задумке, при передачи из головы компилятору, потому что разные идеи кодируются одинаково. Если же их кодировать по-разному, то компилятор может помочь.
Таким образом, логика твоя порушена. Из "логичности" ошибки никак не вытекает того, что компилятор не поможет. Он не поможет потому что программист не попросил компилятор помочь с данным типом логических ошибок.
| |
|
7.290, Аноним (265), 00:41, 03/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
#include <stdio.h>
#include <inttypes.h>
int main(){
uint8_t a=255,b=255;
uint8_t c;
c=a+b;
printf("%d\n",c);
И здесь я Явно указал значения операндов. Компилятор GCC даже не предупредил.
| |
|
|
|
|
|
|
3.214, Аноним (214), 09:25, 02/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
До тебя медленно но очень трудно доходит что раст ненужен. А сама идея на него что-то переписывать не имеет смысла. Продолжай свой путь к просветлению.
| |
|
4.292, Аноним (177), 03:54, 03/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> До тебя медленно но очень трудно доходит что раст ненужен.
только "икспертам опеннета"
> А сама идея на него что-то переписывать не имеет смысла.
хорошо что разработчики tor тебя не слышат. Но до тебя не то что медленно, а вообще не доходит, что я и не говорю про необходимость переписывать всё на расте. Наоборот, я и сказал, что не имеет смысла переписывать всё старое барахло.
> Продолжай свой путь к просветлению.
А тебя уже ничто не спасет, можешь остановиться, никакого просветления тебе не светит.
| |
|
3.232, Аноним (235), 13:25, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –1 +/– |
>s/человеки/растаманы сами же должны сейчас напрячься и просто переписать тысячи и тысячи старых проектов на раст. __Им ведь всё равно нечего делать__.
Точно подмечено!
| |
|
4.293, Аноним (177), 03:59, 03/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
А, слово подменил, смысл поменял, смешно получилось. Детский сад, штаны на лямках.
Тонко пошутил!
Пысы: Радует, что реагируешь - значит, у тебя подгорает.
| |
|
|
|
|
2.23, пох. (?), 10:49, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –3 +/– |
если ты про тегированную память, то он наверное был только в ель-брус-1, том у которого отдельный интерфейс с водопроводной сетью. И не работал как следует.
| |
|
3.54, непох (?), 12:38, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +3 +/– |
Защищенный режим есть во всех Эльбрусах и работает, без "наверное".
Если бы "чубайсы" не мешали Эльбрусам, а дали развиваться, то за прошедшие 20 лет могли бы иметь превосходную архитектуру, а не студенческо-дипломный PoC как сейчас.
Эх, жалко полимеры...
| |
|
4.145, пох. (?), 19:12, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
Прости, а вот при советской власти на которую тут все неистово др-ат им кто мешал - Брежнев, Андропов или Черненко?
А то они так там доразвивались, что на 1045 стояли очереди на год вперед, бэсм уже никто не любил но кому давали - пользовались, см1420 работали неделями, а эта херня только ремонтировалась (наверное, водопроводный интерфейс протек)
| |
|
5.222, U202204161753 (?), 11:37, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
"Эта х-ня" - про Эльбрус-1 или про Эльбрус-2?
Если про первый, то там была неудачная элементная база. Её и заменили в Elbrus-2, получив таки необходимую скорость работы.
( пересказываю, то что читал)
| |
|
4.171, Аноним (-), 21:04, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –3 +/– |
> Если бы "чубайсы" не мешали Эльбрусам,
О, оказывается в головотяпском управлении зажраной фирмочки чубайс виноват. А он там вообще в этой фирме был?!
> а дали развиваться,
А как он им мешал то? По-моему им свое руководство совкового разлива, не относящееся к чубайсу мешало сильнее.
> то за прошедшие 20 лет могли бы иметь превосходную архитектуру, а не студенческо-
> дипломный PoC как сейчас.
А им и так хорошо было на госзаказиках походу. Даже позволяли себе контракты с госами продалбывать. Представьте себе китайский или американский стартап который рискнет продолбать заказ от госов, если уж обломилось такое?!
| |
|
|
|
7.254, ЗанудаВФорточке (?), 19:19, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> За то же время в других странах развились десятки микропроцессорных стартапов, тиражи RISCV стали исчисляться миллионами. И на их фоне вон то не выглядит круто и офигенно хоть тресни.
В том и роль чубайсов - обеспечивать рынок сбыта в России для чужих стартапов. Еще ода роль - морочить голову прожектами (ну это когда импортозамещение стало наслуху). Как вот они безответственно свалили?...
| |
|
6.284, Neon (??), 22:41, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Ну так чубайсы не из космоса прилетели. Они все бывшие пламенные комсовольцы и верные ленинцы коммунисты. Других чубайсов не было.
| |
|
|
4.216, maximnik0 (?), 09:54, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
>Защищенный режим есть во всех Эльбрусах и работает, без "наверное".
Нет, вы ошиблись.Не вовсех.Есть ещё серия Эльбрусов которые де факто Спарк.(серия микро 90 если не подводит память)Да там есть NX бит,защита по некоторым ошибкам но это не то.
| |
|
5.245, непох2 (?), 15:04, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Да, конечно.
Всегда эта путаница, что называть Эльбрусами - либо только те что на самом деле Эльбрусы, либо еще и те что Спарки...
Лучше-бы МЦСТ назвали свои спарки барсами или казбеками.
| |
|
|
3.58, maximnik0 (?), 12:48, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
>он наверное был только в ель-брус-1,
Нет, аппаратная защита есть и у Эльбруса ,который wlib.Называеться тегирование-каждое 4 байтное слово сопровождается 3 разрядным тегом.А ещё раньше аппаратные атрибуты были реализованы в Barroughs.Кое какая защита также есть у Ибм майфрэймах-с использованием микрокода.
| |
|
|
5.63, непох (?), 13:09, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +6 +/– |
Да, обычные не годятся, нужные "серверные" DDR-модули с ECC.
Теги хранятся в вместе с контрольно-корректирующими битами, технически решение очевидное до гениальности.
| |
|
6.199, Аноним (-), 02:29, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Теги хранятся в вместе с контрольно-корректирующими битами, технически решение очевидное
> до гениальности.
А ECC при этом нормально работает?
| |
|
7.242, непох2 (?), 14:24, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> > Теги хранятся в вместе с контрольно-корректирующими битами, технически решение очевидное
> > до гениальности.
> А ECC при этом нормально работает?
Да.
На уровне DDR-модуля ECC это просто дополнительные биты (обычно +1 к восьми).
Контроль и исправление ошибок реализуется "снаружи", а не в самих DDR модулях.
Как много ошибок исправить и обнаружить зависит от размера блока и количества выделяемых в нем "проверочных" бит, погуглите коды Хемминга.
Поэтому если не мельчить с размером читаемого из DDR блока, то пропорция 8+1 обеспечивает достаточно "лишних" бит для хранения тегов, без ущерба коррекции ошибок.
| |
|
|
|
|
|
|
7.96, непох (?), 15:53, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +3 +/– |
> В самОм Linux тоже?
Да, но...
> Кстати, может ли вообще Linux работать в защищенном режиме?
Да, если переписать.
Защищенный (aka Безопасный) режим на Эльбрусах очень суров, примерно как Rust без unsafe.
В частности, нельзя "просто так" кастить указатели к целым и наоборот, нельзя сделать union с указателем и т.п.
| |
7.237, Аноним (235), 13:45, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
>Кстати, может ли вообще Linux работать в защищенном режиме?
Что имеется ввиду в данном контексте под защищённым режимом? Если Linux (ядро) может работать в Ring0 (x86), то да, он там и работает.
| |
|
|
|
|
|
|
5.179, RM (ok), 21:38, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Ты еще скажи что Бэббидж тоже продолбал.
В смысле просто лазерной резки для шестеренок^W^W^W^W транзисторного бюджета не было.
Вот проверят на новом уровне идею.
И да - Capabilty Based и VLIW - это все про брусы, но одно отрогонально второму.
Хотя и тому и тому желателен язык высокого уровня сразу и компилятор с него нормальный.
| |
|
4.206, maximnik0 (?), 04:57, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Я вообще восхищён что такое сумело проскочить в непрофильном сайте.Там прямо указывается что и как распилиловась на не имеем аналогов системе ПРО.Как система съедала талантливых людей.При этом объектная защита не имеет смысла-в случае песеца посылается маленький слабенький заряд-подрываеться за 800 км до объекта.Следом 2 заряд уже подрывается за 550-250 км от объекта.Все система Про выведена из строя-из за ионизации атмосферы аппаратура минимум полчаса будет слепа.
Но об этом не хотят распространяется,потому что бабло продолжают пилить.
| |
|
|
2.249, qwe (??), 18:08, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Мало того, защищенный режим есть и у интелов, в том том числе флаг исполнения для выделяемых блоков памяти. То есть можно аппаратно запретить исполнять код в стеке и данных. Другое дело, использует ли эту фичу операционка.
| |
2.261, Аноним (265), 19:54, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Вопрос: Как освобождать тэгированную память? Надо вайпить (wipe) биты тэга? Ведь не все команды могут работать с ними? Простым изменением указателя стэка не обойдешься.
| |
|
1.7, Аноним (7), 10:21, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
так, погодите-ка. Если Java - это язык, компилящийся для "гипотетических процов, способных исполнять явовский байткод", то сишка - это то же самое, но для гипотетических процов, в которых можно делать use after free и прочие веселухи. Все правильно понял?
| |
|
|
|
4.116, Аноним (120), 16:37, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
"getDeclaredField
Returns a Field object that reflects the specified declared field of the class or interface represented by this Class object. The name parameter is a String that specifies the simple name of the desired field.
If this Class object represents an array type, then this method does not find the length field of the array type."
Уточните, пожалуйста, где здесь про доступ к памяти? У меня нет мозгов и я не могу понять.
Даже из названия следует что это доступ к полю класса, по имени
| |
|
5.121, OpenEcho (?), 16:46, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
> Уточните, пожалуйста, где здесь про доступ к памяти?
Гуглите про sun.misc.Unsafe или проще, - direct memory access java
| |
|
|
|
2.14, Аноним (16), 10:31, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –1 +/– |
Типа того. Админить руками или скриптами. В Си - руками всё. В Яве и прочих есть "скрипты" - сборщики мусора.
Скрипты отладил один раз, тесты написал. Работает надёжно.
А руки: опечатки, переключался на другое, авто-тестов нет и выходит плохо.
| |
|
|
4.200, Аноним (-), 02:31, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> почему не сделают скрипты сборщики мусора на си?
Для сей есть энное количесто сборщиков мусора, какие проблемы?! Можно начать с BOEHM пресловутого, если оно вам надо.
А если вы хотели из си Java сделать -fsanitize=address,undefined и получите примерно этосамое :)
| |
|
|
2.62, _hide_ (ok), 13:06, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +4 +/– |
Процессору на ваши use after free и прочие шалости побоку, более того, состояние гонки можно получить просто из-за небрежной работы с памятью без явных ошибок, к примеру, при циклических ссылках и т.п.
Именно поэтому Ява и работает с памятью "безопасно" -- потому что удаляет сама
| |
|
3.112, Аноним (120), 16:29, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Уточните, пожалуйста, какое отношение состояние гонки имеет к циклическим ссылкам? У меня просто слишком мало мозгов и не понимаю.
"Состояние гонки (англ. race condition), также конкуренция[1] — ошибка проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода."
| |
|
|
|
6.286, _hide_ (ok), 22:52, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> А причем здесь циклические ссылки?
Потому что такие вещи часто встречаются именно в реализации объектов, ссылающихся друг на друга.
| |
|
|
|
|
2.149, Аноньимъ (ok), 19:36, 01/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Да, правильно, Си процессоры довольно "специфичны" на самом деле.
Было много альтернатив этому бреду, но почти всё закопали.
| |
2.165, www2 (??), 20:21, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
На Java бывают утечки памяти, если что. Можно тоже запретить.
А кроме расширения набора команд процессора есть и другие решения - Cyclone, valgrind, MISRA, статические анализаторы кода.
Другое дело, что не каждый ими пользуется и в целом в большинстве программ на Си не принято заниматься инкапсуляцией и сокрытием внутреннего устррйства структур. Часто можно увидеть как большое количество кода работатет с огромными вложенными структурами, имея возможность напрямую обратиться к внутренностям самых глубоко вложенных структур...
Чтобы написать хорошуую программу на Си, нужно уметь проектировать компоненты и архитектуру. У Java-программистов такая культура более распространена, и дело тут на самом деле далеко не только в сборщике мусора или его отсутствии...
| |
|
1.11, Аноним (16), 10:27, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +4 +/– |
> Практика показывает, что даже крупные корпорации, такие как Google и Microsoft, имеющие жёсткую политику рецензирования изменений и применяющие современные методы разработки и инструменты статического анализа, не могут гарантировать отсутствие ошибок при работе с памятью (например, около 70% уязвимостей в программных продуктах Microsoft и Google вызваны небезопасной работой с памятью).
И не смогут крупные корпорации. Пока топят за скорость выдачи результата. Получается: быстро, дешевле, некачественно.
| |
|
|
3.19, Аноним (19), 10:45, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
С опенсорсом в корпорациях проблема таже - корпроативно быстро, подешевле, некачественно.
Опенсорс бывает в корпорациях тоже. Огромное количество.
За пределами коропораций качество софта - лишь мера собственных талантов.
Хочешь быстро - как Убунту. Хочешь - медленно.
| |
|
4.107, OpenEcho (?), 16:20, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> Опенсорс бывает в корпорациях тоже.
Я бы даже сказал больше, - не было бы корпораций, то весь опенсорс так и застрял бы по большей части на ZX-spectrum, Микрошах и Специалистах. Все что более менее серьезное есть в опен соурсе бладодаря людям работающих за деньги полный рабочий день (или в обмен на блага, как у студентов)
Единичых фанатиков работающих за корочку хлеба можно "по пальцам перещитать"
| |
|
5.164, kusb (?), 20:17, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Очень спорно, многие проекты начинаются за идею и не финансируются или раньше не финансировались ими, по моему.
| |
|
6.178, OpenEcho (?), 21:32, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Очень спорно, многие проекты начинаются за идею и не финансируются или раньше
> не финансировались ими, по моему.
Да все понятно, что идеи рождают гении, но когда реализация идеи выходит за пределы свободного времени или того хуже запросов на развитие больше, чем способен потянуть простой смертный в одиночестве, тот тут уже нужен коллектив который хочет не только корочку хлеба но и жить не хуже других.
| |
|
5.166, www2 (??), 20:27, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +1 +/– |
BSD избавлялась от компонентов AT&T Unix на средства университетов. Студентам и учёным нужны проекты, на которых они могут пройти практику, защитить дипломный проект, докторскую диссертацию. Ну а результаты их работ должны становиться общественным достоянием, т.к. делаются на средства налогоплательщиков.
Нужно просто финансировать НИИ и университеты, раздавать гранты на разработку тем. Финансировать может государство, отраслевые объединения и т.п. IEEE, например, по такому принципу отраслевые стандарты ращрабатывает.
| |
|
6.298, OpenEcho (?), 14:16, 03/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> ZX-spectrum - был вполне коммерческий проект.))) Боюсь, что и его бы в
> опенсорсе не было бы
Я про софт, не про железку, голодные до програмирования тогда человеки настрогали массу хелоу ворлдов и шарили с другими, так сказать первые зачатки опенсырца. А про микро и специалист вообще, там по ходу был в основном один опенсорс
| |
|
|
|
|
2.26, Аноним (26), 11:01, 01/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Если не признавать что некачественно тогда прокатит. Как ты в проприетаре определишь что там качественно, а что нет. Работает и ладно.
| |
2.129, Аноним (129), 17:48, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> например, около 70% уязвимостей в программных продуктах Microsoft и Google вызваны небезопасной работой с памятью
Это потомубчто уних 70% програмистов индусы без профильного образования.
| |
|
3.168, topin89 (ok), 20:34, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Это ведь процент уязвимостей, а не 70% кода из них состоят. Просто есть такая закономерность -- 70% на память, 30% -- на всё остальное. Если аппаратная платформа поможет быстро их выявлять, то уязвимостей будет в 2-3 раза меньше. Уже хорошо
| |
|
|
|
2.21, Аноним (19), 10:47, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Скорее что наоборот: диды сделали вешь, которая не позволяет отжать пользу девайса юзверя под себя. И теперь все крутятся: как заклеить дыры в заборе в "яблоневый сад".
| |
|
3.203, Аноним (-), 02:43, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Диды иногда тоже жгут от души. Вон красавчики, дереференсят массив по входу функции. А там тип int. Ну вы поняли куда оно может там дереференснуть если caller сделает что-то странное. Проверок на это конечно же нет, так что вот вам вулн готовый, может половину памяти промотать вместо этого массива... и послать ее по коммуникационному протоколу, чтоб не скучать... :)
И тут скажите еще спасибо если я каталку пожелаю. А мог бы и катафалк за такое то. А зачем индекс signed делать вообще?! Кто-нибудь объяснит мне это вообще?
| |
|
4.233, RM (ok), 13:31, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
>А зачем индекс signed делать вообще?! Кто-нибудь объяснит мне это вообще?
Диды (K&R) говорили что просто int может быть по умолчанию или signed или unsigned. в зависимости от того, что эффективнее на конкретной платформе. И если нет разницы, то пиши int, будет быстрее, точно не медленнее.
А в эпоху дидов caller был локальным и контролируемым, не то что сейчас - аноним с интернетов
| |
|
|
6.352, RM (ok), 20:50, 04/04/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Я писал в контексте вопроса ">А зачем индекс signed делать вообще?! Кто-нибудь объяснит мне это вообще?"
И написал в том числе "И если нет разницы, то пиши int, будет быстрее, точно не медленнее."
Еще раз - "И если нет разницы" и про (K&R) C.
Т.е. если это индекс массива в аргументе функции и надо hint - так вот и пиши unsigned int, кто ж за руки держит.
И доку/маны тогда все же писали и читали, не то что сейчас "все самодокументировано", действительно замучаешься читать код либ.
А по большому счету - так я с твоими доводами согласен, в смысле что в нынешних условиях можно и получше.
Только когда K&R C придумывали, весь UNIX крутился на 64 KB и не жужжал.
| |
|
5.358, Аноним (358), 22:32, 04/01/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
>Диды (K&R) говорили что просто int может быть по умолчанию или signed или unsigned.
Мощное заявление, пруфов конечно же не будет.
| |
|
|
|
|
|
|
|
|
5.267, Аноним (265), 20:55, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
RISC-V с дополнительным набором команд и на основе этих команд новый компилятор C/C++ способен реализовать безопасную работу с памятью.
| |
|
|
|
|
|
2.40, Аноним (32), 11:56, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Месные эксперты с опеннет говорят там обязательно непустую учетку на гитхабе надо иметь к собеседованию. Хотя у меня всеего 1 раз спросили и сказали: "Ну нету дак нету, что теперь. Переходим к следующему этапу собеседования - hard skills".
| |
|
|
4.201, Аноним (-), 02:34, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Контрактором в Интел. Взяли.
Думается интелу учетка на гитхабе не так важна как фактические знания и скилы того кого они нанимают.
| |
|
5.248, Аноним (248), 16:22, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Так никому не нужна учетка на гитхабе. Нужен код, написанный кандидатом, чтобы сэкономить время, если кандидат заявляет о 10 годах коммерческого опыта, а по факту неделю назад был выложен код уровня студенческой лабы.
Гитлаб, битбакет или self hosted gogs тоже сойдёт, если доступен публично.
Нету - ну так и нету, собеседование все равно всё покажет.
| |
|
|
|
|
1.45, Аноним (45), 12:20, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +6 +/– |
Никуда от указателей не деться в низкоуровневом программировании. Взятие данных по адресу -- это базовая инструкция центрального процессора.
| |
|
2.304, Аноним (304), 18:00, 03/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Это не значит, что указатель надо хранить в "голом" виде без обертки и позволять кому угодно делать с ним что угодно.
| |
|
1.47, nc (ok), 12:25, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –2 +/– |
А что такого в том чтобы переписать существующий старый код? Ведь далеко не все ошибки связаны с переполнением буферов и неправильной работы с указателями. А переписывание кода заодно позволит его отрефакторить, да и просто посмотреть свежим взглядом.
| |
1.48, Бегущий по граблям (?), 12:26, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –1 +/– |
Вот это правильный подход, т.к. это решение можно считать устранением причины проблемы, а не латанием дыр и прикручивание костылей, чем в принципе является Руст и всякие новомодные уловки по работе с указателями в Плюсах.
| |
|
|
3.202, Аноним (-), 02:39, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> Rust делает проверки в compile-time,
Не все проверки можно в compile time сделать. Такая печалька. Скажем проверку переполнения математики в компилтайме как? А в рантайме это можно но на существующих процах надо команды делающие проверку флага добавлять - код сильно жирнее и медленнее получается, поэтому только в дебагбилды и годится.
> а здесь предлагается run-time решение, как я понял.
И это не такая уж плохая идея для некоторых случаев. Особенно если уж новую архитектуру развивать.
Если железка за тот же такт проверки прогонит и если что не так эксепшн пульнет, это ничего не стоит програмеру по скорости. А если там надо проверки лепить... эээ... ну оно и будет толко в дебаг билдах ловиться. Т.к. их юзают сильно меньше релиза в релизе всегда будет что-то вылезать.
| |
|
4.268, Аноним (265), 21:07, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> проверку переполнения математики
К каждому числовому типу прикручены куча типажей которые определяют поведение данных при возникновение этих ситуаций. Другое дело что логической ошибки это не исправляет. Если Вы не заложились на максимальный результат и помещаете, например, результат умножения двух операндов в ячейку того же размера то это Ваша тупость, а не вина компилятора. Но верифицировать корректность значения Раст позволяет в этом случае. Результат не выйдет за пределы и будет признак переполнения, например.
| |
|
|
|
1.56, Alexey Torgashin (?), 12:42, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –2 +/– |
Меня ребенок спросил - "А ты какие языки знаешь, знаешь СиПлюсПлюс? ОН СЛОЖНЫЙ!!!" Я говорю - "его не знаю, и он очень противный". Имея в виду что Паскаль не противный. На паскале можно писать гораздо БОЛЕЕ ЧИТАЕМЫЙ и безопасный код с проверками типов. Что и доказал мой проект CudaText.
| |
|
2.61, непох (?), 13:03, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +5 +/– |
Это ваш бдсм-проект "очень противный", а не C++, которого вы не знаете.
И не забывайте таблетки от чсв принимать, а то вот опять обострение.
| |
2.115, OpenEcho (?), 16:36, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
> Имея в виду что Паскаль не противный.
Точно, в QuickBasic тоже про проблемы с памятью не знали.
Кстати прикол, видел недавно правда работающую программу компильнутую на TurboBasic. На вопрос, "переписывать не собираетесь?", получил ответ - "Зачем? Все работает и нас все устраивает"
| |
2.288, Neon (??), 23:02, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Только вот на Паскале никто почему то особо не пишет.))) Он не противный, он тривиально неудобный. Для мазозистов
| |
2.289, Аноним (32), 00:22, 03/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Посмотрел я этот ваш кудатекс. И что-то там сплошной object Pascal, а не паскаль. Это ж вроде изобретение Борланда, а не то что Никлаус Вирт завещал.
| |
|
|
|
3.192, Аноним (32), 00:04, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
вроде оба работают с регистрами и инструкциями проца или компилятор работает как-то иначе... более ближе к железу?
| |
|
2.270, Аноним (265), 21:21, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Если компилятор и будет оптимизировать, то будет оптимизировать легально в поле инструкций. А если программист корректно внедрил бэкдор, то процессор ему не судья. ))
| |
|
1.68, freecoder (ok), 13:43, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
Вообще, сишники теперь должны полюбить Rust. Потому что он им даст больше свободы: пиши unsafe и разыменовывай нулевой указатель наздоровье. А тут - сам процессор твой код отвергнет.
| |
|
2.86, Аноним (221), 15:02, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Вообще, сишники теперь должны полюбить Rust.
наоборот, Rust не нужен вдвойне - достаточно пересобрать код специальным компилятором и использовать портированное ядро Linux/BSD и получить систему которая будет по настоящему безопасна во время работы, а не во время компиляции.
| |
|
3.91, непох (?), 15:21, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Портировать ядро Linux или BSD на эту chert-ову байду проще чем переписать на Rust, но не настолько проще чтобы выбор был однозначным.
| |
3.92, Аноним (221), 15:30, 01/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> но не настолько проще чтобы выбор был однозначным
по крайней мере arm morello разрабатывается с применением верификации всех компонентов системы, безопасность системы математически доказана. Нужен ли тебе такой уровень безопасности и сколько это будет стоить решает каждый сам исходя из средств и потребностей.
| |
3.271, Аноним (265), 21:29, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Скопилировать новым компилятором под (RISCV+расширенный набор команд). Обнаружить баги. Потом скопилировать старым под другой процессор? Это гарантирует отсутствие багов? Или это просто светлая дорога для нового RISCV в мир интернет-вещей?
| |
|
|
1.105, Аноним (101), 16:13, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [к модератору]
| +/– |
Судя по тому, что это делают 1) безопасники из майков 3) криворучки из подразделений Azure - эта херня не взлетит вообще никогда. Такую штуку могли теоретически запилить только в Майкрософт Ресерч, но им неинтересно под гнилую императивщину заплатки хлестать.
| |
|
2.204, Аноним (-), 02:46, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> Бьёт по рукам при распарсивании ввода goto ? =)
За него статический анализатор может по мозгам дать, если разрешить.
| |
|
|
2.185, maximnik0 (?), 21:50, 01/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
А в этом RISC-V >классические инструкции NX,
Я по быстрому просматривал документацию,этого там нет.(Pae вообще то это расширенная адресация памяти,к безопасности отношение не имеет).Но не все так однозначно -в памяти исполнение программы запрещено,все вычесление только через регистры.А для вычесленных результатов есть память с допуском на запись через процедуру сохранение регистров. Но если нужна защита есть хитрый атрибуты для атомарной операции. И ещё можно запретить чужой программе записывать в память.
| |
|
3.256, Аноним (256), 19:37, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
>> А в этом RISC-V классические инструкции NX,
> Я по быстрому просматривал документацию,этого там нет.
Значит RISC-V - _г_о_в_н_о_ проц.
> Но если нужна защита есть хитрый атрибуты для атомарной операции.
И как ты без NX будешь защиту памяти писать в OS? Надо реализовать: https://www.opennet.ru/openforum/vsluhforumID3/129886.html#253
Писали когда-то защиту и для 286 без NX, но с какими-то другими инструкциями, регистрами - тормоза, ад и израиль!
Переписывать ядра OS никто не будет. Защита памяти уже реализована постранично или посегментно. Если проц не умеет ни постранично ни посегментно, то такое _г_о_в_н_и_щ_е_ никому ненужно!
| |
|
4.275, Аноним (265), 21:49, 02/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +1 +/– |
Проц поддерживает тэгирование памяти (3 бита), а это покруче чем просто защита от исполнения (1 бит). Адреса хранятся в дескрипторе (128 бит), а не в указателе (64 бит). Дескриптор содержит указатель, размер и смещение. Работа с дескриптором защищена.
Постранично, посегментно это манагер памяти. Вы уверены что этого нет? Или просто хотелось?
| |
4.281, maximnik0 (?), 22:19, 02/03/2023 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +1 +/– |
> И как ты без NX будешь защиту памяти писать в OS? Надо
> реализовать: https://www.opennet.ru/openforum/vsluhforumID3/129886.html#253
Там есть 3 атрибута на память -Чтение,модификация и запись.Атомарные атрибуты-можно поставить барьеры - запретить другим процессам вмешиваться в работу памяти (или после завершение атомарной операции разрешить модификацию или чтение).А также можно выставить бит на запрет модификации -барьерных,атрибутных и других флагов.И проглядел более углубленно 128 битные регистры - у них зареверзировано поле расширенные атрибуты безопасности.И как бы это не то что мы читали новость.
| |
|
5.312, Аноним (312), 12:10, 04/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Там есть 3 атрибута на память -Чтение,модификация и запись.
А надо - исполнение (запрет исполнения).
Еще раз, решили, что для обеспечения корректной работы ядра OS с памятью необходимо и достаточно:
1. запрет изменения на исполняемую области памяти которая исполняемой не создавалась (W^X),
2. запрет изменения на запись памяти которая выделена как исполняемая (W^X),
3. запрет создания исполняемой памяти из анонимной памяти (W^X),
4. запрет изменения на запись памяти выделеной только для чтения (RELRO).
У читывая что память выделяет ядро OS которое работает на процессоре, процесор должен иметь такие инструкции, чтобы максимально упростить написание ядра OS без потери производительности. И при этом процессор не должен быть переусложнённым.
| |
|
6.315, maximnik0 (?), 22:06, 04/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>И при этом процессор не должен быть переусложнённым.
Что то из перечисленного как мне кажется лишнее.Не забывайте что у RISC-V нет извращений для работы с памятью. Т.е вычисления и другие операции минуя регистры запрещены.По крайне мере так я понял документацию.(Не забывайте что базовый набор команд совсем небольшой.) А насчет неисполняемого бита - еще для х86 было такое замечательное решение PaX .А насчет W^X с OpenBSD.В статье Криса Касперского "переполнение буфера на системах с неисполняемым стеком" говориться что эта защита обходиться множественным вызовом функции mmprotect.
| |
|
|
|
|
2.227, Аноним (224), 12:19, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
NX, PAE - это из мира x86. Причём, PAE - это для 32-битных CPU с целью расширения адресного пространства, а не для защиты от выходов за границы.
| |
|
|
4.278, Аноним (265), 22:10, 02/03/2023 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Из топика: "каждая операция чтения и записи в память авторизуется"
Вся работа с памятью через посредников-авторизатора. Куда Вы рыпнитесь? Еще раз - это круче просто бита запрета исполнения данных, который реализуется только в сегментной парадигме.
| |
|
5.324, Аноним (324), 13:25, 07/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Запрет исполнения есть не только в сегментной, но и в постраничной.
Вот надо организовать W^X.
Выделили пару страниц памяти для изменения, пометили W. Необходимо сразу пометить их запретом исполнения. В правильных процах для этого есть NX. А в вашем RISC-V есть три варианта для метки памяти: чтение, изменение (а зачем? ЭТО ТРОЯН!), запись. Метки запрета исполнения для страниц памяти в RISC-V нет!
| |
|
6.329, Аноним (-), 22:34, 07/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Ващет бывает и легитимный самомодифицируюшийся код. Скажем man "data 2 code transformation". Это довольно быстрый класс алгоритмов, когда под ситуацию на основе входных данных генерится наиболее оптимальный для вот именно этого входа код и дальше его выполнение ведет к наиболее быстрой генерации выходного результата из всех возможных.
А ну да, надо алгоритмистов нагреть. А потом когда у вас всякое крипто, сжатие и алгоримика ухнет в разы думать чего делать дальше, "зато безопасно". И никто такие процы чота не покупает, потому что на соседних, по тому же техпроцессу, бенчи втрое быстрей кажут.
| |
|
|
|
|
6.311, Аноним (311), 11:44, 04/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Fix:
Потому, что тот тест собирается без SSP. А вот на архитектурах MIPS, PPC даный тест должен пройти и без SSP, у них это делается аппаратно.
| |
|
|
|
7.322, Аноним (323), 15:02, 06/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Критерии корректности работы с памятью написал: https://www.opennet.ru/openforum/vsluhforumID3/129886.html#312
Linux+PAX, NetBSD - этим критериям отвечают.
FreeBSD, OpenBSD - этим критериям не отвечают. Тео повелся на JIT. Если архитектура (процессор с ядром OS) допускают использование JIT кода, то она небезопасна.
DragonFlyBSD, HardenedBSD -- надо смотреть, дай вывод paxtest с этих BSD-ей.
Выше привел пример базового аудита корректности OS. Сделай и выложи результаты аудита корректности работы с *BSD.
| |
|
|
|
|
|
|
1.142, Аноним (142), 19:03, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +1 +/– |
>даже на встраиваемых системах с 256 МБ ОЗУ
>на встраиваемых системах
>с 256 МБ ОЗУ
>даже
Эта корпорация полагает, что в каждой Ардуине 256 MiB RAM....
Неудивительно, что их решения стали прожорливыми...
| |
|
2.148, пох. (?), 19:21, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
эта корпорация логично полагает что эпоха пердулин прошла и их удел - мигать светодиодиком.
А эмбеднутые поделки на risc-v вполне могут и с полугигом сделать - песка полный пляж, бери совок и пеки чипы.
| |
|
1.143, Аноним (142), 19:05, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
>Никакой код извне не может передать управление коду в компартменте и получить доступ к объектам, за исключением обращения к специально определённым точкам входа и использования указателей на объекты, явно переданные при вызове другого компартмента. Для кода и глобальных объектов в компартменте гарантируется целостность и конфиденциальность.
Лишь бы слово "анклав" не использовать, а то юристы Intel обидятся...
| |
|
|
3.187, maximnik0 (?), 22:08, 01/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>А PAE инструкции
О Господи,в Интел для этого специальные инструкции придумали или вы что то напутали ? Рае вообще-то расширение памяти для 32 битного режима,реализовано до фига где в других архетектурах процессоров.NX -неисполняемый,всего лиш 1 бит ,означает атрибут неисполнение участка памяти.Да,он использует Рае т.к в стандартной адресации этот бит был не использован и предусмотрен. Этот бит не панацея, его в некоторых случаях можно обойти без срабатывания исключения,хорошо хоть 16 бит код запретили,там из за особенности адресации элементарно этот бит обходился.
| |
|
4.253, Аноним (253), 19:18, 02/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Этот бит не панацея, его в некоторых случаях можно обойти без срабатывания исключения
Все зависит от реализации защиты памяти ядром OS.
Допустим защита пямяти не такая как в M$, OpenBSD, ... которая разрешает JIT код запускать, а правельная как в Linux+PAX, NetBSD, ... :
Строжайше запрещает:
1. changing the executable status of memory pages that were not originally created as executable,
2. making read-only executable pages writable again,
3. creating executable pages from anonymous memory,
4. making read-only-after-relocations (RELRO) data pages writable again.
как будешь обходить?
| |
|
|
2.191, maximnik0 (?), 22:16, 01/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
>Лишь бы слово "анклав" не использовать, а то юристы Intel обидятся...
Юристам Интел в этом случае лучше помалкивать.Есть минимум 2 более ранних реализаций,просто срок действия патентов истек или истекает + использования кросслецензирование.Я имею в виду Барроуз и ИБМ (майфрэймы).
| |
|
|
2.303, подрывник (?), 17:45, 03/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Жил-был дядя Боб,
Толоконный лоб.
Пошел Боб по базару
Посмотреть кой-какого товару.
Навстречу ему программист Балда
Идет, сам не зная куда.
«Что, Боб, так рано поднялся?
Чего ты взыскался?»
Боб ему в ответ: «Нужен мне умелец:
фронтендер, бекендер и за сервером сиделец.
А где найти мне такого
Работничка не слишком дорогого?»
Балда говорит: «Буду служить тебе славно,
Усердно и очень исправно,
В год за три щелчка тебе по лбу,
Есть же мне давай варёную полбу».
| |
|
1.189, Sw00p aka Jerom (?), 22:14, 01/03/2023 [ответить] [﹢﹢﹢] [ · · · ] [↑] [к модератору]
| +1 +/– |
>а уже существующие проекты на С/C++ переработать достаточно проблематично
какие нафиг существующие IoT проекты, где они все? Их так много (в особенности легаси проекты)?
| |
|
|
3.347, Аноним (-), 17:30, 13/03/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> тем более в IoT :)
Фирма ARM нулевые указатели не любит. Поэтому единственным достижением станет брякнувшийся в Hard Fault проц. Это довольно сложно не заметить, а эксплойтировать что-то в вот именно этом состоянии уже врядли получится, это чаще всего считается за unrecoverable и лечится ребутом.
| |
|
2.252, ЗанудаВФорточке (?), 19:09, 02/03/2023 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> приводящих к таким проблемам, как переполнение буфера, обращение к уже освобождённой памяти, разыменование указателей
Дополнение-разьяснение короткого поста сверху: Проблема не в разыменовании указателей, а в разыменовании Неактуальных указателей.
Пусть я зануда, но поправить статью можно. ))
| |
|
|