Обновить
202
Дмитрий Арехта@DaemonI

Пользователь

54
Подписчики
Отправить сообщение
Вам не понравилась архитектура l4? По моему там все очень стройно, и С++ ко двору.
Это все видимо сугубо индивидуально, но я не считаю это серьезным упущением при всей дырявости IA32 архитектуры: когда можно с легкостью сделать коллгейт из юзермода в кернел мод и хукнуть обработку syscall'ов, или повесить свой обработчик smi и творить все что угодно (это ведь по сути режим с такими же правами, как и real/protected mode).
Не единственный. Если например были выделенны области памяти для DMA трансферов с сетевой картой, и контроллер уже настроен и сыпет прерывания, то можно просто рестартнуть контроллер и он забудет обо всех DMA дескрипторах, о которых знал :) Это ситуация, которая специфична для конкретного железа, по этому самый простой выход — иметь отдельную функцию резета контроллера, в случае если драйвер посыпался и его надо выгрузить. Функцию такую, необходимо размещать отдельно в памяти от драйвера, чтобы драйвер можно было без ущерба выгрузить.

И это лишь как пример. Таких можно придумать сотни. Ведь если драйвер где-то помрет, то случившийся какой-нибудь интеррапт лукап и глобальный фриз всея системы, ситуацию никак не спасет.
prefast знаете? Статические средства анализа кода еще никто не отменял.
Я вас умоляю, код работающей в режиме ядра, найдет уйму других возможностей для перехвата, подмены, маскировки и прочего, не трогая ваш драйвер. А стек еще аккуратно надо уметь переполнять, дабы не завалить систему полностью.
Либо кидать багчек, либо анлоадить драйвер.
Та же Vista не прощает многих ошибок, которая прощала ХР, например ошибок с IRQL'ями (вызов функции на DISPATCH, когда нужно на PASSIVE).
Спасибо за статью, думаю, что пригодиться. На самом деле, лучше при старте выделять какой-нибудь пул и уже покусочку откусывать данные оттуда.

Сам сейчас пытаюсь отладить драйвер. Иногда зачастую при заходе в NdisMIndicateReceivePackets система просто зависает без единого багчека :)
Ну вот когда дадут 11 ГГц в пользование, и когда RF'ы будут достаточно мощными (оборудование естественно прийдеться обновить), будут и 70, но естественно не на первых порах развития технологии. Вон в США, Sprint строит сеть национального масштаба. Там 1-3 мбита, так что мы идем в ногу со временем.

> Не так давно стандарт 802.11n утвердили который как-то немного быстрее.
А WiFi вообще причем? Он же на дальние расстояния не рассчитан…
Цитата была про коммуникатор, там где в коннекшн менеджере циферка 13 (это теоретическая величина). В коммуникаторах применяется SDIO интерфейс, так что и 9 мбит не будут для него доступны.

А по поводу 70 мбит на USB модемах, ну уж простите, при текущей частотной полосе и применяемом методе модуляции сигнала, 70 мбит пока не достижимо. Просто напросто стандарт Wimax предусматривает разные вариации параметров…
Скорость в 70 мегабит теоретически недостижима для SDIO интерфейса. 9,1 MBit это на USB модеме, на таком коммуникаторе максимум 7 и то в лабораторных условиях.
Использовать IPP, там уже все ускорено за вас.
Винда шарит экземпляры подгружаемых дллок. Конечно при высоком уровне модульности статическая сборка совсем не руллит (бОльшие размеры бинарников -> больше грузить в память), тут нужна динамическая.
Это Ваши проблемы, вернее проблемы кривого проектирования. Если вы создавали окно в dll'ке, то значит дллка имела фабричную функцию. Если же была фабричная функция, значит должна быть функция, которая удалит окно и подчистит мусор.
И простите наследования чего от чего?

Такой уровень модульности уже сам по себе во многом ущербен, потому как ядро системы открыто как на блюдечке, никакой инкапсуляции (не в смысле объектов) нет и в помине, заходи, выноси все что хочешь :)
> кучи и new/delete между модулями.
Я чего-то не понимаю, или то, что у процесса и у dll — разные хипы, давным давно известный факт и QT тут не причем…

> Я видел qutim и ничего, даже рядом лежащего с мирандой по сложности не увидел, увы
Конструктора для энтузиастов там не будет и в помине, а вот визуальный ряд на уровне адиума, уже готов…
Давно наблюдаю за этим проектом. Такое впечатление, что проект OpenMoko — это такой советский НИИ, который проедает бюджетный деньги и при этом ничем конкретны не занимается.

Сначала они почему-то решили сделать ставки на GTK (! на мобильных устройствах!!) вместо Qtopia. Потом за полгода до намеченного релиза выкинули GTK, и вместо него начали использовать QT. Теперь вот решили эксплуатировать Андроид. По-моему им нужно найти грамотного менеджера и за одно дизайнера. Потому как данный аппарат врядли способен удовлетворить потребность в дизайне, он ужасен, имхо.
> Ой ли… Вот уж миранда на Qt- это будет нечто ужасное и тормозноею
Не правда, посмотрите qutim (да я его пиарю, потому что учавствую в разработке).

По поводу QT — какие проблемы, линкуйте статически, никакого DLL hell не будет. ДА и к тому же, новые версии QT dllок всегда бинарно совместимы с программами, собраными на более старых версиях QT.

Миранде не хватает кроссплатформенности, очень :) Хотя бы через wine-libs. Да и по поводу тормознутости — можно поспорить. Моя сборка не слабо отжирает ресурсов, а еще в ней текут хендлы, но все лень разбиратся в каком плагине и почему :)
Познакомьтесь en.wikipedia.org/wiki/WinFixer Программы такого же рода. Писались нашей Innovative Marketing Ukraine. Я там даже был на собеседовании на 4-ем курсе, и прошел, но работать не стал :) А недавно они уволили 120 человек и прекратили свое существование.
Закономерный вопрос «Где выбросить-то»? Любое «фатальное» исключение можно словить, если уж не стандартными средствами, то SEH'ом. И вот тут я не вижу недостатков С++. Они конечно же в нем есть и в большом кол-ве, но это тема для отдельного разговора.

А вообще, подобные вещи, как пункт 2 — слишком специфичны для конкретной ситуации. И нельзя сказать, что делать метод init() для инициализации объекта — это дурной тон. Не сколько не дурной, главное соблюдать единый стиль, чтобы не было путаницы.
Для масштабируемости смотрите в сторону xml-rpc или json-rpc. Хотя я бы делал ставку не на масштабируемость языка на несколько серверов, а на модель аля DCOM, т.е. существует объект на машине х, его можно подключить и использовать на машине y. Причем интерпритация чтобы выполнялась на машине х.

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность