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

Тема в разделе "WASM.UNIX", создана пользователем Icebp, 2 фев 2005.

  1. Icebp

    Icebp New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2003
    Сообщения:
    39
    Как я понимаю все системные вызовы в Линуксе идут через прерывание 80h. Однако из описаний этого сервиса никак не пойму как написать программу, чтобы она в иксах рисовала например message box или какое-нибудь окно?
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.709
    Icebp

    Imho gui в nix'ах это не системные вызовы, а всего лишь "морда ala windows", и не одна, каждая имеет собственный api.
     
  3. xzazet

    xzazet New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2003
    Сообщения:
    41
    В ядре GUI нет. Здесь можно найти пример на асме для рисования окошек. Если память не изменяет, через библиотеки GTK.



    http://savannah.nongnu.org/download/pgubook/
     
  4. looser

    looser New Member

    Публикаций:
    0
    Регистрация:
    25 май 2004
    Сообщения:
    34
    Адрес:
    msk
    Всяческие окошки можно рисовать с использованием библиотек GTK+, QT(платная для коммерческой разработки), ну или по старинке, через xlib
     
  5. Icebp

    Icebp New Member

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

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Основа Unix GUI - Х-сервер, к которому подключаются через сокеты.

    Поисковик -> "X Window System Protocol"
     
  7. Icebp

    Icebp New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2003
    Сообщения:
    39
    Пробовал нпаисать программу как написано в PDF-ке, на которую указал xzazet, но у меня она не компилируется. У меня стоит 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-е, то поделитесь им пожалуйста со мной.

    PS: а вообще Linux удобен тем, что не виснет и переключениями между консолями.
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Icebp

    1) libgnomeui.so.32 это она и есть, просто

    должен быть еще link на нее libgnomeui.so ,

    но довольно часто версии библиотек ( 3.2 -

    это версия) несовместимы друг с другом.

    2) RPM должен называться типа XFree

    development - средства разработки.

    Под gnome ( это вариант оболочки)

    должна быть тоже добавка.

    Просто под Linux-ом нет монополии и

    народ плодит реализации одного и того же.

    По поводу опыта - он на opennet.ru
     
  9. v3625

    v3625 New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2005
    Сообщения:
    1
    Только не ставь эти симлинки вручную, а ставь соответствующие -devel пакеты. Например XFree86-devel, gtk+-devel и т.д.