+1 for YAHOO. Their data quality is very good. I use Google screener for building super-set (average volume > 200K) and Yahoo for EoD. Everything scripted with CRON and good-to-go on a Linux box with MySQL. PM me if you need them.
The gray box system I built uses yhoo data and runs under linux/cygwin/etc. To facilitate the data grabs, I use libcurl under C. Very simple, fast and very portable to any gcc compiler. If you ever need intraday equity data, TDAmeritrade has a fairly well defined protocol interface that allows you to develop software for any platform, including linux or MAC... and their data feed is free as long as you're a non-pro. (They also have a handy API if you decide on a win32 platform.) Good luck, lugz
For my project, I require real-time NYSE and NASDAQ quotes, but can't pay for a pricey data feed. So I developed a Ruby library that extracts real-time stock quotes from the NYSE and NASDAQ's websites as often as needed. I can poll for prices on a handful of stocks four times a second without hiccups. Works for me.
IMO The solution is very simple: prorealtime.com Free EOD data and Java based, so should run on Linux Includes a screener. It's not perfect, but the best java based charting I have seen.
Looks like their real-time feed is only available for a week though, as a trial, unless you want to pay for it. :/