World's Smallest Web Server (We Have a Winner)
sysadmn writes "This web server is the latest contender for "World's Smallest". Two chips and a diode - so they had to leave out Linux :-). It's based on the world's smallest implementation of a TCP/IP stack -- which is implmented on a small 8-pin low-power microcontroller using 512 words of program ROM. Where would you put a $1 web server?
" If its real, its amazing.
do you get to keep it?
Pork is not a verb
Who cares if you can't fit a friggin' header in, compute everything you need on the fly and shuttle it out the port as you do it!
Yes, a really tightly coded byte-by-byte state machine implementation, maybe...
--
An esoteric scratched itch:
Homeworld Map Maker Tool
But heres a news link from U. of Mass.
r i.html
http://www.umass.edu/newsoffice/press/99/0810sh
While I have to admit that such technology makes one marvel at what scientific achievements are possible, this tiny webserver also makes me question the value of this. Would one's time be better spent trying to make a better real-world webserver (perhaps something that is able to combat the slashdot effect?), or are litte projects like this leading the way to a new kind of webserver..?
;P
--just my two cents.
--- Stampede linux for me! I play with fire to break the ice..
True, you might be able to fit in enough could to make it display a LILO prompt somewhere though.
hmm..lets see..
stateless TCP/IP protocols:
These protocols, particularly HTTP, don't maintain a persistent connection between browser and server. Each request from the browser is an independent contact, as is each response from the server. Problems : Developers can no longer rely on a network connection that remains active for the duration of a session.
now why did your boss prevent you from explaining this ?
Somewhere on the page (actually, it may be on the 'technical details' page) it is mentioned that eternity.cs.umass.edu is catching all the http requests for hit-counting purposes, then bouncing them to the iPic.
I'm still skeptical, but this sure would be neat.
If this is all hardware, how can it "crash" ??
What would really impress me is if this sucker were hooked to a small CCD package.. I'm assuming the IP stack uses DHCP, so all you'd have to do is plug the thing into any Ethernet port and bang -- instant network webcam (or spycam, depending on your slant).
_______
2B1ASK1
Um.. I don't see this one anywhere in the old slashdot article you linked (unless it's in the comments, and that doesn't really count now, does it...)
I would think that adding a web interface to our household appliances would make them more complicated and difficult to operate. I mean, how hard is it to press "play" on your DVD player?
Joe Rabinoff
No, that's not what it means. What this means is that your toaster could serve you a single static page. Whoopee.
All these tiny servers are pretty useless, because they're basically single function devices. There's a massive difference between serving a page and enabling web-based control over an appliance.
I'm betting that a device to allow dynamic content/CGI/whatever you need to control an appliance would be exponentially more expensive and bigger than anything we've seen here. At least PalmPilot sized.
---
I switched to NT when Linux crashed five times in one day. Funny, I used to tell people Linux was superior due to its stability.
If I recall, it doesn't interpret HTTP requests, but serves you a document based on whichever port number you connect to it via.
Hrmm... So when can I get a lighter doubles as my monitor?
If they can make an entire PC this small, does that mean they can make a beowulf cluster the size of a softball? How fast is this thing? I couldn't find any real stats on it on the website... It would be nice to know just how powerful this little thing is, and how much it costs. From the picture it looks like that if those 2 chips aren't phenomenally expensive it's a 5$ radio shack system.
Kintanon
Check out JoshJitsu.info for Brazilian Ji
I'm pretty sure I've seen this a month or two back on slashdot. Same link, same pics, and still no connection to the thing. (Oh, and according to most of the linux hackers, it's a scam, since you can't write a TCP/IP stack in 512 words)
not too many it would seem...
/. strikes again.
+&x
I had that same problem. Maybe it was overloaded by the large number of hits it undoubtedly received after being written up in the news (how much stability can you get into 512 words anyway? :-) )
Friends don't let friends misuse the subjunctive.
I can't stop myself from pitying that little thing as it's being slashdotted. It looks so helpless.
However, this is
- NOT NEWS
. This identical item was on Slashdot a few weeks ago, and then the article suddenly disappeared.To re-post this as a new item is misleading and a disservice to the Slashdot community.
Time is Nature's way of keeping everything from happening at once... the bitch.
If this concept catches on (and especially if chips like these go into production), I would hope they will support IPv6. Hell, they'd probably have to before too long, if people want to have IP addressible doohickys everywhere. What a nightmare to keep track of all those addresses (just as you have to remember a billion new passwords and PINs everyday in the 'wired' world)
"It's overkill, of course. But you can never have too much overkill." - Anonymous Slashdot Coward
So, even if it were real, telneting to the machine that they claim is running Slirp for it proves nothing... Why don't you try to telnet to the proper port...
.It could be a simple server proggy running on the alpha box, and bound to that port...)
(you can get in, but it proves nothing..
No. It seems that the webserver is connected to a serial port on a DEC machine, which listens on a port and routes all traffic going to that port to the webserver, and all traffic leaving the webserver back onto the net. So I think you are pinging the DEC machine, not the chip.
Time flies like an arrow. Fruit flies like a banana.
I have seen this before.... neve rlistened to it thought it was a hoax. Never could get the demonstration link to work. well it was slow an 8088 with 512k ram but my browser finally got in.. I kept getting hung after the name resolution then i finally got the "host contacted waiting for reply" took about 3 minutes after that to give me a text only page of more garbage.... wow... when can I get some Nike's with embedded webservers that allow me to tie the laces remotely???
www.mp3.com/Undocumented
I feel bad for that poor little webserver. If it can't stand up to a good slashdotting, it's not worth anything.
But seriously, imagine a webserver embedded in your answering machine (with IPv6 this is possible) so that you can check your messages from your web browser at work. I didn't read the whole thing, but this baby can't draw much power. I think that a 9volt would run this thing for several months.
LK
"Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
Hardware flow control won't help. You still won't get the accuracy required in the baud clock for reliable communications-- at any baud rate. Sure, flow control would give you time to process the received bytes but none of that matters if 75% of the bytes you get are corrupted.
David Kessner davidk@free-ip.com
Then we just slashdotted the world's smallest webserver. I wonder what a match-head sized webserver does when it feels the wrath of slashdot. melt? explode? scream? That is... if it's even real, which I don't think so
I disagree and hold myself in contempt, what blashphemy!
I've got a bunch of toaster ovens. Should we beowulf those together? (think of how many Gigabites of pizzarolls we could make.. ;)
"The smallest web server ever created melted down today, trying to bear the burden of a link from the infamous geek portal site, Slashdot."
"Looking around to find the melted remains of the teensy server, the team of intensely trained, tweezer-armed sweepers were saddened to find that it had been swept up."
Insert mind here.
What kind of RC5 rate do you think...
oh just forget it.
-Chris
As people figured out last time this link was posted the url is just a redirect to the server. Also, the server didn't appear to impliment any sort of true file system, since each of the links actually pointed to a different port, not to a different filename. I guess there wasn't room to fit a TCP/IP stack and file system on the chip. Also, this machine uses either 12 or 10 (i think it's 12) bit bytes, not 8. So 512 words is not 1024bytes but 1536bytes (in the 8bit sense) or 1.5KiB(see the power of two post from yesterday). Is that possible? probally. Extremely difficult? definately. I really would like to see the machine code for this posted. It would certainly be a truely beautiful hack.
-matt
And it looks smaller than a credit card.
It says its directly connected to a router thru a 115k serial line. I really think this as more vaporware crap. Probably put out by micro$oft.
Bill Gates: "look at those geeks.. they'll believe anything. Hmm my next lie will be that I will open source windows and do a code merge with linux.. that'll turn some heads"
Ugh... vaporware smells worse than my underwear...
www.mp3.com/Undocumented
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
They should put them in cereal. Then you could say "I eat webservers for breakfast!".
Added bonus - once you'd digested it you could still say you had one up your butt.
+++++
+++++
The harder you look the less you see. That's what we're up against.
An obvious reason is so that you can have an TV Guide type page with a link to your VCR to record the program.
It's a Kitchen Aid, model Ultra Power Plus. Single slot, wide enough for a split bagel or two slices of ultra-thick french toast bread. Plastic outside to prevent burns if you bump it. Picked it up at Fry's.
Controls:
Shade control: Button: lighter, Button: darker. 7-segment LED showing current setting. (This stuff simulates a slider.)
Options: Button/light: reheat. Button/light: frozen. Button/light: bagel. Button: stop/reset.
Miscelaneous indicator: Light: toasting.
In other words, a computer controls the timing of the cycle. (I haven't seen any indication that it modulates the power level or only lights one side for bagels.) It provides a convenient interface in terms of type and state of bread and desired doneness, computing the required cycle time.
Unlike a mechanical thermostat, it can compensate for the toaster being preheated, so if you do a second set of slices right after the first they come out the same. And you don't have to burn up a couple loaves or bags of bagels or waffles figuring out the right slider setting.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
This thing can't be for real. Here's why:
They claim to have a PIC 12C509 microcontroller
running at 4 MHz, and a serial link running
at 115.2 kbps. Let's look at that closely.
The first thing that I notice is that there
isn't any RS-232/422/485 line drivers on
their PCB, so that brings up some credibility
problems. But, I'll give them the benefit
of a doubt on this one.
That particular PIC doesn't have a UART on
it. So, they must "bit-bang" the UART function
in software. This CPU executes an instruction
every 4 clock cycles, or at 1 MIPS at the
specified 4 MHz. That works out to be 8.68
instructions per bit. Anyone who has bit-banged
a UART knows that it's damn near impossible to
do a UART in that many instructions, and even
if they managed to pull it off they have NO
time for anything else, like serving up a web
page.
Next is the claim of using the internal
RC oscilator for this CPU. Now, RC oscilators
are not particularly accurate things. In
fact, at a supply voltage of 2.5 volts that
CPU has an oscilator frequency range of 3.5
to 4.26 MHz. Since this clock is also
used as the alleged baud rate generator,
any inaccuracy in this clock translates
to an inaccuracy in the baud clock. Thus,
there is 12% error in their baud rate.
Now, in many situations an error of more
than 5% is a bad thing and would cause
severe communication errors.
So their claim of a serial connection
at 115 kbps is doubtful at best. Never
mind the difficulty of putting a TCP/IP
stack and web server into that thing.
-David Kessner, davidk@free-ip.com
David Kessner davidk@free-ip.com
...not to mention the "this was posted before" posts.
-- $SIGNATURE
I took Ed Nather's Astronomy in Science Fiction class at UT in the spring of 1997.
God, was that man cool.
I had previously read The Story of Mel, but it wasn't until just now that I put the two together.
He got his Bacherlors in 1947, and his Doctorate in 1972 (I had a bad habit of checking out my prof's credentials). I always meant to ask him what he did for those 25 years; now I guess I know.
Check out Ed's work with the Whole Earth Telescope sometime. It's pretty cool.
Don Negro
Don Negro
Perl 6 will give you the big knob. -- Larry Wall
It looks like the little tike has been /.-ed! That's one way to break it in!
(2C)||(!2C), That is the question.
Who says that the gadget has to implement a complete TCP/IP stack? There are all sorts of ways to do this with a minimal subset of TCP/IP and HTTP. I've seen very small TCP/IP stacks used in systems that boot over a network. It wouldn't be difficult to write software for a micro-controller that would receive IP packets over a serial SLIP link, extract the sender's IP address and port number, and send a canned web page back over the SLIP link. I'm sure it could be done in 512 words of memory.
4k of amazing gfx dos code . less is better .
. . . . . . .
may u!sh 2 sm!le at dz!z bad nn.!m!tat!ion
So it's not 512 bytes, it's 512 cleverly crafted words...
jeff
there are 3 kinds of people:
* those who can count
there are 3 kinds of people:
* those who can count
* those who can't
Not quite, since serial data is synchronized at each start bit, a moderate amount of time drift can occur and still be synchronized. Using the R/C clock you can get a 1Mhz instruction rate, which is more than plenty to handle 115Kps.
I don't buy it. At all.
I am a self-proclaimed expert on PIC devices, having worked with them since 1995 and writing over 50000 lines of assembly language on these things.
the 12C509 runs on an internal RC oscillator at 4MHz unless otherwise tickled, which these guys aren't doing. That means it does 1MIPS.
doing 115200bps at 1 instruction per us means that you have 8.6 instructions to get that bit out, not including tickling the SDA/SCL lines to do sync. serial to the I2C EEPROM, nor the filesystem overhead, nor the TCP/IP overhead. There is no room for a FIFO, no room for a TCP/IP stack, no room for a filesystem.
The I2C interface to the EEPROM takes up a fair amount of code in itself, as does the async. communications.
The chip has 512 bytes of PROGRAM memory, not data memory, of which this has (I think) 48 bytes.
In short. No. Not unless the host computer is doing a LOT of work for it, in which case this isn't a "complete web server" now, is it?
- Run it off of house power, transformerless power supply.
- slap on an X10 interface or RS485
- have an internal ID that's 10 bits or so
Now get yourself a Coldfire eval board, but the modified uClinux on it (just go here and have it dish out / take back commands via the much simpler serial interface.Now you have an army of quick little PICs to do your bidding around the house. Now you have your toaster, light bulb, microwave, catfood-dispensers all controlled from the web. Anything that requires some power (relays, etc.) will either be AC relays driven with a triac or will use a heftier power supply, since the base unit would only need about a milliAmp or so of current to talk and sense.
And... AND.. it's not fraud this time!
... Every device doesn't need to be TCP/IP. Just one. the rest need to be able to talk to this proxy. Why put all the power in each device like that?
This was definately posted about 2 weeks ago. Whee.
--
Dave Brooks (db@amorphous.org)
http://www.amorphous.org
We do 187.5K with a PIC running Profibus-DP protocol. This is about the upper limit.
That link was about many products competing for the title "World's Smallest Web-Server"
Besides, I didn't see UMass on that list.
this is, by far, my fave /. comment to date...
I drink to make other people more interesting
Now I want to combine one with the factoid... collect facts and then serve them with the world's smallest web server...
-Lx?
This is a more believable PIC based web server:
http://www.mycal.net/wsweb/
"I want to use software that doesn't suck." - ESR
"All software that isn't free sucks." - RMS
It seems to me that many people are missing the point. It is useful to make things smaller, even beyond practicality, so as to explore the possibilities. Sure, this TCP/IP isn't practical. It may, however, lead to the development of minimalist stacks. Then those of us who need to connect to the net for $5 can get there. Anyone know of such a user group?
That's just it.. no flow control lines. and at 8 instructions per bit, there's not enough time to even spit out an XOFF.
Lets see the source code (granted, its going to be hand crafted binary)
:-)
eh? why's that? Assembly is just as optimized as machine code, but you can read it.
Andrew
I don't particularly care for the fact that they used such a cool tiny TCP/IP stack beneath a webserver. They could have implemented chargen for all I care.
But there are a whole lot of applications for a TCP/IP stack so small. I don't want to administer my toaster using the web. I hate the web. Its bloated. But if I'm to administer my toaster at all, it has to be done so using a protocol implementable for less than a dollar on a cheap PIC. I don't want Jini with Sun bloat, or the web and its bloat. Whomever was able to implement that TCP/IP stack (if its real) should be working on a lightweight toaster administration protocol rather than running a damn webserver.
Here's a page for a class project at UBC that might lend a little credibility to this:
http://casas.ee.ubc.ca/475.tinystk.html
It's short, so I'll quote it here:
Tiny TCP/IP Stack
TCP/IP has become the most widely used protocol for data communications. Although several free versions of software to send and receive data using TCP/IP are available, this code is too large to embed in small microcontroller-based products.
The purpose of this project is to write the smallest possible TCP/UDP/IP stack that is interoperable with most existing software (even if not necessarily standards-conformant).
You will be supplied with the relevant standards (RFCs) and a sample implementation (BSD 4.2) as a starting point. The success of the project will be measured by the size of your implementation (the target is approximately 2k of code and less than 1k of data). The code will be written in C. You will demonstrate your implementation by writing a very simple HTTP server operating over a SLIP link.
Project Status
We succeeded in getting a very small (about 1kB RAM, 2kB ROM) HTTP server. However, it ignored all IP options and only implemented the TCP protocol. The server could only serve two very simple HTML pages which were stored in ROM. It took two students a total of about 120 hours. We used only SLIP over a 6850 serial port to keep the physical interface as simple as possible. Due to the space constraints, the code "squashes" all layers of the protocol stack (SLIP/IP/TCP/HTTP) into one. It cannot be used as a general purpose stack. The code is not available.
..make that several, heck at a buck apiece I can get a couple dozen and wire my whole house with those things. Woo!
--
As about 500 people have previously said, this has already been discussed. C'mon! This guy's attempt is lame. Circuit Cellar did an article last month about a 'C508 used for datalogging that can speak tftp back to a host through a modem PPP connection. That's slicker than a "web server" with a "filesystem" serving "piddly shit" to a routing machine that handles the real connection. Show me one place where this server can do something useful.
Woohoo! There's a webserver caught up my nose! And it's cabled to a PC! Everybody dance!
you mean a "is that a supercomputer in your pocket or you just glad to see me" uneasy?
Pork is not a verb
yup, definitely, since we all know that ms owns umass, and that the they only let us use digital unix and linux to fool clueless /. readers...
115200 @ 1MIPS?? Plus software-managed I2C? As stated, there's only 8 instructions available for each bit at 115200. Someone mentioned scratchpad RAM in the I2C. Remember you've got to clock and load/unload all the data over I2C yourself as well, not to mention wait for the device to finish on writes (it takes a little bit of time). There just isn't the power there. I'm currently trying to get a PIC12 to do THREE full-duplex async 9600 baud async at once (yes two asyncs, each tx/rx pair is async from any other tx/rx pair), one being IRDA. That's enough of a challenge at 4MHz. But 115200? Gimme a break.
Anyway the whole excercise was proven NOT to be a "complete TCP/IP stack" as claimed, which was what I was originally pointing out. Yes a little chip with I2C can work with preformatted headers and when spoon-fed this data, spit out something in E2. That's not too impressive, and *is* doable.
...or, maybe a bug ate it. They got bugs in that part of the world big enough to eat a whole web server!
Geeky modern art T-shirts
They should have a competition for the world's smallest webmaster. That'd be cool too :o)
I don't know about the TCP/IP stack, but these 8-pin PIC's use an internal resistor-capacitor oscillator, which is not nearly stable enough to use for software UARTS.
I also have never heard of ANY pic being able to do 115Kbps!
-- 2 + 2 = 5, for very large values of 2
Beowulf cluster! Just wire up a bunch of them! A complete cluster that fits in your pocket!
Although the phrase "pocket cluster" makes me a little uneasy....
(No, I'm not serious.)
Save the whales. Feed the hungry. Free the mallocs.
I'd rather see the BIGGEST web server on the internet, for some definition of BIG. Cdrom.com already has bragging rights for "Highest Volume". How about "Biggest Disk Farm"? "Biggest Physical Size"? "Deepest Redirect Tree"? What are the dinosaurs doing these days? Anybody running a VM/ESA web server? Any railway car enclosures? Diesel generators?
Saving random seed...
Where is the "battery power" they were talking about and how come it isn't in any of the pictures?
Back in the early days, control panels were built of discrete components. Every signal you watched needed a lamp, meter, drop flag, noisemaker, or the like. Everything you controlled needed its own switch, knob, slider, or whatever. Every gadget chewed up panel space, required its own expensive wiring back to the thing it monitored or controlled, and created another single point of failure.
Computers were no exception (and you need to control the computer in any system a computer controls.) But their guts were riding Moore's law, while control-panel tech improves more like manufactured products: Economy of scale and occasional inventions. These days a control panel is a bit more work and cost than a printed circuit board. But even if controls DID improve by Moore's law, eyes and fingers only improve at evolutionary rates - which is effectively not-at-all. So the amount of stuff to be controlled outran the panel space to control it.
By the '60s mainframes had more than one entire box dedicated just to the switches and blinky-lights, and it still wasn't enough. IBM was already multiplexing each row of blinky-lights across 16 functions with an associated rotary switch (that also changed the labels). Minicomputers were RISK and had less to display, but they were starting to do the same thing, or to skip displaying stuff of interest.
DEC broke through with the LSI-11. Configuration was still jumpers, but the panel was replaced with a debugger-like interface on the primary serial port. When Amdahl left IBM he saved a lot of work on his first mainframe by building his control panel from a DGC Nova controlling a couple projection displays. Cray did the same BEFORE he left CDC, using a couple big monitors controlled by the 6x00's peripheral processors.
Virtual control panels worked well for other things than computers, too. Factories began to be controlled from displays on screens. NASA scientists were amazed by a private rocket company who rented one of their engine test stands, but ignored the roomfull of control consoles and ran their test through a display hacked up on an early Mac.
At first virtual control panels still required special-purpose hardware and software for each application. Later they were done with software on a general-purpose small computer. But they still required a lot of custom software and were limited to one operating system.
HTML and CGI changed that. They provide a compact representation of arbitrary control panels and a means for switching between them, along with a convenient way to fill in variable display fields and to pass control-setting changes to the processor doing the controlling. And they allow one display to control a multplicity of devices over a network.
These days my toaster has a custom control panel, with six buttons, four LEDs, and a seven-segment display. My ADSL modem, on the other hand, gets away with one failure-prone moving part - the power switch - by using a web server for its panel.
Using web-based consoles the graphic interface is done for you, and the software is available (for FREE!) from multiple vendors for all popular platforms. Powerful graphic design tools are available off-the-shelf as well. The last missing link is the web server for the little embedded systems.
With a rudimentary comm stack and an even more stripped-down web server, filling in the blanks in canned pages and forwarding responses to a cgi-based command handler, you've got all the control and display you need. You can even flip from machine, so you only need one window to run the whole show.
The smaller the web server, the more of your tiny processor is available for useful work (or the smaller a processor you can get away with).
So that's why you suddenly see a flood of little web servers for embedded micros, and why it's very important.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
Try telneting to the IP address....
Trying 128.119.41.46...
Connected to 128.119.41.46.
Escape character is '^]'.
Digital UNIX (eternity.cs.umass.edu) (ttyp3)
login:
--------------
unless this guy implemented Digital Unix in 256 words too.....
These folk could use one:5 2722
http://amazon.imdb.com/Title/ASIN=630402925X?00
Oh well, I'll try connecting to it in a couple of days. I just got a mental image of this thing bursting into flames from the coming onslaught. On the bright side, they can make a server farm about the size of a floppy disk.
A really cool idea though.
Andrew (thinking a web controlled microwave is a really cool idea for some reason, except for when some cracker breaks in and overheats my lasagna)
So, what this means (assuming it's not a scam), is that people will make web-controllable toasters instead of copiers. And security being what it is, there'll be script kiddie scripts lying around to send too much power to the eject lever, and boom! Remote Toast Ejection At High Velocity. fwip!
Hey, anyone remember Segfault's preview page? iToast? =)
-- I won't die for Fernando Poo
I managed to connect to it (momentarily) before it was totally slashdotted. The transfer rate (according to Netscape) was 3 bytes/sec!!
Moo!
This webserver was on /. about 2 months ago. It was generally agreed the "compliant TCP/IP stack in 256x12 bit words" was bogus.
Although the web page has been updated to include more info, I'm still a bit skeptical. Now it has a ROM and the iPIC, so they might be able to allow single connections and serve up a simple page.
Lets see the source code (granted, its going to be hand crafted binary)
the AC
Hemos is like...sci-fi fans;he thinks technology is cool, but he hasn't bothered to understand the science it's based on
here's a link to the old /. article about it.
--
http://www.beroute.tzo.com
"Science will win because it works." - Stephen Hawking
You positively cannot do TCP in 512 12 bit words.
Look, the page starts out with a joke.
I was especially rolling on the floor laughing when they said that the actual stack was only done in 256 words, and the rest was for miscellaneous code! Masterful comedy.
I remember programming contests back in the early 80's having to do with what you could pack into 256 bytes of code (for your eight bit micro like the Apple II or what have you). People did some amazing things. But nothing like TCP/IP.
Consider this: on the Apple II computer, each peripheral had 256 bytes of memory mapped space, in which it could implement a driver. There existed serial drivers that barely fit into that limit, and these had only basic functions for transmitting and receiving characters in a blocking fashion plus a few other functions.
I had a modem whose hardware was very simple, but which did not manage to cram everything into the 256 limit. There was also a 2K space that was shared by all the devices (one at a time) so most of the modem's driver was crammed into there.
This was very tight coding. The 256 byte basic area even had overlapping instructions to save space. That is, the data part of one instruction serving as the opcode of another instruction. (Some biological viruses do something like this in their genetic code: two different proteins generated by overlapping areas in the code).
Anyway, the whole thing is a joke, probably inspired by some recent ``world's smallest web server'' slashdot stories.
Near as we were able to determine the last time this article popped up, eternity is not the bitty machine, it's a regular old Digital Unix box that's acting as a SLIP router for the bitty machine. If you examine the HTTP response from eternity, you'll notice that it's actually a redirect to another IP and port. If you follow the redirect, you get the page. That's what I found last time, anyway... I can't seem to get through just now to paste the actual HTTP response up...
It's fitting that a web server be shaped like a tiny spider...
-- ----------------------------------------------
Vive le logiciel... Libre!!!
Jeez, I've known about this little bugger here at UMass for a while now... was sorta depressed to see it not included in the last round of 'smallest web server ever'... Ahh well. :)
:D
The whole world's gonna be a web server now... imagine wearables with these PIC chips in buttons, serving up a web page with your exact geographical coordinates... who needs a pager? Heh, and if you can't find where you left those clothes, just check the web page for them
The question came up last time, though, on whether it was actually a web server or just a redirect... did that get answered? I'm too lazy to go check the archives... =]
-Fractal
"Go!
Go U!
Go UMass!
Go! U! Mass!" [fight songs suck.]
This
In a recent Mindcraft Study, Ipics Web Server handily beat a quad Xeon 4gig NT Server running IIS4. Microsoft Engineers only commenting that a fix for this will be in SP83. Mindcraft is the industry leader in running useless benchmarks. Microsoft is the industry leader in marketing poor quailty software.
$ telnet 128.119.41.46
Trying 128.119.41.46...
Connected to 128.119.41.46.
Escape character is '^]'.
Digital UNIX (eternity.cs.umass.edu) (ttyp3)
login: