The port is obviously not complete, since a lot of the hardware on the iPhone has not yet been reverse engineered to understand how they work. Consequently, there's a whole list of things currently not working: write support for the NAND, wireless networking, the touchscreen, sound, the accelerometer, and baseband support. What it does have is a framebuffer driver, a serial driver, a serial-over-USB-driver, and things like interrupts, MMU, clock, and so on. It boots using openiboot, a custom boot loader, which allows you to choose between booting into the default iPhone operating system, or Linux. The Linux 2.6 installation runs Busybox, and uses an USB keyboard (attached to the computer the iPhone is connected to) for input.
iPhone Linux Demonstration Video from planetbeing on Vimeo.
Poject lead 'planetbeing' explains that "the current userland we're using, in the interest of expedience, is a Busybox installation created with buildroot, but glibc works fine as well, and we're going to build a more permanent userland solution." The team is asking for help with this effort, and especially Android hackers are welcomed (hint, hint). To get started, there are instructions, and download mirrors can be found in the blog announcement and its comments.