Linux XScreenSaver T020074 Linux XScreenSaver XScreenSaver Linux Linux Linux X Window System X Window System Xlib XScreenSaver X Window System Xlib XScreenSaver Xlib vroot.h Xlib XScreenSaver Linux Linux XScreenSaver
Linux XScreenSaver T020074
1 2 1.1................................... 2 1.2....................................... 2 1.3.................................. 3 2 Linux 4 2.1 Linux.................................... 4 2.2................. 4 2.3 Linux.................................. 5 2.4.................................. 6 2.4.1.......................... 7 2.4.2 root................................... 9 2.5 X Window System............................... 9 2.5.1 X Window System........................ 9 2.5.2 X X....................... 10 2.5.3............................ 12 2.6 CUI....................................... 13 2.7..................................... 14 3 15 3.1 XScreenSaver.................................. 15 3.1.1................................. 16 3.1.2 xscreensaver............................... 16 3.1.3 xscreensaver-demo........................... 17 3.1.4 xscreensaver-command......................... 17 3.2 xscreensaver................. 18 3.2.1 xscreensaver...................... 18 3.2.2 xscreensaver........................ 18 3.3........................... 21 3.3.1 X (Xlib)........................ 22 3.3.2 vroot.h................................. 25 3.3.3 xscreensaver........................... 26 3.4 XScreenSaver....................... 27 4 28 1
1 1.1 Linux OS Linux(VineLinux3.1) OpenGL OS Windows OpenGL Linux Linux OS Linux 4 Linux PC Linux Linux Linux 1.2 Linux Linux OS (GNOME ) OpenGL Linux Windows Linux 10 PC xscreensaver( 1) xscreensaver [1] PC xscreensaver 2
README xscreensaver PC XScreenSaver 1: xscreensaver 1.3 Linux Linux 3
2 Linux 2.1 Linux Linux [2] OS( ) OS ( ) ( CD ROM ) PC OS OS/2 Novell NetWare SCO Windows NT DOS Windows OS [2] Linux Linux UNIX ( ) 2.2 Linux vmlinuz (/boot ) Linux Linux Linux Linux ( ) CPU Linux Linux Linux [6] Linux GNU/Linux GNU/Linux Linux OS Linux Linux OS 4
Linux GNU GNU/Linux Linux [2] Linux + + + RPM RPM(RPM Package Manager) Red Hat ( ) Linux Red Hat SUSE Linux Vine Linux RPM rpm Debian Debian Project deb Slackware Linux Linux Slackware UNIX tar+gzip 2.3 Linux Linux [3] Linux ( ) (/usr/doc ) man page Linux Linux UNIX UNIX 5
Linux POSIX([6] UNIX UNIX ) ANSI( ) UNIX OS Windows Max OS OS Linux CPU 100% 100% CPU Windows Linux TCP/IP Linux RAM 4M 386PC 16M X Window System Linux Linux PC UNIX Linux Linux Linux Window 2.4 Windows Linux 6
2.4.1 Vine Linux3.1 Linux ( ) (/) Linux [5] ( 1) bin/ dev/ home/ lib/ misc/ opt/ root/ tmp/ var/ boot/ etc/ initrd/ lost+found/ mnt/ proc/ sbin/ usr/ 1: bin/ ls cp root boot/ Linux initrd Linux dev/ Linux etc/ Linux /etc initrd/ Linux initrd lib/ /bin /sbin /lib/modules lost+found/ fsck 7
misc/ Vine Linux mnt/ CD-ROM /mnt/cdrom /mnt/floppy ( ) opt/ proc/ CPU /proc/cpuinfo /proc/meminfo Linux root/ (root) root sbin/ shutdown fdisk fsck init Linux (root ) tmp/ /tmp Vine Linux /tmp usr/ /bin /sbin var/ Linux home/ Web (/home/httpd ) (root) /home /root 8
2.4.2 root root root root OS Linux root root (su:super user) root root root 2 $su su Password: root # root $ # # root #exit exit root 2: su root exit root Linux root 2.5 X Window System 2.5.1 X Window System X Window System( X ) Linux Unix OS (GUI Graphical User Interface) Unix OS X X Windows Linux X Linux Linux X GUI Windows X 9
Linux Linux X Xlib X ( 2[4]) Xlib xscreensaver Xlib X Xlib X ( ) Widget Intrinsic lib 2: X X 6(/X11R6)( 3) X /usr/x11r6 X GUI X 3 4 5 6 2.5.2 X X X X X (X ) X GUI X X X 10
;<>= (xfs)?a@<bc8d;<e=! "$#%$&' (*),+-.!$/$.10 ' 2 3*)$+1-. (xlogo,xterm...) (kterm,canna,kinput2...) (Xt,Xaw...) (Xlib) 45 68719: 3: X11R6 PC PC X Linux XFree86 X.Org X X kterm Mozilla XMMS X XFree86 X.Org [5] XFree86 x86 UNIX OS X PC UNIX Linux X X.Org XFree86 X.Org Foundation XFree86 X.Org 2004 4 XFree86 4.4RC2 X.Org X11R6.6 X Window System Version 11 Release 6.7(X11R6.7) X11R6.8.2 X GUI OS (X Windows ) X X X X ( 4[5]) X TCP/IP ( 11
) ) UNIX GUI UNIX X (!#"$%"&'&( ) "*&",+!#"$%" -/.0 ( ) 4: X X 2.5.3 GNOME KDE CD PC GNOME [5] GNOME KDE 12
GNOME GNU Network Object Model Environment X GUI GTK KDE KDE KDE Qt GPL GNOME KDE The K Desktop Environment X GUI Qt GUI KDE (kwm) (Konqueror) GUI 2.6 CUI X GUI GUI Linux CUI Character User Interface GUI CUI GUI HCI(Human Computer Interacion) GUI GUI GUI Turbolinux Red Hat Linux GNOME KDE CUI Linux GUI GUI X X X CUI 13
PC GUI GUI CUI GUI CUI CUI GUI (X GUI X ) 2.7 Linux ( ) CUI 2 1 2 ( ) ( 5) GNOME ( ) 5: GNOME CUI PC OS Linux bash [tab ] 14
[ ] Linux 3 PC Linux X off XScreenSaver 3.1 XScreenSaver PC xscreensaver4.14(25-oct-2003)[1] ( xscreensaver ) xscreensaver X X UNIX OS UNIX xscreensaver UNIX xscreensaver xscreensaver Windows X xscreensaver xscreensaver XScreenSaver xscreensaver xscreensaverdemo xscreensaver-command 15
3.1.1 [5] (daemon) Web xscreensaver xscreensaver 3.1.2 xscreensaver xscreensaver xscreensaver xscreensaver ( ) ( 6) 6: xscreensaver PC Windows 16
3.1.3 xscreensaver-demo xscreensaver-demo xscreensaver xscreensaver-demo Screensaver Preferences ( 7).xscreensaver GUI 2 xscreensaver GUI xscreensaver-demo 7: xscreensaver 3.1.4 xscreensaver-command xscreensaver-command xscreensaver xscreensaver-command xscreensaver-demo xscreensaver-command xscreensaver CUI 17
3.2 xscreensaver xscreensaver 3.2.1 xscreensaver PC xscreensaver xscreensaver-4.23 ( C X11 Linux ) 1. Jamie Zawinski XScreenSaver Download 2. xscreensaver-*.**.tar.gz 3. ( 3) $tar -vxzf xscreensaver-*.**.tar.gz $cd xscreensaver-*.**/ $./configure make $make make $su root Password: #make install 3: xscreensaver xscreensaver xscreensaver (xscreensaver-*.**/hacks ) OpenGL PC xscreensaver xscreensaver-*.**/hacks/glx OpenGL 3.2.2 xscreensaver PC [ ] [ ] [ ] [ ] xscreensaver ( 7) 18
GUI CUI 4 $xscreensaver & $xscreensaver-demo 4: xscreensaver xscreensaver & xscreensaver: **:**:**: already running on display :0.0 xscreensaver ( Linux xscreensaver ) xscreensaver xscreensaver-demo [File] [Kill Daemon] xscreensaver-command -kill xscreensaver Warning( 8) xscreensaver & 8: Warning [OK] xscreensaver [ ] xscreensaver xscreensaver xscreensaver-demo xscreensaver-command ( ) xscreensaver-demo ( 7) xscreensaver GUI 19
GUI ( 7) [Display Modes] [Mode] 4 Mode Disable Screen Saver Blank Screen Only Only One Screen Saver 1 Random Screen Saver Blank After Cycle After Lock Screen After CUI CUI.xscreensaver X (/usr/lib/x11/app-defaults ) XScreenSaver xscreensaver.xscreensaver X xscreensaver.xscreensaver (. ls ls -a ).xscreensaver (/usr/lib/x11/appdefaults/xscreensaver ).xscreensaver /usr/lib/x11/appdefaults/xscreensaver ( 7).xscreensaver.xscreensaver timeout 20
cycle lock True locktimeout passwdtimeout 3.3 xscreensaver X root tvtwm vroot.h X-Window X xscreensaver vroot.h ( ) 21
1. 2. vroot.h 3. 4. 5. 6. 3.3.1 X (Xlib) [4] X c GUI c GUI Xlib Xlib X X X GUI X X GUI GUI Xlib X Xlib Xlib ( 2[4]) Xlib OpenGL <GL/glut.h> OpneGL Xlib <Xlib.h> Xlib /usr/include/x11 Xlib Xlib ( 9[4]) X 22
!#" $ for(;;) {! %&!(' )* +-,/. 0 $123 4 56 78 ( 569 break) } :; <= 9: Xlib Xlib [7] <X11/Xlib.h> <X11/Xutil.h> X Window System Display d; Display d X Display Window w; Window w ID GC gc; GC( ) X X GC d=xopendisplay(); 23
XOpenDisplay X Display NULL Xlib w=xcreatesimplewindow(); XCreateSimpleWindow() 9 1 Display X 2 ID ID RootWindow() 3 4 5 6 8 9 XCreateWindow() ID ID gc=xcreategc(); XCreateGC GC XCreateGC 1 Display 2 ID 3 4 0 XSelectInput(); XSelectInput 1 2 ID 3 XMapWindow(); XCreateSimpleWindow ID w XMapWindow XMapWindow 1 (Display ) 2 ( ID ) XCloseDisplay(); XCloseDisplay X X sample1.c 5 24
$gcc sample1.c -I/usr/X11R6/include -L/usr/X11R6/lib -lx11 5: 6 makefile CC = gcc LDLIBS = -I/usr/X11R6/include -L/usr/X11R6/lib -lx11.c: $(CC) $@.c $(LDLIBS) -o $@ 6: makefile makefile 3.3.2 vroot.h vroot.h xscreensaver xscreensaver*.** /utils/vroot.h vroot.h vroot.h X c #include <vroo.h > vroot.h vroot.h vroot.h Xlib root window virtual root window xscreensaver virtual root window vroot.h Xlib.h Xatom.h X.h Xatom.h X.h X make make vroot.h 25
(stdio.h math.h ) root #include <vroo.h > 7 $su vroot.h Password: #cp vroot.h /usr/include/ /include 7: vroot.h stdio.h vroot.h 3.3.3 xscreensaver xscreensaver ( ) xscreensaver xscreensaver /usr/local/libexec/xscreensaver sample.c sample 8 #cp sample /usr/local/libexec/xscreensaver root 8: (/usr/local/libexe/xscreensaver) (xscreensaver ) xscreensaver xscreensaver-demo.xscreensaver.xscreensaver programs: 9 \n \ 26
#XScreenSaver Preferences File // programs: \ - Qix (solid) qix -root -solid -segments 100 \n\ - Qix (transparent) qix -root -count 4 -solid -transparent \n\ /* */ // /* programs: */ - sample sample -root \n\ // 9: xscreensaver-demo X 3.4 XScreenSaver OpenGL XScreenSaver xscreensaver*.** xscreensaver*.**/hacks/(glx) Xlib c X hacks/glx X OpenGL c OpenGL hacks/glx Xlib OpenGL OpenGL [8] vroot.h Linux 27
XScreenSaver Linux X Linux Linux XScreenSaver 4 Windows Linux Linux Windows Linux Windows PC Linux Linux OpenGL 28
Linux [1] xscreensaver http://www.jwz.org/xscreensaver/ [2] Linux Q&A AI 2000 [3] Jochen Hein Linux 2000 [4] UNIX X (Xlib) HBJ 1992 [5] IDG [6] (Wikipedia) http://ja.wikipedia.org/wiki/ [7] X Window System http://infux03.inf.edu.yamaguchi-u.ac.jp:8080/nakata/class/ [8] Mark J. Kilgard OpenGL programming for the X Window system 1997 29
[2] cd ( ) $cd sample sample $cd. $cd.. $cd /sample sample ( / ) cp $cp a.c b.c a.c b.c (b.c ) $cp -r sample ensyu sample ensyu locate $locate sample sample ls $ls $ls -l $ls -a....bashrc mkdir $mkdir sample sample mv $mv a.c b.c a.c b.c (b.c ) $mv sample ensyu sample ensyu rm $rm a.c a.c $rm -r sample sample 30