The World's Smallest Webserver (s)
The always excellent Russ Nelson sent us a report on the competition for the lucrative title of "World's Smallest Web Server". Apparently there are a few folks going for it. He writes "HP has one. Dallas Semiconductor has one (only $50). MMC Embedded
has one that isn't even
in the running, although it does have COM1-4 and LPT1. Dawning
Technologies' entry is a
joke: far too big to be "smallest". Stanford has one which is best known.
And Rt-Control has one named
uCsimm because it fits in a SIMM module. The latter two get bonus
points for running Linux. Phar Lap claims to have one, but it's a non-starter,
being PC-104 based. Dekad Ltd says theirs is really small, but
they don't have an Ethernet interface. The one from iReady really seems to
be the smallest, but it too lacks Ethernet. Emware's one is so small it
doesn't need any hardware (how they claim it's smallest without
reference to any hardware, I'll never know). "
the iPic looks very cool, but he hasn't been willing to let anybody look at his source, so i tend to believe it's a hoax.
This is just like television, only you can see much further.
They have been /.'ed out of existence... anyone have any details in their cache? I'm quite interested in this...
--------- Webmaster, http://www.cpureview.com and
Yup, beats mine. Here's the world's *second* smallest Web Server :-)
# ######################### # #########################
/usr/local/cvs/repository/gild/handlers/http,v 1.2 1997/10/15 20:16:08 simon Exp $
;; # that's OK; ;; # So's that...
//' | awk '{ print $1}'`
#!/bin/bash
###############################################
# #
# Project: Gild #
# http #
# #
# Purpose: HTTP 0.9 handler for GILD. Handles http requests #
# reasonably accurately, considering it's under 100 lines #
# of shell-script. #
# #
# Author : Simon Brooke #
# Copyright: (c) Simon Brooke 1997 #
# Version : 0.1 #
# Created : 10th October 1997 #
# #
###############################################
# $Header:
SERVER_ROOT="/usr/local/etc/gild/httpd"
DOCUMENT_ROOT="$SERVER_ROOT/htdocs/"
AGENT_NAME="GILD_http_handler/0.1"
now=`date "+%a, %d %b %Y %k-%M-%S"`
read command file protocol
case $command in
"HEAD"|"Head"|"head")
"GET"|"Get"|"get" )
* ) cat $SERVER_ROOT/error/501.html;
echo "$now: $REMOTE_HOST: Unknown command [$command]" \
>> $SERVER_ROOT/logs/error_log;
exit 0;;
esac
rq_file=$file
if [ -n $file ]
then
file=`echo "$DOCUMENT_ROOT$file"`
if [ -d $file ] # if it's a directory, look for it's
# index...
then
file=`echo "$file/index.html"`
fi
if [ -r $file ]
then
length=`ls -l $file | awk '{print $5}'`
ftype=`file $file | sed 's/[^:]*:
case $ftype in
"HTML" ) type=text/html;;
"ascii" ) type=text/plain;;
"english" ) type=text/plain;;
"a" ) type=text/plain;; # probably a shell script!
"GIF" ) type=image/gif;;
"JPEG" ) type=image/jpeg;;
* ) type=x-unknown/unknown;;
esac
echo "HTTP/0.9 200 OK"
echo "Date: $now"
echo "Server: $AGENT_NAME"
echo "Content-Type: $type"
echo "Content-Length: $length"
echo ""
case $command in
"HEAD"|"Head"|"head") exit 0;;
"GET"|"Get"|"get" ) cat $file;;
esac
echo "$now: $REMOTE_HOST: $command: $rq_file" \
>> $SERVER_ROOT/logs/access_log
else # didn't find it; report and log
cat $SERVER_ROOT/error/404.html
echo "$now: $REMOTE_HOST: No such file [$rq_file]" \
>> $SERVER_ROOT/logs/error_log
fi
fi
exit 0 # yes, I know it _shouldn't_ be necessary
I'm old enough to remember when discussions on Slashdot were well informed.
Ick x86 is so totally unsuited. Super-H/Arm/Strongarm/MIPS are far better suited. Id love to see something like ucsimm with such a processor with MMU. That way it could run Linux/xBSD relatively unchanged.
Most of the powerfull ones (SH3, StrongArm, EP7211 etc) could decode mp3 and have enough cycles left to run a good file/web server. And all that on a couple of AA batteries, the embedded x86 processors simply cant touch that.
However, they've changed their pricing and now all you can really buy is an unlimited OEM development and distribution license, and thus the price is about the same as that of a very nice automobile.
I agree that calling emMicro a "Web Server" is pretty lame, although it does provide "services" to emGateway.
As to whether there are any shipping products, it's hard to say. They have a lot of press releases disclosing design wins, but those tend to be of the "these people say they're gonna use our stuff for this cool new product they're working on" sort, while OEMs tend not to be so interested in blowing emWare's horn when the product ships.
My project is in-house only (and I can only really afford to do so because I bought before they changed the pricing structure), so it will never "ship" in any traditional meaning of that word.
You could buffer a lot of mp3's in SDRAM. (wich in self refresh mode only uses a couple of mA) The HD/CD-rom would only have to be one very sparingly. You COULD run this of a couple of AA's, just not with your precious x86 ;)
Oh brother.
So what? So it's small. Who the fuck cares? They'll get small *anyway* there is not DEMAND for it. If you wanted to it would be easy enough to make an entire webserver on a single piece of silicon, but why bother? Nobody needs or wants it in any way.
Telephone was useful. This isn't, at least not yet.
A few comments about emWare and embedded web servers:
The first question that always came to my mind about embedded web servers was why? Most people are just interested in the hype of the whole thing and not if it will actually do anything for them. A real embedded web server will require more hardware and software than most embedded developers are willing to use in a typical application. The real question is why would you want to server up files through HTTP? You will still have to encode data into that file and process it to mean anything to the client.
What makes more sense is to have a complete distributed application framework. What emWare has done is create a piece of software that enables embedded developers to create distributed applications in their 8 bit Microchip PIC micro-controller, or micro-controller of their choice, without exorbitant hardware or software costs. It is true that this framework relies on a middle tier application that will proxy a light weight protocol to TCP/IP. This means though that one proxy application (in emWare's case, emGateway) can service a number of devices and provide a common interface for network clients to access those devices. It also means that this application can do some more of the traditional things network servers do but embedded ones don't, namely access control, and security.
Cheers,
wharper
BTW: There is a prototype emGateway running on Linux.
Once you've got fifty matchhead-sized computers scattered about you, controlling everything from the gas pressure in your running shoes through the setting of your air conditioner to the caffiene level of your blood, what are you going to use for a control panel?
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
So there isn't really any evidence that its the thing in the photo, and not the Unix box, a that is answering the pings and serving the web pages.
Take any laptop machine, remove the screen, the keyboard, the battery, the hard drive, the exterior packaging and what are you left with? The CPU, the memory, a coupla PCCard slots and a power supply which is now overkill for the now stripped down machine and could probably be replaced with something much smaller. All in all the total package is no bigger than a cell phone and most of that space is the PCCard slots and the power supply. In fact for packages like mine that mount the RAM on a card underneath the battery you could replace it with a flash card and still use the other PCCard slot for a network adapter. Extend this idea to something already small like a Libretto and you'd have a working standalone machine about the size of a Palm Pilot.
If you read the updates section, the guy spends a lot of bits defending against suggestions that it isn't legit. Perhaps the story was pulled because he complained to the /. mavens that his little web server was being so severely /.ed. Just a guess.
--
--
Think Green... Burn only 100% recycled dinosaurs in you car.
Have you seen the framerate of his gear? it would be more of a "premier webcam" than a stream.
This is just like television, only you can see much further.
The http://www.circuitcellar.com/online won't be functional until Aug 9th. But the initial web page did appear the be /.'d.
Neil Cherry - Linux Smart Homes For Dummies
I wonder if anyone has actually put a webserver in a toaster.
Wouldn't the heat fry the chips very quickly ?
I used to have a sig but I left it on a bus
$ ping 128.119.41.46
PING 128.119.41.46 (128.119.41.46): 56 data bytes
64 bytes from 128.119.41.46: icmp_seq=0 ttl=53 time=158.6 ms
64 bytes from 128.119.41.46: icmp_seq=1 ttl=53 time=146.0 ms
--- 128.119.41.46 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 146.0/152.3/158.6 ms
$ 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:
I would tend to think so too. He had a link to the web server and it gave out an ip address. Unless he's doing some sort of trick with portforwarding, the machine's running Digital Unix.
Wireless ethernet? dunno of this, wireless lan maybe, but otoh....
Sorry about my incomplete post! (I was in a hurry) That's actually what I meant. At my work we've been doing some stuff for low-cost high-bandwidth transmissions in the under-1000 ft. range, which, since it's specific to streaming data (in my case, sound) with a guaranteed bandwidth, would, with proper real-time compression, work (once you're outside the building it would need something else, but it could be done. Where there's a will there's a way). That's why this idea came to mind. I may want to have one of these microservers (the $15 all-on-a-chip kind, probably) as part of the system for my work, to improve it's adjustability on the fly. (I'd tell you what my work project is for, but my nondisclosure agreements at work would then require me to kill you or something)
The page does say the server is connected to the net through SLiRP on a Digital Unix machine, so yes, "he's doing some sort of trick with portforwarding".
that was the PIC article which generated a shitload of comments.
"Who needs this fire thing? I *like* sushi!"
void post { post_random_comment("slashdot.org"); karma--; }
I noticed a pulled slashdot article also! It's very rare. I just guessed that someone pulled a fast one on Lords of Slashdot, but I never heard anything. What happened?
Mine is the size of a push-pin
Please tell me about someone who really needs this. Wearable with ethernet-connector? Gimme a break.
i think i own the record for that.
does anyone want to challenge my claim???
Well maybe this is going to be moderated down, but I don't care, I need to say it ! maybe tjis will change somehow the subjects which are choosen by CmdTaco. Yeah I believe that Slashdot is getting more and more boring, really who might be interested by this ! as if there is not anything more interesting in the Open Source arena. I am really puzzled buy the links which are posted here. And I must confess, I get more and more informartion from Linuxtoday !
Khalid
They're refering only to the software. As in, Apache is a web server.
They say it needs only 750 bytes of ROM and 28 of RAM which astounds me, but whatever..
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
I came up with a use for it: (stretching a bit)
You wear eyeglasses with a camera in the middle (pricy, but available and very discreet), and have the world's smallest server and a good wireless transmitter hidden in your clothing/pockets. You then broadcast the premiere (or better yet one of the early test showings!) of the next Star Wars and other movies through video streaming in real time from the theater, which is then extended through repeaters througout the world (sit really still, and don't comment!). I'm sure Lucas would be thrilled about that one!
To up the ante, I offer a $250 prize to the first person who can prove they pull it off (but I assume no liability for their actions!). And here's my email (remove the !'s) to prove I mean it:
!rickyray!@!patrickhayes!.!com!
Somebody pulled a slashdot article on a tiny webserver a few weeks ago. It had some critics but other people felt it might be real. I was annoyed that the article was pulled instead of commented on, if it was a fake.
Anyone know for certain what it was?
Help achieve Liberty in your lifetime - join the Free State Project - http://www.freestateproject.org
Does this current interest have to do with the fact that IPv6 will allow every traffic light to have its own IP? Just think of the possibilities for traffic reports!
Actually I can think of some advantages of including web servers in handhelds and similar devices -- it would raise journalism to a whole new speed. Now that I think about it, there's no reason other than the spirit of the Internet why it wouldn't be better to just use a central server...
It seems to me that the one in this slashdot article from January is still in the running, once you add the inevitable peripherals (esp. the power supply or battery). And that one's been operational for over a year now.
--
This is why I don't post much.
The PC104 web server from phar lap is a joke. Those are all over the place, as are smaller devices. I have a PC104 board at work (same length, width, but it's only one board, so shorted) running a homebrew Linux distribution off of a 40mb solid state hard drive. When it's plugged in, it's serving web pages as well (quark.ai.mit.edu). These things are completely trivial.
... and in my fridge, my dishwasher, and in my car too. With IPv6 we'll finally have enough IP addresses to make this a reality.
Wheee! We've Slashdotted the world's smallest server. "You big bullies! Pick on something your own size!"
~ Give me 101 plastic soldiers, and I will conquer the world.
There was another posted to slashdot only a few weeks ago called iPic. It's smaller than any of the ones mentioned here, I think. The URL is http://www-ccs.cs.umass.edu/~shri/iPic. html. The page has even been updated (new picture, more info) since it was first posted.
This one does TCP/IP on a pic and looks smaller than all others listed here.
http://www-ccs.cs.umass.edu/~shri/iPic.html
Picture at authors Web page:
/bruce/picoweb.jpg
http://www.lightner.net/lightner
I remember an article on here about the old Newton doing the webserver dance as well. Suprised it wasn't mentioned on here. Even though it isn't open-source, it *is* the grandpappy of my ever-hackable 3Com Pilot. =)
I'm waiting for the first webserver that comes in a PCMCIA form factor.
inexpensive, small PC motherboards?
I've built a bunch of PC-based X terminals, but alway end up having a PC-sized case with a lot of wasted space. I've seen those 'PC in a keyboard' ads that run in the back of InfoWorld and the like, but damnit, they want too much $!
All I want is something that fits under a keyboard (like the ad mentioned above) or the size of a cassette recorder with a floppy, NIC, and linux supported sound & video (how about an external power supply?). It shouldn't cost much more than using standard PC components. CPU doesn't have to be fast/powerful, it's an X terminal! A Cyrix MediaGX would work fine, if its fully supported by Linux.
Figure for ballpark costs:
Case: $20
Motherboard (with o/b sound & video): $45
CPU (Cyrix 686MX-200 - Overkill): $25
Heatsink/Fan: $10
10 Base-T NIC: $10
3.5" Floppy: $10
32 MB memory: $16
Whole shebang (without monitor): $136
Well, any takers??
I've installed a flash-disk based linux on the following board:
o nster_586.html
http://www.jumptec.de/product/data/slotpc/littlem
This is exactly like the decline of usenet.
These aren't mainly for wearing, its the basic small-ness that really matters. Embedded hardware designs call for small models with good network connectivity sometimes. (Such as an ATM, perhaps, that needs to connect to an ethernet interface for diagnostics? I really don't know, just an idea.)
Am I missing something or wasn't this the world's smallest webserver? 776 bytes binary, takes 16kb in memory.
It's the easiest way to share your documents quickly, and if someone adds some code, in a securer manner. Just a quick and dirty module to do file listings on directories and its browsable in your favourite browser. Running Apache for sending a couple of users alone might be a bit much to run and config.
I know of many companies who use apache to serve documents across the net simply because netbios is a nasty overkill. No more NFS/Netbios shares.
The smallest HTTP getter? Possibly snarf. The usage of these two tools is great for information passing. Slap on a small html interpreter; they come in a few hundred kb's for the pilot already.
Mm.. the possiblities...
-
ping -f 255.255.255.255 # if only
I particularly like the $50 one from Dallas Semiconductor (and the uCsimm for $150). In "real life" I work as a systems analyst at a custom engineering firm; sometimes I'd practically kill for a cheap ethernet connection for embedded devices!
I've bookmarked the Dallas page (I already had uCsimm bookmarked); I want to play with that toy... but I'll wait for the $50 version, $500 is too much for such a toy at home.
--------- Webmaster, http://www.cpureview.com and
x86 is what I'd want. The HD would use so much power that AA batteries will do no good. I'm thinking more along the lines of either 12v DC from an automotive power source or a bunch of D batteries. I'd be able to deal with the extra size & weight of the batteries to make up for the extra music time I'd get.
LK
"Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
I don't know if they use on-chip webserver mentioned here, but as far as I know all HP JetDirect print servers have an embedded web server. Once you have assigned an IP address, either through a supported printer or included software, the print server can be configured through http or telnet.
I think that there are a lot of applications for this and similar products. Wouldn't it be very nice to be able to program the VCR through a web page, instead of pressing the tiny buttons on the remote, or your company's PBX or central heating system).... and these are only some of the more obvious ideas..
I've heard of a webserver on a smartcard....now that's tiny
It's 10 PM. Do you know if you're un-American?
Who's the guy on the matchbox?
I liked Cisco's Micro Webserver. It doesn't look
like they are still selling it. It had an Ethernet
port, a serial port for the console, and an external
SCSI connector for CD-ROM drives or hard drives.
I don't see it on their web page any more, but it's
on a recent CD I think.
They say it needs only 750 bytes of ROM and 28 of RAM which astounds me, but whatever...
What Emware has done is totally believable. It sounds like the server is communicating with the browser with those "microtags" which sound like ~2 byte integers to me. Their server doesn't do TCP/IP, just a "simple serial protocol" which also implies very little code. And the 750 byte ROM estimate probably doesn't include the code to make the device actually do anthing when the browser tells it do -- it is just the framework for sending and receiving commands.
In other words, it sounds like what is in the device is just a simple framework for communication over a serial line (simpler, even, than a gdb sub!). Emware's business model has got to rely on their off-device technology or they are doomed.
They also claim to have trademarked the term which I find really funny. They even want to patent it.
Tiny machines dx4-100 and up with IDE, VGA, Ethernet and AUDIO. We could all have homebrewed MP3 players. No injunction from RIAA could stop their distribution either. They're just little computers. Not MP3 only devices.
22gb of musical bliss. Ahhhhh.
LK
"Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
http://www.circuitcellar.com/online/