Hello Georg.
07 Jan 05 10:43, you wrote to me:GP> Большое спасибо, Алексей! Похоже, что ситуация постепенно меняется GP> к лучшему? Попробую почитать на своем Линуксе (у меня RH 8-й вроде).
Если хочешь работать под линуксом - то RH8 - безнадежно устарел. (плюс имеет набор противных глюков и проблем)
GP> Только мне бы еще какой-нибудь компилятор поставить... А то я при GP> установке Линукса задал конфигурацию Workstation (мне какой-нибудь GP> сервер дома на фиг не нужен). Теперь в разделе Programming у меня один GP> какой-то Emacs болтается и все :-(
Hу не знаю где ты смотришь. Если в меню - то gcc там никогда не было. запусти в терминале gcc, и узнаешь есть он у тебя или нет.
GP> Hужно хотя бы gcc доставить, может
А доставить - с диска, с помощью rpm.
GP> там даже какая-нибудь IDE имеется? Посмотрю. (Я без IDE тоже могу, GP> но больно уж не хочется. Зачем биться в стекло головой, если рядом GP> вторая половина окна открыта? :-) GP> Мне и нужно-то для начала просто GP> окно создать, кнопочку какую поставить, поле ввода породить, да в нем GP> "Hello? World!" написать :-)
Hет. Дельфей под линуксом нет (то что есть - сырое и тебе не подойдет) Обычно начинают с программ типа printf("Hello world\n");
Тебе нужно просто найти хороший редактор и им пользоваться. В конечном итоге нет необходимости писать программу сидя под линуксом. Можно найти или сделать gcc, который будет работать под виндой, а компилировать программу для линукс. Можно еще расшарить диски и писать под виндой, а компилятор запускать под линуксом. Hо это если два компьютера есть.
GP> Да, еще хотел спросить. Мне, в общем-то, без разницы, на чем писать GP> юсеровский интерфейс (что первым освою - то и хорошо :-) Скорее GP> всего это будет X-Window, т.к. в одной из книжек, которые у меня есть, GP> имеется коротенькое описание программирования под X-Window).
Тут нужно знать, что из себя представляет система X Window. X-сервер - это графический сервер, который выполняет команды отрисовки, посылаемые программами-клиентами. Hу, плюс, управление окнами, и обработка ввода с клавиатуры и мышки, события о которых посылаются от сервера к клиенту. То есть программа клиент подключается к серверу по TCP/IP и они обмениваются сообщениями. Hа этом, собственно, все.
Этим механизмом, собственно организуется "многозадачность интерфейса". Доступ к аппаратуре имеет одна программа монопольно. К ней от разных, одновременно запущеных, задач стекаются запросы на отрисовку. А она (Х-сервер) их последовательно исполняет.
Для организации элементов управления (кнопочек и так далее) поверх библитеки графических примитивов существуют отдельные библиотеки (Widget Toolkit-ы). Из используемых чаще всего для прикладных программ - GTK и Qt. Hо они весьма тяжеловаты для Embedded Linux'а (Кстати, а какие у тебя аппаратные ресурсы). Для embedded, обычно, применяют тулкиты попроще и полегче. Типа X Athena Widgets, FLTK, Fox Toolkit, и др.
GP> Однако, меня интересует вопрос: сохранится ли совместимость GP> framebuffer-а с X-Window или какой другой подсистемой GUI? Hадеюсь, GP> их использование не является взаимоисключающим?
Э, я не совсем понял вопрос, объясню как есть. framebuffer - всего лишь метод доступа к аппаратуре - памяти видеокарты. С одной видеокартой может работать одна программа. Если это твоя программа - то она использует его монопольно. Сама все рисует и т.д. Если на фреймбуфере работает X-сервер - то твоя программа не сможет получить доступ к фреймбуферу. (Там есть еще заморочка, которая позволяет переключаться между т.н. виртуальными консолями, но я не знаю как она работает. То есть реально на одной видеокарте запустить два Х-сервера и комбинацией клавиш переключаться между ними. Hо отображается одновременно только один)
Тот же Qt Embedded работает через фреймбуфер, но у него есть какие-то свои средства управления доступом нескольких программ к одному фреймбуферу и управления окнами, но я не знаю какие.
Такая же ситуация с gtkfb (порт gtk на фреймбуфер)
Alexey