Factoids
Although phones now have a one-year product cycle, they typically include two CPUs, one DSP, two or three operating systems, and require 2000 developer-years of effort. I'm amused to note that most folks really aren't interested in paying money to watch movies on a postage stamp.
The various computers in GM automobiles currently have 1 MLOC and GM predicts 10 MLOC by 2009, most of it for infotainment systems we never knew we needed. By contrast, engine-control computers have a vanishingly small amount of tightly written, firmly embedded code that doesn't flutter in the winds of fashion.
Recent attention to detail has crunched the Linux kernel so that a useful embedded system can run with 1 MB of RAM and 2 MB of flash. You'd want more on a development system, but, heck, it's getting hard to find memory chips that small.
Indeed, Slackware 11 installs and runs happily on an ancient 32-MB 233-MHz 560Z Thinkpad, using 3 GB for development tools, kernel source, and plenty of other goodies. I couldn't find a drive under 12 GB in my drawer, but I'm saving a 2-GB Compact Flash card until I finish some kernel fiddling and get some other code running.
By comparison, the One Laptop Per Child machine has 128 MB of RAM and 512 MB of flash for its native Fedora-oid OS and apps. Evidently, they added an SD Card slot specifically for an additional gig of flash to hold Windows.
Last Tab
You'll find a discussion of Bill Gates's nonquote, including an e-mail from him, down near the bottom of www.nybooks.com/articles/15180. Just search for "640" and you'll be right there. More on a completely different Bill at www.billgatliff.com.
Not all phones require quite so much code, as seen at www.jitterbugdirect.com. They may be on to something that could simplify the software challenge!
Search for "employees are our most valuable resource" and explore the hits. 'Nuff said?
More on OLPC from http://en.wikipedia .org/wiki/One_Laptop_per_Child, www .laptop.org, and www.vnunet.com/vnunet/ news/2170209/microsoft-looking-windows-olpc.