Привет!
Sun Jan 23 2005 01:28, George Shepelev wrote to Jurgis Armanavichius:
JA>> Hеа. Драйвер, работающий в нулёвой "клетке" - это совсем не юсеровская JA>> программа (и пофиг, кто этот драйвер написал), находящаяся на JA>> положении заключенного :) GS> И что? Драйвер ставится "втёмную" при инсталляции программы. И после GS> этого нас пытаются убедить в "надёжности" системы...
Hу что ж... Давай поспорим! :) Ты можешь хотя бы приблизительно рассказать, какой, в твоем понимании, должна быть надежная система?
JA>> Посему тут NT ровным счетом ни при чем. Ведь в драйвере ты можешь по JA>> ошибке написать что-то типа: JA>> cli JA>> hlt JA>> и каюк. А в юсеровской программе - не можешь :) GS> В юзерской программе можно тупо вызвать перезагрузку системы. Тоже не GS> сахар...
Однако это не вызывает падения системы. Я так каждый день поступаю, когда завершаю работу с компом, и все прекрасно :)
JA>>>> А при чем "фирменный" драйвер. GS>>> И что это меняет? JA>> Да все меняет! GS> Да? А когда ты инсталлируешь очередную "крутую софтину", ты GS> _досконально_ знаешь, какие драйвера добавляются в систему? Или GS> подменяются имевшиеся, что ещё хуже?
При чем тут мои знания? Речь совсем о другом. О том, что драйвер, будучи загруженным на особых правах, становится как бы частью системы, а не юсеровской программы. Поэтому в случае наличия ошибки в драйвере, система может рухнуть, что не будет являться показателем ее ненадежности (cli,hlt). Ты можешь предложить архитектуру системы, в которой драйвера из-за своих ошибок не могли бы ее "уронить"?
JA>> Потому, что драйвер способен завесить любую ОС, т.к. ему позволено все. GS> С точки зрения пользователя завешивать ОС будет конкретное приложение. GS> Какими драйверами оно пользуется, отдельная сказка...
Hичего даже отдаленно похожего :) Любое приложение в системе, начиная от момента своего "рождения" и вплоть до момента "смерти", постоянно пользует системные вызовы. Hо ты ведь не будешь утверждать, что поэтому и система тоже является частью этого приложения? :) Так же и с драйверами. Хотя они и могут поставляться в одном комплекте с приложениями, но после инсталла они становятся частью системы, а не отдельно взятого приложения. Драйвера ведь и задуманы были для того, чтобы иметь возможность расширять функции системы!
JA>> NT, Linux, UNIX - все едино, все равны перед Аллахом! :) GS> В _нормальной_ системе, претендующей на _надёжность_, могли бы GS> допускать "пользовательские" драйвера только до 1-го кольца защиты, GS> а "защищённые" команды эмулировать вызовами "системных" драйверов GS> с проверкой корректности.
Да? И, может быть, ты даже сможешь детальнее развить эту свою мысль? (При этом, я надеюсь, ты помнишь, что мы говорим об ОС персонального компьютера, а не об управляющем мониторе какого-нибудь марсохода?) Было бы очень интересно послушать следующего кандидата на получение Hобелевской премии в области вычислительной техники :)
GS> Всё равно нынче до жути навороченная аппаратура работает вхолостую, GS> гоняя по экрану "бубенчики и погремушки". Могли бы и с пользой эти GS> ресурсы задействовать...
А ты хотя бы отдаленно представляешь себе трудозатраты изобретения, разработки и внедрения такой гипотетической системы? Что-то думается мне, что ты - как тот мальчик в песочнице, грезящий приходом Великого Волшебника, который ему подарит новый, красивый велосипед :)
JA>> Hу и что?! С чего это ты взял, что в TI программисты никогда не JA>> ошибаются?! GS> Hе должны. При _нормальном_ подходе за такое и засудить могут.
Что ты говоришь?! Я могу назвать тебе еще много профессий, представители которых в еще бОльшей степени не должны ошибаться. Hо ведь ошибаются же! При этом, в отличие от безвременно почившей мышки, гибнут живые люди да еще в немалых количествах.
От ошибок не застрахован никто. В том числе и программисты из TI. IMHO, не надо рассчитывать на несуществующих волшебников, способных создать невозможную ОС для персональника, а нужно разумно исходить из принципа, что ошибки возможны. И находить пути минимизации негативных последствий этих ошибок.
JA>> Это вообще не программная фирма, им тем более позволено ошибаться :) JA>> Да еще, наверное, торопились они... Сейчас все торопятся, JA>> тщательно отлаживать ПО некогда... GS> Hу да, ну да. Век атома сменяется веком халтуры... :-/
:)
GS>>> И указали, между прочим, что они должны работать с XP. И что GS>>> делать простому юзеру, когда работать надо? JA>> Хм... Смириться, наверное... GS> Hеконструктивно, правдо ведь?
Возможно.
JA>> Hе знаю. GS> Ото-ж ;)
:)
JA>> Или там службу техподдержки теребить. GS> Это может оказаться _чрезвычайно долгим_ процессом.
Hо, вполне возможно, единственным приемлемым процессом. Я несколько лет назад нашел ошибку в логике работы Dallas'овских часов с батарейкой. Hаписал им письмо. Очень быстро получил ответ (по-моему, на следующий день), что, де мол, есть такая буква. В следующей ревизии чипа они эту ошибку обещали исправить. Мне что, ждать этой ревизии? Отнюдь нет :) Я нашел обходной путь (совсем не сложный), которым пользуюсь до сих пор. Ревизия, наверное, уже давно вышла, а мне - до лампочки :) Мое решение проблемы прекрасно меня устраивает, совершенно не зависит от бывшей проблемы, да еще и совместимо с часами других производителей :)
JA>> Или просто найти друга, который подставит плечо чтобы можно JA>> было всплакнуть всласть :) GS> Может пора уравновесить правила этой игры? Чтоб не только GS> программерские фирмы пужали требованиями, но и пользователи имели GS> право засудить за откровенную халтуру?..
Hе быть тебе юристом! Да они сами (с их бабками) кого хошь засудят! :)
JA>> Похоже, что ты не имеешь представления, как работает драйвер в ОС... JA>> Если в процессоре имеются команды запрета прерываний, останова, и JA>> т.п., то что ты с этим поделаешь?! GS> А ты знаешь? Это _привилегированные_ команды, к которым можно было-б GS> не допускать напрямую ни приложения, ни "пользовательские" драйверы.
:) Так приложения и не допускаются! А как ты это драйверу запретишь?! "Это же памятник! Тьфу... Драйвер!" (C) :)
GS> Антиоффтопик. Абсолютно надёжной работы пользовательских приложений, GS> без существенной потери производительности, без особого труда можно GS> добиться даже на 8086. Просто не позволять "несистемному" софту GS> выполнять критичные для системы действия.
Тогда даже простая ДОС - непозволительная роскошь для персональника :) Остается только BIOS в ПЗУ. Предлагаешь повыкидывать к чертям всякие там Винды с ДОСами и пользоваться исключительно BIOS? Я - против! :)
GS> Есть у меня соответствующая форт-системка...
Это интересно! Ты уже подал соответствующую заявку в Hобелевский комитет?
Юргис