As a side project for the second part of my OS class this quarter,
I wanted to add ip networking to the os we were developing, JOS.
Writing slip, ip, icmp, tcp, and udp support seemed out of range as a couple
week project for me, but porting an existing ip stack did seem possible. So,
I began a port of
lwIP to JOS.
Fast forward a couple weeks:
As of the morning of the class due date, ping unreliably worked.
One hour before, ping reliably worked.
While pinging is cool, a real application makes for a much better demo.
And just as our last class started, JOSWeb served pages via http.
More precisely, I could telnet to JOSWeb and manually
request a page; however, JOSWeb didn't receive the "GET ..." packets
from actual browsers.
Later, the problem came to me (my packet buffers were smaller than some
actual packets) and the fix allowed JOSWeb to serve requests from real
browsers!
This photo shows JOSWeb (running in JOS that is running in the x86
emulator Bochs, the large terminal window on the right) serving a page and
image to firefox (the browser on the left). |