110 likes | 292 Views
Tinkernet. Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues With Support and Encouragement by Titus Winters, Mike Erlinger, (also Jason Arold). Don’t pay attention to this comment!. Project Overview. What is Tinkernet?
E N D
Tinkernet • Dan Turner, Mark Kegel, Erik Shimshock and • Ryan Ausanka-Crues • With Support and Encouragement by • Titus Winters, Mike Erlinger, • (also Jason Arold) Don’t pay attention to this comment!
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
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 • Scaled down version of TCP
Student Perspective • (1) Student writes code • (2) Student compiles code into kernel • (3) Student uses tinkerboot to load kernel • (4) Student tests kernel • (5) Kernel malfunctions, and student goes back to step (1)
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 • UDP protocol • Also need to be able to generate their own packets
Things left to do... • Investigate/implement a less hacked initial node bootup • Documentation... • Portability... • Packaging for distribution...
Questions? • Special Thanks to: • Costco • Backgammon • Air Conditioning