LINUX.ORG.RU

Сравнение графических стеков Linux и Windows

 , , ,


4

4

Помолясь, несколько месяцев назад я приступил к изучению графических стеков разных ОС. Тема эта достаточно сложна, особенно если изучать иксы. Даже по словам их разработчиков есть только три человека в мире, которые знают, как работает xorg. Поэтому в его устройство я особенно не лез, только поверхностно опишу его тут. Также я, в связи с недавними новостями, не лез в устройство Mir. Поэтому в основном в части статьи, касающейся Linux речь пойдет о новом протоколе Wayland, о его клиентах и композиторах.

Linux

Итак, целью введения Wayland было упрощение архитектуры, по сравнению с иксами. В концепции Wayland оконный менеджер, или как его называют в терминологии Wayland, композитор не занимается рисовательством сам. Он лишь достает из DRM или KMS фреймбуфер и отдает их приложению, которое уже рисует в этот буфер, что хочет и чем хочет, хоть с помощью cairo, хоть с помощью OpenGL (обычно еще через EGL, платформонезависимое API между OpenGL и приложениями. Теоретически может быть использовано хоть на маке, хоть на винде.). *Необходимо помнить, что Wayland собственно является лишь протоколом для связи между клиентами и композиторами, и поэтому все нападки, вроде «гигантский толстый жирнющий мегавяленд» являются не более, чем профанацией.* Далее уже композитор может делать с полученным от клиента буфером все, что угодно. *Например, повращать на кубике. Или разместить его на шаре, зеркально отражая при этом остальные фреймбуферы. Вам же хочется видеть окошки на шарике?* Также композитор не делает лишних телодвижений с событиями, которые были в xorg, и просто подхватывает через libinput события из evdev. Теперь не будет адских проблем с мультитачем.

Самое интересное, что поверх Wayland-композитора можно запустить сервер X. Это называется X-wayland и сделано для поддержки совместимости со старыми приложениями.

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

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

Windows

Разобраться в графике Windows было намного сложнее по причине закрытости оной. Благо многие основные принципы есть в открытом доступе и здесь я расскажу про WDDM — архитектуру драйверов, позволяющую отображать рабочий стол посредством Direct3D. У этой модели есть несколько очень неплохих преимуществ.

  • Параллельное использование ресурсов графического процессора Путем разделения графической памяти и графического процессорного времени в соответствии с приоритетами приложений.
  • Виртуализация памяти Здесь это означает, что ни один процесс не может видеть память другого, в том числе и не может иметь доступа к видеопамяти. Также, если видеопамять переполнится, неиспользуемая ее часть будет записана на диск. Это может произойти при открытии множества окон, ведь по сути, рабочий стол в Windows начиная с Vista — 3D-приложение.
  • Независимая от разработчика планировка Раньше разработчик каждого драйвера по-своему реализовал планировку приложений, требующих графического процессора. Теперь WDDM делает это сам, при помощи своего исполняемого модуля.

Сравнения:

Преимущества Linux:

  • Легкая удаленная работа. Сетевая прозрачность протоколов X11 и Wayland позволяет легко работать с удаленным сеансом.
  • Настройка режима дисплея внутри ядра(KMS) позволяет получить высокое разрешение в консоли.
  • Открытая реализация OpenGL позволяет создавать свободные драйвера ядра, не задумываюсь о юзерспейсной части.

Преимущество Windows:

  • Стабильность. При падении драйвера в Windows он просто перезапустится, а в Linux упадет вся система.

К сожалению, про macOS я ничего не нашел. Кому не жалко, могут поделиться ссылкой.



Последнее исправление: Valmanchik (всего исправлений: 2)

Ответ на: комментарий от anonymous

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

Solexid
()
Ответ на: комментарий от Stanson

А если учесть, что «Драйвер был перезапущен» появляется и при временных проблемах со связью с монитором, то ситуация вообще выглядит очень смешно.

4.2

Solexid
()
Ответ на: комментарий от Solexid

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

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Этого не так просто добиться. Хотя nouveau я убивал, да. Впрочем, паники это не вызывало.

Не паника - это когда SysRq ничем не помогает и не перезагружает? Лол.

Ничего удивительного - отвалился на секунду монитор

Да блин как тебя убедить что это с монитором вообще не связано, если и монитора-то нет, а есть eDP панель в ноуте???

Что, не вышло ништячок нахалявку-то получить?

Без пруфов тебе _никто_ не будет верить. Рассказывай в своем манямирке о критических багах GDI32

графический стек должен отдуплить, что драйвер грохнулся?

Там таймаут, скорее всего. Если ни на что не реагируем дольше определенного времени - все пропало, перезапускаем.

Да о чём говорить-то, если перетыкание USB девайса часто и непредсказуемо приводит аж к процессу поиска и установки драйверов для «обнаруженного нового оборудования».

Если не ошибаюсь, причина в низкой скорости поиска в ФС (и в том, что нет предварительного списка device_id:device_driver)

timdorohin ★★★★
()
Ответ на: комментарий от Stanson

Если факт его существования не засекречен, можно было выложить о том, что это такое.

А если ты работал над Ынтырпрайз-проектами с NDA, тогда не хвастай, все-равно никто не сможет опровергнуть/подтвердить чем ты там занимался и цена этому - только тебе практические знания, но не возможность «довить аффтаритетом» окружающих.

timdorohin ★★★★
()
Ответ на: комментарий от timdorohin

Да блин как тебя убедить что это с монитором вообще не связано, если и монитора-то нет, а есть eDP панель в ноуте???

Во-первых, в ноуте есть говношлейф и говнодрайверы какого-нибудь LVDS.

Венда рестартует WDDM в двух случаях - exception в драйвере и сигнал watchdog'а. Одновременно с этим, есть кусок индусского говна, который следит за конфигурацией видео. Когда что-либо меняется в конфигурации, эта тварь перезапускает драйвер видеокарты.

Там таймаут, скорее всего. Если ни на что не реагируем дольше определенного времени - все пропало, перезапускаем.

Это вторая причина перезапуска. Если какую-то задачу видеокарта не выполнит за определённое время, то сработает watchdog. Но для этого совершенно необязательно наличие каких-либо багов и проблем. Достаточно заставить видеокарту что-нибудь долго считать.

Если не ошибаюсь, причина в низкой скорости поиска в ФС (и в том, что нет предварительного списка device_id:device_driver)

Причина в самой концепции взаимодействия драйверов и юзерспейса. В венде, USB девайсы доступны не по VID/PID в виде endpoint'ов а через жопу в виде GUID'ов для интерфейсов. Причём там ещё и серийник в дескрипторе USB девайса (на который все обычно забивают) участвует. И всё это через registry связано. В общем, там навёрнут кромешный звездец с обеих сторон, как с драйверной, так и с юзверьской.

Stanson ★★★★★
()
Ответ на: комментарий от timdorohin

Если факт его существования не засекречен, можно было выложить о том, что это такое.

http://www.xrite.com/categories/benchtop-spectrophotometers/ci7x00-family

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

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

А если ты работал над Ынтырпрайз-проектами с NDA, тогда не хвастай, все-равно никто не сможет опровергнуть/подтвердить чем ты там занимался и цена этому - только тебе практические знания, но не возможность «довить аффтаритетом» окружающих.

За предложение подписать NDA я и в морду могу дать. :)

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

Помогло?

Я предлагал тебе в блог выложить, иначе кажется что ты радиогубитель советской эпохи, строящий всякую хрень из-за невозможности купить готовое :D

За предложение подписать NDA я и в морду могу дать. :)

Тогда запиши в блог всю кулстори разработки, будет интересно почитать. (подробные детали реализации не обязательно, а вот про костыли и баги интересно)

(отечественных, разумеется, нет и не будет)

Ну какие-то спектрофотометры, кажется, есть, просто характеристиками недотягивают?..

Ну и нахрена про это в бложике?

Дык интересно же. Любой хакинг и ковыряние интересны...

timdorohin ★★★★
()
Последнее исправление: timdorohin (всего исправлений: 2)
Ответ на: комментарий от timdorohin

Я предлагал тебе в блог выложить, иначе кажется что ты радиогубитель советской эпохи, строящий всякую хрень из-за невозможности купить готовое :D

Чем более неверное и противоречивое впечатление обо мне сложится у окружающих, тем лучше.

Тогда запиши в блог всю кулстори разработки, будет интересно почитать.

Да кому это вообще может быть интересно? Это скукотища и нудятина, да ещё и нужная весьма ограниченному кругу лиц.

Ну какие-то спектрофотометры, кажется, есть, просто характеристиками недотягивают?..

Никаких нет. Когда-то давно был один. Но это было ещё в СССР и теперь их производить просто некому и незачем.

ЗЫ: Не стоит путать эти девайсы с теми девайсами которые применяются во всякой биохимии и тоже называются «спектрофотометрами», хотя это скорее фотоколориметры.

Stanson ★★★★★
()
Ответ на: комментарий от timdorohin

подробные детали реализации не обязательно, а вот про костыли и баги интересно

Ну вот интересная деталь:

Венда сохраняет каждый подключённый USB девайс в реестре. Путь приблизительно такой: HKLM\SYSTEM\CurrentControlSet\Enum\USB\VID_XXXX&PID_XXXX\SERIAL_NUMBER

Делаем USB девайс с серийником в котором есть обратные слэши и втыкаем его в венду. Весело.

Или например последние вёнды пытаются прочесть из USB девайса дескриптор с индексом 0xEE. Дескриптор должен содержать данные в спецефическом формате. Делаем USB девайс и пихаем в этот вендодескриптор неправильные данные. Опять весело.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Как будто другой человек ответил. Почему сразу нельзя было так? По поводу последнего (переставляешь порт - меняется гуид и снова ставим дрова) в 10 это пофиксили. Это очень заметно с эмуляторами ком порта, теперь куда не вставишь - всегда один и тот же порт будет, а не как в 7 - поменял порт и поменялся номер ком порта ( бесило жутко). Суть в том что майки мудаки, но в 10 они очень хорошую работу провели с причесыванием ядра.

Solexid
()
Ответ на: комментарий от timdorohin

А, и кстати, спасибо тебе от радиогубителя за наводку о TDA8708, будет на чем SDR делать...

Я сомневаюсь, что сейчас её легко достать, это ж во времена аналогового видео было, когда всякого такого было как грязи. Да и для SDR - не проще ли DVB приёмник китайский взять? Отличные девайсы для SDR приёмников за копейки. Можно усилитель на вход воткнуть, если чувствительность мала.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

200рэ в магазине за 10км от меня.

Приемник не то, хочется своими руками налабать.

(да и dip всяко лучше чем разбираться с bga)

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

А, и в твоем осциллографе ты зря pic использовал, avr там был бы эффективней (16МГц, а инструкции за 1 такт, ты бы получил 8МГц скорость отсчетов, а разгонять можно и до 30МГц atmeg'у)

timdorohin ★★★★
()
Последнее исправление: timdorohin (всего исправлений: 3)
Ответ на: комментарий от timdorohin

Ну если для развлекухи - тогда да, веселее самому собрать. Там в TDA7808 ещё усилок есть, правда специфический - под видео заточенный, и мультиплексор аналоговый на 3 входа.

Stanson ★★★★★
()
Ответ на: комментарий от timdorohin

А, и в твоем осциллографе ты зря pic использовал, avr там был бы эффективней (16МГц, а инструкции за 1 такт, ты бы получил 8МГц скорость отсчетов, а разгонять можно и до 30МГц atmeg'у)

Там PLL и оно работает на 48МГц. А частота дискретизации - 12МГц. Да и AVR с USB в те времена ещё не было. А софтверная эмуляция V-USB сожрала бы кучу процессорного времени.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Я внимательно прочитал все. Но там же черным по белому написано

Максимальная частота дискретизации - 6 МГц

И разве AT90USB не старые?

timdorohin ★★★★
()
Последнее исправление: timdorohin (всего исправлений: 1)

Вальцман

Короче, меня забанили, статью перенесу на лорвики и допилю там. Когда-нибудь.

anonymous
()
Ответ на: комментарий от timdorohin

Я внимательно прочитал все. Но там же черным по белому написано

Максимальная частота дискретизации - 6 МГц

Да, точно. Я забыл уже за давностью лет. Там хитро - АЦП тактируется 12МГц но прочитать порт и записать в память - это 2 цикла. Так что да, 6МГц получается.

И разве AT90USB не старые?

У меня их тогда не было (может и вообще не было), а пиков было навалом (делал графические векторные лазерные дисплеи). Ну что нарыл в столе из того и сделал.

Stanson ★★★★★
()
Ответ на: комментарий от aureliano15

Короче зырь сюда. В юзере работает собственно opengl и магия с буферами. В ядро уходят лишь пожелания о перенастройке mmu и забросу пакетов в gpu. Ну и плюс ioctlы разной степени публичности, типа «задать видеорежим», покрутить клоки.

Видяха же работает с несколькими параллельными mmu под отдельные задачи(их свопят по мере необходимости) и сегментами. Ну в радеоне например сорок бит адреса. Но доступ к ним идет через сегменты. Каждый под свою текстуру или буфер. Их там 128. Для текстур еще параметры фильтрации задаются к сегменту, tiling и еще какая то срань. Ты можешь выделить памяти и пулять об них шейдера. Это уровень dri. Над ним стоит гл или вулкан и переводит с программерского на язык dri

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

Спасибо за информацию.

Но почему

При падении драйвера в Windows он просто перезапустится, а в Linux упадет вся система

? Или в «ядерной» части графического драйвера для Linux больше компонентов, чем в Windows-драйвере?

Видяха же работает с несколькими параллельными mmu под отдельные задачи(их свопят по мере необходимости) и сегментами.

Это, как я понимаю, относится и к Linux? Т. е. информация ТС'а о том, что только для Windows верны утверждения

  • Параллельное использование ресурсов графического процессора Путем разделения графической памяти и графического процессорного времени в соответствии с приоритетами приложений.
  • Виртуализация памяти Здесь это означает, что ни один процесс не может видеть память другого, в том числе и не может иметь доступа к видеопамяти. Также, если видеопамять переполнится, неиспользуемая ее часть будет записана на диск. Это может произойти при открытии множества окон, ведь по сути, рабочий стол в Windows начиная с Vista — 3D-приложение.

- неверна? Или я опять что-то не так понял?

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

На самом деле при падении драйвера ведра пц будет везде.

В винде бывает сброс драйвера ядра. Это другое-это вполне управляемая посадка

ckotinko ☆☆☆
()
Ответ на: комментарий от aureliano15

Ты меньше этих долбодятлов слушай. В винде есть планировщик запросов и если он ловит таймаут он просто дергает функцию драйвера ядра «обнулиться».

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

В винде есть планировщик запросов и если он ловит таймаут он просто дергает функцию драйвера ядра «обнулиться».

Ещё раз спасибо за инфу.

aureliano15 ★★
()
Ответ на: комментарий от hobbit

kwin + nvidia blob

баг можно найти в их багтрекере. там полно подобных

RazrFalcon ★★★★★
()
Ответ на: комментарий от SuoiCat

но факт есть факт - искаропки оффтопик отзывчивее.

Чтобы данное утверждение не было бездоказательным, надо по меньшей мере, указать видеокарту и (для линукса) какие дрова используются. Я со старенькой нвидией GeForce 9600 GT и блобом от самой нвидии чудесно себя чувствую под иксами.

hobbit ★★★★★
()
Ответ на: комментарий от EXL

И очень зря. Ты можешь что-то лучше иксов предложить? Сырого вяленого? Спасибо, не надо! Зовите лет через 10, когда вяленый будет готов (если он к тому времени будет готов). А мне и на иксах отлично живется с моим любимым IceWM.

anonymous
()
Ответ на: комментарий от aureliano15

Это, как я понимаю, относится и к Linux

там аппаратный MMU на видеокарте. свой, отдельный.

ядерная часть совсем небольшая. в ней есть malloc для видеопамяти, кручение mmu, заброс пакетов и мелочь типа видеорежимов.

user@user-desktop:/usr/share/icons/elementary-xfce/actions/16$ ls -lh /usr/lib/i386-linux-gnu/dri/radeon_dri.so 
-rw-r--r-- 5 root root 7,3M янв 26  2017 /usr/lib/i386-linux-gnu/dri/radeon_dri.so
user@user-desktop:/usr/share/icons/elementary-xfce/actions/16$ ls -lh /lib/modules/4.4.0-87-generic/kernel/drivers/gpu/drm/radeon
итого 1,8M
-rw-r--r-- 1 root root 1,8M июл 18 17:29 radeon.ko

так много кода для инициализации и memmapания.

в DRI2 на самом деле никакой защиты нет. в DRI3 есть.

ckotinko ☆☆☆
()
Ответ на: комментарий от anonymous

При падении драйвера в Windows он просто перезапустится, а в Linux упадет вся система.

В винде есть планировщик запросов и если он ловит таймаут он просто дергает функцию драйвера ядра «обнулиться».

А как это противоречит написанному в ОП?

Я так понял, что в стартовом сообщении говорится о том, что если в Windows видео-драйвер упал, то ничего страшного не случится, он просто будет перезагружен, что в общем случае возможно только в микроядерных (например, MacOS X, где все драйверы работают в режиме пользователя) и в частично микроядерных ОС (например, в Wndows NT < 4, где большая часть драйверов являлись модулями ядра, но видеодрайвер работал в пользовательском пространстве). Насколько я знаю, в Windows NT, начиная с версии 4.0, от такого подхода отошли, а вдругих ветках Windows подобного вообще никогда не было. Поэтому и спросил.

На самом же деле, если я правильно понял ответ ckotinko, речь идёт не о возможности безопасного падения видеодрайвера в Windows, а только о штатном обнулении каких-то параметров в определённых ситуациях. Если же драйвер упадёт, то он, как и в Linux, вполне может потянуть за собой ядро.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

упасть может драйвер в userspace.

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

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

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

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

драйвер юзерспейса это как удалённый пэка, только с расшариваемой памятью. когда он открывает dri это аналог подключения по TCP. ядерный драйвер выполняет роль сервера

Интересная аналогия.

закрытие dri с юзерспейса - в результате падения ли или штатно - это аналог дисконнекта. это нормально.

Конечно, я говорил о падении именно ядерной части.

aureliano15 ★★
()
Ответ на: комментарий от ckotinko

Если все так радужно, объясни-ка, как nouveau, например, может так грохнуть систему, что не работают комбинации SysRq

(ИЧСХ, это происходило постоянно! И не починено, даже на старых картах! Виденный мною рекорд - 4 секунды. Через четыре секунды «нормальной» работы драйвер упал. Насмерть.)

i915 на относительно новых интеграшках тоже вешал все нахрен, аналогичным образом. И при этом нет разницы, ты в иксах или в wayland.

timdorohin ★★★★
()
Ответ на: комментарий от Stanson

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

Может пора уже слезть с пальмы и проверить самостоятельно? Какой бы говеной винда не была, но видеодрайвер в ней перезагружается без прибивания пользовательской сессии и приложений. С идеей о глючном конвертере HDMI-VGA и прочей чуши расскажите своим одноклассникам.

andreyu ★★★★★
()
Ответ на: комментарий от Stanson

Понятно. :) Бгг. Каким дебилом надо быть, чтобы доверять вендовым сообщениям об ошибках. :)

А кем нужно быть, что бы доверять словам Stanson?

andreyu ★★★★★
()
Ответ на: комментарий от ckotinko

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

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

timdorohin ★★★★
()
Ответ на: комментарий от timdorohin

Онналогичные дрова-говно в вантузе почему-то не крашали систему.

Аналогичные? Т. е. nouveau под Windows?

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

С аппаратным ускорением у nouveau проблемы. Лучше ставить проприетарные от Nvidia.

aureliano15 ★★
()
Ответ на: комментарий от andreyu

Какой бы говеной винда не была, но видеодрайвер в ней перезагружается

Он не перезагружается вообще. Чтобы перезагрузить драйвер, нужно его выгрузить, а потом загрузить снова. В венде вообще весьма затруднительно _выгрузить_ драйвер как модуль ядра в линухе. Нужно удаление девноды соответствующей устройству. Либо в самом драйвере должна быть в OnUnload эта бодяга (удалить только в kernel mode можно), либо отключение устройства, либо перезагрузка машины. Потому что за девноды отвечают не сами драйвера, а вендоядро. И внезапно с удалением девнод в OnUnload у венды проблемы - устройство её девнод настолько говённое, что невозможно гарантированно удалить все девноды устройства. Т.е. может и удалятся, а может и нет. А ещё как только удаляешь девноду - система тут же обнаруживает новое устройство и пытается загрузить ещё не выгруженный до конца драйвер. :) Учесть все эти глюки, да ещё и разные в разных версиях венды - почти нереально. Потому вендоры и делают принудительные перезагрузки при обновлении драйверов. В последних вендах что-то пытались с этим сделать, но сделали только хуже - теперь формально удаление девноды не требуется, но девнода часто остаётся в старом состоянии (за неё отвечает ядро, а не драйвер и именно ядро хранит её состояние, буфера, привязки, семафоры, мутексы и прочая), поэтому до перезагрузки или переподключения девайса всё равно ничего не работает или глючит. :)

У видимодрайвера при проблемах происходит переинициализация юзверьской части и всё. Это даже и близко не дотягивает до линуксячьего rmmod/insmod. Если похерились код/данные драйвера в памяти, или железо отвечает не так, как предполагает драйвер - то всё виснет или BSOD. Никаких чудес и преимуществ.

Кстати, перезапуск этот - это тоже костыль. В случае бага или битого железа перезапуск вообще является идиотизмом - по уму надо чинить код или менять железо, а не продолжать работу на поломанном оборудовании/системе. А в случае тормозов - спросить у пользователя - может ему нужно досчитать что-то на GPU. Но кто ж в венде будет что-то по-уму делать?

Stanson ★★★★★
()
Ответ на: комментарий от timdorohin

Аналогичные по говняности

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

И нуво падал и без попыток что-то ускорить

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

Я бы попробовал поставить проприетарные дрова от nvidia, а в случае проблем и с ними, написал бы здесь, с указанием модели видеокарты, ссылкой на используемый драйвер и пр. информацией. Возможно, проблема в конкретной карточке, или в конкретном модуле, или вообще нужен другой модуль, или что-то где-то не так прописывается.

В любом случае, это частная проблема, пока не доказано обратное.

И да, из коробки дрова в Windows обычно заводятся проще, с этим никто не спорит.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

дрова не падают

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

Я бы попробовал поставить проприетарные дрова от nvidia, а в случае проблем и с ними, написал бы здесь, с указанием модели видеокарты, ссылкой на используемый драйвер и пр. информацией.

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

timdorohin ★★★★
()
Последнее исправление: timdorohin (всего исправлений: 1)
Ответ на: комментарий от timdorohin

даже если дрова кривые и упали, их надо перезапускать заново. А не вешать нахрен всю систему!

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

У себя ты видишь следствия чего-то. Но причин не знаешь (кроме самых общих, что дрова «кривые»). Поэтому приписывать это именно различиям в архитектуре Windows и Linux, а не конкретным багам в тех или иных частях тех или иных драйверов, как минимум чересчур смело.

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

aureliano15 ★★
()
Ответ на: комментарий от Stanson

Чтобы перезагрузить драйвер, нужно его выгрузить, а потом загрузить снова.

Неожиданно, да?

У видимодрайвера при проблемах происходит переинициализация юзверьской части и всё. Это даже и близко не дотягивает до линуксячьего rmmod/insmod.

Это не имеет значения, это всего лишь одна из реализаций.

Если похерились код/данные драйвера в памяти, или железо отвечает не так, как предполагает драйвер - то всё виснет или BSOD. Никаких чудес и преимуществ.

Прямо как в линуксе.

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.