Как я понимаю все системные вызовы в Линуксе идут через прерывание 80h. Однако из описаний этого сервиса никак не пойму как написать программу, чтобы она в иксах рисовала например message box или какое-нибудь окно?
Icebp Imho gui в nix'ах это не системные вызовы, а всего лишь "морда ala windows", и не одна, каждая имеет собственный api.
В ядре GUI нет. Здесь можно найти пример на асме для рисования окошек. Если память не изменяет, через библиотеки GTK. http://savannah.nongnu.org/download/pgubook/
Всяческие окошки можно рисовать с использованием библиотек GTK+, QT(платная для коммерческой разработки), ну или по старинке, через xlib
Получается, что используется библиотека типа shared library, которая действует аналогично виндовсовским DLL. Не пойму до конца следующее: когда из объектного файла делается исполнимый, то например в инструкции call gnome_init записывается адрес вызова и при исполнении программы вызываемая функция находится уже в памяти или же при запуске программы библиотека грузится с диска в память и потом настраиваются адреса для программы. И еще вопрос: например библиотека GNOME при вызове какой-то из ее функций отрисовки чего-либо делает системные вызовы int 0x80? Если это так, то получается, что можно написать программку, которая сама без библиотек будет работать типа команды startx, то есть переходить в графический режим и например рисовать какой-нибудь квадрат. Кто-нибудь знает что-либо насчет этого?
Основа Unix GUI - Х-сервер, к которому подключаются через сокеты. Поисковик -> "X Window System Protocol"
Пробовал нпаисать программу как написано в 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 удобен тем, что не виснет и переключениями между консолями.
Icebp 1) libgnomeui.so.32 это она и есть, просто должен быть еще link на нее libgnomeui.so , но довольно часто версии библиотек ( 3.2 - это версия) несовместимы друг с другом. 2) RPM должен называться типа XFree development - средства разработки. Под gnome ( это вариант оболочки) должна быть тоже добавка. Просто под Linux-ом нет монополии и народ плодит реализации одного и того же. По поводу опыта - он на opennet.ru
Только не ставь эти симлинки вручную, а ставь соответствующие -devel пакеты. Например XFree86-devel, gtk+-devel и т.д.