We attached the Java box to a standard Sun work station over a start-stop RS232 interface talking tftp. Tftp would transfer a memory image from the work station to the Java box where upon kernel initialization would take over in the Java box and shortly thereafter the kernel and user mode code would begin. IO for the resultant Keykos system was restricted to input and output over the serial channel.
Most of the code is in C. There is some assembler code, of course, for the special processing of context switching and register window processing for the SPARC. We used gcc but probably did not use many of the language extensions provided by gcc.
The compilation system was Perforce’s open source Jam program system.