LINUX.ORG.RU
ФорумTalks

Почему иксы надо закопать

 ,


10

6

Как задолбало смотреть на деградантов, агитирующих сидеть на иксах. Для тех, кто хоть немного разбирается в современных GPU - иксы это дикость. Это такое же legacy как терминалы в ядре.

Так получилось, что пока SGI со товарищи занимались ИБД, и надували щеки - вот прям также, как местные ололо, «разбирающиеся в архитектуре иксов», компания микрософт день и ночь думала о том, как сделать графику быстрее. И поэтому майкрософт(а не красноглазые) придумали шейдеры. Поэтому они придумали стандарт на API для ускорения видео. Микрософт а не «опенсорс сообщество» задает направление развития графики.

В невидии, амд и интеле есть подразделения, которые первыми узнают о том, что выйдет новый директХ или новая винда 9. Эти отделы получают список фич, которые будут в винде и бегут к железочникам, чтоб узнать, что есть в железе уже, что будет сделать сложно, а что - дорого по ваттам. После чего начинается перетягивание одеяла между амд, невидией,интелом и микрософтом, где каждая сторона норовит облегчить себе задачу.

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

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

То же самое и для 3д: есть api, есть драйвер, есть минипорт. На выходе получаешь surfacы. Их можно поставить в очередь отрисовки(flip queue) откуда их будет подбирать DWM и собирать в окошки.

И то же самое для 2Д. каким надо быть идиотом, чтоб городить всякие XAA/EXA/UXA/XAXAXA вместо того, чтоб дать приложению самому отправлять команды на gpu. Там есть полная поддержка всей графики-2д 3д и видео. тот же интелоGPU можно проинструктировать программой, и он сам будет отдавать команды на blit-функцию, рисовать градиенты, глифы печатать, и кривые малевать.

Вот ровно то же самое делает wayland. он подбирает surfacы из flip queue и собирает их в картинку.

Никакого геморроя с bumblebee и прочими костылями для убогих иксов: surfacы которые видит интегрированное видео - они в памяти. mmapнул памяти, занес ее в GTT интеграшки - есть окно. открыл драйвер мегаgpu, занес в его GTT ту же область. все работает. gpu рисует и блитит, интеграшка под чутким руководством оконного манагера собирает и показывает.

Я думаю, иксмены понимают, что их аргументы «за иксы» - это полный бред. Они отлично понимают, что wayland проще и меньше жрет ресурсов. Они отлично понимают, что рисовать можно и без иксов, и даже удобнее, т.к. нет самодельных проблем с несколькими видяхами. И даже их сетевая прозрачность проигрывает RDP по всем параметрам: флешки звук и даже скорость.

Эти деграданты просто идут на принцип. Все они понимают, поэтому как полоумные повторяют про «сетевую прозрачность»: видят, что ничего больше в активе нет.

☆☆☆

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

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

systemd тоже решает проблемы init, и приносит пачку своих.

И что же делать? Не решать проблемы, или всё же решать?

RussianNeuroMancer ★★★★★
()

А что, никто не видел как колбасит мегастабильную Шindoшs из-за кривых драйверов, как из-за вставшего кулера на видяхе она ссыпается в дамп ?

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

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

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

оу мой гугл-фу был отобранам богами не иначе.

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

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

Отсюда вопрос: к чему это?

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

да не щас уже даже видяхи гоняют сжатые текстурки там у себя ибо гапертранспортов им мало.. а вы по сети... ну его.

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

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

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

Толстяк, тебе, наверное, на винфаке плохо жилось?

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

Если у меня при тестировании не вываливался вестон, это не значит что я не щупал...

Что мешает его убить и проверить?

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

Я так понимаю, что это единственное, на что в этой статье можно возразить?

Ну так а чувак всё правильно пишет. Протокол устарел, его надо рефакторить. Многие вещи следует выкинуть, а многие добавить.

Вполне здравый подход, который принципиально отличен от «а давайте всё выкинем, а потом еще 10 лет будем изобретать тот же самый велосипед заново».

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

Чтобы ОС спокойно работала с кривыми драйверами, нужно либо микроядро

Нужно не микроядро, ламер. Нужны драйверы в userspace и кое-какая аппаратная поддержка.

(угадай, в какой десктопной ОС оно есть)

Ни в какой.

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

Протокол устарел, его надо рефакторить.

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

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

Нужны драйверы в userspace и кое-какая аппаратная поддержка.

А чем это в итоге идейно отличается от концепции микроядра? Оно потому и микроядро, что драйвера вынесены в userspace и положить ядро не могут.

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

Что мешает его убить и проверить?

Желание посмотреть как это работает, а не падает, не? Скажешь сам то проверял?! Ведь в глаза ж ни разе не видел.

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

мы никто.нету никого. линукс занимает 99% десктопов, там всегда свежие дрова и все летает.

Т.е. банальный унылый тролль. Мне плевать сколько там кто процентов занимает.

Подкрепляя свои мысли вы сделали ряд ложных утверждений.

M$ не изобретали шейдеров. Даже 3D API у них появился последним. За год до этого он был у Apple и за три года была выпущена первая Mesa 3D.

Слова о супер быстрой графике в ядре только на половину соответствуют действительности. Так было лишь в 9x ядрах. В NT графика была вынесена из ядра. И за всё время M$ так и не сумела стабилизировать 9x ядра. То, что вы этого не помните или не застали - ваши проблемы.

Даже до DWM M$ использовали аппаратное ускорение 2D операций в GUI. И разница между VGA и специализированным драйвером под видеокарту была заметна на глаз. И хорошо так заметна. Причём модель драйверов несколько раз менялась. И только то, что это не афишировалось, подобно архитектуре ускорения X заставляет вас думать, что этого не было.

Так что правы вы или нет, в отношении X - отдельный разговор. Но то, что в аргументах у вас пурга - это факт.

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

А работать с вставшим кулером на видеокарте ни одна ОС не может.

Более того, работают без видюх вообще, но виндузников это возможно, ошеломляющая новость.

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

Даже 3D API у них появился последним.

Скажем больше, «компания микрософт день и ночь думала о том, как сделать графику быстрее» и поэтому утырила его в свое время у SGI.

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

Нужны драйверы в userspace и кое-какая аппаратная поддержка.

А чем это в итоге идейно отличается от концепции микроядра?

«Аппаратная поддержка» - это IOMMU, к микроядрам никакого отношения не имеет; драйвера в userspace, в общем, тоже. Идея микроядра - это минимум кода в режиме ядра, но сам минимум определяется по-разному; обычно в режим пользователя выносятся файловые системы и менеджер памяти.

Оно потому и микроядро, что драйвера вынесены в userspace и положить ядро не могут.

ЛОЛШТО? Классическое микроядро Mach имело драйверы в режиме ядра.

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

К словам RussianNeuroMancer добавлю, что в статье хорошо освещаются проблемы от протоколов и расширений, имеющих недостатки в самом дизайне. После этого предлагать рефакторить как-то странно. Вон я уже писал с пруфом на список рассылки, что протокол X никак не запрещает перехватывать чужие окна и посылать им эмулированные события ввода; никак не мешает приложению запретить иксам и оконному менеджеру реагировать на Alt+Tab.

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

Получился wayland + XWayland. А название X12, кстати, привлекло бы внимание некрофилов и мертвецов с их настойчивым жужжанием «а давайте сделаем этот хак», «а давайте тут оставим как есть в X11, пофиг на безопасность, ведь никто и не заметит» и прочими попытками утянуть в могилу. Более того, это название уже занято такими вот энтерпрайз-некрофилами.

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

Ты настолько любишь монолитные ядра что готов городить костыли из определений?

Оно потому и микроядро, что драйвера вынесены в userspace и положить ядро не могут.

ЛОЛШТО? Классическое микроядро Mach имело драйверы в режиме ядра.

Mach разве не был гибридным?

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

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

M$ не изобретали шейдеров.

MS первыми их стандартизировали. вот что главное. я криво выразился: не важно кто изобрел шейдеры, важно кто сделал их юзабельными. это сделал микрософт, который воспользовался своим весом на десктопах и сказал «будет так». Пока были 2 с половиной видяхи, к тому же__очень__ не гибких, им приходилось юлить. А сейчас их не е*ёт может производитель или не хочет. есть WHQL и его вынь и полож надо получить.

Даже 3D API у них появился последним.

Это не формула 1, тут надо не первым, а правильно стандартизировать api. Опять же, ARB тупо просрало все полимеры. Само. Своими сраными ручками. И мешки денег тут не при чем: где было опенсорсное сообщество в этот момент? Где общественные организации, которые бы выдвинули своих представителей? где эксперды от OSI? Где был сраный штольман в это время, пятку жевал?

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

Так было лишь в 9x ядрах. В NT графика была вынесена из ядра

Хватит жить прошлым. Линукс сливает здесь и сейчас семерке и восьмерке. Причем сливает в 2Д в первую очередь изза иксов. Все бенчмарки qt и кайры вопиют, что даже аппаратное ускорение в иксах не помогает.

Поймите уже простую ведь: сейчас графику рисуют НАПРЯМУЮ. Никому не интересна очередная «архитектура иксов», потому что её by design не предусмотрено.

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

Вон я уже писал с пруфом на список рассылки, что протокол X никак не запрещает перехватывать чужие окна и посылать им эмулированные события ввода; никак не мешает приложению запретить иксам и оконному менеджеру реагировать на Alt+Tab.

Спасибо, кэп, я в курсе. Слова «протокол требует дальнейшей доработки» подразумевают именно исправление таких вот вещей, в том числе.

Получился wayland + XWayland.

Какое отношение wayland имеет к иксовым механизмам обработки ввода, системе IPC, или таким вещам как пересылка команд OGL и xrender? Правильно: никакого.

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

У вас странные фобии.

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

танненбаум неадекват идеологизированный.

проблема осей в первую очередь состоит в том, что типовой процессор - это legacy by design. архитектура что арма, что х86 изначально сделана под однопроцессорную работу. все что в нем есть - это поддержка когеррентности кеша. остальное за счет прерываний и обвязки которая лежит вне процессора. аппаратной очереди задач нет, изменение таблиц для MMU - чудовищно дорого.

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

Ты настолько любишь монолитные ядра что готов городить костыли из определений?

Я считаю, что микроядра в твоем понимании просто меняют одни костыли на другие (но да, теоретическая надежность растет).

Mach разве не был гибридным?

Mach использовался по-разному. Классический Mach, рашидовский, с BSD single-server поверх, выполнял драйверы в режиме ядра.

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

Это возможно, но не имеет большого смысла. Вообще микроядра, ИМХО, уже тупиковый путь.

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

Поймите уже простую ведь: сейчас графику рисуют НАПРЯМУЮ. Никому не интересна очередная «архитектура иксов», потому что её by design не предусмотрено.

Ага — напрямую в битмапы, программно. Без всякого успорения. Тулкиты для линукса такие тулкиты.

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

Ага — напрямую в битмапы, программно.

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

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

Какое отношение wayland имеет к иксовым механизмам обработки ввода, системе IPC, или таким вещам как пересылка команд OGL и xrender? Правильно: никакого.

Wayland == X12.

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

И тот факт, что на фридесктопе висит статья «X12», где ни словечка про вейланд, пускай не смущает неокрепшие умы - там нет никакого нового протокола или проекта по его созданию, там есть просто список ошибок реализации X11. Сама статья изменялась последний раз год назад. Git-репозитория нет. Планов нет. Желающие тоже подозрительно быстро отпадают.

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

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

cmdbufы сабмитятся прямо из приложения на видеокарту, есть конечно еще шедулер в ядре, но он фактически является эквивалентом GEM. туда приходят буфера, а оттуда они уже сыплются на видяху. зачем тут иксы? :) кризис летает

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

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

echo > /dev/null — так передизайнил?

Как клиентам обмениваться сообщениями и выставлять свойства друг другу?

Как внедрить одно окно в другое?

Не смеши меня — передизайнил.

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

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

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

Напрягает, что OGL вместо DirectX? Ну так вяленд это не решит.

Крузис и иксы — это вообще никак не связанные вещи.

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

Я считаю, что микроядра в твоем понимании просто меняют одни костыли на другие (но да, теоретическая надежность растет).

man QNX. Таки микроядро, таки АЭС и прочие кто требуют отказоустойчивости.

Это возможно, но не имеет большого смысла. Вообще микроядра, ИМХО, уже тупиковый путь.

А что не тупиковый? заносить вообще всё в kernel-mode? Что-то новых оригинальных идей в построении операционок не видно. Либо быстро и ненадёжно, либо значимые накладные расходы на IPC, но более отказоустойчиво

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

В какой-то степени и линукс со своим FUSE уже начинает становиться нормальным гибридом с драйверами в userspace

Да, демо-версия тормозов получилась удачной.

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

танненбаум неадекват идеологизированный.

Тем не менее, книжки хорошие написал. Пусть и в соавторстве.

типовой процессор - это legacy by design

Хорошо, что из существующего или хотя бы находящегося в разработке не «legacy by design»? Что-то не наблюдаю.

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

сменных оконных менеджеров

не нужно

Ты не нужен, епрст. Что-то я не видел нигде, кроме линукса, вменяемый тайлинг.

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

За пределами десктопов как венда, так и линукс в меньшинстве, а на этом сайте в основном юзеры именно этих ОС.

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

В линуксе сейчас всё точно так же, после редизайна видеодрайверов

в линуксе напрямую рисует 2d только cairo-drm, которое в десятки раз быстрее.

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

Самые вкусные возможности платформы верните назад.

у тебя и так есть иксы, стабильны и работающие. что ты ноешь то?

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

Что касается ускорения 2d, у нас есть универсальный API — cairo. Через какой бэкэнд он будет рисовать, это уже совсем другой вопрос. В идеале, он должен рисовать видеокартой, всё верно.

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

Я считаю, что микроядра в твоем понимании просто меняют одни костыли на другие (но да, теоретическая надежность растет).

man QNX

И? Выражайся яснее.

АЭС и прочие кто требуют отказоустойчивости.

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

микроядра, ИМХО, уже тупиковый путь.

А что не тупиковый?

Безопасные языки. Впрочем, вынос драйверов тоже имеет смысл.

Что-то новых оригинальных идей в построении операционок не видно.

В основном, существующие ОС всех устраивают. Но, если смотреть внимательно, увидишь Cyclone, BitC, Singularity, House.

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

За пределами десктопов винда в меньшинстве однозначно. Потому что кроме серверов, есть ещё смартфоны, роутеры и прочий вагон всякого добра.

На embedded платформах с MMU и достаточно производительным ядром - поддержка linux хоть даже кривая и косая - это уже стандарт. Китайские роутеры в большинстве своём уже переехали на Linux. Есть конечно ещё WindRiver, но его последнее время начали вытеснять.

А на микроконтроллерах ни линуксом, ни тем более виндой и не пахнет. Там либо жёсткий самопис, либо всякий Nucleus и прочий freertos.

Тащем, за десктопами и серверами жизнь есть и жизнь эта весьма активна, чего «уверенные пользователи ПК и админы локалхоста» не видят и видеть не хотят.

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