Hear me out
Free Radio Linux broadcasts the Linux sources on air and online
by Micz Flor | written for the Walker Art Centre | March 2002
Every community deserves a radio. And every community gets the station it deserves. Free Radio Linux1 is a new station on the map, catering for a number of contemporary interest groups, such as the free software advocates, the net.radio digerati, the Open Source community and the new media art crowd.
In a unique blend of contemporary academic and legal debates as well as technological possibilities, Free Radio Linux is formulating questions to do with the relation of language and code, technology and art, the history of community radio and computers, as well as the battle of freedom of speech and copyright protection. And how is it doing it? Simply by reading thousands of lines of source code on the air and on the web.
In Free Radio Linux, the entire source code of the Linux kernel2 will be webcast over the Internet. A speech synthesiser will convert the 4,141,432 lines of code into talk radio, which will take about 600 days3 to read out the last line of code. From a London flat, the sonic entrepreneurs behind the project – r a d i o q u a l i a - will feed the computer voice via a standard cable connection to the streaming media server ‘Montevideo’ in Amsterdam from where it will be made available to whoever wants to listen in.4
On their first day of webcasting, the 3rd of February 2002 (the fourth anniversary of the term Open Source) Free Radio Linux proved to hit a nerve. With over 300.000 visitors on the first day, the server delivered one gigabyte of data to listeners; this refers to the text only and excludes the audio stream. On the same day, two more servers offered to mirror the stream, which is lucky as this level of popular demand would be hard to cope with for one server alone.
“I don’t think the chief virtue of a language is beauty”5
This spectacular reception of the new community station on the block is all the more surprising given that listening to the ‘spectacle’ itself turns out to be a rather sobering experience. Semantic entities such as “struct sigframe underscore ia32”6 really do not appeal to a wider audience. In fact, it is hard to believe they would appeal even to the core of the Linux developers community.
But Free Radio Linux is out there to be heard. And it is not even limited to the net alone. Various smaller and independent - let’s say experimental - stations decided to pick up parts of the audio stream and re-broadcast the voice over their local radio frequencies.7 Which is fair enough, given the kind of programmes you receive these days to fill the void of the signal, featuring loops of anything from open fire places to live satellite images, aquariums, cameras mounted on trains, webcams from around the world, and so on.
Why listen to thousands and thousands of lines of computer code? seems to be a reasonable question. A reasonable answer would be to decide only after having listened to them. Reading out the sources adds an aesthetic quality to the code which it obviously was not intended to possess in the first place. The code was, after all, intended to be configured and compiled into a binary format which can be run on certain computers. But in Free Radio Linux the code is shifted away from this context and introduced into another universe altogether: radio. By stressing the fact that code is a human invention and does have language-like features, Radio Free Linux foregrounds an aesthetic quality of the code which has been hidden inside its rule set.
The strategy of dislocating a set of rules or categories from their initial purpose and implementing them in another context is an interesting conceptual tool. Creating a different sensual experience by forcing this shift has been used in various forms. Early examples of this mechanism would be Bach’s use of the notes ‘b-a-c-h’ in his work – widely applauded by mathematicians and programmers alike – or Mozart’s use of the notes ‘c-a-f-f-e-e’ in a children’s song on coffee – widely criticised by cultural theorists, but for different reasons.
To use computer code as a set of rules for a similar purpose is to play in the same league. Code itself is a human creation and far from random. In fact, programmers do speak of beautiful code, even though this would usually refer to the creative usage of the code’s rules to achieve a certain aim.
But programming languages and the aesthetics of digital systems have had an immense influence on contemporary poetics, music and writing. Net.art projects such as jodi.org8 illustrate how this influence can develop into its own aesthetic. Free Radio Linux places itself in proximity to such projects, specifically referring to Net.artist Vuk Cosic9 who was essential in establishing ASCII art as a genre when he converted the porn movie ‘Deep Throat’ frame by frame into ASCII images, to be reassembled into a movie.10
Besides the clear influence of computer aesthetics and code on cultural production11, the attraction of the Free Radio Linux project lies more in the cultural currency surrounding Linux and the Open Source movement today. The language being read out does not appeal as such, but stands for a wider context which has entered the cultural mainstream. In connection to another Open Source project, Larry Wall, linguist and creator of the programming language Perl, has summarised this connection.
“A language is not a set of syntax rules. It is not just a set of semantics. It’s the entire culture surrounding the language itself. So part of the cultural context in which you analyze a language includes all the personalities and people involved – how everybody sees the language, how they propagate the language to other people, how it gets taught, the attitudes of people who are helping each other learn the language – all of this goes into the pot of context.”12
“the memory management can be a bitch”13
Listening to the Free Radio Linux audio stream can be a tiring experience. However at irregular intervals the monotonous flow of commands, variables and punctuation is interrupted by coherent sentences. Such little passages are usually pre-empted by “slash asterisk” and constitute comments which are written inside the code to make it easier for other programmers to understand what the code is actually intended to do – and are a good example of the cultural context surrounding programming languages Wall describes.
Comments placed inside source code vary in degrees of directness and intention. “Fork is rather simple, once you get the hang of it, but the memory management can be a bitch”, is a concrete statement in the fork.c code, apparently written by Linux creator Linus Torvalds himself. On the other hand, this statement from ia32_support.c really only excites the in-crowd: “We never change the TSS and LDT descriptors, so we can share them across all CPUs.”
To this extent, reading source code out line by line, Free Radio Linux manages to achieve something which could not be achieved in any other way: the audio stream makes the silent comments which developers wrote in to communicate amongst each other audible. These are discussions and experiences living within the code which would never see the light of day if not read out loud.
“the good ol’ days when I was recording ZX Spectrum games played on radio”14
Besides the aesthetic pleasure of listening to nearly two years of Linux code on the radio, transmitting code over radio broadcasts can also serve as a different way of distributing software. And if it can be done, it usually has been. As is the case here.
In the late 70s and early 80s, pirate broadcasters would exploit the fact that in the early days many computers would store and retrieve code by using audio tapes. The ZX Spectrum is probably the most popular home computer using this technology. Broadcasting such an audio signal allowed listeners to tape the software and load it into their computers. Systems employing different ways of storing data would require special software to modulate it into audio signals which would then be demodulated by the users at the receiving end.
One of the first stations to broadcast computer code was the Dutch station NOS in 1979/80. In their programme ‘Hobbyscoop’15 they would deliver software for specific computers whose storage methods were acoustic.16 In the UK, Radio West in Bristol and Radio Victory in Portsmouth were doing the same for their regional communities. The idea was so successful that even the BBC decided to go along with the idea and launched the ‘Chip Shop’17 in the mid-80s.18
The limitations of early ‘code stations’ can be boiled down to the fact that each computer had its own way of translating source code into audio. This generated an artificial distinction, as many computers were using the same programming language (Basic) and the source code itself could in theory be used across a number of computers. To overcome the obstacle, a specific programme - Basicode19 - was invented. It ran on many platforms and made radio transmissions accessible to every computer running it.20
To bring this little excursion back to Free Radio Linux, the analogy between audio streaming today and software over the air in the 80s is based on a similar paradigm of reaching a variety of platforms with one data stream.
The conversion of an audio signal into data requires a piece of software similar in character to Basicode. Two widely known formats used on the web are RealMedia and MP3, both of which are proprietary standards (meaning that the actual code is owned by private companies).21 For its audio stream Free Radio Linux uses the Open Source codec Ogg Vorbis22, which is an alternative audio format published under a non-proprietary license. To the ordinary listener this difference is not audible. However, given the fact that proprietary standards are not open, they require the availibility of a player if the data stream is to be translated back into audible information. Using a proprietary standard is not unlike locking away your belongings and trusting someone with the key.23 If such a private company went bust, all the content available in its format would slowly become inaccessible.
Being in sync with the Open Source concept, today Ogg Vorbis might therefore be the best candidate to assure the kind of interoperability that Basicode offered in its day.
“why publish an entire book (…) of boring source code”24
Listening to thousands of boring lines of source code on Free Radio Linux might be only a slightly less numbing experience than reading thousands of boring lines of code in a book. In both cases, the medium chosen to carry the text seems inadequate.
But shifting the context alters more than the code’s aesthetic quality. Putting code on air stresses the fact that we are dealing with language after all. Software is not merely a combination of tools on a hard disk: software is language… an assumption with legal consequences.
Over the past years, a great deal of juridical effort has been spent on establishing a clear distinction between ‘language’ and ‘code’. The mere fact that the US Legal system might dedicate its attention to such a linguistic discourse indicates a serious political and economic interest in the issue.
The political dimension becomes instantly apparent when taking a closer look at the code that triggered a previous legal battle. This was Pretty Good Privacy (PGP), a powerful encryption software which allows secure communication for anyone on the Internet, without any third party intercepting, not even the government of the United States.
In June 1991, Philip Zimmermann’s encryption software PGP was made publicly available as freeware on the Internet. As the name suggests, Pretty Good Privacy was developed to secure privacy in digital networks, which the software’s author believed to be a fundamental right.25
Needless to say so shortly after the Gulf War, the US government had other plans. In 1991, the US Senate was discussing Bill 266, which had been designed to force manufacturers of secure communications to provide a hidden access point, a back-door, by which the US government could retrieve plain text versions of encrypted messages.26 As it was becoming clear that this might be the reality of the Internet in the near future, Zimmermann decided to act and publish the software before it was too late.27 Soon afterwards, he became the target of a criminal investigation by the US Customs Service.
The case against publishing PGP on the Internet was based largely on the notion that PGP’s potential global availability constituted a security threat. Exporting strong encryption software was similar to exporting munitions, it was decided under the International Traffic in Arms Regulations (ITAR). Since the main accusation against Zimmermann was based on this notion of international export, PGP developers looked into ways of distributing the source code across borders legally.
To cut a long story short: the source code was printed by the respectable institution MIT under the title “PGP: Source Code and Internals”. It was published in March of 1995, priced at $55 and with the ISBN 0-262-24039-4. The book is out of print today, which does not matter much as the only relevant delivery of the book was to the University of Oslo.
“The font used is also capable of being scanned by computer scanners. If the source code were scanned in and then run through a compiler program, it would be translated into an executable application or object code, which could then be read and executed by a computer to encrypt text and binary files.”28
With a small tweak in the medium by which the source code was delivered, the legal framework prohibiting its use had become unhinged. It was no longer the ‘weapon’ it had represented in digital form - merely language in a book. Needless to say, the programme was successfully compiled at the receiver’s end. And nearly a year later in Januay 1996, the case against Zimmermann was dropped
“is there a point in distinguishing between source code and English prose”29
However, the relation between code and language is not resolved yet. In fact, it is again being debated in and outside the US courts in relation to a short piece of code published under the name of DeCSS, which effectively undermines DVDs’ copyright protection. DeCSS means that playing DVDs does not require any customised hard- or software solution. Instead, they can be viewed on any machine using the DeCSS code.
The case against those who developed and/or published the DeCSS programme and source code still continues today. One of the remaining questions, since the case against Zimmermann, is to what extent source code is protected by America’s First Amendment. In other words: is code speech?
Listening to Free Radio Linux, which runs by virtue of speech synthesis, it seems to be speech after all. Still, it is clear that its 4,141,432 lines of code could in theory be translated back into the code’s digital form and compiled into the kernel. Similarly, this could be done using scanned versions of Zimmermann’s book.
In both the Linux kernel and PGP source code case, we are dealing with a large amount of data. In contrast, the DeCSS programme is rather short. (In fact, it is short enough to be printed on T-shirts30 which one can buy to support the legal defence of the accused in the DeCSS case.31) Because it contains only a few lines of code, several versions have been developed in various languages.32 This diversification, T-shirts on one side, clones and translations on the other, attempts to point out the absurdity of a situation in which source code can be legally differentiated from other forms of written expression. In fact, the algorithm protecting the DVD content from ‘unauthorised’ use could even be described in plain English in an essay. Based on the description, a programmer could conceivably develop the DeCSS code without ever having seen the source code itself.
In an interesting attempt to blur the distinction even further, Jonathan Baccash coded the software BabelBuster which translates C code to some form of colloquial English and back again without losing the information contained in the code. One simple line of C code, “main ()”, would translate into the more poetic phrase “Let main be a function returning an integer. It is called with no arguments.”33
As the discussion unfolds and the lobbying interests of the multinational entertainment industries become both transparent and vicious, Free Radio Linux will continue blurting out source code for a year to come.
“can we submit bug reports to the radio station now?”34
The bizarre reality is that Free Radio Linux marks a specific point in time in which issues to do with Open Source, Linux, software licensing, copyright protection and streaming media are being debated in the mainstream, while the project itself demands stamina to be followed until its completion in late 2003.
In the initial postings on the Slashdot website, this schizophrenic aspect became an issue, with users asking if the station would provide updates if the kernel changed in the meantime.
Looking at Free Radio Linux from a conceptual point of view, it seems adequate to continue broadcasting a code freeze of the day transmission started and carry it all the way. It might remind its listeners of the open legal disputes and multinational lobbying occurring when the project was launched.
Looking at Free Radio Linux from a pragmatic point of view, another posting on Slashdot suggested that something useful is finally leaving this planet in the form of radio transmissions. Intelligent alien life forms could receive a stable version of the Linux kernel. What a success for the Linux community and what an audience for grassroots media!
Micz Flor is a working with and writing on new media.
http://radioqualia.va.com.au/freeradiolinux/ : Free Radio Linux↩︎
Kernel meaning the part of the Operating Software Linux on top of which all other applications run. Free Radio Linux is webcasting Linux kernel 2.4.18 from http://www.kernel.org↩︎
14253.43 hours, or 593.89 days, to be precise. See the readme file on the site↩︎
http://www.xs4all.nl/~qualia/freeradiolinux/playlist.m3u : Live audio link of Free Radio Linux↩︎
Larry Wall, the creator of the Perl programming language on computer code and linguistics : http://www.ddj.com/documents/s=923/ddj9802a/9802a.htm↩︎
A small extract from the code at linux/arch/ia64/ia32/ia32_signal.c↩︎
Find a list with some of the re-broadcasters at : http://www.xs4all.nl/~qualia/freeradiolinux/cron.html↩︎
http://www.jodi.org↩︎
http://www.ljudmila.org/~vuk/ascii/blind/ Vuk Cosic “ascii history of art for the blind”↩︎
http://www1.zkm.de/~wvdc/ascii/java/ : Vuk Cosic “Deep ASCII”, see more of his work at http://www.ljudmila.org/~vuk/↩︎
For a good introduction into the subject, see Florian Cramer’s text “Digital Code and Literary Text” : http://beehive.temporalimage.com/content_apps43/app_d.html↩︎
Larry Wall, the creator of the Perl programming language on computer code and linguistics : http://www.ddj.com/documents/s=923/ddj9802a/9802a.htm↩︎
Comment taken from fork.c of the Linux kernel↩︎
Posting by Shiny Metal S. on Sunday February 03 2002 on Slashdot : http://slashdot.org/↩︎
For a brief introduction, dust down your Dutch : http://www.hobbyscoop.nl/NOStalgie.htm↩︎
Such computers would include TRS-80, Commodore PET, Apple-2, Exidy Sorcerer↩︎
Find more information on the “Chip Shop” history : http://www.sincuser.f9.co.uk/024/news.htm↩︎
When exactly the first BBC software broadcast happened is hard to research : http://www.users.globalnet.co.uk/~jimg/yr09/yr09_03.htm↩︎
More information on the history of Basicode : http://www.xs4all.nl/~lennartb/basicode.html↩︎
The Basicode software is still available today : http://www.void.jump.org/utils/b.html↩︎
For a more detailed discussion see : http://mi.cz/txt/crosscodeccompatibility.htm↩︎
More on the Ogg Vorbis format : http://www.vorbis.com/↩︎
This comparison was brought up by Adam Hyde in preparation to this article↩︎
Philip Zimmermann’ preface to the book: “PGP Source Code and Internals” : http://www.philzimmermann.com/essays-preface.shtml↩︎
http://www.pgpi.org : The International PGP Home Page↩︎
http://www.lugod.org/presentations/pgp/history.html : Introduction to PGP encryption↩︎
http://www.philzimmermann.com/essays-preface.shtml : Philip Zimmermann’s preface to the book: “PGP Source Code and Internals”↩︎
Declaration of Philip R. Zimmermann in support of Plaintiffs’ opposition to defendants’ motion to dismiss : http://people.qualcomm.com/karn/export/zimm.html↩︎
Jonathan Baccash: BabelBuster - C to English to C Translator: http://www-2.cs.cmu.edu/~dst/DeCSS/Baccash/↩︎
Copyleft DeCSS t-shirt : http://www.copyleft.net/item.phtml?dynamic=1&referer=%2F&page=product_276_front.phtml↩︎
Wired News on DeCSS t-shirts : http://www.wired.com/news/technology/0,1282,37941,00.html↩︎
Gallery of CSS Descramblers : http://www-2.cs.cmu.edu/~dst/DeCSS/Gallery/index.html↩︎
BabelBuster example : http://www-2.cs.cmu.edu/~dst/DeCSS/Baccash/example1.e↩︎
Posting by mESSDan on Sunday February 03 2002 on Slashdot : http://slashdot.org/↩︎