유닉스,리눅스 GUI프로그래밍
조경민 bro@shinbiro.com
오후 5:36 2008-02-21
===========================================================


유닉스의 GUI를 X-Window라고 하는 표준.
리눅스의 X-Window도 이의 일종임.


X-Window의 구성요소
- X 서버
- X 클라이언트
- X 프로토콜
- X 라이브러리


X클라이언트가 사용자 입력을 받아 서버로 키보드나 마우스 누름 이벤트를 전달


하면 X서버가 하드웨어를 제어하고 화면에 뿌려준다.
X클라이언트와 X서버간의 IPC 통신을 하는데 X프로토콜이 이에 대한 메시지 전달


형식에 대한 규약이다. 위의 이런 프로토콜을 따르는 서버나 클라이언트 개발하


기 위해서 제공되는 라이브러리가 X 라이브러리이다.


X 라이브러리는 기본적인 기능을 포함하는 저수준 라이브러리이다. 주소 기본 창


생성, 창 안의 그림 그리기 (Graphic Context), 폰트 등을 지원한다. 버튼이나


리스트, 라벨 윈도우를 쓰고 싶으면 이의 상위레벨 라이브러리를 사용해야 한다.


이런 윈도우를 Widget이라하며 X라이브러리 툴킷 또는 widget toolkit이라 하여


Qt,Motif,gtk 등이 있다.


또한 더 나은 UI 및 통합 윈도우 관리를 위하여 데스크탑이 생겼다. (CDE,KDE 등


)


유닉스/리눅스 GUI 개발할때 결정할 것
개발하려는 데스크탑에 맞는 개발 라이브러리를 선정한다.


데스크탑 - 동작 가능한 라이브러리
OpenWindows - Xlib
CDE - Xlib, Motif (qt나 gtk동작 안함)
KDE(K Desktop Environment) - Xlib, Qt
GNOME(The Gnu Object Model Environment) - xLib, gtk  (motif는 동작 안함)


솔라리스 데스크탑은 주로 CDE이며 OpenWindows는 솔라리스 초기 데스크탑이다.
리눅스 데스크탑은 주로 KDE, GNOME이므로 gtk


만일 Qt나 wxWidget을 사용하면 소스레벨에서 Win32, Linux UI소스가 호환된다.
만일 스크립트레벨의 GUI프로그래밍을 한다면 보다 호환성이 높을 수 있다.
Tcl/Tk나 perl, 파이선등이 있다. 그러나 설치된 버전에 민감하므로
타깃 시스템에는 꼭 개발했던 버전의 라이브러리를 설치해야 한다.


임베디드 시스템 개발 시에는 destkop 및 Xt 라이브러리를 선택할 수 있으므로


자유롭다.
하지만 만일 추가 라이브러리를 설치 하지 않고 기본적인 환경에서 동작하게 하


려면 X lib프로그래밍이나 해당 데스크탑 Xt를 선정하여 개발하는 것이 좋다.


Xlib
Xlib의 상위 레퍼 라이브러리를 Xt (X Toolkit)라이브러리라고 함
Motif, Qt, gtk 등이 존재, 각 Xt들은 자신이 동작 가능한 데스크탑이 있음[1]
http://marvel.incheon.ac.kr/infomation/xwindow/Xwindows%20Programming%


20on%20LINUX/X-Window-Programming.html#toc2



참고
[1]. X 윈도우 구조, http://blog.naver.com/koreteck?


Redirect=Log&logNo=13497410


[2]. X Library 강좌
http://marvel.incheon.ac.kr/infomation/xwindow/Xwindows%20Programming%


20on%20LINUX/X-Window-Programming.html#toc2


[3]. Motif 강좌
http://marvel.incheon.ac.kr/infomation/xwindow/Motif-howto%


20programming.htm


http://www.oreilly.com/openbook/motif/



[4]. QT로 만들어진 KDE와 GTK+로 만들어진 Gn
http://blog.naver.com/rafale3?Redirect=Log&logNo=140007259830


[5]. Motif (widget toolkit)
http://en.wikipedia.org/wiki/Motif_%28widget_toolkit%29

'KB > linux' 카테고리의 다른 글

motif on posix thread or fork  (0) 2008.03.27
posix thread  (0) 2008.03.27
Linux VFS (Virtual File system)  (0) 2007.08.01
Linux SMP Locking 좋은 내용  (0) 2007.08.01
[펌]온라인 리눅스 OS 관련 자료  (0) 2007.08.01

+ Recent posts