LINUX.ORG.RU
ФорумTalks

использование GUI в Linux


0

0

Как я понимаю все системные вызовы в Линуксе идут через прерывание 80h. Однако из описаний этого сервиса никак не пойму как написать программу, чтобы она в иксах рисовала например message box или какое-нибудь окно?

У меня стоит Linux Mandrake 9.0 Так вот у меня почему то вообще нет файла gnomeui.so и также нет Xlib.so Перерыл весь каталог /usr/ и нашел что то похожее, но не то: libgnomeui.so.32 libx???. Команда locate необходимых библиотек тоже не находит. Что мне надо сделать? Может мне поставить какой-нибудь RPM? Позволяет ли вообщее этот Mandrake GUI-программирование? Охото что-нибудь нормальное написать, а то через int 0x80 все какое то УБОГОЕ (вывод ТОЛЬКО ЧЕРНО-БЕЛОГО ТЕКСТА, мало сервисов). Вот говорят: Linux, Linux, а в этом Linuxe только вызов fork по-моему заслуживает внимания, а так раньше в DOS-е я писал гораздо лучшие программы (мог писать в любом месте экрана любым цветом, мог программить CD-RW, мог рисовать в графическом режиме 800*600 с 24-битным цветом да и много еще чего). В Windows тоже можно всякие окошки рисовать и тому подобное. А в Linux-е хрен чего сделаешь, вся информация закрытая. На Си-программирование конечно полно всякой дряни, но она мне не нужна. Поэтому у кого есть опыт программирования в Linux-е, то поделитесь им пожалуйста со мной.

anonymous

Не понял. Что нужно - доступ на асме к X? Или даже к GNOME? Вы понимаете, о чём говорите?

Xellos ★★★★★
()

>Как я понимаю все системные вызовы в Линуксе идут через прерывание 80h. Однако из описаний этого сервиса никак не пойму как написать программу, чтобы она в иксах рисовала например message box или какое-нибудь окно?

Да, пожалуй это будет несколько сложновато:)

>У меня стоит Linux Mandrake 9.0 Так вот у меня почему то вообще нет файла gnomeui.so и также нет Xlib.so Перерыл весь каталог /usr/ и нашел что то похожее, но не то: libgnomeui.so.32 libx???. Команда locate необходимых библиотек тоже не находит. Что мне надо сделать?

man find

>А в Linux-е хрен чего сделаешь, вся информация закрытая.

Может просто попробовать поискать. Досовские доки тоже на дороге не валяются

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

>Да, пожалуй это будет несколько сложновато:)

Ну почему. На асме же можно вызвать внешнюю программу и подпрограмму... Загрузить (руками) библиотеку, посчитать смещение...

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

Получается, что используется библиотека типа shared library, которая действует аналогично виндовсовским DLL. Не пойму до конца следующее: когда из объектного файла делается исполнимый, то например в инструкции call gnome_init записывается адрес вызова и при исполнении программы вызываемая функция находится уже в памяти или же при запуске программы библиотека грузится с диска в память и потом настраиваются адреса для программы. И еще вопрос: например библиотека GNOME при вызове какой-то из ее функций отрисовки чего-либо делает системные вызовы int 0x80? Если это так, то получается, что можно написать программку, которая сама без библиотек будет работать типа команды startx, то есть переходить в графический режим и например рисовать какой-нибудь квадрат. Кто-нибудь знает что-либо насчет этого?

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

>Загрузить (руками) библиотеку, посчитать смещение...

Я имел ввиду не пользуясть чем либо другим.

SatanClaus ★★★
()

че за бред ты написал? гугль не помогает?

задай вопросы по-нормальному и в Development.

в иксах рисуется через xlib или соответствующие тулкиты tk/gtk/qt/..., или напрямую можно обращаться к X-серверу.

в консоли --- через фреймбуфер или svgalib (очень старый способ).

а вообще не прикол ли этот вопрос?

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

млин. сочинял ответ, отвлекся, а тут уже столько понаписали (:

hatefu1_dead
()

/me сдох пацтулом

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

Народ, я не помню, прерывания это самый низкий уровень работы с процессором? Ниже нет? Что-то мне подсказывает, что int 80h - это для лохов.

Xellos ★★★★★
()

Аффтар, а какое отношение имеют прерывания, регистры и порты к Mandrake Linux, X11 и GNOME?

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

>Что-то мне подсказывает, что int 80h - это для лохов.

Можно попробовать работать прямо на уровне ядра. Тогда да нафиг 80h не нужно. Мы не ищем легких путей.

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

> Что-то мне подсказывает, что int 80h - это для лохов.

Есть еще syscall/sysenter

xnix ★★
()

>А в Linux-е хрен чего сделаешь

Это точно, нужно пользоватся *BSD. Это труЪ юникс, не то что поделка красноглазых пионеров. Можно вообще переключится из протектед в риал моду и использовать все прерывания из BIOS, включая int 19h. Правда памятью придется управлять самому, но это такая фигня, по сравнению с
возможностью рисовать в графическом режиме 800*600 с 24-битным цветом

Sun-ch
()
Ответ на: комментарий от Sun-ch

Саныч, а как же Solaris? Серьёзный продукт, сделанный серьёзной компанией. BSD - тоже не труЪ, его вообще студенты пишут.

Xellos ★★★★★
()

Чуствую в этом году 1 апреля будет долгим...

Alex_A_V ★★
()

>Может мне поставить какой-нибудь RPM?

тебе нужен по крайней мере пакет brain,
версия не ниже 0.3, лучше 1.0, но эту версию трудно найти

fghj ★★★★★
()

А это знаете что вылезло? Это то вылезло, о чём мы, млять, все эти годы мечтали. Это горе-кодеры досовые и виндовые, которых начальство наконец заставило переходить на опесорс. Они вчера асилили поставить мандру (рукоплещу), а сегодня ломанулись эту мандру хакать. Но они же, млять, самые умные, зачем им что-то читать или изучать? Они сейчас по-виндовски всё сделают - эти линуксоиды такого ещё не видали! "Ща мы всем покажем, как кодят правильные потсаны!"

Я вспоминаю, лет 10 назад, точно также старые ДОСовые пердуны ломанулись кодить под винду со своим принципом "весь экран - моя нора". Пилять, до чего ж народ тупой, заносчивый и ленивый, а!

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

>Он или прикалывается так жестоко или пора вызывать санитаров.

Склоняюсь к первому...

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

> Я вспоминаю, лет 10 назад, точно также старые ДОСовые пердуны ломанулись кодить под винду со своим принципом "весь экран - моя нора".

А вот это, кстати, приятная мысль :)

Те-то переучились потом, поди? :)

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

> Те-то переучились потом, поди? :)

хрен тебе переучились

кто видел программы которые раздают в налоговой тот поймёт

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

>кто видел программы которые раздают в налоговой тот поймёт

Досовская для ПФР покруче была А так вообще да представление о ГУИ у ребят своеобразное.

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

Валяются

По правец 16 (зарыта глубоко и не найти)

и по видеосистеме

В.П. Григорьев 
Видеосистемы ПК фирмы IBM

лучшие IMHO

Может просто попробовать поискать. Досовские доки тоже на дороге не валяются

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

ОЧЕПЯТАЛСЯ, ПОСЛЕДНУЮ СТРОКУ НАВЕРХ И:

>Может просто попробовать поискать. Досовские доки тоже на дороге не валяются

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

> тут есть, чтоб сразу цитату выделяло?

нет. и вообще, здесь вам не тут

anonymous
()

Спасибо, посмеялсо :)

Ладно парень переходит с доса/винъ на линукс, прерывания и т.п. Я не пойму одного, кроме Talks вроде есть Development или английский не надо знать сейчас?

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

> английский не надо знать сейчас ?

Действительно - не надо! Ну его в топку, это же недоязычёк!

anonymous
()

Я так даже на первое апреля не смеялся.

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

Еще забавнее наблюдать как многие воспринимают это всерьез и начинают что-то советовать... Ну не верю я что аффтор темы не прикалывался :)
Хотя вот за ссылку на программирование для Xlib спасиб, попробую асилить на досуге.

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

> ">" Всегда руками делал =)

Рукодельница ты наша :)

anonymous
()

> На Си-программирование конечно полно всякой дряни, но она мне не нужна. Поэтому у кого есть опыт программирования в Linux-е, то поделитесь им пожалуйста со мной.

gcc -S уже отменили?

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

>Еще забавнее наблюдать как многие воспринимают это всерьез и начинают что-то >советовать... Ну не верю я что аффтор темы не прикалывался :) >Хотя вот за ссылку на программирование для Xlib спасиб, попробую асилить на досуге.

Google в очередной раз рулит. Оригинал здесь - http://www.wasm.ru/forum/index.php?action=vthread&forum=24&topic=8580

Там по ходу дела человек разбирается с программированием гуи под линукс на ассемблере, что есть задача нетривиальная, а для многих "ржунемогущих" в этом треде - непосильная.

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

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

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

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

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

> Досовские доки тоже на дороге не валяются

Во-первых валяются (по сравнению с линуксом), во-вторых асм под DOS по сложности был доступен даже школьнику, там учить почти нечего и из манов нужен только всем известный ральф-браун. :)

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

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

Да неужели сложнее? Раскидать параметры системного вызова по регистрам, сказать 80h и получить результат на блюдечке разве сложно? Кроме того писать на асме выгодно когда какойто сумасшедший алгоритм оптимизируешь под конкретный процессор, тут особой разницы нет.

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

> Да неужели сложнее?

Да. В том смысле, что для чего-то сложнее "hello world" надо (как и под Win32) делать множество совершенно неочевидных телодвижений. А под досом ты просто пишешь алгоритм, что ты от компа хочешь - практически Бейсик. И тебе для вывода картинки не надо знать что такое выделение памяти, контекст устройства, GDI, эксклюзивный режим DirectDraw и т.д...

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

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

И таким образом привязаться к железу.

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

> Не прошло и года... Можно было и почитать за это время чтонибудь.

тормозишь )))

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

> И таким образом привязаться к железу.

В каком месте? int10h не менялось с 80ых годов и работает ВЕЗДЕ это раз, и "отвязываться" от железа можно было не нагружая кодера это два. Я не понимаю, трудно было сделать в том же WinAPI простые функции типа SetScreenMode, PutPixel и т.д.? И пусть винды через драйвера разбираются как это сделать на конкретной видюхе...

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