Ok, this was on Slashdot about a month or two ago. Back then, I took some guess as to how it worked and emailed the author. He confirmed my suspictions. Here's the details.
First things first: it does NOT use a FULL tcp or http implementation. The system has its network configuration hard coded into it. And it is designed to only work in a very specific environment - when wired directly to the serial port of a router running a SLIP connection.
This means that data to or from the server only has one possible path. That simplifies the protocol tremendously. This setup also guarentees their are no transmission errors. (direct wiring from the serial port on the pc to the pins on the microprocessor. it either works or it doesn't, no errors.)
Next, as for HTTP. It's not parsing your request at all. Send garbage and it'll work. It just looks at the port the connection is coming in on, then looks up the port number in a table, which tells it what file to send.
Under those circumstances, it's not that hard to make a server that small if you know how to code in asm, especially not on a PIC chip.
Ok, this was on Slashdot about a month or two ago. Back then, I took some guess as to how it worked and emailed the author. He confirmed my suspictions. Here's the details.
First things first: it does NOT use a FULL tcp or http implementation. The system has its network configuration hard coded into it. And it is designed to only work in a very specific environment - when wired directly to the serial port of a router running a SLIP connection.
This means that data to or from the server only has one possible path. That simplifies the protocol tremendously. This setup also guarentees their are no transmission errors. (direct wiring from the serial port on the pc to the pins on the microprocessor. it either works or it doesn't, no errors.)
Next, as for HTTP. It's not parsing your request at all. Send garbage and it'll work. It just looks at the port the connection is coming in on, then looks up the port number in a table, which tells it what file to send.
Under those circumstances, it's not that hard to make a server that small if you know how to code in asm, especially not on a PIC chip.
Ed
No, 1.2 used ELF. I don't know about 1.0 though, as my first Linux kernel was 1.2.13. 2.0 added modules and a lot more architectures (I think).