Cygwin's XFree86 4.2.0 on Windows XP
stock writes: "A interesting and important piece of software on the win32 platform for me has always been X11 server software like
Hummingbird's Exceed, or
Startnet's Xwin32 Professional.
Today i glanced at cygwin's site and found that a complete
XFree86 4.2.0 for Windows XP
can be downloaded now! It shouldn't be hard for newcomers as it features a
setup.exe . The package comes free and is basicly licensed as X style licensed software which runs on cygwin32 which has a GPL license." Looks like this has been out since May -- can anyone who's been using it since then comment on how well it works? Update: 07/07 17:12 GMT by T : haroldhunt (project leader for Cygwin/XFree86) wrote to clarify: "Cygwin/XFree86 runs on all recent consumer and business versions of Windows; as of 2002-05-12 those versions are specifically Windows 95, Windows 98, Windows Me, Windows NT 4.0, Windows 2000, and Windows XP."
I've used it on win2k on a daily basis for over a month now. It runs nicely in full screen mode, which you can Alt-Tab out of. You can also run it in a window, but that's just what I prefer. Make sure you run xwinclip too so you can copy and paste between X and Winders. I've tried a couple commercial Win32 X Servers and although this doesn't have some of the fancy features, I find it more stable.
I've been using Cygwin/XFree86 for about a month or two now, and don't have any complaints. It may be a tad slower than what one is used to, but overall it works quite well. You can also run WindowMaker on Cygwin (comes bundled now), or any other window manager, as long as you can compile it on Cygwin, on Cygwin/XFree86
I tend to use Cygwin/Xfree86 if I ever need an X server on Windows and have always found it to work pretty nicely. I have had it running KDE from another computer on the network, and it's also useful when you want to run the occasional application that needs X on a headless computer.
So yes... I would definitely recommend it. The disadvantage over something like Exceed, though, is that it needs its own window - you can't have the X windows alongside the Windows windows (if you see what I mean). And you can't resize it either, you have to choose the dimensions on startup. But you can also use it fullscreen, and because it uses DirectDraw, it's nice and fast.
I've installed it at home and at work. The only problem is that there are very few ported X applications to run with it and most things do not compile out of the box.
:-). You can of course use it to run remote applications on a unix server (this works perfect).
/usr/X11R6/bin manually before you can type startx in bash. In addition you'll want to change the windowmanager (windowmaker works fine for me). Configuring X on windows XP is actually easier than on linux :-).
I'm running it with a port of windowmaker in fullscreen mode and it looks great. However, the thrill of running xcalc and xclock on windows xp wears off quickly
Another issue I found is that it is not possible to cut and paste between X apps and windows apps. So if you are surfing using mozilla or IE and want to paste some command from a howto into your xterm, you have a problem. You can paste into a bash terminal (i.e. outside X).
The cygwin installation is pretty smooth (lots of great stuff other than X too). However you do need to set a path to
Jilles
XFree86 has been available on Win32 using cygwin for ages. Ok, it might have been 4.10 and it used an (also easy to use) bash shell script for installing it under cygwin instead of a setup program, but this is not really news.
I used the old version for a couple of times on W2K, seemed to work quite well.
Actually, though, what I use are Xclients compiled against the XFree86 libraries. The XFree86 X server doesn't yet have a useable multiple-window mode -- that is, one in which XP is your window manager and each program appears in a separate Windows window. <FLAMESUIT>Since what I want is the superior windows UI with the superior GNU utilities power, the separate window mode is pretty essential. Thus I still use eXceed as my Xserver. </FLAMESUIT>
Work on this capability is proceeding; it is, in fact, the top item on the Cygwin/XFree TODO list:
By the way, if you are setting up Cygwin for the first time, I highly recommend following the procedures outlined at (which largely consists of instructions for ssh/sshd with Cygwin, but has many other excellent setup tips).I find it disappointing that in the article summary no mention is made of the fact that this Cygwin X11 server will run on all the Win32 platforms. I looked at it and said to myself 'well, there's the motivation to "upgrade" to XP' but was hopeful. And yes, the page at Cygwin says 'Cygwin/XFree86 runs on all recent consumer and business versions of Windows'.
Is this a case of unconcious shilling for the Microsoft version upgrade treadmill? I hope so.
I have been using this for about 9 months now for doing xdmcp to a freebsd box running xdm, such as how they suggest. i have found it to be rock solid.
i run the latest server in the server test series. they recently added -nodecoration, which makes the x server use as much of your screen as possible, without any title bar or borders. My xdmcp command line, setup as a shortcut on my win2k desktop, looks like this:
C:\cygwin\usr\X11R6\bin\XWin.exe -screen 0 1600x1200 -from spandex -query lycra -once -emulate3buttons -nowinkill -nounixkill -nodecoration -fp "tcp/lycra:7100"
The -fp option is for a font server, so cygwin/xfree86 will get the necessary fonts from the machine you tell it.
HTH
I compared it some weeks ago with other X servers available for win32, using x11perf (after I noticed how slow it was when scrolling windows).
I benchmarked cygwin, exceed (7.1), omni-X and xwin32. cygwin was by far the slowest, around 10 times slower than exceed for many basic X11 operations. Exceed was about two times faster than omni-X and xwin32.
Exceed is extremely expensive however (a cheap second PC plus KVM switch, dedicated running Linux just as an X-terminal might be cheaper than buying an exceed licence). For most normal text-based remote access, cygwin+xfree will do. For graphically oriented programs (such as running KDE remotely) you'll want something else however.
You might want to be careful with this box that is outside the firewall. If someone can get into it, they can launch applications like xkey This will enable someone to do keyboard monitoring of anyone who's running an X application. Combine that with "netstat -anA inet | grep ESTAB" and you can easily determine some good IP addresses to target. What I'd be concerned about is someone sniffing my keystrokes in my mozilla sessions, getting by all the wonderful SSL encryption!
One way to combat this would be to use X forwarding through ssh as the X11 transport. That way you have to have access to the user's ~/.Xauthority file, which is typically set readonly for that particular user. Which means any local root exploits would grant someone access to all of your customer's keystrokes.
Something else you might want to look into is NSA's SELinux. I don't know much about it, but it seems like you could take advantage of the higher granularity of access controls to limit someone (other than the rightful user) getting access to ~/.Xauthority. Even root wouldn't be able to get access.
Anyway, that's a very cool idea you have. Just be careful.
Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
Current features we are working on include:
- Native GDI Server - Translate X11 graphics calls into GDI graphics calls; currently we just draw to an offscreen framebuffer and transfer updates occasionally. This allows you to utilize the power of your $100+ graphics processor. Most respectable commercial X11 servers for MS Windows use this method.
- Clipboard integration - We have been working on this for a long time. Currently we have a seperate client, called xwinclip, that provides this functionality. We recently added support for passing Japanese text through xwinclip when running on NT/2000/XP.
- PseudoColor for TrueColor visuals - A lot of applications, particularly drawing or CAD programs, require a palette-based PseudoColor visual, while most people run Windows in TrueColor depths of 15, 16, 24, or 32 bit color. We would like to support PseudoColor visuals when our primary visual is a TrueColor visual. Some commercial X11 servers for MS Windows do this.
Go ahead and try Cygwin/XFree86 if you haven't already. We hope you like it. If you find some missing feature that you would like, then take a look at our source code and read our Contributor's Guide for instructions on how to download the source and build the tree, plus a general discussion of the technologies involved in Cygwin/XFree86. We bend over backwards to make it easier for developers new to the project to contribute.Harold