Psst, kid... Wanna learn how to hack?
The £25 computer to teach youngsters real computing skills
Analysis Despite all the excitement and expectation encompassing the RaspberryPi, the most remarkable thing about this low-power credit card-sized computer is its price tag: little more than £20 for a fully functional system capable of, among many things, 1080p video playback and hardware-accelerated graphics.
The British-designed Pi is being heralded as the saviour of modern IT education in UK classrooms, one that will raise a new generation of young bedroom hackers - in the old sense of the word 'hacking', that is, to ingeniously cobble stuff together to make cool new things.
The UK needs to pull its socks up to equip youngsters with the skills they need to survive in a world that is thoroughly hooked on web-connected technologies and yet poorly inoculated against digital disease. The RaspberryPi's engineers want to give kids some cheap and educational kit that won't break or turn into a nightmare to maintain.
But, putting politics aside for a moment, what really grabs your attention is how small and cheap the damn thing is. How this feat of engineering is possible is easy to answer, though: creating a computer that's deliberately priced to be as affordable as a school textbook is all about having the right connections - and we don't just mean the wiring on a PCB.
The Pi is powered by a 700MHz ARM-compatible processor with hardware support for OpenGL ES 2.0 and Blu-ray-grade playback (1080p30 H.264), and features 256MB of RAM, TV, HDMI and audio outputs, a USB port, a Flash memory card slot, 100MBit Ethernet and a number of I/O pins for a serial port and general purpose hacking. This is all fitted on a low-cost 85.60mm x 53.98mm board that's about 20mm high, weighs 40g and is powered from a 5V supply.
No, you haven't clicked through to an El Reg story from mid-2000. Remember, this is a tiny bit of kit aimed at getting hackable technology into the hands of anyone who can afford $35 (£22), and, er, a telly and assorted peripherals. However, parents won't have to worry about the home PC getting wrecked by their teenagers' handmade software, cash-strapped school labs could be kitted out for less than £1,000, and kids can begin to toy with a system that draws a single watt and is easier to develop tightly written software on than today's nightmare of software frameworks and compilers.
It's also a handy price tag for geeks and hackers, especially those tempted by the recent rash of announcements from the ARM scene, who have been put off by the reassuringly expensive price tags and the lack of availability of development boards to date. The pre-production RaspberryPi is in the hands of about 50 beta testers at the moment, and the first production run of 10,000 units is expected to go on sale in December.
So how do you make something so small and cheap?
First of all, the RaspberryPi's processor is really designed for mobile products: it's a gaming and multimedia graphics chip - the Broadcom BCM2835 - with an ARM1176JZF-S core and floating-point maths unit bolted inside for good measure.
The GPU, Broadcom's Videocore IV, has capabilities equivalent to a first-gen Xbox, and has its own proprietary instruction set and architecture that is closely guarded by Broadcom; the compiler for it is not available. But the ARM side is a standard v6 core that is well supported by GCC, ARM GNU/Linux and various other open and closed source developers.
Therefore you get high-end mobile graphics capabilities, and a general purpose processor thrown in for free, inside a small system-on-a-chip package that doesn't need any cooling, even after eight hours of HD video playback, which can play Quake 3 in 1920x1080. Soldered directly on top of the processor package is the RAM, which along with the lack of a cooling fan saves an immense amount of space and some cost.
Next, there's no onboard battery-backed clock, which is used to maintain a real-time record of the time and date when the board is switched off. On the Pi, the operating system must grab these settings from the web or network (using NTP) or get the user to type them in after power-on.
The USB and Ethernet hardware is packed into one chip, the SMSC LAN9512; there are no other clunky buses present that are found on larger motherboards, no PCIe or SATA IDE for example to take up space.
The SD card slot can be found underneath this pre-production RaspberryPi board
There's no onboard chunky flash memory: when the board is powered up, the GPU starts executing instructions from a small boot ROM that locates the GPU's firmware and a kernel for the ARM core in a FAT16 or FAT32 partition on the memory card or USB drive plugged into the Pi. Once the firmware and kernel are running, the operating system can be booted from the memory card, USB drive or over the network.
The reliance on removable boot memory also ensures the kit can't be bricked, not even by the most inquisitive or vindictive schoolchildren.
There's also no Wi-Fi chipset, although you're welcome to try a USB or Ethernet-connected adapter to get your Pi hooked up to your wireless network (or wait for Wi-Fi functionality to be added, maybe). The Pi's engineers have also placed connectors wherever it suits their design: you get a compact and cheaper six-layer PCB (or possibly four-layer in future), but it resembles a mad electronic spider with all sorts of cables spiralling out from it. Not all the I/O lines are taken from the processor; some are located near the centre of the chip package and extending those out to a user-accessible header would cost too much.