Jupiter is actually a hybrid that runs in userspace and also has a kernel module. http://eklhad.net/edbrowse/jupiter.html According to the write-up I found at this link, the kernal module is used to carry keyboard and tty events to userspace, where the userspace application then speaks the content of the screen and responds to keyboard events. So although it runs partially in userspace and in fact will interface with a hardware speech synthesizer using a USB to serial converter, it unfortunately wouldn't be portable enough to run on BSD or similar, unless the device driver could be adapted to the BSD or other kernel, and if that is possible, then it should also be possible to port Speakup in the same way. ~Kyle