Re[18]: Альтернативные ОС
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.06.08 19:34
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Компиляция происходит при инсталляции приложения. И верификация тоже.


Эта подробность на что-нибудь влияет?

Pzz>>Однако, не из чего не следует, что качество кода при использовании этой технологии лучше, чем у JIT.


НС>Хуже или лучше, это второй вопрос. Ты тут нам рассказывал про интерпретатор.


Мне тут рассказывают, что аппаратная защита не нужна. Аппаратная защита, как и все аппаратное — это способ чего-нибудь ускорить по сравнению с чисто софтверной реализацией. Так можно договориться и до того, что графические акселераторы не нужны, и рисовать все по точкам.

Поэтому при обсуждении вопроса о нужности или ненужности чего-нибудь аппаратного вполне уместен вопрос о производительности.
Re[20]: Альтернативные ОС
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.06.08 19:36
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Вот в том то и проблема, что ты не понимаешь. Текущий JIT уже, к примеру, умеет выкидывать проверки границ массива в цикле.


Которые евонный же компилятор туда и вставил. Хотел бы я посмотреть, как он выкинет мой инвариант, а не свой собственный.

Вообще, я в этом вопросе вполне верю мелкософту, который в FAQ про DirectShow прямо утверждает, что DirectShow не будет managed по причине производительности. Ссылку я уже приводил, лень повторяться, но гугль никто не отменял.
Re[22]: Альтернативные ОС
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.06.08 19:56
Оценка: -1 :)
Здравствуйте, Cyberax, Вы писали:

Pzz>>Но как, видя байткод, а не синтаксическое дерево, сделать data flow analysis или вынос инварианта из цикла, я ума не приложу.

C>А какие проблемы? Строим дерево и делаем анализ. Байткод для этого вполне адекватен.

Байткод это ассемблер некоторой абстрактной машины. К тому времени, когда программа стала байткодом, много существенной информации об исходном коде уже утеряно.
Re[21]: Альтернативные ОС
От: Ночной Смотрящий Россия  
Дата: 26.06.08 20:03
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Вообще, я в этом вопросе вполне верю мелкософту


Нет никакого мелкософта, есть куча разных команд, каждая из которых в определенных пределах имеет возможность маневра. И я не одну такую команду знаю. Ровно как знаю и другие команды, например HPC team, которые считают не так. Бывает даже совсем забавно, когда команду, работавшую над первым Лонгхорном, заменяют на толпу индусов и менеджеров, почти все наработки выкидывают, Олчина уволняют, и в итоге выпускают совсем другой Лонгхорн. Делать из этого какие то технологические выводы, имхо, не стоит.
&
Re[19]: Альтернативные ОС
От: Ночной Смотрящий Россия  
Дата: 26.06.08 20:03
Оценка:
Здравствуйте, Pzz, Вы писали:

НС>>Компиляция происходит при инсталляции приложения. И верификация тоже.


Pzz>Эта подробность на что-нибудь влияет?


Эта подробность отвечает на твой вопрос. как обойтись без подписи всех экзешников.

НС>>Хуже или лучше, это второй вопрос. Ты тут нам рассказывал про интерпретатор.


Pzz>Мне тут рассказывают, что аппаратная защита не нужна.


Верно.

Pzz> Аппаратная защита, как и все аппаратное — это способ чего-нибудь ускорить по сравнению с чисто софтверной реализацией.


Софтверная защита в исполнении Сингулярити не заменяет, а устраняет большую часть защиты. Вот и весь фокус.

Pzz> Так можно договориться и до того, что графические акселераторы не нужны, и рисовать все по точкам.


Аналогии не годятся в качестве доказательства.
&
Re[17]: Альтернативные ОС
От: WolfHound  
Дата: 26.06.08 20:03
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну да. Вы утверждаете, что в природе существует некоторое чудо.

Мы с этими "чудесами" регулярно имеем дело.

Pzz>Вполне справедливо, что на вас лежит бремя доказательства. По дефолту чудес не бывает

Если не веришь возьми тот же C# и попробуй проехаться по памяти без использования unsafe и нативного кода.
А мы похихикаем.

Таже фигня с еще очень большим колличеством языков.

Ибо создать правила написания доказательств (систему типов) и их проверяльщик для столь тривиальных гарантий как отсутствие порчи памяти задача тривиальная.

Pzz>За счет чего осуществляется гарантия того, что программа не вылезет из своей песочницы?

При правильной системе типов по памяти она проехаться не сможет.
Как следствие получить доступ ни к чему кроме того что ей дала ОСь не сможет.
А ОСь ее никуда кроме песочници не пустит.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[23]: Альтернативные ОС
От: Cyberax Марс  
Дата: 26.06.08 20:03
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Байткод это ассемблер некоторой абстрактной машины. К тому времени, когда программа стала байткодом, много существенной информации об исходном коде уже утеряно.

Неправда. Байт-код .NET/Java восстанавливается до исходника почти на 100%. Код LLVM так не всегда позволяет делать, но для анализа в нём информации вполне достаточно.
Sapienti sat!
Re[23]: Альтернативные ОС
От: Ночной Смотрящий Россия  
Дата: 26.06.08 20:05
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Байткод это ассемблер некоторой абстрактной машины. К тому времени, когда программа стала байткодом, много существенной информации об исходном коде уже утеряно.


Рефлектор доказывает, что никакая существенная для control flow анализа информация при компиляции в IL не теряется.
&
Re[23]: Альтернативные ОС
От: WolfHound  
Дата: 26.06.08 20:07
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Байткод это ассемблер некоторой абстрактной машины. К тому времени, когда программа стала байткодом, много существенной информации об исходном коде уже утеряно.

Скажи это рефлектору.
А если байткод можно декомпилировать в человекочитаемый код... то это твой утверждение как бы это по мягче сказать...
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[20]: Альтернативные ОС
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.06.08 20:08
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Софтверная защита в исполнении Сингулярити не заменяет, а устраняет большую часть защиты. Вот и весь фокус.


OK, пойдем по 25-му кругу.

За счет чего конкретно сингулярити обеспечивает софтверную защиту, делая это надежно и эффективно?

НС>Аналогии не годятся в качестве доказательства.


Повторения одной и той же мантры тоже.
Re[21]: Альтернативные ОС
От: WolfHound  
Дата: 26.06.08 20:11
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>За счет чего конкретно сингулярити обеспечивает софтверную защиту, делая это надежно и эффективно?

За счет системы типов.
Указание типов суть доказательство того что нет проездов по памяти.
Проверка того что типы совпадают тривиальна.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[18]: Альтернативные ОС
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.06.08 20:13
Оценка:
Здравствуйте, WolfHound, Вы писали:

Pzz>>Вполне справедливо, что на вас лежит бремя доказательства. По дефолту чудес не бывает

WH>Если не веришь возьми тот же C# и попробуй проехаться по памяти без использования unsafe и нативного кода.
WH>А мы похихикаем.

C# делает кучу проверок в рантайме. Что дороже, чем использовать аппаратную защиту памяти.

Pzz>>За счет чего осуществляется гарантия того, что программа не вылезет из своей песочницы?

WH>При правильной системе типов по памяти она проехаться не сможет.

У оси нет гарантии, что при получении байткода использовалась правильная система типов.

WH>Как следствие получить доступ ни к чему кроме того что ей дала ОСь не сможет.

WH>А ОСь ее никуда кроме песочници не пустит.

Это при условии, что ось в состоянии защитить свою собственную память.
Re[19]: Альтернативные ОС
От: Cyberax Марс  
Дата: 26.06.08 20:15
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>У оси нет гарантии, что при получении байткода использовалась правильная система типов.

Есть. Оно доказывается с помощью процедуры, называемой "верификация".

Pzz>Это при условии, что ось в состоянии защитить свою собственную память.

Способна, способна. Можешь мне поверить — я далеко не сторонник Сингулярности.
Sapienti sat!
Re[19]: Альтернативные ОС
От: WolfHound  
Дата: 26.06.08 20:21
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>C# делает кучу проверок в рантайме.

1)Не такую уж кучу.
2)Большинство из них можно устранить немного более умным оптимизатором.
Из кода вида:
for (int i = 0; i < arr.Length; ++i)
{
    ...arr[i]...
}

Уже научились устранять проверки.

Pzz>Что дороже, чем использовать аппаратную защиту памяти.

Даже учитывая что еще очень много чего можно устранить это не правда.

Pzz>У оси нет гарантии, что при получении байткода использовалась правильная система типов.

Есть.
Система типов прошита в байткод.

Pzz>Это при условии, что ось в состоянии защитить свою собственную память.

Как нефиг делать.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[22]: Альтернативные ОС
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.06.08 20:31
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>За счет системы типов.

WH>Указание типов суть доказательство того что нет проездов по памяти.
WH>Проверка того что типы совпадают тривиальна.

Статически или в рантайме?
Re[20]: Альтернативные ОС
От: Cyberax Марс  
Дата: 26.06.08 20:32
Оценка:
Здравствуйте, WolfHound, Вы писали:

Pzz>>Что дороже, чем использовать аппаратную защиту памяти.

WH>Даже учитывая что еще очень много чего можно устранить это не правда.
И это тоже неправда. Я уже показывал способы получить очень дешовое переключение контекстов с аппаратной защитой, если её слегка усовершенствовать.
Sapienti sat!
Re[23]: Альтернативные ОС
От: WolfHound  
Дата: 26.06.08 20:34
Оценка:
Здравствуйте, Pzz, Вы писали:

WH>>За счет системы типов.

WH>>Указание типов суть доказательство того что нет проездов по памяти.
WH>>Проверка того что типы совпадают тривиальна.
Pzz>Статически или в рантайме?
Статически.
В рантайме только явные привидения от базы к потомку.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[21]: Альтернативные ОС
От: WolfHound  
Дата: 26.06.08 20:38
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>И это тоже неправда. Я уже показывал способы получить очень дешовое переключение контекстов с аппаратной защитой, если её слегка усовершенствовать.

Она всеравно не позволяет получить такую же гранулярность защиты что и софтварная защита.
Ну не сможешь ты аппаратно контролировать кто что куда пишет и читает с точностью до бита и проверками типов.
К тому же не факт что тот способ будет гарантированно дешевле.

ЗЫ Кстати я придумал систему типов в которой можно доказать отсутствие рейскондишенев имея расшаренные изменяемые данные между потоками.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[24]: Альтернативные ОС
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.06.08 20:42
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Статически.

WH>В рантайме только явные привидения от базы к потомку.

Я тогда не очень понимаю. Если я могу использовать массивы и могу вычислять индекс в массиве, каким образом статически можно доказать, что я не выскочу за пределы массива?
Re[22]: Альтернативные ОС
От: Cyberax Марс  
Дата: 26.06.08 20:48
Оценка:
Здравствуйте, WolfHound, Вы писали:

C>>И это тоже неправда. Я уже показывал способы получить очень дешовое переключение контекстов с аппаратной защитой, если её слегка усовершенствовать.

WH>Она всеравно не позволяет получить такую же гранулярность защиты что и софтварная защита.
WH>Ну не сможешь ты аппаратно контролировать кто что куда пишет и читает с точностью до бита и проверками типов.
Да. Но другой вопрос: а нужно ли нам это? Практически оказалось, что гранулярности с точностью до процесса нам вполне достаточно. В конце концов, в самом .NET тоже мало кто использует CAS внутри прикладного кода для чего-то своего — обычно просто есть разделение на "системный" и прикладной код.

WH>К тому же не факт что тот способ будет гарантированно дешевле.

Ну так он уже на ARMах реализован.

WH>ЗЫ Кстати я придумал систему типов в которой можно доказать отсутствие рейскондишенев имея расшаренные изменяемые данные между потоками.

С какой строгостью? Тупую проверку, что они все обязательно будут под локом не считаем.
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.