The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"LiveCD с демонстрацией работы открытой микроядерной ОС Genode "
Отправлено dq0s4y71, 19-Ноя-10 13:44 
> А вы, продолжайте юлить и юродствовать - мне ваши и им подобные
> опусы одно удовольствие разбирать.

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

> Не пишут безопасные системы, а голословно заявляют о безопасности систем.

Пока что именно вы голословно заявляете о том, что якобы существуют какие-то более безопасные системы, написанные на каких-то более безопасных языках.

>> Еще раз говорю: безопасность всегда достигается за счет вашего контроля над системой.
> Ещё раз опровергаю: язык, предоставляющий средства безопасного программирования, априори
> не ограничивает пресловутый "контроль над системой". Я даже больше скажу: он
> его усиливает, позволяя писать безопасный код. На том же Си ещё
> не написано ни одной безопасной сложной системы, работающей с данными на
> уровне абстракций самого Си.

Голословное утверждение. Давайте конкретно: какие ОС промышленного уровня, написанные не на Си, оказались более безопасными и по каким критериям?

> И сейчас вы на примере трёх (!) типов строк в Аде будете
> мне рассказывать об увеличении количества типов? Во-первых, обосновать большую сложность
> работы со строками в Аде по сравнению с Си вы не
> сможете - ни умозрительно, ни на примерах. Дерзайте!

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

> Во-вторых, сколько специальных целочисленных типов в Си? Мало ли уязвимостей было (есть
> и будет) из-за целочисленных переполнений при неявных преобразованиях результата? А сколько
> функций безопасной работы со строками (str*, strn*, strl*), не способных, к
> тому же, окончательно решить проблему их небезопасной обработки? А сколько внутренних
> API для работы со строками реализовано в рамках проектов с повышенными
> требованиями к безопасности (софт Бернштейна, vsftpd, Dovecot)?

Но люди продолжают и продолжают на этом писать! Неужели вы считаете, что все 100% этих программистов в течение многих лет продолжают заниматься самообманом? :) Так можно и до теорий заговоров договориться...

> Как просто, оказывается, в Си работать со строками - ну полный контроль!
> И как сложно в Аде - три типа, и никакого контроля.
> Ещё расскажите мне про "лишний код" - вот тут я действительно,
> буквально посмеюсь.

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

>> типов строк (Bounded, Fixed, Unbounded...). В результате я должен сначала не
>> ошибиться, выбирая какой тип строк использовать в каждой конкретной ситуации, а
> Ах, ох. И какова же цена ошибки? Каковы типичные ошибки? Как часто
> возникают? Насколько легко идентифицировать и исправить? Давайте сравнивать с Си.

Давайте. Давайте для начала приведем примеры ОС, которые могут делать хоть что-нибудь, кроме как "быть безопасными", а потом посмотрим насколько не соответствуют этому призрачному идеалу реально существующие ОС.

>> потом гадать, что из этого получится в ядре написанной мной ОС,
> В Си вы тоже гадаете вместо того, чтобы спецификацию на язык почитать?

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

> Во истину каждый кулик своё болото хвалит. Вы одно забыли упомянуть -
> в Си, в отличие от C++, приемлемой альтернативы ASCIZ просто нет.
> ;)

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

> К слову, ядра ОС сейчас собираются отдельными версиями компиляторов - каждый требует
> подгонки по различным причинам. И структуры выравниваются в зависимости от архитектуры,
> и endianess слов учитывается. Зато контроль какой - каждая мелочь контролируется!

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

>> А забота о безопасности _в_принципе_ ложится на программиста. Если вы считаете, что
> Здесь вы передёрнули смысл словосочетания "безопасность кода" и невинно перевели разговор
> с обсуждения отдельного аспекта обеспечения безопасности (безопасного кода в смысле типобезопастности)
> на безопасность вообще. 4 за находчивость, 2 за предпочтение дешевой полемики
> разговору по существу.

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

> Подумать только, ТРИ типа!!!11 Наверное, они в ТРИ раза небезопаснее, чем в
> Си!!!11

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

> Возразить на что? На ваше голословное утверждение о том, что якобы "именно
> поэтому самые востребованные операционки написаны на Си"? у так папы юникса
> уже написали Plan 9, уже сделали попытку исправить свои ошибки и
> уже озвучили причины, по которым, на их взгляд, "востребованные операционки" остаются
> таковыми.

Ну и каковы же эти причины? "Ложь и самообман" разработчиков? :)

> Вы-то сами чем своё утверждение обосновали? Ничем. Вместо обоснований - переход на
> личность собеседника в нелестных эпитетах.

Замечу, что переход на личности начали именно вы.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру