Tinkernet - HMC Computer Science
Download
Report
Transcript Tinkernet - HMC Computer Science
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
Students
How it works... 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