160 likes | 244 Views
Tinkernet The Presentation. Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues With Support and Encouragement by Titus Winters and Mike Erlinger (also Jason Arold). Project Overview. What is Tinkernet? System to allow students to write the networking code of an OS
E N D
TinkernetThe Presentation • Dan Turner, Mark Kegel, Erik Shimshock and • Ryan Ausanka-Crues • With Support and Encouragement by • Titus Winters and Mike Erlinger • (also Jason Arold)
Project Overview • What is Tinkernet? • System to allow students to write the networking code of an OS • Why would you want it? • Provides a convenient and controlled environment to write and test networking code
How it works... Students Nodes Tinkerbell SSH TFTP
Hardware • Rack of nodes • Basic (old) computer • minimal components (RAM, CPU, etc.) • Two network cards • Couple of hubs, many ethernet cables • Server • Standard computer (lots of RAM) • Linux
Student Assignments • Writing modules to handle the protocol stack • ethernet, IP, UDP, ARP • TCP - could do but is a lot of work • Scaled down version of TCP
Student Perspective • SSH in to a server (Tinkerbell) • Write the network module for a kernel • Filling in a code template • Compile code on the server; run on node • Debugging code • Tinkerboot • netprintf
The Real Perspective • (1) Student writes code • (2) Student compiles code into kernel • (3) Student uses tinkerboot to load kernel • (4) Student tests kernel • (5) Kernel dies, and student repeats the first four steps
Behind the Scenes:Compiling the Kernel • OSKit • provides a fully operable kernel • we strip out the networking module • student code gets compiled in as the new networking module • then you have your kernel...
Behind the Scenes:Booting the Kernel • tinkercontroller • is a daemon that manages the nodes • a free node is chosen, and the kernel is sent to it • if all has gone well, you have a running kernel
The Running Kernel • Kernels are expected to respond to: • ARP requests • IP broadcast • Handle IP packets • Also UDP • Also need to be able to generate their own packets
Controlling the Kernel • Each node has two network cards • Is hooked in to two separate networks: warzone and admin • Student packets are sent over warzone • Admin network handles management of each node - booting, restarting, debug
Individual Projects • Dan • Grub • OSKit • Packet dropping
Individual Projects • Erik • Built a new rack • Solved missing nodes • Documentation • Comments
Individual Projects • Mark • Set up team computers • Tinkerboot GUI • Tinkeradmin GUI
Individual Projects • Ryan • Built rack • Missing nodes problem • Website and wiki • Commenting and re-factoring code
Things left to do... • Documentation... • Portability... • Packaging for distribution...