16
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)

Tinkernet The Presentation Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues With Support and Encouragement by Titus Winters and Mike Erlinger

Embed Size (px)

Citation preview

TinkernetThe Presentation

Dan Turner, Mark Kegel, Erik Shimshock andRyan Ausanka-Crues

With Support and Encouragement byTitus 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...

SSH

Tinkerbell

Students Nodes

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...