It's the vision that elicited a beatific smile from Alan Turing, a Bela Lugosi-like cackle from John von Neumann, and a cannabis-tinged giggle from 1970s-era PC creators: Imagine a universal machine, a computation device capable of mimicking the functionality of any other machine.
OK, now imagine the looks of terror on the faces of existing machine makers. Imagine if the only thing stopping your handheld PDA from simultaneously being a GPS receiver, phone, radio or miniature TV was your willingness to download and install some free software program.
For Eric Blossom, founder of the GNU Radio project, the vision plays itself over and over again, like a Möbius film strip. An electrical engineer by trade, Blossom knows better than most the thin barriers that separate one person's garage-door opener from another person's global positioning satellite receiver. He also knows the proprietary barriers that hinder technological innovation. Rather than curse those walls, Blossom has decided to gut the floor plan entirely with the help of free software. Sony, Philips and Nokia be damned.
"We're pretty much turning all hardware problems into software problems," Blossom says. "We want to facilitate evolution in the radio arena."
Turning hardware problems into software problems is, of course, an old trick. Since the days of Univac, computer programmers have written software to mimic the functionality of everything from mechanical calculators to videocassette recorders. Wireless communication devices -- radios, cellphones, televisions, etc. -- are merely the latest target, especially now that most carry sophisticated microprocessors. With device manufacturers jealously guarding hardware specs, however, the challenge to an independent programmer is stiff. To get the GNU Radio project started, Blossom has set his sights on a simple target: PC-based AM/FM radio.
"Radio has always been this dedicated hardware universe, a closed system really," says Blossom. In other words, it was just the kind of private party that free software was meant to crash. "Besides, we had to prove we could deliver on the basic idea," Blossom says.
So far, the GNU Radio project has made good on its promise. Blossom and development partner Matt Ettus have developed a software program that can make a PC receive two radio stations simultaneously. The only additional hardware components needed are a low-cost R.F. tuner, to pull the radio waves out of the air, and an analog-to-digital converter to convert each signal into digital samples.
Playing two stations at once may seem like a geeky pastime, but GNU Radio's goals get more ambitious over the long term. At its most basic level, GNU Radio is an attempt to do for radio-software developers what the original GNU Project did for Unix developers -- that is, provide a common set of nonproprietary tools that can be ported from one device to the next.
Step back a little, however, and GNU Radio changes shape. Viewed against the backdrop of digital "convergence," the marketing term for pouring data and communications functionality into a single device, GNU Radio becomes a steppingstone to the ultimate hybrid device: a handheld PC that can be converted into a walkie-talkie one minute and an HDTV the next.
"We're bringing the free-software ethic to radio," Blossom says. "Who knows what's going to come out of it?"
But that's not all: Even more intriguing is GNU Radio's political component. A look at recent Hollywood-backed legislation reveals a growing antipathy on the part of content providers toward modifiable consumer technology. Such laws, if passed, would limit the ability of hardware manufacturers to consort with software programs that let a user turn his or her home PC into a digital television or TiVo-style recorder.
Viewed against this backdrop, GNU Radio is a hacker's version of the preemptive strike. Rather than wait for Washington to set limits, the project is working to undermine existing device barriers.
"It shows pretty starkly what's at stake: that computer technology can empower people to do new and interesting things," says Edward Felten, a Princeton computer science professor whose Web site, Freedom To Tinker, has been offering periodic updates on the project. "And yet it is the very power and adaptability of that technology that people are most afraid of."
According to Blossom, the GNU Radio project grew out of a seven-year stint working on cellphone security. Early on, Blossom discovered the dirty little secret of the cellphone industry: Most digital cellphone manufacturers ship their devices with weakened encryption to stay in the good graces of the government and rely on secondary methods -- proprietary hardware, arcane software protocols -- to frustrate amateur snoopers.
"Contrary to what the cellphone operators were saying," Blossom says, "digital cellular phones could be easily intercepted by an adversary with the right equipment."
That realization soon led to a larger realization: If a device could be mimicked by the right equipment, it could also be mimicked with software. Blossom began taking an active interest in software-defined radio, or SDR, an engineering subfield dedicated to transporting circuit-based tasks into the realm of software.
"You can think of it as a set of building blocks," Blossom says. "Mixers, phase lock loops, filters: All the things you build into an ordinary radio device can be built using software. You just need a way to tie them all together."
In early 2000, Blossom began working on the PC radio-software kit. Frustrated by the proprietary nature of most SDR projects, Blossom began looking for ways to import the "free software" ethic into the SDR development community. He broached the idea of a free-software SDR project to John Gilmore, GNU Project veteran and co-founder of the Electronic Frontier Foundation. Gilmore subsequently ran the idea by GNU Project founder Richard Stallman, who agreed to take the project under the GNU aegis.
"We'd been doing the project for a while and were still kicking around for a name," says Blossom. "So it helped us on two fronts."
Renamed GNU Radio, the project's political implications became clear a few months later. Faced with an FCC-imposed deadline to convert all television content to digital content by 2007, Hollywood studios, together with information technology companies and consumer electronics manufacturers, have been wrangling over how to prevent a widescale, Napster-style redistribution of digital movies. The tentative solution, put forward by a joint committee last winter, is to embed an invisible software signal or "broadcast flag" within the content of every digital broadcast, making it possible to record but not redistribute digitally broadcast television programs.
Such hobbling of recording devices is an old trick, as any person who has tried to duplicate a Macrovision-protected VHS tape knows. Unlike past efforts, however, the broadcast flag would be entirely software based, giving those who know software intimately the ability to develop a quick workaround. To work effectively, the standard would require new federal regulations requiring that all consumer devices not only comply with the standard but also restrict the amount of tinkering an end-user would be able to do with a legally owned device.
Noting that the GNU General Public License absolutely forbids any restriction on a user's right to modify, Brad Kuhn, executive director of the Free Software Foundation, the organization that oversees the GPL, says such a regulation would amount to a marketwide ban on GPL-protected software.
"There's no feasible way we could develop devices that adhere to the mandate of the broadcast flag," says Kuhn. "We could add a no-record feature, but anybody along the distribution chain would have complete freedom to remove it."
Faced with this potential challenge, Blossom and Ettus began writing a software tuner capable of translating digital television signals. They released an alpha version in early November, less than a year later.
Ettus, a fellow electrical engineer, sees the overall speed of the GNU Radio project as a clear indicator of how "empowering" the software-driven radio approach can be.
"To create a new HDTV chip from scratch would take probably 50 engineers, one to two years, and a $12 million investment," says Ettus. "Taking the software route, it's been less than a year and it's been mostly the two of us, and I'm working only in the evenings."
For the FSF, such comments lay the groundwork for a bold political strategy. No longer content with matching proprietary developers, the Boston-based organization hopes to use the GNU Radio project as a prime example of innovation that will be crushed by any congressional legislation or FCC regulation that seeks to limit device functionality, at least on the receiving end. Put another way: If the GNU Radio team can develop a proof of concept before the FCC gets a chance to rule on the "broadcast flag" proposal, the FSF and its allies in the consumer and small-business community will have seized the high ground in the subsequent legal battle over innovative fair use.
"From our point of view, GNU Radio is the technological proof that interesting things can be done and that those things can also be taken away," says Kuhn.
Since backing GNU Radio project, the FSF has sought ways to build the momentum. Earlier this year, the organization launched the Digital Speech Project, a Web site that keeps track of ongoing congressional debates that could, potentially, have an impact on innovation and fair use. The project seeks to build a "grass-roots coalition" of students, musicians, artists and software developers to repeal the 1998 Digital Millennium Copyright Act.
"At FSF, we have little choice but to enter this battle and take an active role," writes Kuhn via e-mail. "We also know that we can't win this fight alone; we need allies."
As for Blossom, he hopes GNU Radio opens the way to even more innovation. The reality of a universal device may still be a ways off, but as the free-software tools pile up, developers and consumers will have that much more to work with.
"Technology ought to be useful to people," Blossom says. "Ultimately, this will put a lot of technology decisions in the user's hands, which should speed up innovation considerably. That doesn't mean every user has to be a software developer, but it does mean the freedom to innovate is there."