Sunday, January 7th, 2018 01:14 pm
Кстати, а что думают функциональщики про spectre и meltdown? По-моему, это самое суровое и жизненное обьяснение отличия pure functional от кода с side effects, которое я встречал до сих пор. Правда, непонятно, какая в этом практическая польза.
Page 1 of 3 << [1] [2] [3] >>
[personal profile] gb0
Sunday, January 7th, 2018 09:22 pm (UTC)
А где можно посмотреть на массовую машинерию для исполнения pure functional code, чтобы она не была оберткой вокруг фон-неймановской ЭВМ с регистрами, кэшами, общим ОЗУ для кода и данных, и тд?
Sunday, January 7th, 2018 09:29 pm (UTC)
Так это же будет гол в свои ворота! Можно написать самую pure functional лямбду, а компилятор все равно внутрь вставит ту же самую неонку, с оптимизациями и спекуляциями.
Или я не уловила тонкий сарказм?
[personal profile] gb0
Sunday, January 7th, 2018 09:30 pm (UTC)
Мож кто расскажет, например, что для начала нужно отказаться от массового тииражирования фон-неймановских ЭВМ. Код отдельно, данные отдельно, и это решит 99% всех проблем с локальной безопасностью. Вобщем, даешь переход на ADSP-21992, а хаскель мы туда потом подтянем.
Sunday, January 7th, 2018 10:09 pm (UTC)
Мне кажется, это скорее про протечку абстракций.
Sunday, January 7th, 2018 10:10 pm (UTC)
ФП имеет смысл на определенных уровнях. Функциональных машин нет; приходится моделировать на имеющемся железе. И на определенном уровне архитектуры (типа "вот вам микросервисы") ФП тоже не вписывается (ну или пока что).
Sunday, January 7th, 2018 11:05 pm (UTC)
Meltdown/spectre не зависят от языка/компилятора/ОС.
Они используют утечку, происходящую в процессоре на микропрограммном уровне.
[personal profile] gb0
Sunday, January 7th, 2018 11:42 pm (UTC)
От ОС немного зависит – какой-нить DOS или Cisco IOS Classic и ломать не надо (всем все можно, изоляции ноль), а в ОС с ломаемой изоляцией – изоляцию между процессами и ядром можно усилить (патчи уже вышли).
Edited 2018-01-07 11:43 pm (UTC)
Monday, January 8th, 2018 01:50 am (UTC)
Программа, написанная на любом языке программирования (функциональном или императивным), в итоге компилируется или интерпретируется в инструкции, которые выполняются тем же самым процессором. Поскольку уязвимость в процессоре, то и эксплуатировать её можно из любого языка.

По крайней мере теоретически. Возможно, что на практике это не одинаково легко (может таймеров нужного разрешения нет или ещё какие ограничения).
Monday, January 8th, 2018 08:45 am (UTC)
Против Rowhammer мне попадалось уже N+1 приёмов, и каждый раз находят что-то новое. Но вообще утечка абстракций тут на уровне самого процессорного кеша как явления.
Monday, January 8th, 2018 02:47 pm (UTC)
Да было бы любопытно, конечно.
Monday, January 8th, 2018 05:08 pm (UTC)
Думаем, что они никакого отношения к не имеет. По крайней мере в варианте недо-языков типа хаскеля.
А данные уязвимости отличная иллюстрация как раз того куда приводит борьба за перформанс сингл треда в 2018 году. Когда уже даже последнему дебилу должно быть понятно, что x86 - это дорога в никуда.
Monday, January 8th, 2018 06:05 pm (UTC)
GPU - это современный процессор. Массовая мультитредность, как надо, чере файл регистров, охуеный перформанс, прямой доступ в память без кэшей, возможность управления кэшами и т.д.
jsn: (Default)
[personal profile] jsn
Monday, January 8th, 2018 07:18 pm (UTC)
Ну не, GPU -- это скучная дорога куда. Весёлая дорога куда -- это Mills, но, к сожалению, нет никаких оснований считать, что его в обозримом времени таки построят.
jsn: (Default)
[personal profile] jsn
Monday, January 8th, 2018 07:21 pm (UTC)
Мне всё-таки непонятно, что имеется в виду в этом посте. На таком уровне, на котором контроль сайд-эффектов в случае meltdown/spectre поможет, он никакой функциональности не требует -- достаточно в обычном компиляторе (например, Си) убивать кодогенератором speculative (фенсы ставить, branch predictor обманывать, и т.д.). Понятно так же, почему это отвратительное решение.
Monday, January 8th, 2018 09:22 pm (UTC)
В этом смысле гипервизор (например, VMware) оказывается очень полезным.
Monday, January 8th, 2018 09:26 pm (UTC)
Да все умеют, просто тормоза. Любое секьюрити для цпу - это тормоза в сингл треде. Ибо задача: скрыть лейтенси памяти, которая (относительно лейтенси АЛУ) выросла в 200(!) раз, за последние 30 лет.
Ессно в современном ЦПУ столько костылей из-за этого, что чисто физически его хрен засекьюришь.
Page 1 of 3 << [1] [2] [3] >>