February 2026

S M T W T F S
1234567
891011121314
15161718192021
22232425262728

Style Credit

Expand Cut Tags

No cut tags
Sunday, January 7th, 2018 01:14 pm
Кстати, а что думают функциональщики про spectre и meltdown? По-моему, это самое суровое и жизненное обьяснение отличия pure functional от кода с side effects, которое я встречал до сих пор. Правда, непонятно, какая в этом практическая польза.
[personal profile] gb0
Sunday, January 7th, 2018 09:22 pm (UTC)
А где можно посмотреть на массовую машинерию для исполнения pure functional code, чтобы она не была оберткой вокруг фон-неймановской ЭВМ с регистрами, кэшами, общим ОЗУ для кода и данных, и тд?
[personal profile] gb0
Sunday, January 7th, 2018 09:30 pm (UTC)
Мож кто расскажет, например, что для начала нужно отказаться от массового тииражирования фон-неймановских ЭВМ. Код отдельно, данные отдельно, и это решит 99% всех проблем с локальной безопасностью. Вобщем, даешь переход на ADSP-21992, а хаскель мы туда потом подтянем.

(no subject)

[personal profile] e2pii1 - 2018-01-09 09:39 am (UTC) - Expand

(no subject)

[personal profile] gb0 - 2018-01-09 02:17 pm (UTC) - Expand

(no subject)

[personal profile] e2pii1 - 2018-01-09 02:58 pm (UTC) - Expand

(no subject)

[personal profile] gb0 - 2018-01-09 03:37 pm (UTC) - Expand

(no subject)

[personal profile] e2pii1 - 2018-01-09 04:05 pm (UTC) - Expand

(no subject)

[personal profile] gb0 - 2018-01-09 04:20 pm (UTC) - Expand

(no subject)

[personal profile] e2pii1 - 2018-01-10 08:38 am (UTC) - Expand
Sunday, January 7th, 2018 09:29 pm (UTC)
Так это же будет гол в свои ворота! Можно написать самую pure functional лямбду, а компилятор все равно внутрь вставит ту же самую неонку, с оптимизациями и спекуляциями.
Или я не уловила тонкий сарказм?
Sunday, January 7th, 2018 11:05 pm (UTC)
Meltdown/spectre не зависят от языка/компилятора/ОС.
Они используют утечку, происходящую в процессоре на микропрограммном уровне.

(no subject)

[personal profile] gb0 - 2018-01-07 11:42 pm (UTC) - Expand
Tuesday, January 9th, 2018 12:47 pm (UTC)
Последовательно революция дойдет до самого железа, и упрется в то, что железо никак не запихивается в математику функционального программирования.
Я в физике ничего не понимаю, но восстановление дисков же, к примеру, местами основано на том, что нулевой бит помнит, что он когда-то был единицей и т.п.?
Sunday, January 7th, 2018 10:09 pm (UTC)
Мне кажется, это скорее про протечку абстракций.
Monday, January 8th, 2018 08:45 am (UTC)
Против Rowhammer мне попадалось уже N+1 приёмов, и каждый раз находят что-то новое. Но вообще утечка абстракций тут на уровне самого процессорного кеша как явления.
Sunday, January 7th, 2018 10:10 pm (UTC)
ФП имеет смысл на определенных уровнях. Функциональных машин нет; приходится моделировать на имеющемся железе. И на определенном уровне архитектуры (типа "вот вам микросервисы") ФП тоже не вписывается (ну или пока что).
Monday, January 8th, 2018 02:47 pm (UTC)
Да было бы любопытно, конечно.
[personal profile] gb0
Tuesday, January 9th, 2018 02:19 pm (UTC)
java-машины вроде были. Осталось туда скалу портировать или jlisp какой :)
Monday, January 8th, 2018 01:50 am (UTC)
Программа, написанная на любом языке программирования (функциональном или императивным), в итоге компилируется или интерпретируется в инструкции, которые выполняются тем же самым процессором. Поскольку уязвимость в процессоре, то и эксплуатировать её можно из любого языка.

По крайней мере теоретически. Возможно, что на практике это не одинаково легко (может таймеров нужного разрешения нет или ещё какие ограничения).
Monday, January 8th, 2018 05:08 pm (UTC)
Думаем, что они никакого отношения к не имеет. По крайней мере в варианте недо-языков типа хаскеля.
А данные уязвимости отличная иллюстрация как раз того куда приводит борьба за перформанс сингл треда в 2018 году. Когда уже даже последнему дебилу должно быть понятно, что x86 - это дорога в никуда.
Monday, January 8th, 2018 06:05 pm (UTC)
GPU - это современный процессор. Массовая мультитредность, как надо, чере файл регистров, охуеный перформанс, прямой доступ в память без кэшей, возможность управления кэшами и т.д.

(no subject)

[personal profile] jsn - 2018-01-08 07:18 pm (UTC) - Expand

(no subject)

[personal profile] e2pii1 - 2018-01-09 09:55 am (UTC) - Expand

(no subject)

[personal profile] e2pii1 - 2018-01-09 01:49 pm (UTC) - Expand

(no subject)

[personal profile] e2pii1 - 2018-01-10 06:41 am (UTC) - Expand

(no subject)

[personal profile] e2pii1 - 2018-01-10 09:29 am (UTC) - Expand

(no subject)

[personal profile] gb0 - 2018-01-09 02:21 pm (UTC) - Expand
jsn: (Default)
[personal profile] jsn
Monday, January 8th, 2018 07:21 pm (UTC)
Мне всё-таки непонятно, что имеется в виду в этом посте. На таком уровне, на котором контроль сайд-эффектов в случае meltdown/spectre поможет, он никакой функциональности не требует -- достаточно в обычном компиляторе (например, Си) убивать кодогенератором speculative (фенсы ставить, branch predictor обманывать, и т.д.). Понятно так же, почему это отвратительное решение.
jsn: (Default)
[personal profile] jsn
Thursday, January 11th, 2018 11:22 pm (UTC)
Ну вы тут повторяете то, что сказано в посте -- мне от этого понятнее не стало. Мне стало немного понятнее после этого: http://wingolog.org/archives/2018/01/11/spectre-and-the-end-of-langsec (характерно, что в https://news.ycombinator.com/item?id=16124297 -- обсуждении на HN этого поста -- удивительно мало комментирующих, которые вообще понимают, о чём речь, и имеют что сказать по этому вопросу).

В целом, если с этой стороны заходить, то вопрос разваливается на две составляющие.

Во-первых, проблема с эффектами, через которые работает Meltdown et ol, в том, что они толком неспецифицированы. То есть буквально, вендоры процессоров про то, как это на самом деле работает, просто не рассказывают. Ресёрчеры, обнаружившие Meltdown et ol, а также придумывающие к ним mitigation, это всё своими руками мерили и выясняли бесчисленными экспериментами (и до сих пор, как они пишут, выяснили не всё даже из важного). То есть, даже если бы у нас были самые идеальные средства для идеальной работы с этими эффектами, FP or no FP, это бы не помогло, потому что эффекты эти создателям, например, компиляторов просто неизвестны и, в нынешней ситуации, не могут быть известны до конца.

Во-вторых, если мы таки в результате этой истории окажемся в прекрасном новом мире, в котором эти эффекты будут эксплицитно описываться в спеках железа и учитываться при проектировании этого железа -- тогда, в свою очередь, их учёт и контроль окажется совершенно не rocket science (ну со spectre дела чуть похуже могут быть, хотя и это не обязательно). Тогда соответствующие барьеры между security domain-ами (как между процессными контекстами, так и, в идеале, внутри одного процессного контекста) можно будет вставлять более-менее любыми средствами, хоть библиотечными вызовами в бейсике, хоть возвышенными типами в FP.

(no subject)

[personal profile] jsn - 2018-01-11 11:52 pm (UTC) - Expand
Monday, January 8th, 2018 09:22 pm (UTC)
В этом смысле гипервизор (например, VMware) оказывается очень полезным.
Monday, January 8th, 2018 09:28 pm (UTC)
Спектр ессно работает и для гипервизоров. А почему нет?
Monday, January 8th, 2018 09:33 pm (UTC)
Ну и что проще исправить? Виртуальный CPU или физический кусок кремния.

(no subject)

[personal profile] cjelli - 2018-01-08 11:52 pm (UTC) - Expand

(no subject)

[personal profile] cjelli - 2018-01-09 12:32 am (UTC) - Expand

(no subject)

[personal profile] cjelli - 2018-01-09 12:31 am (UTC) - Expand

(no subject)

[personal profile] unbe - 2018-01-11 10:59 pm (UTC) - Expand
Monday, January 8th, 2018 09:43 pm (UTC)
Немного подумал, таки чисто функциональные процессы без сайд эффектов спасли бы отца русской демократии, но никто не сделал такого (даже наш zerovm был недостаточно упорот для этого).