Często zdarza mi się używać niesamowitych rozwiązań technologicznych :-) Opisane poniżej rozwiązanie nie tyle stwarza warunki do rozwoju, ale również do testowania rozwijanych projektów. Mowa tutaj o trybie
framebuffer możliwego do użycia w graficznym systemie
X11 windows system. Poniżej przedstawie jak najprościej uruchomić i podglądać nasz wirtualny system graficzny.

Na początek uzupełniamy system o pakiet serwera ramki
Xvfb:
sudo apt-get install xvfb
Następnie startujemy wirtualny serwer graficzny w tle poleceniem:
sudo startx -- `which Xvfb` :2 -screen 0 1024x768x24 2>&1 >/dev/null &
W następnej kolejności uruchamiamy naszą aplikacje graficzną na serwerze np:
gimp poleceniem:
sudo DISPLAY=:2 gimp
W tym czasie możemy zrobić zrzut ekranu naszego wirtualnego serwera graficznego poleceniem:
xwd -display :2 -root | convert xwd:- /tmp/framebuffer_server_autput.png
lub możemy po zainstalowaniu aplikacji
byzanz nagrać obraz z serwera graficznego do animowanego plku GIF:
sudo apt-get install byzanz
sudo DISPLAY=:2 byzanz-record -l --display=:2 /tmp/rec.gif
Uzyskany ze zrzutu ekranu obrazek możmy wyświetlić np: w ten sposób:
sudo DISPLAY=:0 gthumb /tmp/framebuffer_server_autput.png
a wówczas naszym oczom może ukazać sie następujący widok:

Zadajecie sobie pewnie pytanie
"po cóż mi taki bezużyteczny framebuffer, skoro nie mam dostępu do pulpitu" i odpowiedzią jest poniższe rozwiązanie używające serwera
X11vnc do przechwytycenia widoku framebuffera.
Na początek instalujemy pakiet
X11vnc:
sudo apt-get install x11vnc
Po starcie w następujący sposób:
x11vnc -display :2
zauważymy komunikaty typu:
04/12/2008 20:50:11 Autoprobing TCP port
04/12/2008 20:50:11 Autoprobing selected port 5900
04/12/2008 20:50:11 fb read rate: 480 MB/sec
04/12/2008 20:50:11 screen setup finished.
04/12/2008 20:50:11
04/12/2008 20:50:11 WARNING: You are running x11vnc WITHOUT a password. See
04/12/2008 20:50:11 WARNING: the warning message printed above for more info.
04/12/2008 20:50:11
The VNC desktop is: localhost:0
PORT=5900
Informacje wymagane do połączenia z framebuffer serwerem to
localhost:0. Połączenia możemy dokonać używając klienta w ten sposób:
vncviewer localhost:0
Powinien pojawić się nam w nowym oknie przechwycony pulpit naszego wirtualnego serwera graficznego.
Dopiero po wykonaniu powyższych przykładów widać wyraźniej, jakie otwierają się przed nami możliwości. Możemy dla przykładu używać wirtualnego pulpitu do uruchamiania procesów
automatycznego testowania stron internetowych przy pomocy takich narzędzi jak
Selenium oraz
Hudson, których moc postaram się przybliżyć w kolejnej wypowiedzi.
Linki:
http://en.wikipedia.org/wiki/Xvfb
http://www.hackinglinuxexposed.com/articles/20040608.html
http://www.xfree86.org/4.2.0/Xnest.1.html
http://wiki.x.org/X11R6.8.2/doc/Xvfb.1.html
http://wiki.seleniumhq.org/display/SRC/Selenium-RC+and+Continuous+Integration