Re[42]: Оберон круче всех!
От: vdimas Россия  
Дата: 19.07.12 23:30
Оценка:
Здравствуйте, Cyberax, Вы писали:

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

V>>Тебе не пофиг ли, что именно признает некий vdimas из интернета? Тебя объективная реальность интересует или чтобы тебе было в споре комфортно? Ссылки на реальные проекты уже приводил.
C>Где они? Где их можно скачать и посмотреть?

C>Я пока ничерта не вижу, кроме убогой БлевотнойБутылки.


Т.е. по ссылке не ходил?

V>>Интереса ради обрати внимание на поддержку реалтайма, встроенного в язык:

V>>http://www.embeddedcomputingconference.ch/pdf_sec_2009/4A2-Glavitsch.pdf
C>А причём здесь realtime?

Дык, ОСь же одна из самых эффективных на вводе-выводе, грех в языке не поддержать реалтайм.

C>И прямо оттуда:

C>

C>Real-time tasks
C> Real-time tasks have highest priority
C> Can interrupt garbage collector
C> Garbage collector runs as separate thread (так как там древний как говно мамонта трёхцветный GC)
C> Are not allowed to modify object graph ещё бы, так как может столкнуться с GC
C> Are not allowed to allocate memory
C> Are not allowed to use thread synchronization constructs such as
C>EXCLUSIVE and AWAIT
C> May only call procedures/methods that itself do not allocate memory
C> Enforced by compiler directive

C>Вау, такая поддержка, ну ТАКАЯ поддержка.

C>Ты бы не позорился.


Понятно, и здесь ты тоже не в теме. Да что же за фигня... Ты чем по работе хоть занимаешься?

Короче, цимус в том, что:
1. контроллируется компилятором. А точно такое же для VoIP я бегал по всему коду глазками и зачищал за всех ручками;
2. выполняется обычно в контексте прерывания прямо от железа;

А не в теме ты потому, что ес-но никаких выделений памяти в реалтайме быть не может. Реалтайм-события могут генерится до сотни тысяч событий в секунду, какие там нафик выделения памяти? Обработка этого хозяйства только на заранее выделенных буферах. Данные просто переливаютсяиз буфера в буфер по мере вычисления, так оно и работает.
Re[48]: Оберон круче всех!
От: vdimas Россия  
Дата: 19.07.12 23:46
Оценка:
Здравствуйте, Cyberax, Вы писали:

V>>>>Агащаз. Базу данных я буду хранить даже на разных жестких дисках, вынося text/blob на отдельный физический носитель.

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

C>Понятное дело, что можно и на часть носителя. Возможно, реализованную в виде виртуального раздела или отдельного файла/каталога. Это совершенные мелочи реализации.


ЧТД. Куда ни копни — в той же Сингулярити чего надо тоже нет. И приходится на лету лихорадочно изобретать.
Спасибо, мне отлично удалось заставить тебя спорить с самим с собой, достаточно было подменить вывеску. В следующий раз я буду тупо копипастить твои аргументы, приведенные в защиту Сингулярити.


V>>И для избежания разночтений, заранее поясню, что консоль к базе — это не RDP-сессия, в которой запросто можно показать диалог от имени другого юзверя (ситемной записи, типа как выскакивают диалоги в Win7), это просто соединение по TCP + аутентификация всего одним юзвером, + функциональность на основе библиотек, аналогичных SQLDMO/SQLSMO/SQLRMO.

V>>Смогешь разрулить, как считаешь?
C>1) Ты сполз с обычных приложений на какие-то непонятнораспределённые системы. Далее:

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

C>

C>- А как это делается НА ОБЕРОНЕ?
C>- Очень просто, так как на Обероне нет баз данных. Checkmate. Муахахаха.


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

C>2) Никаких проблем с надёжной передачей идентичности пользователя через TCP нет. Этим занимается, для примера, Kerberos и задача сводится к: "открываю на удалённом хосте консольку под местным администратором и говорю 'на носителе XX разрешить создавать базу данным пользователям группы ПОЛЬЗОВАТЕЛЬ_БД' ".


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

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


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

C>Причём подобные системы уже существуют и активно используются: http://docs.oracle.com/cd/E19082-01/819-7309/txnet-2/index.html


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

На сегодня адью.
Re[46]: Оберон круче всех!
От: vdimas Россия  
Дата: 19.07.12 23:55
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>В Сингулярити, кстати, сервис логов есть.


Сервис логов — это просто приложение. Напиши этот сервис логов хоть даже на самописную операционку.

V>>1. Твой говноандроид вообще вскрывается на раз;

C>Программой без привиллегий? Неа, не вскрывается.

V>>2. По безопасности кода ему до Оберона как до пекина раком;

C>Ты вообще понял о чём говоришь? В Обероне безопасности НЕТ ВООБЩЕ.

Угу, т.е. все это время ты даже не понимал, что есть безопасность кода? Зачёт.

C>Её не то что не надо взламывать, а её НЕТ ВООБЩЕ И ПОЛНОСТЬЮ. Любой модуль может что угодно делать с системой. Показать как БлювотнуюБутылку сломать простой программой?


Давай. Без модуля SYSTEM. Считаем, что у нас программа без привилегий и (согласно выданной рядом ссылке) я могу ограничить возможность приложения зависеть от SYSTEM. Ломай.

V>>3. По эффективности работы ему до Оберона как до Пекина раком туда и обратно;

C>Ну раз сказал — давай бенчмарки. На ARM-устройстве.

Нахрена тебе такие сложности? Бери Android-x86. Будем перемножать матрицу 1000x1000.
Попкорном я уже запасся, посмотрю на твои старания. Свою программу напишу через минуту после того, как ты будешь готов. Свистнешь как управишься.
Re[44]: Оберон круче всех!
От: vdimas Россия  
Дата: 20.07.12 00:02
Оценка: -1
Здравствуйте, Cyberax, Вы писали:

C>Изоляция процессов с помощью разграничения доступа к ресурсам путём использования неподделываемых handle'ов называется http://en.wikipedia.org/wiki/Capability-based_security . В Юниксах она частично может быть реализована с помощью запрета для процессов открывать файлы, кроме тех, дескрипторы которых получаются от доверенных процессов. Это используется на практике в юниксах уже 20 лет, для этого есть специальный механизм передачи файлов через локальные сокеты ( http://archives.neohapsis.com/archives/postfix/2000-09/1476.html ).


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

OpenFileDialog возвращает не строку как сейчас, а файл.

Покажи мне, где это уже 20 как есть в реальном мире. Ответь хотя бы раз за свои слова.


C>>>Конкретно в десктопном сегменте — так работает Google Chrome. Процессы-рендереры могут писать только в файлы, handle'ы на которые получают от родительского процесса.

V>>Это уже операционка? И это точно человек на том конце интернета, а не бот?
C>В принципе, уже да (см. http://www.google.com/intl/en/chrome/devices/ )

V>>Как GoogleChrome относится к Сингулярити? А к Оберону? Мало того, что пример своей нерелевантностью характеризует отсутствие логического мышления, дык еще у тебя хватает наглости эту нерелевантность пытаться натягивать сугубо на одну сторону спора. Хорошо себя чувствуешь? Нерелевантные аргументы априори можно натягивать с одинаковым успехом в обе стороны.

C>Ага, "слаботипизированный OCaml".

Угу, и давай вилять. Потому что как обычно — сказать нечего. А когда есть чего — вечно невпопад. См. начало этого поста.
Даю еще одну попытку. Как GoogleChrome относится к Сингулярити? Почему не к Оберону?

C>Тебе посчитать количество твоих увиливаний в сторону и переходов на непонятно что? Ну типа, перехода с ФВП на контроллеры с ОЗУ в 512 байт.


Считай. Мне и считать не надо — у тебя все сообщения нерелевантны. Даже в этом посте дважды.
Re[47]: Оберон круче всех!
От: Mamut Швеция http://dmitriid.com
Дата: 20.07.12 06:35
Оценка:
V>Байткод, кстати, в бутылке тоже присутствует и тоже ровно с той же целью — для переносимости.

M>Ты хочешь сказать, в BlackBox/BlueBottle выполняется нативный код?

Мде...
Ес-но.



dmitriid.comGitHubLinkedIn
Re[41]: Оберон круче всех!
От: WolfHound  
Дата: 20.07.12 07:35
Оценка:
Здравствуйте, vdimas, Вы писали:

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

Те в обероне модуля SYSTEM не существует?

V>1. Парсинг потока из сети. Область деятельности — EDI. Размеры документов — мегабайты. Неоднозначность низкая, но не позволяет обходиться регулярными грамматиками. Любые парсеры с откатами в таких сценариях выглядят убого.

Бла-бла-бла.
Грамматику давай.

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

БРЕД! Полнейший.
С++ невозможно адекватно разобрать контекстно-свободным парсером.
А GLR строго контекстно-свободный.

V>Вырезка:

Читай её сам.
GLR не справляется.
Нужен постпроцессинг.

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

V>Назови просто имя алгоритма фильтрации и/или ресэмплинга. Я гуглом пользоваться умею. Либо опиши словами (можно на псевдокоде) алгоритм, я тебе скажу как он называется. Самому не любопытно разве узнать, какой именно велосипед ты самостоятельно изобрел?

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

V>Пока до технических моментов не дойдем, заметно не будет.

Так ты на элементарщине сыпешься.

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

Чего? Это название гуглиться не может.

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

Это полный звездец.
Ты действительно не понимаешь, что на бутылке сингулярити не сделать?
Ты действительно не понимаешь, сколько возможностей для той же оптимизации дают изолированные процессы?
Ты действительно не понимаешь, что на мониторах lockfree не получится?

V>Про инсталлятор с верификатором говорил уже. Это же не ядро ОС, это просто запускаемое приложение. Это инфраструктура.

Которой в бутылке нет. И сделать нельзя.
Ибо изоляции всё равно нет.

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

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

V>ЧТД. Куда ни копни — в той же Сингулярити чего надо тоже нет. И приходится на лету лихорадочно изобретать.

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

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

В твоем воображении.

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

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

V>Дудки, это должно быть автоматически. Ты просто кнопку должен нажать в GUI удаленного приложения. А изначально, напомню, предлагалось, чтобы некий FileOpenDialog возвращал не имя файла, а открытый файл. Вот давай, возвращай открытый файл через удаленную не RDP-консоль.

Ты говоришь, так как будто это единственный механизм дать права приложению.
Воображение отсутствует.
Совсем.

V>Спасибо, класных лулзов посшибал. Если ты еще не воткнул где именно — Вольфхаунд тебе растолкует. Ты его терию только что уничтожил, ну просто под асфальт закатал.

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

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

Бред.

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

Опять бред. Оберон не защищает от гонок.
Гонки могут привести к расстрелу памяти.

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

Нет.

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

Что там пересекается?
Там все разное.

V>И в чем аргумент? С чего ты взял, что точно так же невозможно этой защитой наградить ту же AOS?

С того что там нет изоляции.
Вообще нет.

V>В Сингулярити это выполняется не ядром операционки, а специальным приложением — инсталлятором.

В сингулярити изоляция обеспечивается моделью исполнения.

V>Кто мешает написать аналогичный инсталлятор для AOS?

Модель исполнения которая использована в бутылке.

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

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

V>Пофиг, защита не в ядре операционки находится, а на прикладном уровне. Это принципиально. А на этом уровне можно навертеть что угодно при наличии ресурсов..

Защита находится ни там и ни там.
Она находится на уровне модели исполнения, которой подчиняется и ядро, и прикладные программы.

V>Ты потерял нить.

Ты ее даже не находил.

V>Даже драйвер DMA тоже имеет простой интерфейс,

Проблема сингулярити не в драйверах ДМА, а в том, что интерфейс железок для работы с ДМА не имеет ничего общего между собой.
Поэтому они не смогли верифицировать работу конкретной железки с ДМА.
Если бы было IOMMU то им не пришлось бы.
Достаточно было бы заставить драйвер декларировать какую страницу памяти он собрался читать/писать. Статический контроль для этого сделать тривиально.
После чего становится совершенно наплевать на интерфейс железки. Ибо если она полезет не туда, то просто получится отлуп от IOMMU.

V>речь была о том, что рано или поздно самих этих драйверов IOMMU будет много.

Много это сколько?
100?
По сравнению с миллионами программ каждая из которых на порядки сложнее всех этих драйверов вместе взятых?

А ведь в бутылке придется сертифицировать буквально все.

При этом в сингулярити мы насчитали целые две группы драйверов.
Драйверы винта и драйверы IOMMU.

V>Прописать себя для автостарта не сможет, если правильно зону безопасности для интернета задать под виндами.

Еще что-нибудь переполнит и пропишется.

WH>>Да и для кражи данных юзера админ не нужен.

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

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

WH>Бред.

Предлагаю не отмахиваться от этого вопроса, он интересен. Согласно репорту Сингулярити, при инсталяции драйвера создается его некий манифест, который указывает ресурсы, к которым можно обращаться этому драйверу. Если целевой драйвер работает с другим драйвером-посредником, то вот ситуация — эти ресурсы (например, для окна DMA) он должен получать динамически. Но верификатор Сингулярити такой код не пропустит, т.е. не подзволит читать/писать произвольную память. Остается передавать непосредственно данные посреднику, чтобы тот их закачивал в DMA. А это не взлетит для видео однозначно. Или есть еще третий вариант?

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

WH>Опять бред. Оберон не защищает от гонок.
WH>Гонки могут привести к расстрелу памяти.

А могут и нет, если поле атомарного типа (машинное слово). Что мешает выяснять эти моменты верификатором, например, если некий объект забыли пометить как синхронизируемый, но к нему могут идти вызовы более чем от одного активного или несинхронизируемого объекта (в т.ч. в произвольных сочетаниях)?

Даже для сложного С++ Valgrind находит такие вещи на раз, а уж для простейшего байткода сам бог велел.



V>>И в чем аргумент? С чего ты взял, что точно так же невозможно этой защитой наградить ту же AOS?

WH>С того что там нет изоляции.
WH>Вообще нет.

Я тебя уже поправлял: единица изоляции там — это приватная память объекта. Активный Объект — это и есть процесс. И ты никак не можешь эту изоляцию нарушить через голову публичного АПИ объекта.
Если тебя лично напрягают глобальные переменные в модулях — это твои предрассудки. Модуль — это всего-лишь синглтон, это полный аналог обычного объекта, который заведомо будет существовать в единственном экземпляре в любой операционке, даже в Сингулярити. Как пример — список сетевых интерфейсов. И какая фиг разница, явно передавать ссылку на такой синглтон каждый раз, или обойтись одним уровнем косвенности меньше, воспользовавшись услугами загрузчика по ресолвингу имен?


V>>В Сингулярити это выполняется не ядром операционки, а специальным приложением — инсталлятором.

WH>В сингулярити изоляция обеспечивается моделью исполнения.

Тут не про изоляцию, а про безопасный для исполнения код.

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

Я бы предпочел, чтобы были доступны оба варианта, а за безопасностью следил верификатор. Кстати, для встроенной реализации каналов даже язык толком расширять не придется. Если помнишь, в Паскале файл — это не файл на диске, это порт последовательного доступа к типизированным кортежам. А за ним может быть что угодно.


V>>Кто мешает написать аналогичный инсталлятор для AOS?

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

Ладно, пошли механические ответы, уже не интересно. Спасибо за участие.
Re[48]: Оберон круче всех!
От: vdimas Россия  
Дата: 20.07.12 13:15
Оценка: -1
Здравствуйте, Mamut, Вы писали:

V>>Байткод, кстати, в бутылке тоже присутствует и тоже ровно с той же целью — для переносимости.


M>

M>>Ты хочешь сказать, в BlackBox/BlueBottle выполняется нативный код?

M>Мде...
M>Ес-но.



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

Но я не доктор.
Re[50]: Оберон круче всех!
От: vdimas Россия  
Дата: 20.07.12 13:32
Оценка:
Здравствуйте, WolfHound, Вы писали:

V>>ЧТД. Куда ни копни — в той же Сингулярити чего надо тоже нет. И приходится на лету лихорадочно изобретать.

WH>Есть.
WH>А даже если чего то нет в конкретной реализации то модель сингулярити такова что все о чем тут говорим, делается за день не напрягаясь.

Дык, если в эту степь рассуждать, что и в Оберон-ОС можно много чего прикрутить. Собственно, она таки позиционируется — это инструмент для разработки эффективных и надежных исполнительных сред.


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

WH>В твоем воображении.

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

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

WH>Осталось понять, что пользователь может спокойно дать приложению нужные права.
WH>Ты пойми. Нет разницы между тем, чтобы дать права приложению и пользователю.

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


V>>Дудки, это должно быть автоматически. Ты просто кнопку должен нажать в GUI удаленного приложения. А изначально, напомню, предлагалось, чтобы некий FileOpenDialog возвращал не имя файла, а открытый файл. Вот давай, возвращай открытый файл через удаленную не RDP-консоль.

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

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

WH>Воображение отсутствует.


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



WH>Что из того что написано по ссылке противоречит тому что я говорю?


Вот это:

C>Понятно, что для обеспечения общих инвариантов безопасности будет требоваться, чтобы клиентские системы тоже были безопасными. Тогда общение через сеть будет просто частным случаем посылки сообщений.
C>Причём подобные системы уже существуют и активно используются: http://docs.oracle.com/cd/E19082-01/819-7309/txnet-2/index.html


В этом подходе предлагается доверять сетевым ендпоинтам, наделяя соединения с ними теми же возможнстями/правами, как и локальные программы. Т.е. уже даже не надо патчить никакой код на атакуемой машине. Чтобы было понятно о чем речь: компьютерные сетевые картейки вообще никак не видят прозрачные ethernet-свичи.
Re[51]: Оберон круче всех!
От: WolfHound  
Дата: 20.07.12 14:01
Оценка: 100 (2)
Здравствуйте, vdimas, Вы писали:

V>Дык, если в эту степь рассуждать, что и в Оберон-ОС можно много чего прикрутить. Собственно, она таки позиционируется — это инструмент для разработки эффективных и надежных исполнительных сред.

Нельзя.
Модель исполнения не позволяет.
При этом в сингулярити http://en.wikipedia.org/wiki/Capability-based_security вшита прямо в модель исполнения.

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

Это можно сделать.
Но не нужно.
Ни одному приложению не нужны все права пользователя.
Максимум что нужно БД это права на чтение/записаь в некоторые папки.

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

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

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

При этом, не понимая, что тебе говорят.

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

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

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

Про шифрование и надёжные протоколы установления подлинности — ты как-то забыл.
Sapienti sat!
Re[52]: Оберон круче всех!
От: Cyberax Марс  
Дата: 20.07.12 14:11
Оценка:
Здравствуйте, WolfHound, Вы писали:

V>>Дык, если в эту степь рассуждать, что и в Оберон-ОС можно много чего прикрутить. Собственно, она таки позиционируется — это инструмент для разработки эффективных и надежных исполнительных сред.

WH>Нельзя.
WH>Модель исполнения не позволяет.
WH>При этом в сингулярити http://en.wikipedia.org/wiki/Capability-based_security вшита прямо в модель исполнения.
Шото как-то мне надоело с ним флеймить. В третий раз по кругу пошло обсуждение.

PS: можно ли в Немерле организовать что-то типа typeset'ов из Rust'а?
Sapienti sat!
Re[49]: Оберон круче всех!
От: WolfHound  
Дата: 20.07.12 14:23
Оценка:
Здравствуйте, vdimas, Вы писали:

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

WH>>Бред.
V>Предлагаю не отмахиваться от этого вопроса, он интересен.
Абсолютно не интересен, любому у кого есть хоть капля воображения.

V>Согласно репорту Сингулярити, при инсталяции драйвера создается его некий манифест, который указывает ресурсы, к которым можно обращаться этому драйверу. Если целевой драйвер работает с другим драйвером-посредником, то вот ситуация — эти ресурсы (например, для окна DMA) он должен получать динамически. Но верификатор Сингулярити такой код не пропустит, т.е. не подзволит читать/писать произвольную память. Остается передавать непосредственно данные посреднику, чтобы тот их закачивал в DMA. А это не взлетит для видео однозначно. Или есть еще третий вариант?

Что такое закачать в ДМА?
Правильно.
Записать данные в страницу памяти.
И сказать ДМА, где их брать.

Что мы и делаем.
После чего отдаем эти страницы кому надо.
И он без единого копирования говорит, кому надо, где брать данные.

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

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

V>А могут и нет, если поле атомарного типа (машинное слово). Что мешает выяснять эти моменты верификатором, например, если некий объект забыли пометить как синхронизируемый, но к нему могут идти вызовы более чем от одного активного или несинхронизируемого объекта (в т.ч. в произвольных сочетаниях)?

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

V>Даже для сложного С++ Valgrind находит такие вещи на раз, а уж для простейшего байткода сам бог велел.

Статически? В условиях загрузки новых модулей?

А динамически никому не нужно.
Ибо будет решето как в современных ОС.

V>Я тебя уже поправлял: единица изоляции там — это приватная память объекта. Активный Объект — это и есть процесс. И ты никак не можешь эту изоляцию нарушить через голову публичного АПИ объекта.

БРЕД!
Ибо ссылки на внутренние объекты могут быть беспрепятственно сохранены, где попало.

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

Бред.
В бутылке модуль глобален на всю ОС.
В сингулярити на процесс.
Хотя я бы их вообще отменил.
Не нужны они.

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

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

V>>>В Сингулярити это выполняется не ядром операционки, а специальным приложением — инсталлятором.

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

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

Бред.

V>Эта такая же модель исполнения, вид в профиль.

Способности к анализу отсутствуют.

V>ИМХО, тебя сбивает с толку термин "процесс", ты забываешь, что процесс — это объект операционной системы.

Ты опять говоришь с собой.

V>А в Обероне это объект языка.

Ох.
Ты что действительно не понимаешь, что в сингулярити для каждого процесса есть свое объектное пространство?
Что не могут существовать ссылки из одного процесса в другой?
И что оберон никак от этого не защищает?

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

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

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

Бред.
Не бывает таких верификаторов.
Особенно в условиях динамической загрузки кода.

V>Кстати, для встроенной реализации каналов даже язык толком расширять не придется. Если помнишь, в Паскале файл — это не файл на диске, это порт последовательного доступа к типизированным кортежам. А за ним может быть что угодно.

Бред.
Необходимы поддержка уникальных ссылок и проверка протоколов.

V>Ладно, пошли механические ответы, уже не интересно. Спасибо за участие.

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

C>PS: можно ли в Немерле организовать что-то типа typeset'ов из Rust'а?

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

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


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

WH>Те в обероне модуля SYSTEM не существует?

Давай мы сначала разберемся с OCaml. А то вы меня забодали тыкать одной и той же, вполне справедливой фразой. В отличие от Оберона, у тебя и возможности-то не будет узнать про зависимость от модуля Obj в конечном образе. А в Обероне можно явно запретить загрузку модуля с такой зависимостью.


V>>1. Парсинг потока из сети. Область деятельности — EDI. Размеры документов — мегабайты. Неоднозначность низкая, но не позволяет обходиться регулярными грамматиками. Любые парсеры с откатами в таких сценариях выглядят убого.

WH>Бла-бла-бла.
WH>Грамматику давай.

Да бери любые транзакции из EDIFACT X12.

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

WH>БРЕД! Полнейший.
WH>С++ невозможно адекватно разобрать контекстно-свободным парсером.
WH>А GLR строго контекстно-свободный.

Собсно, за последнее время ничего не произошло, хотя я все входы и выходы давал. Ты просто не удосужился уделить этому время.

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


V>>Вырезка:

WH>Читай её сам.
WH>GLR не справляется.
WH>Нужен постпроцессинг.

GLR даст все возможные корректные ветки разбора. Ес-но, приведенный отрезок не парсится ни одним контекстно-свободным парсером, даже TDOP. Но TDOP будет безбожно врать на этом примере, т.к. он разбирает первую попавшуюся ветку, как и ПЕГ, а GLR честно предоставит все варианты. А потом эти варианты уже ресолвятся решателем на основе программирования в ограничениях.


WH>А если в мой парсер добавить таблицу имен он это без всякого построцессинга разберет.


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

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


V>>Назови просто имя алгоритма фильтрации и/или ресэмплинга. Я гуглом пользоваться умею. Либо опиши словами (можно на псевдокоде) алгоритм, я тебе скажу как он называется. Самому не любопытно разве узнать, какой именно велосипед ты самостоятельно изобрел?

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

Гы, я просто пока не в курсе, что ты вкладываешь в слово "неправильно работать с альфой".

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


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

WH>Ключевое слова альфабленд.


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

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


Формула эта — простая линейная пропорция. Поэтому, чтобы сохранить статистику исходного изображения при ресэмплинге:
1. Изображение необходимо привести к линейной шкале, то бишь к гамме=1, а после преобразования вернуть гамму обратно.
2. Сам алгоритм ресэмплинга должен сохранять исходную статистику изображения.

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

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


V>>Пока до технических моментов не дойдем, заметно не будет.

WH>Так ты на элементарщине сыпешься.

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


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

WH>Чего? Это название гуглиться не может.

ABA-problem не гуглится? А сейчас?
Судя по проблемам с преодолением описки, ты даже и не слышал о такой? Ох уж эти мне "на элементарщине сыпающиеся" (С).

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

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

Делать надо

WH>Ты действительно не понимаешь, сколько возможностей для той же оптимизации дают изолированные процессы?


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

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

WH>Ты действительно не понимаешь, что на мониторах lockfree не получится?


Пока что видно, что это ты lock-free не понимаешь.

А по-делу — на мониторах нет, ес-но, а на interlocked-операциях из известного модуля — да.

V>>Про инсталлятор с верификатором говорил уже. Это же не ядро ОС, это просто запускаемое приложение. Это инфраструктура.

WH>Которой в бутылке нет. И сделать нельзя.
WH>Ибо изоляции всё равно нет.

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

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

WH>Бред.
WH>Никакой глобальной кучи каналам не нужно.

И точно бред. Ес-но для самого канала — нужно. Для сообщений внутри канала можно обойтись уже локальным пулом.

WH>И уж точно ни в каких списках их регистрировать не нужно.


?????

WH>Откуда ты вообще эти списки придумал?


Оттуда же, откуда списки процессов и остальных ресурсов. Каналы закрываются "сами", даже если процесс прибит насильно. Потому что он принадлежт операционной системе и она имеет на него ссылку. Исходники Сингулярити есть? Я в них не смотрел, но могу на этот момент поспорить.
Re[52]: Оберон круче всех!
От: vdimas Россия  
Дата: 20.07.12 15:40
Оценка: -1
Здравствуйте, WolfHound, Вы писали:

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

WH>Это можно сделать.
WH>Но не нужно.
WH>Ни одному приложению не нужны все права пользователя.
WH>Максимум что нужно БД это права на чтение/записаь в некоторые папки.

Файл архивации еще можно по всяким ресурсам отправлять, а у тех тоже свои права и политики. В общем, размахивать своим невежеством не стоило. Как это делается сейчас — я знаю. Что при этом происходит при определении конкретного набора разрешений — тоже. Но ты предложил вариант, который НЕ работает нигде, кроме в GUI локального пользователя. Ладно бы сболтнул случайно и успокоился, дык многократно настаивал. Это залет.

Это не максимум, это минимум Не БД, а пользователям.

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

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

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

WH>Я говорил про то, что это абсолютно безгеморройный способ с одной стороны железно ограничить приложение и с другой дать пользователю возможность открывать любые файлы.


Спорно АБСОЛЮТНО каждое словос т.з. современной безопасности. В реальности всегда требуется суперпозиция прав приложения и пользователя. Вот эти вот попытки упрощать закончились задолго до появления Юниксов.

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

WH> При этом, не понимая, что тебе говорят.

Ну сейчас-то уже убедился, кто и чего не понимает? Всего-то 5-6 итераций мне понадобилось чтобы до тебя дошли все побочные эффекты предложенного сценария... какие мелочи, право.


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

WH>Ты опять с собой разговариваешь.

Не льсти себе.

WH>Никто не мешает установить защищённое соединение с защитой от MiM. И таких протоколов тьма.


Ты всьерьез решил попросить очередного лулза? А потом утверждать "я никогда не говорил что это единственный способ." (С).
Предлагаю вместо 5-6 итераций один раз тебе помедитировать над исходными условиями.

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


Это уже совсем другой уровень безопасности. Если ты до этого всячески настаивал на безопасности и закрыточти машины от прониктовения — то это ровно противоположная идеология: машины открыты для проникновения (это банально удобно для работы), но защита пытается выстроиться на уровне сети. Ты вообще понимаешь, насколько это далекий от обсуждаемого подход? В этом случае характеристики конкретных операционок на ендпоинтах вообще не играют рояли. Я же тебе скзаал — Кайберакс подложил тебе свинью, закатав всю твою теорию под асфальт.

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

Я же говорю, вы, ребятки, кормите лулзами похлеще иных домохозяек.
Re[43]: Оберон круче всех!
От: Cyberax Марс  
Дата: 20.07.12 16:13
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Давай мы сначала разберемся с OCaml. А то вы меня забодали тыкать одной и той же, вполне справедливой фразой. В отличие от Оберона, у тебя и возможности-то не будет узнать про зависимость от модуля Obj в конечном образе. А в Обероне можно явно запретить загрузку модуля с такой зависимостью.

Нельзя. Я могу в бинарном коде написать "cli; hlt" без всяких зависимостей от SYSTEM. И всё, стоп-система.

Так как бинарный код в Обероне никоим образом не проверяется.
Sapienti sat!
Re[50]: Оберон круче всех!
От: vdimas Россия  
Дата: 20.07.12 16:38
Оценка: -1
Здравствуйте, WolfHound, Вы писали:


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

WH>>>Бред.
V>>Предлагаю не отмахиваться от этого вопроса, он интересен.
WH>Абсолютно не интересен, любому у кого есть хоть капля воображения.

V>>Согласно репорту Сингулярити, при инсталяции драйвера создается его некий манифест, который указывает ресурсы, к которым можно обращаться этому драйверу. Если целевой драйвер работает с другим драйвером-посредником, то вот ситуация — эти ресурсы (например, для окна DMA) он должен получать динамически. Но верификатор Сингулярити такой код не пропустит, т.е. не подзволит читать/писать произвольную память. Остается передавать непосредственно данные посреднику, чтобы тот их закачивал в DMA. А это не взлетит для видео однозначно. Или есть еще третий вариант?

WH>Что такое закачать в ДМА?
WH>Правильно.
WH>Записать данные в страницу памяти.
WH>И сказать ДМА, где их брать.

WH>Что мы и делаем.

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

WH>Мы эти страницы даже в пользовательском коде заполнить можем.

WH>И все будет точно так же.

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

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


Не натягивается на эти два дврайвера без введения дополнительных динамических артефактов в среду исполнения, эдаких известных операционке структурах, на которых достоверно переносятся адреса страниц из диапазонов, прописанных в манифесте. Поэтому я и предлагал подумать над вариантами, что вся эта динамика на сегодня — одна сплошная дыра. Т.е. мы передаем по каналу какие-то байты, которые означают адреса, но операционка об этом понятия не имеет, так? И код не подлежит верификации и сравнения с манифестами, т.к. код получает неизветсные на этапе компиляции цифры и настраивает ими контроллер DMA. Мне казалось, что такое нарушение очевидно. Ан нет... )))


V>>А могут и нет, если поле атомарного типа (машинное слово). Что мешает выяснять эти моменты верификатором, например, если некий объект забыли пометить как синхронизируемый, но к нему могут идти вызовы более чем от одного активного или несинхронизируемого объекта (в т.ч. в произвольных сочетаниях)?

WH> Не работает. Теоритически. Ибо можно новые модули загружать.

Все зависимости статические.

V>>Даже для сложного С++ Valgrind находит такие вещи на раз, а уж для простейшего байткода сам бог велел.

WH> Статически? В условиях загрузки новых модулей?

Да.

V>>Я тебя уже поправлял: единица изоляции там — это приватная память объекта. Активный Объект — это и есть процесс. И ты никак не можешь эту изоляцию нарушить через голову публичного АПИ объекта.

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

Если на внутренние — то только внутри и могут, то бишь согласно алгоритма, какие проблемы? В условиях статической типобезопасности нет способа сохранить ссылку, явной зависимости от которой не прописано на этапе компиляции.


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

WH>Бред.
WH>В бутылке модуль глобален на всю ОС.

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

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

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

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

WH>>>В сингулярити изоляция обеспечивается моделью исполнения.

V>>Тут не про изоляцию, а про безопасный для исполнения код.
WH>Без изоляции это невозможно.

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

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

WH>Бред.

-1

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


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

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

WH>И что оберон никак от этого не защищает?

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

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

WH>Модель сингулярити не мешает ввести и другие примитивы общения без нарушения изоляции процессов.

Без нарушения изоляции не обойтись без посредников, то бишь без копий нужной инфрмации. И здесь дорого всё: создание копий, помещение в очередь, сигналы шедуллеру, чтобы он дал кванты принимающей стороне, чтение этих копий на той стороне. Всё вместе много и дорого.

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

WH>Бред.
WH>Не бывает таких верификаторов.

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


WH>Особенно в условиях динамической загрузки кода.


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

V>>Кстати, для встроенной реализации каналов даже язык толком расширять не придется. Если помнишь, в Паскале файл — это не файл на диске, это порт последовательного доступа к типизированным кортежам. А за ним может быть что угодно.

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

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


V>>Ладно, пошли механические ответы, уже не интересно. Спасибо за участие.

WH>Если бы ты еще мог понять, что они означают.

Если бы ты еще не вредничал в каждом предложении, как старая жена, было бы вообще идеально.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.