Contiki Ported To x86 243
lt writes "The ultra-small Contiki OS has now been ported to the x86. This should give those of you who have an old x86 PC that is too small to run even the smallest of Linux variants, a chance to browse the web, set up a web server, and doing other essential stuff. If you're curious to see how it looks, there is a live VNC demo running."
No wonder (Score:3, Funny)
Re:No wonder (Score:2)
Re:No wonder (Score:3, Informative)
Wow! (Score:2)
Re:Wow! (Score:4, Funny)
What the hell is a 486? :)
Re:Wow! (Score:4, Funny)
Re:Wow! (Score:2)
"What the hell is a 486?
I think we're both taking this way too seriously.
Not quite: (Score:3, Interesting)
Re:Wow! (Score:4, Informative)
Re:Wow! (Score:2)
But I wouldn't even think of launching a modern GUI web browser on it locally...
VNC (Score:5, Interesting)
On another note, for those who thought VNC over 100BaseT was slow, it's even slower when running at 3KiB/s
Re:VNC (Score:4, Informative)
Interestingly enough I (in the past week) have thought about implementing Contiki on top of CP/M-86 [z80.de] 4. CP/M-86 4 is a rather small OS, and can optionally run DOS programs (the infamous DOSPLUS [seasip.info]), and I think, with tools I can easily find for free, I can code low-level stuff for it.
It can be done. IWBN, too.
-uso.
Re:VNC (Score:2, Informative)
The 8086 came first, and was 16-bit throughout.
The 8088 was designed to be cheaper, as it had an 8bit external data bus.. but the processor was 16-bit.
http://firstpc.no-ip.com/en/8086/page02/x86c.ht
That page is running on an 8086, BTW.
Re:VNC (Score:2, Informative)
You are both wrong. (Score:3, Informative)
They have 16-bit internal registers ( and utilize one 16-bit page register and another offset register to acheive 20-bit memory space ). The data bus is insignificant to the definition.
The REASON "8-bit" is associated with the x86 architecture is BECAUSE the 8086 and 8088 are backward-compatible with the 8080, an 8-bit processor with a 16-bit address space.
Remember folks, the general definition of the "bits" attribute of a processor is how many bits wide the
Re:VNC (Score:2)
So you probably have to edit that table.
Re:VNC (Score:2, Informative)
Re:VNC (Score:2)
Venturing slightly off-topic (don't blame me; the site's Slashdotted
I VNC'ed into my laptop (although it only has 11 Mbps WiFi), and it might as well have been overseas on a 14.4 dialup?! It wasn't bandwidth -- it's a small home network, so there was the full 11 Mbps available. I rarely broke 100 kbps. The laptop (WinXP) hit about 50% CPU use, but shouldn't have slowed to a crawl? (The
Re:VNC (Score:2)
As you mentioned wifi, another possibility is that the data-rate might be too fast for the signal conditions. For normal file-sharing etc, or if there are many wireless clients, you might well be better off with the higher data rate, but for interactive protocols you really don't want any packets with errors, as they involve quite some latency. If you suspect this, run a long (or flood) ping
Re:VNC (Score:2)
I think I'll give it a try either way, though. Looks pretty nice.
Re:VNC (Score:2)
Re:VNC (Score:2)
A handfull of slashdotters trying to type different URIs in the same field would explain that.
Oh well, this will be the first article to ever slashdot a VNC server, I think.
It is not the first time that demo was mentioned on slashdot.
As it will be slashdotted... (Score:3, Informative)
Some info before it gets toasted
The web pages you are watching are served by a web server running under the Contiki operating system on an an Ethernut embedded Ethernet board, which consists of a 14 MHz AVR Atmega128 microcontroller with 32 kilobytes of RAM and 128 kilobytes of flash ROM, and a RealTek RTL8019AS Ethernet chip.
Local Remote State Retransmissions Timer Flags 80 210.214.211.245:1166 FIN-WAIT-2 0 91 80 210.49.61.249:4000 ESTABLISHED 0 3 80 216.15.124.126:61657 FIN-WAIT-2 0 25 80 209.210.4.252:54730 ESTABLISHED 0 1 * 80 200.164.245.202:33548 ESTABLISHED 0 3 * 80 216.15.124.126:61654 FIN-WAIT-2 0 21 80 217.72.69.144:1077 SYN-RCVD 0 3 * 80 208.191.17.177:1937 ESTABLISHED 0 3 * 80 172.137.24.29:3071 SYN-RCVD 6 43 * 80 208.19.133.132:38209 ESTABLISHED 0 1 * 80 192.35.35.35:35197 ESTABLISHED 0 3 * 80 66.32.100.20:57348 ESTABLISHED 0 1 * 80 160.36.251.198:56226 FIN-WAIT-2 0 4 80 160.36.251.198:56225 ESTABLISHED 0 3 * 80 160.39.180.236:53790 FIN-WAIT-2 0 36 5900 67.82.242.97:27960 ESTABLISHED 0 3 * 80 200.164.245.202:33549 ESTABLISHED 0 2 *
story translation (Score:5, Funny)
click on this vnc link here to blow to smithereens.
Live VNC (Score:5, Funny)
Re: (Score:2)
It's still alive! (Score:4, Informative)
These guys know what they're doing. Impressive indeed!! I got to change Window, and delete some text, then go to the addressbar and delete some more and trying to write in an address. But there were 7 other people connected too, doing other things. If I were alone, I bet I could've used the machine just fine.
Come to think of it, I still got my old dusty C64.. Maybe it's time to revive it
Specs, just in case (Score:4, Informative)
Re:Specs, just in case (Score:2, Funny)
Dolt...maybe the REST of the post was a little informative, not just the tiny comment at the end?
No, the rest was redundant :)
I just hope ... (Score:2, Funny)
Re:I just hope ... (Score:2, Interesting)
This is just vague memory thou....
What i do know is that the tiki 100 was popular in norwegian schools in the 80s....
From BEYOND THE GRAVE!!! (Score:4, Funny)
MAN! Everybody's suing these days. Old ladies who pour scalding coffee on their crotches, smokers, gun nuts, now DEAD anthropologists? Where will the madness end?
New headline for article (Score:5, Funny)
14 MHz web server Slashdotted! Oh the humanity!
Re:New headline for article (Score:2)
Re:New headline for article (Score:2)
When are they going to tune this for performance? I guess short term, they could go for a server farm of 14MHz servers.
Re:New headline for article (Score:4, Interesting)
Having a 14 MHz box survive a Slashdotting is a _real_ good ad for the OS it's running.
holy melted silicone, batman! (Score:5, Funny)
What kind of sick bastard would slashdot a VNC connection? It's bad enough when you do it to an image file server or a site with a video or ISO, but a VNC CONNECTION on a computer that is too low powered for even Linux? What is wrong with you people?
Hold your misspellings, Robin! (Score:5, Funny)
Silicon is what chips are made of.
Re:Hold your misspellings, Robin! (Score:5, Funny)
Re:Hold your misspellings, Robin! (Score:2, Funny)
Re:holy melted silicon, batman! (Score:2)
He had the help of his super-powered horse, and so it looked like he was going to finish it on time. Then Loki, the trickster, transformed himself into a mare to 'distract' the Giant's horse. He succeeded, the fortress wasn't quite finished, howeve
A Post-Modern Cool Idea (Score:4, Informative)
Pushing the limits of computing (Score:5, Insightful)
It seems Adam has what was once prevailant in the computing and electronics industry. Tinkering and programming for the sheer joy of creating something new. In this way, programming and building systems like this are very similar to creating a piece of art, contrary to public opinion and modern developments in computing. Keep up the good work Adam. You are an inspriation to hobbyists in all fields.
Re:Pushing the limits of computing (Score:4, Interesting)
They say with faster CPUs and more memory will take care of that. Therefore, they can just keep piling on the crap code without thinking of resource constraints, i.e. - memory, cpu power. How long can this really last?
I commend the people who have worked on this OS. Some may see it as useless, I see it as hope that there will be better OSes built in the future, once the physical limits of the modern computer are reached.
Re:Pushing the limits of computing (Score:5, Insightful)
However, there's a limit to optimizing code for efficiency's sake (both size and speed). From years of experience developing software, assembler up to Java, keeping your algorithm general allows it to be adaptable and maintainable. Nothing sucks more than spending days rewriting code because one number changes in the spec (yes, you can optimize that far).
As for writing "bloat" code, writing huge software systems in a timely manner in today's marketplace **implies** this situation. When you don't have to perform mundane chores in your code, you are free to produce more faster, and this is what companies want, and in fact, pay you for. It's a sad situation, but it's a dog-eat-dog world, and the consumer cares less about quality these days.
You also bring up an interesting point about when we'll hit the ceiling for computing power. I'm sure there's a real physical OPS/cm^3 limit (the only way to make it faster is to make it larger) but who knows what that is, or when we'll hit it. It'll be interesting to see how it'll affect the code produced. I'm hoping it's some type of golden age, where everbody has the same amount of standard computing hardware, and all code is made to this perfect, end-all spec.
-- If you optimize everything, you will always be unhappy. (Knuth)
Not really (Score:5, Insightful)
A big one would be preemptive multitasking. All modren OSes have it, Contiki does not. Why not? To quote them "The reason for not supporting pre-emptive multitasking is that it would unnecessarily increase the complexity not only of the operating system, but also of the applications that would run under it." Ahh, so it would make things more complex (and also larger and less efficient) to use PMT. Ok, fine, but CMT makes the assumption that all the apps running are going to be well behaved, will not use more than their fair share of time, there will be no critical evens that need to interrupt them, and that an app won't hang and take the system down with it. Fine, but for your standard desktop or server, that's not a valid assumption.
Or how about features like 3d graphics? I want to be able to use a 3d accelerator. Oooo, well now here's a whole different can of worms. All the 3d accelerators speak a different language, so we need to implement a common apstraction layer, like OpenGL. Then we need to have drivers to interface with that. Here we are talking tons more complexity and size, and much larger programs to boot. This is not even to mention the many other features most OSes have that it does not.
See you can do a lot of huge optimization on a general purpose design by making assumptions and optimizing for it. Like a memory manager. Linux, Windows, etc all have fairly complex memory managers these days. It virtualizes memory for programs and juggles the actual RAM, it changes allocation in real time and protects programs from interfering with each other or the system. However, that wastes space and CPU cycles. It would be much more efficient to assume that all programs are going to play nice and know how much RAM they need. Then when a progam starts, it tells the OS what it wants, and the OS tells it what range of memory it may use. It is then up to the program to keep within its borders. MacOS actually used to use a system much like this. Efficient? Yes, however many problems. The fact aside that a program might want more memory later, this is a huge stability and security hole. Any program can bring down the whole system by accidently writing to system memory, but mroe scary is the security implication. All you have to do is get a service, ANY service on the system to execute code for you and you are in will full permissions.
So there are plenty of things that mainstream OSes provide that a tiny OS like contiki cannot and willnot provide. This is not to bag on their accomplishment, it is a really cool OS and does get a lot out of old hardware. However do not assume that because they can make a simple CMT OS that runs a basic webserver on old hardware they could make an OS as powerful as a full featured Linux or Windows system fit in a couple MB. Not happening.
Re: kudos to Adam Dunkels (Score:3, Insightful)
In a strange way, it's almost like completing unfinished business from the 80's!
Re:Pushing the limits of computing (Score:3, Informative)
Well.. let's be really correct here, it was a 32/64-bit machine.
(32 bit processor)
In my book it counts as a 32-bit machine, but in any case, it's quite a far cry from an 8-bit machine.
Re:Pushing the limits of computing (Score:2)
As a general purpous PC system, the Jaguar port of Contiki will probably just use the 68000 - the two DSP chips are almost usless for general apps and os needs.
A side affect of the on-board 68000 was that Jaguar developers used it as a crutch - witness the loust po
The Jaguar is as 64-bit (Score:2)
Neat, now let's talk practical. (Score:4, Interesting)
Maybe a Contiki based PDA? Contiki based email stations? Seems you could make such things dirt cheap using this as the OS.
Re:Neat, now let's talk practical. (Score:4, Insightful)
If a community can buy a single 386 and accompanying network setup for $100, then they can probably get a c64 quality computer for around $20, saving $80 of those dollars for things like food and bromine tablets for water purification.
Re:Neat, now let's talk practical. (Score:2)
Quite true. Me and a friend have made a habit of picking up the junked stuff from a local computer shop and scavenging parts. (Anybody want to buy a 102MB hard drive?) We've gotten several WORKING Pentium-based systems, even a machine with a 233 MMX-enabled chip (the chip works, he's using it, the machine itself is quirky, so we'll probably toss it), and hard drives as big as 2GB. (I currently have a 2GB that I got for free in a 133Mhz pentiu
Birds sing words and the flowers croon... (Score:4, Funny)
Re:Birds sing words and the flowers croon... (Score:2)
I tried to find an album on Amazon with a song preview, but gave up after looking at a few. Here's the list of albums with this song [freedb.org] if you want to keep trying.
Pre-emptive multitasking? (Score:4, Informative)
Hah, apparently this didn't stop the Geoworks [toastytech.com] people from pulling off a fully preemptive OS on the lowly 8088.
Re:Pre-emptive multitasking? (Score:2, Informative)
Compare the fluidity of RiscOS with the fluidity of a Linux machine.
The first is used in many real time applications, like datacasting, black boxes, etc. while the second is good for server and desktop but not really for real-time demanding apps.
Simply because in a cooperative system, you know when an event shall occur.
Re:Pre-emptive multitasking? (Score:3, Interesting)
I don't see how you can reasonably do real-time computing without preemption. It would mean timeslicing each process by hand, which (especially for large tasks or tasks that scale to large datasets) is nearly impossible to get right. RiscOS, I believe, moved to a preemptive mode
Re:Pre-emptive multitasking? (Score:5, Informative)
Re:Pre-emptive multitasking? (Score:3, Informative)
You are talking about relocation, which has nothing to do with multitasking
Anyway, even code with absolute branches
Re:Pre-emptive multitasking? (Score:2)
Great VNC link! (Score:3, Funny)
poor little server
{meanwhile, somewhere else in the worl)
wow, we have a link on slashdot!
QUICK, WHO WANTS TO ROAST SOME MARSHMALLOWS!
Hack gratia hacking (Score:3, Interesting)
Hmm, and with a StarLAN to 10baseT router, I could get the resulting beastie on the net. Hmm....
Am I the only one (Score:2, Interesting)
Re:Am I the only one (Score:4, Informative)
I'm sure it would be plenty fast at 3ghz though
Re:Am I the only one (Score:2)
Why am I foreseeing the creation of 1,024 virtual Contikis on afore mentioned 3GHz P4?
Re:Am I the only one (Score:2)
Not the first.. (Score:5, Informative)
http://www.eznos.org [eznog.org]
Here's an XT running EZNOS [eznos.org].. there's also other 8088/87 projects, a 386 and other stuff.. neat.
Also, a web server running on the original IBM PC [no-ip.com].
I've been wating to get these people slashdotted ;)...
Re:Not the first.. (Score:2)
http://minix1.hampshire.edu/ [hampshire.edu]
I've been running Minix i86 on my IBM 5150 for years now. Including telnet and httpd daemons.
Re:Not the first.. (Score:2)
Except that an XT is considerably more powerful overall (except for grapics) than a C64. The 8088 was a good deal faster than the 6510 in the Commodore, plus the XT had (*gasp*) a hard drive and a lot more memory.
EZNOS may predate Contiki, but I'm not sure it counts as "long beaten" considering the hardware differences.
damn! No Sinclair ZX80 port!! (Score:2, Funny)
Oh well, the CoCo will handle it though, all is not lost!
What about Minix (Score:3, Insightful)
This should give those of you who have an old x86 PC that is too small to run even the smallest of Linux variants, a chance to browse the web, set up a web server, and doing other essential stuff.
If you have an old pre-386 machine around, why not run Minix? That should make a far more useful machine.
If you want something more useful (Score:5, Informative)
Older versions would run on an 8086 (one of the original design goals was that the WYSIWYG word processor could keep up with your typing on an 8086). The current version requires a 386. 2 megs of RAM should be fine for most things (even 1 will work ok), although you'd probably want at least 4 or 8 megs for browsing the web.
Re:If you want something more useful (Score:3, Informative)
It's possible to load PC-GEOS onto a GRiDPad 1910, which is another ancient machine, then load Graffiti handwriting recognition from Palm for Zoomer on
Re:If you want something more useful (Score:2)
Nooo!!! (Score:4, Funny)
Silly embeded computer, web serving is for servers.
Implement this in a wristwatch/ring anyone? (Score:2, Interesting)
Java port to C64!! (Score:4, Informative)
Re:Java port to C64!! (Score:2)
1541? (Score:4, Interesting)
Re:1541? (Score:2)
I dropped mine down my friend's steps and it still worked. There was also an app that played "happy birthday" by vibrating the drive heads, IIRC.
With such hardened, low power hardware available, NASA will have lots of stuff to crash into planets on future missions.
Re:1541? (Score:4, Funny)
Funny that! (Score:2)
drivers? (Score:2)
Anyone know?
Cluster/Grid (Score:2)
No obsolete computers (Score:2, Insightful)
Do you really need Contiki to surf with an old X86? An 8086-based PC could be used to dial into a shell account, where you could use Lynx, telnet, and so on. College computer labs of the early and mid-1990s were filled with 286 and 386-based PCs, 68XXX-based Macs, and Sun
No TI-99/4A for contiki? (Score:2)
How about old ye olden... (Score:2)
Now if they could port it over to the old Epson wrist PC, that would truly rock.
Re:Heh (Score:3, Funny)
Re:Wow. (Score:3, Insightful)
Bear in mind the first web servers in the early days of the web were probably running on something of a similar CPU power to a 386.
Re:Wow. (Score:2)
The Web (at least the first browser, but I guess the corresponding server, too) was developed on a NeXTstation. Those were powerfull, expensive and rather user-friendly Unix workstations developed by the company Steve Jobs founded after leaving Apple. They had 68k processors with something between 20 and 40 MHz, IIRC.
There was a NeXT-feature on OSNews [osnews.com] recently. You can even
Re:neat but seriously how useful? (Score:2, Informative)
Linux From Scratch. [linuxfromscratch.org]
like RedHat, Gentoo, Suse that runs on a 486 with superior performance and uses virtual no resources like Contiki?
Yes. [linuxfromscratch.org]
but what REAL available distros are available?
Linux From Scratch. [linuxfromscratch.org]
Re:Contiki OS Problems! (Score:2)
Re:Cute! (Score:3, Informative)
RTFA: "An RS-232 (serial) card or Ethernet connection is required for Internet connectivity" so it should be fast enough.
Re:Hardware support? (Score:2)
Re:Hardware support? (Score:2)
There is a version of debian (2.0 I think) that will boot on 4 megs of ram. You have to give it the lowmem option during install (read the documentation).
Like the other poster, I have Debian running on a 486 SX33 laptop. My PCMCIA network card works fine, although I did add 8 megs of ram to make things faster.
Re:Hardware support? (Score:2)
Re:Great Idea! (Score:2)
Re:Great Idea! (Score:3, Informative)
You are wrong about that. Anything that can be done on a conventional computer (or a RAM if you want a theoretical model) in polynomial time can also be done on a TM in polynomial time. However it will be a different polynomial. AFAIK at most you will add one or two to the degree of the polynomial. But in the real world it is less than that which seperates feasible from infeasible algorithms. Sorting slower th
Re:VNC Demo Slashdotted! (Score:2)
-uso.