LINUX.ORG.RU

С чего начать свой X-сервер/Вейленд/Мир?

 , ,


0

2

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

В написании своего велосипеда есть необходимость или это делается just for fun?

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

и что? Может он зарегистрировался что бы вопрос задать?

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

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

В общем, потребность скорее практическая, нежели академическая. Как проще - так и лучше. Если же рассматривать финансовый вопрос, то ближе к just for fun.

want-own-x
() автор топика
Ответ на: комментарий от want-own-x

ИМХО, написать отдельный драйвер гораздо проще, чем городить свою систему и при этом еще сохранить совместимость с иксами, иначе как ты запустишь существующие приложения?

JB ★★★★★
()

Да, проблем нет.
Надо изучить mesa, opengl && directx
ну и прочитать спеки на какой открытый видеочип.

Тогда сразу в голове созреет план ownX

Deleted
()

ЕМНИП, у Qt была возможность рисоваться напрямую без X-ов.

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

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

Увы, Qt - это далеко не весь софт. Если сделать такое портирование, то система будет гвоздями прибита к Qt, хорошо если KDE будет работать. И как результат, ни написать на обложке «мы поддерживаем линукс» нельзя, так как пользователи быстро пояснят что тут не так, ни готовые решения поставлять, ведь далеко не весь софт на Qt.

want-own-x
() автор топика
Ответ на: комментарий от JB

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

want-own-x
() автор топика
Ответ на: комментарий от want-own-x

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

похожим - да, но совместимость надо реализовывать. Либо в gtk/qt реализовывать поддержку твоего велосипеда, как сейчас это происходит с wayland'ом

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

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

want-own-x
() автор топика
Ответ на: комментарий от trex6

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

Пытались??? Разве одно из основных нововведений в Qt 5 не есть как раз эта фича?

I-Love-Microsoft ★★★★★
()

возьми DirectFB - там есть ньюанс с многозадачностью(драйвер в ведре для синхронизации вывода), но в целом оно работает.

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

читать документацию и по ним :) цель ведь не только в том, что бы написать, но и в том, что бы разобраться и иметь понимание?

JB ★★★★★
()

с регистрации на ЛОРе, бро!

mos ★★☆☆☆
()
Ответ на: комментарий от want-own-x

Подумалось, что раз у меня есть видеопамять

пишешь драйвер framebuffer за 15 минут и все готово - в иксах есть подержка fbdev

возможность рисовать на ней битмапы/прямоуголники/шрифты

нафиг не нужно - иксы все нарисуют

anonymous
()
Ответ на: комментарий от want-own-x

Адский труд в виде корректной реализации контракта, который предоставляют своим пользователям иксы - адок еще тот. Если нужно поддерживать все существующие приложения, рекомендую все же драйвер для иксов пилить.

trex6 ★★★★★
()
Ответ на: комментарий от want-own-x

Старые иксы без 3d, randr и сглаживания шрифтов - быстрые и легкие.

Shadow ★★★★★
()

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

entefeed ☆☆☆
()

libWLC
Wayland Compositor Library
Делай свой композитор и все
Вейленд и libinput все сделают за тебя

mystery ★★
()

С мысли о том, что это «не нужно» :)

invy ★★★★★
()

Если у тебя «Свое устройство» то смотри в сторону Qt для Embedded. (в 4-й версии была такая штука, как QWS, которая позволяла запускать проги на Qt вообще без иксов, подозреваю что в пятой что-то аналогичное есть)

RiseOfDeath ★★★★
()

Под дос попрограммируй на ассемблере, через прерывание INT 10H выставляй нужный режим, и там короче кусок памяти, в него пишешь байтики всякие, и они там автоматически отображаются на экране. Сам так делал, даже где-то примеры на ассемблере остались. В опенваткомовском компиляторе среди примеров есть какая-то ерунда для работы с этим

SZT ★★★★★
()

не надо этого делать

jtootf ★★★★★
()

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

Значит, нужно начать со списка расширений. Их, похоже, есть 2. Compile-time и runtime. Последний получить и потестить очень просто:

$ X -extension abc
[mi] Extension "abc" is not recognized
[mi] Only the following extensions can be run-time disabled:
[mi]    Generic Events
[mi]    Composite
[mi]    DAMAGE
[mi]    DOUBLE-BUFFER
[mi]    DPMS
[mi]    GLX
[mi]    MIT-SCREEN-SAVER
[mi]    MIT-SHM
[mi]    RANDR
[mi]    RENDER
[mi]    SECURITY
[mi]    X-Resource
[mi]    XFree86-DGA
[mi]    XFree86-DRI
[mi]    XFree86-VidModeExtension
[mi]    XFIXES
[mi]    XINERAMA
[mi]    SELinux
[mi]    XTEST
[mi]    XVideo
<...cut...>
Теперь можно позапускать X без них и проверить. А потом - заглянуть в исходники за первым списком и пересобрать иксы с --disable-... или подобного.

gag ★★★★★
()

надо интегрировать видео в ядро. Тогда будет хорошо.

int13h ★★★★★
()
Ответ на: комментарий от want-own-x

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

не-не-не, тогда тебе придётся тулкиты портировать. тогда вариантов особо и нетути, wayland что ли. хотя да, в Qt порт под свою оконную систему не очень сложно сделать.

anonymous
()
Ответ на: комментарий от want-own-x

цель какая всего этого действа? потренироваться изобретать оконную систему? портировать какой-то полезный софт, и для начала GUI toolkit?

нарисовать окошко с хеллвордом гуёвым?

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