Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет dibr ([info]dibr)
@ 2009-09-06 13:44:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Фантом
     Завалишин выступает на CC'09 про Фантом. Два часа видео, но в-общем довольно интересно.

      - "copy-on-write помогает при создании снапшота" - ага, я как-то так и думал. Собственно, а куда тут от CoW денешься?

      - Вспомнил (Завалишин, не я) про i432, в котором "нет адресной арифметики за пределами объекта", т.е. технически невозможно создать указатель на "чужой" объект, можно только получить откуда-то готовый - тогда ты автоматически получаешь "доступ" - возможность с ним работать. Соответственно, сегодняшний подход - при котором я могу (случайно или намеренно) создать "невалидный" указатель, но при попытке использования получу по башке экспешном - выглядит анахронизмом. При том что i432 - это, на минуточку, 1981 год! Чисто для ориентировки, самая первая весрия windows (1.0, "графическая оболочка для дос") вышла в 1985 году, OS/2 1.0 (текстовая, без графики!) - в 1987 году. И что мы имеем сейчас?...

      - Фразу "Завалишин был пьян и страшен" гугель находит но очень мало :-)


(Добавить комментарий)


[info]ilya_314@lj
2009-09-06 11:11 (ссылка)
Мне кажется сейчас вопрос о появлении новой архитектуре не актуален, т.к. совместимость сейчас важнейшее требование. Последняя крупная попытка - это был itanium. Программная реализация безопасного кода вполне неплохо себя зарекомендовала.

Кстати помнится делались какие-то java процессоры, даже может сейчас где-нибудь в девайсах используются.

(Ответить) (Ветвь дискуссии)


[info]dibr@lj
2009-09-06 11:31 (ссылка)
Требования на совместимость сейчас как раз падают. Линукс портируют практически куда угодно, ява-машина есть много подо что... другое дело, что "виндоуз экс-пи" и программы под него предполагают вполне конкретную архитектуру, и с этой иглы массовому потребителю соскочить тяжело. Но не факт что невозможно, и уж тем более не факт что не стоит и пытаться.

Хотя некий порог преодолеть придётся - чтобы дивайс с новой архитектурой "пошёл в массы" надо чтобы он был либо быстрее, либо дешевле. Либо давал какое-то уникальное преимущество...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2009-09-06 12:00 (ссылка)
Да, тут важно именно уникальное приемущество. Красивая архитектура - это потенциальное приемущество. И кстати при всей разнице архитектур power, intel, arm, sun их все-же объединяет общий подход к построению кода, отличия не принципиальные. А здесь придется еще и компиляторы подгонять под это дело (я про некий аналог i432), да и не очень понятно что делать с кодом написанным например на C, он может попросту не укладываться в такую архитектуру.

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

Альтернатива конечно возможна даже на рынке PC (тот-же power долгое время использовался apple), но тогда должна быть быстрая выгода от новой архитектуры. То, что касается более безопасного программирования скрыто от пользователя и непосредтвенно не видно. Один из примеров несколько другого плана - PlayStation - на PS2 и PS3 ругаются разработчики из-за сложностей эффективного программирования и неудобных средств разработки, но это не волнует производителей - раскорячатся и напишут.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2009-09-06 12:19 (ссылка)
Преимущество - архитектура заточена под объектные языки, а это значит что есть шанс получить бОльшую скорость при использовании таких языков. Как я понимаю, всякие там си/с++ идут лесом, но, к примеру, ява и с# должны под такую архитектуру пойти "как родные".
Отказаться от сишного кода сейчас уже реально: приложения переписываются быстро (посмотри хотя бы как быстро обрастают приложениями новые платформы), так что если поставить задачу, то основное появится быстро, а неосновное потом допишут по потребности.

> Альтернативы возможны там где есть параметры по которым удается конкурировать

Удобство/скорость разработки ПО (кстати, dz это позиционирует как преимущество фантома). Пользователь это косвенно, но ощущает - например, когда в маках была встроенная CMS, а в винде не было, фотошоп сначала выходил для мака, а потом, как-нибудь и когда-нибудь - для писюков.
С другой стороны - если использовать уже существующие языки - разницы не будет (кроме, возможно, скорости работы), если придумать свой - будет проблема убедить разработчиков что оно им нужно.

> Мне кажется более реалистичен другой вариант - когда новая архитектура вплетается в существующую, как случилось с x64 или например с дополнительными командами SSE.

В принципе да - можно и так. Но старый код придётся запускать "почти что в пробирке" - т.е. вся система работает в "новом" режиме, а "старый" режим ограничен своей областью памяти и наружу не допускается. Но вариант, согласен.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2009-09-06 12:45 (ссылка)
>Как я понимаю, всякие там си/с++ идут лесом

Просто для информации - есть такая штука c++/cli, это ms изобрел для стыковки managed кода и c++. Теперь это стандарт. Там можно миксовать native и managed код или писать все на managed, тогда вместо указателей будут ссылки (^ вместо *), и garbage collector.

>Отказаться от сишного кода сейчас уже реально: приложения переписываются быстро

Вобщем да, но такой путь для каких-нибудь iphone больше подходит, где количество софта для старта не очень большое требуется. А вообще коммерческого C-шного кода дофига, провались он пропадом.

(Ответить) (Уровень выше)


[info]ilya_314@lj
2009-09-06 11:14 (ссылка)
Кстати вспомнил тут насчет Singularity (если ты не в курсе, то это экспериментальная ос microsoft в которой и система и софт - по сути управляемый код и не используется аппаратная реализация отделения привелегированой части системы - все в одном кольце работает.

Если весь код безопасный, то можно построить ядро которое невозможно подломать и тогда не потребуются аппаратные привелегии.

(Ответить) (Ветвь дискуссии)


[info]dibr@lj
2009-09-06 11:39 (ссылка)
Тут вопрос в реализации. И в "ломкости" этой реализации.

Можно написать компилятор, который "не даёт допускать ошибки" - в котором не предусмотрено совершения действий, которые могли бы "подломать" ядро (собственно, как я понимаю, большинство новых языков так и устроены). Но встаёт вопрос - а если хакер написал программу "в машинных кодах", игнорируя компилятор - защитится ли от него ядро?

Сейчас это решается "защитой и экспешнами" - программа может попытаться выполнить неправильное действие, но процессор может это обнаружить и настучать об этом операционке. В i432 же предлагается "машинный код", в котором программа физически не может создать произвольный указатель (команды такой нет), указатель получается особой процедурой. В результате "не дают допускать ошибки" уже на уровне машинных кодов.

И тут, в общем-то, и возникает вопрос. Эффективность можно поднять, отказавшись от аппаратной защиты, и свалив защиту на компилятор. Но надежно ли это? И насколько эффективней будет другой вариант аппаратной защиты - без "экспешнов", но с невозможностью создать произвольный указатель?...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2009-09-06 12:13 (ссылка)
Трудно сказать - вероятно аппаратная реализация может быть более надежной. Ее конечно можно заменить виртуальной песочницей, она будет достаточно тупой и верифицируемой - в конце концов CPU тоже люди делают, но такое решение не очень производительное.

***

Что касается конкретно Singularity - там используется модификация C# - на нем гарантировано ничего нельзя поломать (если нет ошибок в компиляторе), там есть какие-то дополнительные политики для объявления интерфейсов - это им нужно было для защиты объектов и более гибкой изоляции.

Когда я читал про это - они говорили, что у них на подходе новый вариант MSIL (ассемблер .net), на котором доказано, что нельзя будет написать компромитирующий код. Как они утверждали - это позволит качественно повысить защищенность ядра, т.к. компилятор MSIL имеет высочайшую надежность по сравнению с C# и даст возможность использовать другие языки.

На входе в Singularity программа на MSIL, поэтому поломать не получится таким образом.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2009-09-06 12:25 (ссылка)
Если им удастся полностью изолировать пользователя и реальный код (т.е. ситуация что что-то читается с диска и передаётся на выполнение исключена полностью, на выполнение всегда передаётся "результат компиляции" - то да, задача в основном решена.
Правда, никуда не уходит вопрос об эффективности. Если не используется аппаратная защита, то как я понимаю - используются обычные range checking в нужных местах? Если так - эффективно ли это? Или им удалось придумать что-то, чтобы и аппаратной защитой не пользоваться, и без проверок обойтись?...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2009-09-06 12:39 (ссылка)
Грубо говоря это .net увеличенный до размеров ОС - идея в том, что изнутри нет способа что-то сделать плохое и уж тем более выполнять что попало.

Эффективность такая как сейчас в .net приложениях. Я кстати толковой информации на эту тему не видел. Падение скорости неизбежно и наверное есть задачи в которых весьма заметно.

В качестве отступления насчет range check - из своей работы: у нас есть конфигурации debug, release, gold. gold и release имеют идентичные настройки компиляции за исключением того, что в release все-же работают все проверочные ассерты, чтобы можно было логгировать критические ошибки. Ассертов очень много и конечно контейнеры имеют ассерты по диапазону. Так вот release и debug по производительности отличаютися незначительно - в пределах 10%, ну и конечно быстрее debug в несколько а то и в десять раз.

Т.е. конкретно по range check ситуация не критичная. Может быть сборщик мусора является более серьезной проблемой. Вообще интересно бы посмотреть исследования на тему производительности и узких мест .net.

(Ответить) (Уровень выше)


[info]ilya_314@lj
2009-09-07 14:34 (ссылка)
Вот кстати:
http://www.ixbt.com/news/hard/index.shtml?12/34/63

конкурента интел решили создать, интересно что это будет.

(Ответить)


[info]dz@lj
2009-09-10 13:31 (ссылка)
ну страшен - ладно, это я согласен. но пьян... я туда и оттуда на машине приехал, вообще-то.

(Ответить) (Ветвь дискуссии)


[info]dibr@lj
2009-09-10 13:54 (ссылка)
Это фраза из какого-то очень древнего фидошного гона (Янг? Рубчинский? Пародия на Рубчинского? Даже уже и не помню, а оригинал найти не удалось). Которая, в свою очередь, оказалась взятой из романа М.А. Осоргина "Сивцев Вражек" :-)

Т.е. никакого отношения к выступлению на CC'09 эта фраза не имеет, просто всплыла по ассоциации :-)

(Ответить) (Уровень выше)


[info]dibr@lj
2009-09-10 14:12 (ссылка)
О! Нашлось :-)


============================
* Forwarded by Kirill Frolov (2:5020/1007)
* Area : PVT.EXLER.ARCHIVE (PVT.EXLER.ARCHIVE)
* From : Michael Markowsky, 2:5020/378 (22 Oct 95 01:34)
* To : Alex GolosOFF
* Subj : Уфф
============================
Hello, Alex!

Sat 14:30 21 Oct 1995 Alex GolosOFF writes to Michael Markowsky:

AG>> Да, кстати, никто мне не подскажет, как можно сделать так, чтобы не
AG>> читать все эхи, котоpые с /225 валятся?
MM> Сам я не знаю, но Koctya Boyko говоpил, что есть такой George
MM> Roubchinsky, так вот он знает, как это делать.
AG> А кто это такой, и где его можно найти?

У ей внутpе неонка... не это не пpо него...
Тогда так: pотоp поля наподобие дивеpгенции гpадуиpует себя вдоль спины и там,
внутpе, обpащает матеpию вопpоса в спиpитуальные электpические вихpи, из коих и
возникает синекдоха отвечания... нет, опять не то...
Комендант быстpо веpнулся, деpжа обеими pуками большую банку с делом номеp
шестьдесят четыpе... ну, это совсем не пpо pубчинского... хотя... может это и
он был...
Рубчинский был пьян... нууу... это плагиат... эта фpаза у Осоpгонова звучала
так: "Завалишин был пьян и стpашен"... я сам в pадиоспектакле это слышал... да,
да, именно так. и не надо на меня комплейны писать!
Бифштекс - это мясо... знаем, знаем, n5020.sysop.talks читаем, видели. Hаука
полагает, что... эта... с лучком, значить...
Кто лучком? Рубчинский? Его лучше с чесноком потpеблять...
Вы, вобще, не обpащайте внимания... это я после венца твоpения... Как, вы не
знаете, что есть венец твоpения?... ну, господа, не знать, что человек есть
пpомежуточное звено между обезьяной и .... а вот не скажу! сами должны
знать. В гpоб вы меня этим pубчинским вгоните. Моp, глад и семь казней и семь
казней египетских... Зачем еще pаз семь? А чтобы соpок девять было...
Вуаля... ледукасен кон доно женобом дазапpезан... се нобль ве... ноги мыть и
воду пить... вот, это уже лучше... Общественность не позволит нам
бpосаться стаpичками. Вот именно! Именно общественность! И именно не позволит!
Кто стаpичек? Рубчинский? Hу вот еще, тоже мне! Рубчинский - pакоскоpпион с
Тагоpы. Он еще в телефонной будке сидел... Да, да, его там Абалкин обнаpужил.
Ага, вместе со Щекном... Hу этот, котоpый голован...
Ась? Почему же это нет? Hу а почему бы и нет? Как это нет? Это что? Рубчинский
обыкновенный... Хоpошо... И что, нет заявок, товаpищ Зубо? Вот видите, товаpищ
Зубо, есть заявки. Это же вам не шкатулка Пандоpы. Да, это шкатулка Тагоpы. Да,
это Рубчинский говоpящий... Да, пишущий... Это же фоpмалитет, в конце концов...
Же не манж па сис жуp... Утpом деньги - вечеpом эхи... Hууууу... это пpосто
какой-то костишаpинг, понимаешь... Мы, pассиЯне, этого не позволим...
Панимаитииии... Мы, pассиЯне, понимаити... Здесь вам не тут! Я вам всем уpок
пpавильной pечи даду! Даду, даду, да! Это мы пpекpатим! Вы меня не знаете! Hо
вы меня еще узнаете! Вы меня знаете с хоpошей стоpоны! А вы менЯ узнаете с
плохой! Мы это пpекpатим! Потому что, во-пеpвых, pубчинский не беpежет pабочее
вpемя, а во-втоpых... Кто здесь добpовольцы?
А, вызвались добpовольцы... Жидковаты... Зеленоваты еще... Куpите?...
Гоните?... Это мы еще пpовеpим... Покажите заявки! Так, "Рубчинский-говоpун
обыкновенный". Это пpо кого? Это же "пили, пьем и будем пить"... Это же пpо
нас, поганец! Дак я же его сейчас к ногтю! Раньше в эхе от него спасу не было,
а тепеpь и в онлайне! Мучитель! Да, да, на колодках... подpыв экономики... а
потом модем спишут с большим пpобегом, а он новенький...
Затpуднение? Устpаните! Осмелюсь доложить, господин комендант, сам Ватикан
пpоявляет интеpес к моей пеpсоне! Пани, дайте мне пеpвый класс... Hесомненно! И
так далее! Hе буду вас долго задеpживать, желаю всего наилучшего...
Ах, да, Вы меня пpо pубчиского спpашивали. Дык не знаю я... У кого-нибудь
дpугого спpосите...
AG> Всего хорошего, Alex
Best wishes! Michael KLUG
Левая Длинная Рука ZOMBUKI.CLUB
---
+ Origin: Вы заказывали гон? Пеpедаем... (2:5020/378)
============================
Hello, All!
With best regards, Kirill.
kir<AT>e-mail.ru -=-

(Ответить) (Уровень выше)