Re[55]: Оберон круче всех!
От: vdimas Россия  
Дата: 22.07.12 00:30
Оценка: :)
Здравствуйте, Mamut, Вы писали:

WH>>А на серверах ясен хрен нужен другой подход к раздачи привилегий.


M>Да даже там, по большому счету, этот подход мало отличается от OpenFileDialog, если так подумать Может, только более гранулярно, но и то.


Блин, Мамут, давай лучше о политике, там хоть более предметно выходит. Подход настолько отличается, что натянуть одно на другое вообще никак. В нормальных защищенных соединениях у тебя будет просто поток байт по ровно одному TCP-соединению и по какому-то хрен его знает высокоуровнемому протоколу сверху TCP, о котором операционка ни слухом ни духом. Передать удаленно хендл открытого файла (как предложил Wolfhound) — вообще никак, чтобы контроллировать процесс передачи и последующее использование операционкой. Я уже молчу о такой предложенной вещи как "личное" кликанье юзверя с нужными правами мышью по кнопке ОК этого диалога... фиг с ним, считаем, что где-то придумали альтернативу и как-то "кликнули", но просто если передашь хендл, и дашь некое АПИ работы по такому хендлу (а ведь такое АПИ будет нейтрально к протоколу, ес-но, ведь протоколов мильон), это невообразимая дыра со всех сторон, даже со стороны уже зараженного сервака, где бедный сетевой бот никак не мог открыть файл из-за недостатка привилегий. А тут уже за него открыли и даже хендл сообщили — вот это халява так халява. Цепляйся вообще любым самым простым соединением и юзай уже открытый хендл на своё усмотрение. Т.е. ситуация на сегодня, когда действие выполняет серверное ПО-посредник по имени файла (скажем, MS SQL Server), но выполняет достоверно команды лишь от конкретного достоверного соединения — эта ситуация и то на многие порядки более безопасная, чем предложенный натуральный беспредел. А всё потому, что торопыжки бросаются на клавиатуру не подумав.
Re[52]: Оберон круче всех!
От: vdimas Россия  
Дата: 22.07.12 00:52
Оценка:
Здравствуйте, Cyberax, Вы писали:


V>>1. Зачастую не вся физическая память может быть использована для DMA, поэтому обслуживание буферов на совести драйверов конкретных чипсетов.

C>Можно пример?

Легко. Популярная 24-битная адресация у PCI-устройств. Т.е. мапить можно только конкретные ФИЗИЧЕСКИЕ диапазоны адресов. Напомню, что юзверские виртуальные адреса после свопа меняют свои физические адреса. Конечно, это всё разруливается несложным алгоритмом через mmap (чтобы привязать некий юзверский диапазон к физическому mmap-IO), но сам этот вызов из юзверского кода — вообще приговор всему, что мы тут обсуждали. Нет его в Сингулярити для юзверского кода и никогда не будет.


C>А то в Линуксе, идиоты такие, смогли как-то сделать общую систему поддержки DMA с поддержкой IOMMU для x86 и ARM (с его странными требованиями когерентности). Никакой зависимости от "драйверов конкретных чипсетов" нет и в помине.


Ты хоть понимаешь термин "когерентность" относительно ДМА?
Если понимаешь, то куда нафик ты его здесь и сейчас привел, не пояснишь?

И никакой "общей" системы там нет. Там есть банальная абстракция на вызовы ядра того же Linux (типа virt_to_bus), но сами коды драйвера устройства — опаснее некуда с т.з. обсуждаемого, т.к. по-прежнему оперируют произвольными адресами физической памяти (в плоской модели памяти кольца ядра).


V>>2. Ты описал ровно тот сценарий, на который жалуются разработчики Сингулярити — что безопасностью тут и не пахнет, коль можно назначить произвольную память для чтения/записи.

C>Мимо.

На этом сайте лежит русскоязычный перевод технического репорта по Сингулярити. Очень рекомендую освежить, прежде чем вернуться к теме.
Re[33]: Оберон круче всех!
От: novitk США  
Дата: 22.07.12 00:59
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, vdimas, Вы писали:


AVK>Что характерно — ни на один из заданных вопросов ты так и не ответил. Зато навалил кучу бессвязного и слабо относящегося по теме флейма. Шеридан №2.


Не совсем справедливое сравнение. Шеридан разбирается в материале и "фанатеет" востребованной технологией. vdimas скорее похож на создателя суперкомпактного языка, который скакал тут пол года назад (PC101 кажется?).
Re[52]: Оберон круче всех!
От: vdimas Россия  
Дата: 22.07.12 02:01
Оценка:
Здравствуйте, WolfHound, Вы писали:

V>>1. Зачастую не вся физическая память может быть использована для DMA, поэтому обслуживание буферов на совести драйверов конкретных чипсетов.

WH>Пример в студию.

Кайбераксу рядом привел.


V>>2. Ты описал ровно тот сценарий, на который жалуются разработчики Сингулярити — что безопасностью тут и не пахнет, коль можно назначить произвольную память для чтения/записи.

WH>Ну да. Без IOMMU все печально.
WH>С IOMMU все хорошо.

Давай в отдельной теме рассмотрим IOMMU. А то сдается мне, кто-то чего-то недопонимает насчет этой технологии. Там не отсутсвует DMA, там ровно наоборот, работа с любыми аппаратными ресурсами идет теперь примерно так же, как раньше только для DMA. В общем, в этой однородности суть (см. спецификации HyperTransport).


WH>>>Кстати IOMMU на данную модель натягивается почти автоматически.

V>>Не натягивается на эти два дврайвера без введения дополнительных динамических артефактов в среду исполнения, эдаких известных операционке структурах, на которых достоверно переносятся адреса страниц из диапазонов, прописанных в манифесте.
WH>Что за бред?
WH>Какие еще адреса страниц в манифесте?

ОМГ.

V>>Поэтому я и предлагал подумать над вариантами, что вся эта динамика на сегодня — одна сплошная дыра. Т.е. мы передаем по каналу какие-то байты, которые означают адреса, но операционка об этом понятия не имеет, так?

WH>Имеет.
WH>Ибо по каналу передаются не просто байты, а вполне конкретные типы данных.
WH>Ты вообще на сингулярити то смотрел?

Т.е. операционка должна сканить, что ты там по каналам передаешь? Т.е. не просто проверять типобезопасность на этапе инсталляции ПО, а вообще сканить сами передаваемые байты? )))
Не стыдно?

V>>И код не подлежит верификации и сравнения с манифестами, т.к. код получает неизветсные на этапе компиляции цифры и настраивает ими контроллер DMA. Мне казалось, что такое нарушение очевидно. Ан нет... )))

WH>Это очередной твой бред.

Это та поверхностность, от которой ты не можешь отучиться. Я же выше сказал, вопрос не так прост, как кажется. Давай вот распишем от участвующих 2-х драйверов вплоть до записываемых в устройство байт, а то при помощи одних только междометий толку всё-равно не будет.


WH>>>Ибо ссылки на внутренние объекты могут быть беспрепятственно сохранены, где попало.

V>>Если на внутренние — то только внутри и могут,
WH>И что же мне помешает передать ее в другой объект?
WH>Оберон этому никак не препятствует.

Да ничего. Но ты передашь ссылку на объект СВОЕГО модуля или доступную только из СВОЕГО модуля. Опять нихферштейн? Т.е. не в рассматриваемом месте передачи находится слабое звено. Если какой-то важной информацией/объектом уже завладел, то до фени, каким образом эту информацию куда-то передавать. А ты пытаешься меня сфокусировать на способе передачи уже хакнутой информации. Сие мне вовсе неинтересно.


V>>Ну так с тем же успехом можно подменять модули в GAC. Насколько это реально?

WH>Перестань говорить сам с собой.
WH>ГАК тут вообще не причем.

Понятно, контекст утерян. Фиг с ним..

V>>И твоё "нельзя" — это на типонебезопасных языках нельзя, а если происходящее детерминировано, то можно.

WH>Ни на каких нельзя.

V>>ХЗ. Я под безопасностью имел ввиду какие-нить переполнения, выходы индексов за пределы массива и т.д. Без изоляции можно писать очень эффективные системы. Нафига, например, корабельной навигационной системе изоляция процессов. Поясни.

WH>Ох. Ты даже не понимаешь, про какую изоляцию я говорю.
WH>А говорю не про аппаратную защиту памяти. А про логическую изоляцию процессов на уровне системы типов.

И я всё еще про неё же. Просто ты передвинул изоляцию всего на один шажок, а я утверждаю, что в случае абсолютной безопасности кода эту изоляцию можно целиком и полностью перенести в ср-ва инкапсуляции самого языка. Сингулярити что сделало? Она 1-в-1 сэмулировала аппаратную защиту памяти процессов своими программными ср-вами. Ты это хоть понимаешь? А вопрос изначально стоит так — зачем вообще появилась эта аппаратная защита памяти процессов? Достаточно составирть список причин и пройтись по нему в условиях абсолютной типобезопасности и верифицируемости байт-кода. ИМХО, в этом случае украсть что-то у объекта можно будет только тогда, когда программа специально будет так написана, чтобы у нее можно было что-то украсть. ИМХО, такую способность (пусть даже вложенную по ошибке) тоже вполне можно будет отловить каким-нить анализатором, если код полностью детерминирован.

V>>>>А насчет модели исполнения — экземпляры объектов полностью изолированы.

WH>>>Бред.
V>>-1
WH>Оберон не знаешь.

Давай по существу. Вот ты имеешь экземпляр объекта. Попробуй преодолеть его инкапсуляцию. Ты даже адрес его получить не сможешь в языке. А факты нецелевого оперирования адресом объекта в байткоде, ИМХО, тоже можно отлавливать автоматом.


WH>>>Ты что действительно не понимаешь, что в сингулярити для каждого процесса есть свое объектное пространство?

V>>Я не вижу в этом особых преимуществ, если мы договорились, кто код безопасен сам по себе.
WH>Ну да. Возможность грохнуть зажравшийся процесс, а не всю ОС фигня.

Скачай WinAosMini, напиши зажравшийся активный объект и грохай его наздоровье. И я тебе на это уже отвечал, кстате.

WH>Гарантии того что нет гонок фигня.


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

WH>Все фигня. Один vdimas умный.


Может и ошибаюсь, и что с того? У меня на этот счет никаких комплеков. Но мне интересны только верифицируемые рассуждения, которые я смог бы повторить самостоятельно не торопясь с нужной мне подробностью... а не вот этот обмен междометиями. А пока что, стоило самостоятельно добавить к аргументам оппонентов 1-2 уровней подробностей, и всё рассыпается.


V>>Все-равно все объекты в одной плоской памяти, а пространство объектов — сугубо логическое. И еще. Для твоей изоляции требуется специальный дорогой инструмент обслуживания этой изоляции.. И оп-па — на сцену выходят каналы. Это же компромисс получился, если посмотреть на всю композицию в целом. Если бы ты хоть немного поработал с lock-free, понял бы, почему я на твои каналы смотрю без энтузиазма. Существуют механизмы передачи информации/сигналов многократно дешевле, в десятки и больше раз.

WH>Которые можно реализовать, не нарушая изоляцию процессов.

Не можно, ес-но. Изоляцию в смысле Сингулярити придется нарушить. Но сам вопрос изоляции процессов в силе (см чуть выше в этом же посте). Чтобы было проще я уже предложил сценарий: скажем, некая корабельная навигационная система? Или возьмем военного робота, управляющего ракетным комплексом. У нас стоит задача выжать максимум вычислительной эффективности от железки. Ес-но, современные ОС, типа Windows или Linux никакого максимума не дадут и близко. Твои предложения?


WH>>>Что не могут существовать ссылки из одного процесса в другой?

WH>>>И что оберон никак от этого не защищает?
V>>Ссылки возможны только при явных зависимостях.
WH>Но они могут быть.
WH>И гонки могут быть.
WH>И вот такой код может быть. http://www.rsdn.ru/forum/philosophy/1004226.1.aspx
Автор: WolfHound
Дата: 26.01.05


Я его видел давно, только не понял, что именно ты хотел там сказать? Это нормальная регистрация объектов в статических данных. Например, remoting в дотнете работает точно так же как ты там написал — через статические списки. Только поэтому локальный прокси может жить до тех пор, пока жив удаленный стаб, хотя на него никто локально не ссылается.

И да, тот пример можно было упростить до 5 строчек... Спишем ненужную многословность на твою молодость на год публикации.

V>>Никаких ссылок, типа как на безтиповый Object в дотнете быть не может.

WH>Это вообще к делу не относится.

Относится. Ты не сможешь в такой список пихать все подряд объекты, получаемые невесть откуда. Ты получать невесть откуда объекты-то не сможешь. Жесткая статическая типизация — это совершенно другой подход к программированию. В рамках Сингулярити и C#, скажем так, это недостижимо. Там любой мало-мальский код срывается в динамическое приведение типов. Се ля ви, человеческая слабость. Поэтому там изолированность процессов скорее всего требуется. Ведь динамическое приведение типов нарушает ссылочную прозрачность, и автоматически уже можно мало чего проверить... Ну вот разве что типобезопасность каналов, которые обязательны для изоляции недетерминированных программ друг от друга.


V>>без посредников, то бишь без копий нужной инфрмации.

WH>Это снова бред.

Это не бред. Это определение роли сообщений — быть посредниками информации.

V>>И здесь дорого всё: создание копий, помещение в очередь,

WH>И снова...

Ты уже нашел ABA-problem в гугле? В уме прикинул затраты на решение?
MS давало свой алгоритм решения ABA в списках хендлов в виндах и я где-то в MSDN его видел. Не фонтан с т.ч. быстродействия, прямо скажем.

V>> сигналы шедуллеру, чтобы он дал кванты принимающей стороне, чтение этих копий на той стороне. Всё вместе много и дорого.

WH>Всё это придется проделать и оберону.

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

V>>Valgrind. Погоняй на досуге, очень рекомендую. А казалось бы — для опасных языков предназначен. Юоюсь предоложить во сколко раз будет проще для безопасных.

WH>Гонял. Мышей кроме самых примитивных не ловит.
WH>А мне нужны гарантии, что всё хорошо.
WH>Понимаешь? ГАРАНТИИ!

Всё ясно, не гонял ты нифига. Может и по остальным пунтам так же не моргая врешь? )))

Мы же там о гонках говорили. А Valgrind ловит ВСЕ гонки. Т.е. вообще все, даже которые в коде просто есть, но согласно хитросплетениям алгоритмов никогда не будут вызваны. Но они есть и могут буть вызваны... ну скажем в случае дотнета через рефлексию. Поэтому, гарантии ловли гонок 100%. Уникальный тул, таки крайне рекомендую к изучению.


V>>Динамическая загрузка статических зависимостей, заметь. Модуль загружается при первом обращении к нему. То бишь зависимость торчит статически, но если модуль не вызвается, он не загружен.

WH>Но ты никогда не знаешь, какой еще модуль использует данный.
WH>И сколько их.
WH>И когда они появятся.

Вообще, мыслить надо объектами, а не модулями, в этом идеология. Зачем объекту знать, кто его использует? Он дает АПИ и честно его реализует, вот и всё.

V>>Проверка протоколов — это уже высокоуровневые плюшки.

WH>Это плюшка, которая необходима для работы.

V>>А поддержка уникальных ссылок в паскалях всегда была изкаробки.

WH>Что за бред.
WH>Паскаль ты не знаешь.
WH>Не было там никогда уникальных типов.

Да вроде доходчиво пояснил, что происходит.

V>>Он сам разбирается в процессе анализа при компиляции, где ему создать копию, а где переиспользовать имеющиеся данные. И да, CONST там все-таки ввели, это одна из гарантий для вызываемого метода.

WH>Это все вообще не о том.

Это ровно о том, нахрена вообще нужны уникальные типы. Они нужны для тупых компиляторов. Это перенос сложности с компилятора на человека. Ты так и не понял, в каких случах и для чего автоматичеески создается копия значения, а когда нет?
Re[34]: Оберон круче всех!
От: vdimas Россия  
Дата: 22.07.12 02:24
Оценка:
Здравствуйте, novitk, Вы писали:

AVK>>Что характерно — ни на один из заданных вопросов ты так и не ответил. Зато навалил кучу бессвязного и слабо относящегося по теме флейма. Шеридан №2.


N>Не совсем справедливое сравнение. Шеридан разбирается в материале и "фанатеет" востребованной технологией. vdimas скорее похож на создателя суперкомпактного языка, который скакал тут пол года назад (PC101 кажется?).


Судя по твоим комментам, ты просто ничего не понимаешь в обсуждении. Т.е. вообще ничего. Заметь, тот пример с Хаскелем привел ты, и вроде даже как что-то на Хасклее можешь. Но мне, не знающему толком ни Хаскеля ни тем более Конкурентного Хаскеля, понадобилось ~5 мин чтения документации, чтобы показать тебе полное невладение предметом относительно твоего же собственного примера. Вот уж Facepalm как он есть.
http://www.rsdn.ru/forum/philosophy/4814422.1.aspx
Автор: vdimas
Дата: 11.07.12
и ниже.
Re[44]: Оберон круче всех!
От: vdimas Россия  
Дата: 22.07.12 03:08
Оценка:
Здравствуйте, WolfHound, Вы писали:

V>>Любой разберет с таблицей, твой парсер тут не при чем. Я же эту технику и показывал для С++, как неоднозначности сводятся к однозначностям. Но это такой язык, где необязательно объявление идет впереди использования, а если нет, то TDOP парсер для таких сценариев вообще самый худший вариант.

WH>Что за бред?
WH>С++ так не умеет.

Описка, ес-но, читать: ...где Обязательно объявление идет впереди использования...
Вроде из контекста должно было быть понятно.

V>>Ды ты бы вола бы за хвост не тянул и закрыли тему еще несколько месяцев назад.

WH>Я тебе просто показываю, как ты общаешься.

Мде? Меня наоборот ругают за излишние подробности. Ты полная противоположность.

V>>Гы, я думал интересно будет насчет преобразований м/у цветовыми пространставами, бо там много тонкостей. А ресэмплинг внутри одного пространства, в какой-нить ARGB — это детсад.

WH>Но ты не знаешь, как он работает.
WH>Иначе ты бы сразу понял, что не так с той картинкой.

Да я ХЗ, если честно, т.к. всегда получал только правильную картинку и совершенно не в курсе, как ты получил неправильную.
Могу только гадать насчет гаммы цветовых компорнент, но это умозрительно на кофейной гуще, а экспериментировать, пытаясь воспроизвести твою неправильную картинку — облом.

Кароч, тему закрыли, это переходит все границы. Тебе можно было сказать в чем дело еще тогда и сразу. Я ХЗ что за чудеса скромности ты решил продемонстрировать.

V>>Формула эта — простая линейная пропорция.

WH>Не правильно.

)))

V>>Собственно ВСЁ.

WH>Нет не все.
WH>Почему попробуй догадаться сам.

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

V>>ABA-problem не гуглится? А сейчас?

V>>Судя по проблемам с преодолением описки, ты даже и не слышал о такой? Ох уж эти мне "на элементарщине сыпающиеся" (С).
WH>1)Знаю я про это. Просто названия плохо запоминаю.
WH>2)В каналах сингулярити такой проблемы нет благодоря дизайну этих самых каналов.
WH>И кто тут сыпется на элементарщине?

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

V>>Я уже одергивал тебя от таких обобщений. Связь через каналы — дорогое удовольствие само по себе, не самый лучший вариант для многих сценариев.

WH>Так можно и без каналов. Не нарушая изоляции процессов.

А как?

V>>И уже где-то пощупать эти гипотетические оптимизации можно?

WH>В сингулярити.

Не дашь ссылку или пример кода, где бы видна была работа такого оптимизатора? Или это "потенциальное преимущество"?

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

WH>Это опять не в тему.

Как раз в тему. Компилятор С++ считает стек (и вообще локальные переменные) приватной памятью потока и проводит агрессивную оптимизацию. Поэтому после загрузки данных в локальную память, числодробление и выгрузки я получал от 3-х до 12 раз ускорение. Я так подумал, что ты намекал на аналогичное в процессах Сингулярити.


V>>Яуже начинаю тебя подозревать в том, что ты вызов метода объекта пытаешься отличать от посылки ему сообщения. И вся твоя изоляция держиться только на это разнице. Это надуманно. Политику синхронизации определяет вызваемый ресурс. Если он помечен, как синхронизируемый, никакой внешний код не вызовет его в несинхронизируемом виде.

WH>Ну что за бред ты несешь. Переставай за меня думать. У тебя не получается.
WH>Запомни: я всегда очень буквален. И когда я говорю, кури альфабленд. Ты должен курить альфабленд. Ибо ты его не понимаешь.

Это твои фантазии. Курить надо статистику изображения при ресэмплинге. И да, бывает далеко не только альфабленд, но и другие операции с масками прозрачности. Но оп-па, они все покрываются описанным мною алгоримом при ресэмплинге.

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


Не покажу ес-но.

WH>В обероне это делается на раз.

WH>После чего по этому объекту начинаются гонки.

Valgrind. )))
Но это перебор, есно. Там же полная детерминированность, можно разработать инструмент гораздо проще, чем Valgrind, т.к. вместо гонок можно ловить прямо в верификаторе описанную ситуацию шаринга мутабельных несинхронизированных объектов.


WH>Да и не на всех архитектурах запись/чтение указателя атомарны.


Это к делу не относится. Вопрос стоял так: почему бы не использовать на порядок более дешевые ср-ва, если они есть?


V>>Оттуда же, откуда списки процессов и остальных ресурсов. Каналы закрываются "сами", даже если процесс прибит насильно. Потому что он принадлежт операционной системе и она имеет на него ссылку. Исходники Сингулярити есть? Я в них не смотрел, но могу на этот момент поспорить.

WH>Бред.
WH>Каналы абсолютно пассивны и полностью автономны.
WH>И убивают их процессы во время собственной смерти.
WH>Таким образом, глобального списка каналов не существует.

А единого списка процессов тоже нет? А выражение "ссылка прямая либо косвенно" из синглтона ты не сообразил?
И таки память под конкретный канал берется не из общей кучи? )))
Аууу, давай-ка ближе к телу.
Re[45]: Оберон круче всех!
От: vdimas Россия  
Дата: 22.07.12 03:30
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Кароч, тему закрыли, это переходит все границы. Тебе можно было сказать в чем дело еще тогда и сразу.


Хотя не, мелькнула одна догадка (учитывая твои манеры).

Неужели ты всерьез намекал на физический смысл значения "альфа" в той модели представления маски прозрачности, которая дается через квадратный пиксел?
Если ты из-за этого столько морочил голову... Прокляну. )))
Re[35]: Оберон круче всех!
От: novitk США  
Дата: 22.07.12 04:08
Оценка: :)
Здравствуйте, vdimas, Вы писали:

V> о мне, не знающему толком ни Хаскеля ни тем более Конкурентного Хаскеля, понадобилось ~5 мин чтения документации, чтобы показать тебе полное невладение предметом относительно твоего же собственного примера.


Как показывает эта ветка, ты вообще мало что знаешь толком. Очень жалею, что потратил время и вежливость. Надо было отключаться сразу, как только ты понес в своей обычной хамской манере пургу про мутабельность, вместо того чтобы прислушаться и понять, что МVar == AWAIT, а forkIO == "активные обьекты Oberona".
Re[45]: Оберон круче всех!
От: WolfHound  
Дата: 22.07.12 07:21
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Описка, ес-но, читать: ...где Обязательно объявление идет впереди использования...

V>Вроде из контекста должно было быть понятно.
А в прошлом сообщении ты начал крутиться в другую сторону.

V>Мде? Меня наоборот ругают за излишние подробности. Ты полная противоположность.

Так ты не подробности рассказываешь.
Ты кучу букв, не относящихся к делу пишешь.

V>Кароч, тему закрыли, это переходит все границы.

Слив засчитан.

V>Тебе можно было сказать в чем дело еще тогда и сразу. Я ХЗ что за чудеса скромности ты решил продемонстрировать.

Так я сразу сказал.
Проблемы с альфой. К гамме и фильтрам отношения не имеют.

V>>>Формула эта — простая линейная пропорция.

WH>>Не правильно.
V>)))
Я же говорю. Ты не понимаешь что такое альфабленд.
И как он работает, если пиксели содержат альфу.

V>Не могу догадаться, я не получал картинок с искаженной статистикой, а у тебя по неправильной картинке идет искажение, видимое невооруженным глазом. А не пробовал гистограмму строить?

Еще раз. Ты даже не понимаешь, что ты видишь.
Проблемы с альфой и только с альфой.

WH>>Так можно и без каналов. Не нарушая изоляции процессов.

V>А как?
Да как угодно.
Главное чтобы указатели через границу процесса не просачивались.

V>Не дашь ссылку или пример кода, где бы видна была работа такого оптимизатора? Или это "потенциальное преимущество"?

Читай отчет по сингулярити.
Там английским по белому написано.

V>Это твои фантазии. Курить надо статистику изображения при ресэмплинге. И да, бывает далеко не только альфабленд, но и другие операции с масками прозрачности. Но оп-па, они все покрываются описанным мною алгоримом при ресэмплинге.

Опять бредишь.

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

V>Не покажу ес-но.
Ну, значит, туда я тебя и записываю.

WH>>В обероне это делается на раз.

WH>>После чего по этому объекту начинаются гонки.
V>Valgrind. )))
V>Но это перебор, есно. Там же полная детерминированность, можно разработать инструмент гораздо проще, чем Valgrind, т.к. вместо гонок можно ловить прямо в верификаторе описанную ситуацию шаринга мутабельных несинхронизированных объектов.
Осталось только понять что система типов сингулярити и есть такой верификатор.
Причем работает в 100% случаев.
А в обероне его нет и не предвидится.
В случае даже если ты это сделаешь для оберона ничто не заставит людей запускать твой верификатор.
В случае с сингулирити у нах просто нет выбора.

WH>>Да и не на всех архитектурах запись/чтение указателя атомарны.

V>Это к делу не относится. Вопрос стоял так: почему бы не использовать на порядок более дешевые ср-ва, если они есть?
Опять сам с собой разговариваешь.
Разговор про то, что оберон небезопасный язык.

WH>>Каналы абсолютно пассивны и полностью автономны.

WH>>И убивают их процессы во время собственной смерти.
WH>>Таким образом, глобального списка каналов не существует.
V>А единого списка процессов тоже нет?
Не нужен.

V>А выражение "ссылка прямая либо косвенно" из синглтона ты не сообразил?

Это просто набор слов.

V>И таки память под конкретный канал берется не из общей кучи? )))

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

V>Аууу, давай-ка ближе к телу.

С таким собеседником без шансов.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[56]: Оберон круче всех!
От: WolfHound  
Дата: 22.07.12 07:42
Оценка:
Здравствуйте, vdimas, Вы писали:

V>В нормальных защищенных соединениях у тебя будет просто поток байт по ровно одному TCP-соединению и по какому-то хрен его знает высокоуровнемому протоколу сверху TCP, о котором операционка ни слухом ни духом. Передать удаленно хендл открытого файла (как предложил Wolfhound) — вообще никак, чтобы контроллировать процесс передачи и последующее использование операционкой.

Бред.

V>Я уже молчу о такой предложенной вещи как "личное" кликанье юзверя с нужными правами мышью по кнопке ОК этого диалога...

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

V>фиг с ним, считаем, что где-то придумали альтернативу и как-то "кликнули", но просто если передашь хендл, и дашь некое АПИ работы по такому хендлу (а ведь такое АПИ будет нейтрально к протоколу, ес-но, ведь протоколов мильон), это невообразимая дыра со всех сторон, даже со стороны уже зараженного сервака, где бедный сетевой бот никак не мог открыть файл из-за недостатка привилегий. А тут уже за него открыли и даже хендл сообщили — вот это халява так халява. Цепляйся вообще любым самым простым соединением и юзай уже открытый хендл на своё усмотрение. Т.е. ситуация на сегодня, когда действие выполняет серверное ПО-посредник по имени файла (скажем, MS SQL Server), но выполняет достоверно команды лишь от конкретного достоверного соединения — эта ситуация и то на многие порядки более безопасная, чем предложенный натуральный беспредел. А всё потому, что торопыжки бросаются на клавиатуру не подумав.

Всё мимо. А всё по тому, что ты не в состоянии понять, о чем вообще разговор.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[55]: Оберон круче всех!
От: WolfHound  
Дата: 22.07.12 07:42
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Это ты который раз попался и вертишься. Расслабься, всё уже свершилось.

Вертишься тут только ты.

WH>>А на серверах ясен хрен нужен другой подход к раздачи привилегий.

V>А еще где-то третий.
Ну, попробуй, найди третий.

V>Охрененный аргумент... сразу свободен, кароч. ОС одна и та же. И ОС не отличет игрушку от БД. И не должна.

Так она и не отличает.
Оба способа доступны и для БД и для игрушки.
Просто БД нужен один, а игрушки не нужно ни того ни другого.

V>Святая простота. Снимая полный трафик рано или поздно в этот трафик можно вклиниться. Хотя бы потому, что открытые ключи передают открыто и ими можно расшифровать зашифрованное сообщение. Курить современное популярное шифрование.

Лолшто?
Открытые ключи они на то и открытые чтобы ими ничего расшифровать было нельзя.
Или ты собрался сломать ассиметричный шифр? Удачи.

V>Ну тогда Киберакс нуб, а не ты. ))

V>Мне то пофиг, кто из вас нуб, модели-то заведомо противоречащие. Он привел ссылку, где технология такова, что удаленный пользователь может иметь права локального. В той технологии это единственный ключевой момент, остальное — детали реализации.
И к чему эта гора букв?
К модели безопасности сингулярити это вообще никак не относится.

V>А, ну тогда о чем с тобой речь вообще? Нахрена мы вообще какую-то локальную безопасность обсуждали, не пояснишь?

Мы обсуждали безопасность вообще.
Остальное придумал ты.

V>Не всех, а имеющих определенные права доступа к информации. Про 100% — это твой только что придуманный бред, чтобы оправдать своё непонимание ситуации.

Это не бред. Это то, что будет твориться в бутылке. Иначе все развалиться.

V>Мне достаточен ровно такой процент, чтобы он вышел за рамки тщательно сертифицированного ПО. Конкретно в Сингулярити они вышли за этот % изкаробки. В реальной жизни выход будет еще больше.

Опять бессвязный набор букв.

V>Я еще искать не начинал.

И что ты уже не один десяток сообщений делаешь?

V>И не 2 драйвера, а многие сотни независимых, ес-но, я тебя уже одергивал.

Ну ладно. Два типа драйверов.
И сертификация сотни простеньких программ в год это вообще не о чем.

V>И еще, ты так и не обрисовал, как ты себе представляешь тестирование ПО на злонамеренность. И как ты себе вообще верификацию ПО представляешь? много раз сертификацию проходил, поделись? Или как обычно последние годы — облака, белокрылые лошадки.. сплошь сферические? Ладно там верификация на опасный с т.з. типобезопасности код — это хоть как-то автоматизируется, но обсуждаемые вещи будут абсолютно типобезопасны, а глазками в сотне тыщ строк ты хрен чего поймаешь. Это такая ситуация прямо на сегодня. А ты этого никак не понимаешь, бо по-твоему, типобезопасность и изолированность что-то значат. А на самом деле через DMA прямо сейчас можно загнать любой участок памяти Сингулярити в буфер жесткого диска и прочитать обратно. Вот и нет твоей изолированности процессов. В общем, не с того конца ты подходишь к безопасности изначально. А всё потому, что пороха не нюхал и рассуждаешь угубо умозрительно.

Еще раз.
Это лечится при помощи IOMMU раз и навсегда.

V>Я как бэ малость представляю что есть опасность и безопасность, в отличие от. Впитывай информацию и говори спасибо. Я же говорил — личка у меня общедоступна для желающих.



V>Да мне пох, вообще-то. Я уже говорил не раз, на Обероне я не написал не строчки, но мне не помешало поинтересоваться, что и как там.

Но помешало понять.

V>И там понимать нечего, если голова соображает.

Если.

V>Да и на Паскале пришлось пошпилить когда-то давно, т.е. комплексов по поводу языка нет. Но здесь приходится бодаться и просвещать даже по таким вопросам, которые можно прочесть в первых строчках Вики. Вот уровень обсуждения. Стыдуха.

Это нам тебя просвещать приходится.
Но ты даже то, что тебе разжёвывают, проглотить не можешь.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[53]: Оберон круче всех!
От: WolfHound  
Дата: 22.07.12 08:38
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Легко. Популярная 24-битная адресация у PCI-устройств. Т.е. мапить можно только конкретные ФИЗИЧЕСКИЕ диапазоны адресов.

И что помешает мне выделить память в этом диапазоне?

V>Напомню, что юзверские виртуальные адреса после свопа меняют свои физические адреса.

К делу не относится.

V>Конечно, это всё разруливается несложным алгоритмом через mmap (чтобы привязать некий юзверский диапазон к физическому mmap-IO), но сам этот вызов из юзверского кода — вообще приговор всему, что мы тут обсуждали. Нет его в Сингулярити для юзверского кода и никогда не будет.

И почему же это приговор?
Можешь сказать?
Особенно если пользовательский код скажет: Дай мне кусок памяти подходящий для DMA.
После чего просто отправит его в драйвер.

Единственная опасность это DoS атака. Когда процесс начнет жрать эту память и не отдавать.
Но такие процессы можно прибивать автоматом. И освобождать все что они нахапали.

V>На этом сайте лежит русскоязычный перевод технического репорта по Сингулярити. Очень рекомендую освежить, прежде чем вернуться к теме.

Очень кривой перевод надо сказать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[53]: Оберон круче всех!
От: WolfHound  
Дата: 22.07.12 08:38
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Давай в отдельной теме рассмотрим IOMMU. А то сдается мне, кто-то чего-то недопонимает насчет этой технологии. Там не отсутсвует DMA, там ровно наоборот, работа с любыми аппаратными ресурсами идет теперь примерно так же, как раньше только для DMA. В общем, в этой однородности суть (см. спецификации HyperTransport).

Главное там то, что можно сказать какие страницы памяти может трогать данная железка.
Все остальное к делу не относится.

WH>>>>Кстати IOMMU на данную модель натягивается почти автоматически.

V>>>Не натягивается на эти два дврайвера без введения дополнительных динамических артефактов в среду исполнения, эдаких известных операционке структурах, на которых достоверно переносятся адреса страниц из диапазонов, прописанных в манифесте.
WH>>Что за бред?
WH>>Какие еще адреса страниц в манифесте?
V>ОМГ.
Ты давай по существу.
Или не в состоянии.
Ибо для IOMMU не нужно ничего прописывать ни в каком манифесте.
Ибо страницы выделяются динамически.
И динамически прописываются в IOMMU для данной железки.

V>Т.е. операционка должна сканить, что ты там по каналам передаешь? Т.е. не просто проверять типобезопасность на этапе инсталляции ПО, а вообще сканить сами передаваемые байты? )))

V>Не стыдно?
Тебе должно быть стыдно.
Ибо это делается именно что проверками типов на этапе инсталляции.

V>Это та поверхностность, от которой ты не можешь отучиться. Я же выше сказал, вопрос не так прост, как кажется. Давай вот распишем от участвующих 2-х драйверов вплоть до записываемых в устройство байт, а то при помощи одних только междометий толку всё-равно не будет.

Давай. Расписывай.

V>Да ничего. Но ты передашь ссылку на объект СВОЕГО модуля или доступную только из СВОЕГО модуля. Опять нихферштейн?

И ничего не меняет.
Мы можем внутри одного модуля создать два потока. И привет.

V>Т.е. не в рассматриваемом месте передачи находится слабое звено. Если какой-то важной информацией/объектом уже завладел, то до фени, каким образом эту информацию куда-то передавать. А ты пытаешься меня сфокусировать на способе передачи уже хакнутой информации. Сие мне вовсе неинтересно.

Я вообще не про хаки.
Я про то что оберон не обеспечивает гарантии того что объекты не будут доступны из разных потоков без синхронизации

V>>>Ну так с тем же успехом можно подменять модули в GAC. Насколько это реально?

WH>>Перестань говорить сам с собой.
WH>>ГАК тут вообще не причем.
V>Понятно, контекст утерян. Фиг с ним..
Ты его и не находил. Ни разу.

V>И я всё еще про неё же. Просто ты передвинул изоляцию всего на один шажок, а я утверждаю, что в случае абсолютной безопасности кода эту изоляцию можно целиком и полностью перенести в ср-ва инкапсуляции самого языка. Сингулярити что сделало? Она 1-в-1 сэмулировала аппаратную защиту памяти процессов своими программными ср-вами. Ты это хоть понимаешь?

Я понимаю, что ты ничего не понимаешь.

V>А вопрос изначально стоит так — зачем вообще появилась эта аппаратная защита памяти процессов? Достаточно составирть список причин и пройтись по нему в условиях абсолютной типобезопасности и верифицируемости байт-кода.

Вот и пройдись.
И поймешь, что защиты оберона не хватает.

V>ИМХО, в этом случае украсть что-то у объекта можно будет только тогда, когда программа специально будет так написана, чтобы у нее можно было что-то украсть. ИМХО, такую способность (пусть даже вложенную по ошибке) тоже вполне можно будет отловить каким-нить анализатором, если код полностью детерминирован.

Если ты сделаешь этот анализатор (причем так чтобы его нельзя было отключить) то ты получишь сингулярити 1 в 1.
Но в обероне этого нет.

V>Давай по существу. Вот ты имеешь экземпляр объекта. Попробуй преодолеть его инкапсуляцию. Ты даже адрес его получить не сможешь в языке. А факты нецелевого оперирования адресом объекта в байткоде, ИМХО, тоже можно отлавливать автоматом.

Перестань разговаривать сам с собой.
Разговор идет про то, что можно один объект использовать из разных потоков без синхронизации.

V>Скачай WinAosMini, напиши зажравшийся активный объект и грохай его наздоровье. И я тебе на это уже отвечал, кстате.

Ага. Цепляем за статическую переменную и привет.
Вся память остается навечно.

WH>>Гарантии того что нет гонок фигня.

V>В условиях отсутствия какой-либо динамики все гонки можно обнаружить до запуска программ.
Вот только она в обероне присутствует.

V>Может и ошибаюсь, и что с того? У меня на этот счет никаких комплеков. Но мне интересны только верифицируемые рассуждения, которые я смог бы повторить самостоятельно не торопясь с нужной мне подробностью... а не вот этот обмен междометиями. А пока что, стоило самостоятельно добавить к аргументам оппонентов 1-2 уровней подробностей, и всё рассыпается.

1-2 уровня бессвязных букв.

V>Не можно, ес-но. Изоляцию в смысле Сингулярити придется нарушить.

Не придется.

V>Но сам вопрос изоляции процессов в силе (см чуть выше в этом же посте). Чтобы было проще я уже предложил сценарий: скажем, некая корабельная навигационная система? Или возьмем военного робота, управляющего ракетным комплексом. У нас стоит задача выжать максимум вычислительной эффективности от железки. Ес-но, современные ОС, типа Windows или Linux никакого максимума не дадут и близко. Твои предложения?

Написать ДСЛ для управления этим роботом и скомпилировать его.
Это будет заведомо более эффективно чем оберон.

V>Я его видел давно, только не понял, что именно ты хотел там сказать? Это нормальная регистрация объектов в статических данных.

Оно и видно.
Это я к тому, что никто не мешает сожрать всю память.

V>Например, remoting в дотнете работает точно так же как ты там написал — через статические списки. Только поэтому локальный прокси может жить до тех пор, пока жив удаленный стаб, хотя на него никто локально не ссылается.

К делу не относится.

V>Относится. Ты не сможешь в такой список пихать все подряд объекты, получаемые невесть откуда. Ты получать невесть откуда объекты-то не сможешь.

Это не важно.
Важно то, что я могу сожрать всю память.
И никто ее отобрать обратно не сможет.

V>Жесткая статическая типизация — это совершенно другой подход к программированию. В рамках Сингулярити и C#, скажем так, это недостижимо. Там любой мало-мальский код срывается в динамическое приведение типов. Се ля ви, человеческая слабость.

Ну что за бред ты ту опять несешь?

V>Поэтому там изолированность процессов скорее всего требуется. Ведь динамическое приведение типов нарушает ссылочную прозрачность, и автоматически уже можно мало чего проверить...

Феерия продолжается.
Ссылочная прозрачность это про неизменяемость.
К слову в хаскеле динамические привидения типов тоже есть.

V>Ну вот разве что типобезопасность каналов, которые обязательны для изоляции недетерминированных программ друг от друга.



V>>>без посредников, то бишь без копий нужной инфрмации.

WH>>Это снова бред.
V>Это не бред. Это определение роли сообщений — быть посредниками информации.
А не приходило в голову, что сообщение может быть адресом?
А не полной копией данных.

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


1)Это можно сделать и в модели сингулярити. Просто добавляем шаренный флаг и все.
2)Это не имеет смысла. Ибо если объект висит и ждет, когда этот флаг будет установлен, то он так и не проснется.
Ну и ABA тут будет отжигать в полный рост.

V>>>Динамическая загрузка статических зависимостей, заметь. Модуль загружается при первом обращении к нему. То бишь зависимость торчит статически, но если модуль не вызвается, он не загружен.

WH>>Но ты никогда не знаешь, какой еще модуль использует данный.
WH>>И сколько их.
WH>>И когда они появятся.
V>Вообще, мыслить надо объектами, а не модулями, в этом идеология. Зачем объекту знать, кто его использует? Он дает АПИ и честно его реализует, вот и всё.
Ох. Модуль в обероне тоже объект.
Причем такой, который удалить нельзя.

V>>>А поддержка уникальных ссылок в паскалях всегда была изкаробки.

WH>>Что за бред.
WH>>Паскаль ты не знаешь.
WH>>Не было там никогда уникальных типов.
V>Да вроде доходчиво пояснил, что происходит.
Ага. Объяснил то, что ты представления не имеешь о том, что такое уникальный тип.

V>Это ровно о том, нахрена вообще нужны уникальные типы. Они нужны для тупых компиляторов. Это перенос сложности с компилятора на человека. Ты так и не понял, в каких случах и для чего автоматичеески создается копия значения, а когда нет?

Лолшто?
Уникальные типы проверяют уникальность ссылки на объект, который по логике должен иметь ровно одну ссылку.
Особенно это актуально когда объект по ходу дела тип меняет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[41]: Оберон круче всех!
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.07.12 09:49
Оценка: :)
Здравствуйте, vdimas, Вы писали:

V>2. ЯВУ с высокой степенью неоднозначности, но "неглубокими" выражениями. Типичный представитель — С++. Парсеры с откатами тоже сосут не нагибаясь, поэтому LALR или GLR.


К твоему сведению. У С++ вообще нет неоднозначеностей в грамматке. Просто она КЗ. Там надо иметь таблицу символов в процессе парсинга.

V>Вырезка:

V>

V>C and C++ both allow the following statement:

V>x * y ;

V>It has two different parses:
V> It can be the declaration of y, as pointer to type x
V> It can be a multiply of x and y, throwing away the answer.

V>...

V>And if you cheat enough, you can make LR parsers work for C and C++. The GCC guys did for awhile, but gave it up for hand-coded parsing, I think because they wanted better error diagnostics.

V>There's another approach, though, which is nice and clean and parses C and C++ just fine without any symbol table hackery: GLR parsers. These are full context free parsers (having effectively infinite lookahead). GLR parsers simply accept both parses, producing a "tree" (actually a directed acyclic graph that is mostly tree like) that represents the ambiguous parse. A post-parsing pass can resolve the ambiguities.

V>We use this technique in the C and C++ front ends for the DMS Software Reengineering Tookit. They have been used to process millions of lines of large C and C++ systems, as well as dozens of other languages.


И что ты тут вычитал? Это неоднозначность для КС-парсеро. Добавление таблицы символов и проверки идентификаторов по ней делает грамматику однозначной КЗ грамматикой.

Ты сейчас дискредитируешь себя в глазах окружающих.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Оберон круче всех!
От: vdimas Россия  
Дата: 22.07.12 11:00
Оценка:
Здравствуйте, vdimas, Вы писали:

О! Смешно один и тем же лицам.

Это, конечно, ничего, что самая популярная ОСь вот только-только переходит с процедурного системного АПИ на АПИ в виде ООП/КОП. То бишь, определяется такой вид подачи АПИ как минимум на ближайшие лет 20-30. И это ничего что самая популярная платформа для Embedded (наиболее активно развивающего направления IT) имеет АПИ, определенное в Java-стиле, то бишь тоже сугубо на ООП/КОП... Главное, делать как можно более загадочное лицо и улыбаться. )))
Re[46]: Оберон круче всех!
От: vdimas Россия  
Дата: 22.07.12 11:47
Оценка:
Здравствуйте, WolfHound, Вы писали:

V>>Описка, ес-но, читать: ...где Обязательно объявление идет впереди использования...

V>>Вроде из контекста должно было быть понятно.
WH>А в прошлом сообщении ты начал крутиться в другую сторону.

В какую еще другую, если я предложил представить язык с синтаксисом С++, но с отсутствующими требованиями относительно предварительных объявлений. Ты уже успел забыть С++, что ле? Всё равно не поверю.

V>>Мде? Меня наоборот ругают за излишние подробности. Ты полная противоположность.

WH>Так ты не подробности рассказываешь.
WH>Ты кучу букв, не относящихся к делу пишешь.

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


V>>Кароч, тему закрыли, это переходит все границы.

WH>Слив засчитан.

Дык, ты и слил, НИ РАЗУ не ответив на прямо поставленный один и тот же вопрос в уже 4-х независимых темах. Это залет.


V>>Тебе можно было сказать в чем дело еще тогда и сразу. Я ХЗ что за чудеса скромности ты решил продемонстрировать.

WH>Так я сразу сказал.
WH>Проблемы с альфой.

А в Киеве дядька. А сформлировать ответ ты боишься по понятным причинам. Чтобы не усугублять свой epic fail.


V>>>>Формула эта — простая линейная пропорция.

WH>>>Не правильно.
V>>)))
WH>Я же говорю. Ты не понимаешь что такое альфабленд.
WH>И как он работает, если пиксели содержат альфу.

Я же говорю, тебе нечего ответить по существу, поэтому будешь юлить бесконечно. Ну юли дальше.


V>>Не могу догадаться, я не получал картинок с искаженной статистикой, а у тебя по неправильной картинке идет искажение, видимое невооруженным глазом. А не пробовал гистограмму строить?

WH>Еще раз. Ты даже не понимаешь, что ты видишь.
WH>Проблемы с альфой и только с альфой.

1. Вопрос на засыпку — а зачем вообще нужна линейная шкала отсчетов при ресэмплинге? С чего ты решил гамму-то проигнорировать? Не хочешь нарисовать искажения хотя бы для самой простой интерполяции при ресэмплинге — линейной, при гамме, отличной от 1?

2. Зачем нужна гистограмма и как ее получить для изображения с альфа-каналом, мы тоже не знаем? ))) ЧТД.

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


WH>>>Так можно и без каналов. Не нарушая изоляции процессов.

V>>А как?
WH>Да как угодно.
WH>Главное чтобы указатели через границу процесса не просачивались.

Дык, это уже есть в Сингулярити, или очередная "маленькая потенциальная доработка"? И как мне с тобой что-то обсуждать, если на каждый технический аргумент у тебя одно и то же: "а вот можно подшаманить, а здесь подкрутить" и т.д. до бесконечности?

Понимаешь, написать в будущем можно что угодно.. давай уж тогда сменим вывеску темы на "как бы это могло быть?". Но даже в этом случае в Обероне гораздо проще на сегодня запретить передачу несинхронизированных мутабельных объектов прямо или косвенно м/у активными объектами (с учетом атомарности операций, например, над машинным словом), чем в Сингулярити. Бо в Сингулярити вообще нет возможности передать в другой процесс ссылку на некий расшареный объект, который нужен, чтобы представлять из себя расшаренный кусок памяти, где бы процессы обменивались несрочными флагами в самой дешевой манере.

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

V>>Не покажу ес-но.
WH>Ну, значит, туда я тебя и записываю.

Давай так, это я тебя записываю в безответственные бредогенераторы до тех пор, пока ты не покажешь, как в сингулярити передать ссылку на объект из одного процесса в другой. (см. предыдущий абзац). Требовать то, о чем я тебе утверждаю что это невозможно (см. предыдущий абзац) — это уже совсем наглое юление с твоей стороны.


V>>Не дашь ссылку или пример кода, где бы видна была работа такого оптимизатора? Или это "потенциальное преимущество"?

WH>Читай отчет по сингулярити.
WH>Там английским по белому написано.

Ясно. Т.е. не дашь.

V>>Это твои фантазии. Курить надо статистику изображения при ресэмплинге. И да, бывает далеко не только альфабленд, но и другие операции с масками прозрачности. Но оп-па, они все покрываются описанным мною алгоримом при ресэмплинге.

WH>Опять бредишь.

Т.е. над масками прозрачности ты умеешь только альфа-бленд? ЧТД.

WH>Осталось только понять что система типов сингулярити и есть такой верификатор.

WH>Причем работает в 100% случаев.

Ясно. Т.е. чем отличается верификация при наличии или отсутствии динамических приведений типов, мы тоже не понимаем. ЧТД.

WH>А в обероне его нет и не предвидится.


Для Оберона такой верификатор будет на порядок проще, бо в языке соблюдается ссылочная прозрачность.

WH>В случае даже если ты это сделаешь для оберона ничто не заставит людей запускать твой верификатор.


1. Верификатор можно вставить в загрузчик.
2. В инсталлятор.
Выбирай.

WH>В случае с сингулирити у нах просто нет выбора.


Нет выбора до тех пор, пока не написать такой драйвер жесткого диска, что выбор появится. )))
Речь-то об инсталляторе+загрузчике. Какие проблемы написать альтернативный и то и тот?


WH>>>Да и не на всех архитектурах запись/чтение указателя атомарны.

V>>Это к делу не относится. Вопрос стоял так: почему бы не использовать на порядок более дешевые ср-ва, если они есть?
WH>Опять сам с собой разговариваешь.
WH>Разговор про то, что оберон небезопасный язык.

Т.е. на прямо поставленный вопрос мы опять не можем дать прямой ответ и срочно переводим тему? ЧТД.


WH>>>Каналы абсолютно пассивны и полностью автономны.

WH>>>И убивают их процессы во время собственной смерти.
WH>>>Таким образом, глобального списка каналов не существует.
V>>А единого списка процессов тоже нет?
WH>Не нужен.

А как будешь прибивать "зажравшийся процесс" (С)? Где его искать?


V>>А выражение "ссылка прямая либо косвенно" из синглтона ты не сообразил?

WH>Это просто набор слов.

Нет, это рядом обсуждали что есть статические мемберы и причем тут синглтоны. Я предположил, что список процесов в операционке мог бы быть таким синглтоном. Облом было повторяться об одном и том же снова и снова подробно... не ожидал, что ты быстро забудешь что было пару дней назад.

V>>И таки память под конкретный канал берется не из общей кучи? )))

WH>Ну, только если под общей кучей подразумевать общее адресное пространство.
WH>Но если не подразумевать, то нет.

Ну всё с тобой ясно. Посмотри со стороны на свои посты... Почетный приз Болотного Ужа присуждается Wolfhound.

V>>Аууу, давай-ка ближе к телу.

WH>С таким собеседником без шансов.

Дык, еще бы. Я тебе уползти не дам. Тебе придется кажое свое юление повторить более одного раза, для надежности. Чтобы я точно убедился, что тебе не просто было лень/некогда отвечать в конкретном посте, а ты принципиально отказываешься/не можешь этого сделать. Дык, твой выбор, каждый сам кузнец своего счастья.
Re[2]: Оберон круче всех!
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.07.12 12:12
Оценка:
Здравствуйте, Cyberax, Вы писали:

V>>Скорее, ровно наоборот. Идеи Оберона просты, мощны, но на первый взгляд их мощь неочевидна. Это развитие ООП ровно в ту сторону, которая стала неожиданно популярной буквально недавно: GC, функциональные типы, динамическая загрузка и выгрузка модулей, акторы и прочая "новомодная" асинхронность (AWAIT в Active Oberon) изкаробки.

C>Да ну? Бредить переставай.

C>В Обероне нет:

C>1) Алгебраических типов и Pattern Matching
C>2) Generic'ов — нельзя даже сделать банальный типобезопасный map.
C>3) Макросистемы
C>4) Зависимых типов
C>5) Typeset'ов
C>...
C>Это унылое дерьмо мамонта из 80-х годов.

В плане истории важно не то что в нем нет, а то что в нем появилось. К сожалению, я не могу вспомнить ничего.

C>Чувак, я участвовал в эпичном треде о "синтаксическом оверхеде". Это ты ничерта не знаешь об Обероне.


Давай по уважительнее. А синтаксический оверхэд — это было сильно, да.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[54]: Оберон круче всех!
От: vdimas Россия  
Дата: 22.07.12 12:29
Оценка:
Здравствуйте, WolfHound, Вы писали:

V>>Легко. Популярная 24-битная адресация у PCI-устройств. Т.е. мапить можно только конкретные ФИЗИЧЕСКИЕ диапазоны адресов.

V>>Конечно, это всё разруливается несложным алгоритмом через mmap (чтобы привязать некий юзверский диапазон к физическому mmap-IO), но сам этот вызов из юзверского кода — вообще приговор всему, что мы тут обсуждали. Нет его в Сингулярити для юзверского кода и никогда не будет.
WH>И что помешает мне выделить память в этом диапазоне?
WH>И почему же это приговор?
WH>Можешь сказать?

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

WH>Особенно если пользовательский код скажет: Дай мне кусок памяти подходящий для DMA.

WH>После чего просто отправит его в драйвер.

Покажи плиз, как оформить этот небезопасный код, чтобы его пропустил верификатор?

WH>Единственная опасность это DoS атака. Когда процесс начнет жрать эту память и не отдавать.

WH>Но такие процессы можно прибивать автоматом. И освобождать все что они нахапали.

Это не тот уровень опасности, это уровень устойчивости к стресс-сценариям, он не несет опасность в плане обсуждаемого несанкционированного доступа к произвольным данным. Мне пока хочется понять трюк с записью в ПРОИЗВОЛЬНУЮ память на уровне пользовательского кода. Я так-то со многими доводами относительно Сингулярити соглашался из-за того, что считал, что это невозможно. Если же это возможно, хотелось бы увидеть — как?


V>>На этом сайте лежит русскоязычный перевод технического репорта по Сингулярити. Очень рекомендую освежить, прежде чем вернуться к теме.

WH>Очень кривой перевод надо сказать.

Это я не тебе. А перевод не такой уж кривой. Автор перевода присылал мне его на коррекцию когда-то, но после нескольких первых откорректированных и возвращенных исправленых абзацев я увидел, что мои уточнения, скажем так, задевают автора перевода... Просто мои уточнения шли в плане тонкостей речевых оборотов (репорт написан довольно свободным языком), и эти исправления спровоцировали спор в стиле "а какая разница???". В общем, я самоустранился от сего неприятного времяпрепровождения, хотя успел сверить перевод с оригиналом. Если не обращать внимание на тонкости речевых оборотов, всё более-менее верно.
Re[47]: Оберон круче всех!
От: WolfHound  
Дата: 22.07.12 12:32
Оценка:
Здравствуйте, vdimas, Вы писали:

V>>>Описка, ес-но, читать: ...где Обязательно объявление идет впереди использования...

V>>>Вроде из контекста должно было быть понятно.
WH>>А в прошлом сообщении ты начал крутиться в другую сторону.
V>В какую еще другую, если я предложил представить язык с синтаксисом С++, но с отсутствующими требованиями относительно предварительных объявлений. Ты уже успел забыть С++, что ле? Всё равно не поверю.
Вот я и говорю что в другую.
Ты сам себя то почитай.

V>Гы, если не понимаешь, то для тебя многие вещи пустой звук, ес-но... как для троешников на уроках в школе. Ну и плюс приходится тратить силы на борьбу с тобой, бо ведешь спор очень скользско (хотя бы насчет альфы пример).

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

V>Т.е., с одной стороны, всячески уходишь от прямых ответов на прямые вопросы, с другой стороны, постоянно пытаешься меня сосредоточить на островках своей эрудиции, хотя мне и нафик такое направление обсуждение не сдалось... и хрен тебя растолкаешь хотя бы немного вправо-влево.

Не суди обо мне по себе.

V>Дык, ты и слил, НИ РАЗУ не ответив на прямо поставленный один и тот же вопрос в уже 4-х независимых темах. Это залет.

Я каждый раз отвечал прямо.
Но ты не можешь понять, что тебе говорят.

V>А в Киеве дядька. А сформлировать ответ ты боишься по понятным причинам. Чтобы не усугублять свой epic fail.

Так это твой epic fail.
Открой википедию наконец.

V>Я же говорю, тебе нечего ответить по существу, поэтому будешь юлить бесконечно. Ну юли дальше.

Открой википедию наконец.

V>1. Вопрос на засыпку — а зачем вообще нужна линейная шкала отсчетов при ресэмплинге? С чего ты решил гамму-то проигнорировать? Не хочешь нарисовать искажения хотя бы для самой простой интерполяции при ресэмплинге — линейной, при гамме, отличной от 1?

Я гамму не игнорировал.
Это ты в своем больном воображении придумал.

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

Сказал человек, который не знает, как смешать два пикселя с альфой.

V>Дык, это уже есть в Сингулярити, или очередная "маленькая потенциальная доработка"? И как мне с тобой что-то обсуждать, если на каждый технический аргумент у тебя одно и то же: "а вот можно подшаманить, а здесь подкрутить" и т.д. до бесконечности?

В сингулярити главное это изолированные процессы.
Способов общаться между изолированными процессами без нарушения изоляции миллион.

В обероне изоляции нет.
Никакой.
Ваще.

V>Понимаешь, написать в будущем можно что угодно.. давай уж тогда сменим вывеску темы на "как бы это могло быть?". Но даже в этом случае в Обероне гораздо проще на сегодня запретить передачу несинхронизированных мутабельных объектов прямо или косвенно м/у активными объектами (с учетом атомарности операций, например, над машинным словом), чем в Сингулярити. Бо в Сингулярити вообще нет возможности передать в другой процесс ссылку на некий расшареный объект, который нужен, чтобы представлять из себя расшаренный кусок памяти, где бы процессы обменивались несрочными флагами в самой дешевой манере.

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

V>>Про инсталлятор с верификатором говорил уже. Это же не ядро ОС, это просто запускаемое приложение. Это инфраструктура.
WH>Которой в бутылке нет. И сделать нельзя.
WH>Ибо изоляции всё равно нет.

Яуже начинаю тебя подозревать в том, что ты вызов метода объекта пытаешься отличать от посылки ему сообщения. И вся твоя изоляция держиться только на это разнице. Это надуманно. Политику синхронизации определяет вызваемый ресурс. Если он помечен, как синхронизируемый, никакой внешний код не вызовет его в несинхронизируемом виде.

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

V>Давай так, это я тебя записываю в безответственные бредогенераторы до тех пор, пока ты не покажешь, как в сингулярити передать ссылку на объект из одного процесса в другой. (см. предыдущий абзац). Требовать то, о чем я тебе утверждаю что это невозможно (см. предыдущий абзац) — это уже совсем наглое юление с твоей стороны.

Восстановил контекст.

Ты тут втирал, что оберон такой же безопасный как сингулирити.
Я тебе показал, что это не так.

Теперь ты пытаешься обвинить меня, черт знает в чем.
Как типично.

WH>>Осталось только понять что система типов сингулярити и есть такой верификатор.

WH>>Причем работает в 100% случаев.
V>Ясно. Т.е. чем отличается верификация при наличии или отсутствии динамических приведений типов, мы тоже не понимаем. ЧТД.
Ничем. Совсем ничем.
Но ты можешь показать класс. И в очередной раз отжечь.

WH>>А в обероне его нет и не предвидится.

V>Для Оберона такой верификатор будет на порядок проще, бо в языке соблюдается ссылочная прозрачность.
Ну что за бред ты опять несешь?
Ссылочная прозрачность это про неизменяемость. Понимаешь? НЕИЗМЕНЯЕМОСТЬ!
А не про динамические привидения типов.

Ты даже не знаешь, что означают термины, которыми ты пользуешься.

V>1. Верификатор можно вставить в загрузчик.

V>2. В инсталлятор.
V>Выбирай.
И получить сингулярити.

WH>>В случае с сингулирити у нах просто нет выбора.

V>Нет выбора до тех пор, пока не написать такой драйвер жесткого диска, что выбор появится. )))
V>Речь-то об инсталляторе+загрузчике. Какие проблемы написать альтернативный и то и тот?
Ну да. Нашёл всего два вектора атаки на сингулирити (которые легко закрыть) и теперь пытаешься оправдать ими бредовость бутылки.

WH>>>>Да и не на всех архитектурах запись/чтение указателя атомарны.

V>>>Это к делу не относится. Вопрос стоял так: почему бы не использовать на порядок более дешевые ср-ва, если они есть?
WH>>Опять сам с собой разговариваешь.
WH>>Разговор про то, что оберон небезопасный язык.
V>Т.е. на прямо поставленный вопрос мы опять не можем дать прямой ответ и срочно переводим тему? ЧТД.
Это ты переводишь тему.
Разговор шёл про безопасность.
Ты начал юлить на тему эффективности.
Которой в обероне еще меньше чем в бутылке.
Ибо мониторы требуют больше работы, чем посылка сообщения.

V>>>А единого списка процессов тоже нет?

WH>>Не нужен.
V>А как будешь прибивать "зажравшийся процесс" (С)? Где его искать?
В списке дочерних процессов пользователя.
Просто для каждого пользователя создаём процесс и все.
И каждый процесс может создать дочерний процесс.
Получаем дерево процессов.
И если один из них зажрался, просто прибиваем всё поддерево разом.

V>>>А выражение "ссылка прямая либо косвенно" из синглтона ты не сообразил?

WH>>Это просто набор слов.
V>Нет,
Нет. Это именно не согласованный набор слов.

V>это рядом обсуждали что есть статические мемберы и причем тут синглтоны.

И то и другое должно умереть.

V>Я предположил, что список процесов в операционке мог бы быть таким синглтоном.

Только не нужно это.

V>Облом было повторяться об одном и том же снова и снова подробно... не ожидал, что ты быстро забудешь что было пару дней назад.

Это бессвязный набор слов. Что они означают понять невозможно.

V>>>И таки память под конкретный канал берется не из общей кучи? )))

WH>>Ну, только если под общей кучей подразумевать общее адресное пространство.
WH>>Но если не подразумевать, то нет.
V>Ну всё с тобой ясно. Посмотри со стороны на свои посты... Почетный приз Болотного Ужа присуждается Wolfhound.
А что конкретно тебе не нравится?
Или ты хочешь сказать, что единое адресное пространство это обязательно одна куча?

V>Дык, еще бы. Я тебе уползти не дам. Тебе придется кажое свое юление повторить более одного раза, для надежности. Чтобы я точно убедился, что тебе не просто было лень/некогда отвечать в конкретном посте, а ты принципиально отказываешься/не можешь этого сделать. Дык, твой выбор, каждый сам кузнец своего счастья.

Э нет. Это я тебе уползти не дам.
И чем дальше, тем больше я убеждаюсь, что разговор с тобой не имеет смысла.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Оберон круче всех!
От: WolfHound  
Дата: 22.07.12 12:33
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Давай по уважительнее. А синтаксический оверхэд — это было сильно, да.

Этот топик тоже сильно. Только место Губанова vdimas занял.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.