Slashdot Mirror


Contiki Ported To x86

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."

38 of 243 comments (clear)

  1. No wonder by Anonymous Coward · · Score: 3, Funny
    1. Re:No wonder by -brazil- · · Score: 3, Informative

      Nope, "US billion" was meant to clarify that it's 10^9; in other countries 1 billion = 10^12.

      --

      The illegal we do immediately. The unconstitutional takes a little longer.
      --Henry Kissinger

  2. VNC by jrockway · · Score: 5, Interesting

    I have to say that running VNC on an 8bit computer is amazing. I would have looked at the screenshots, but actually playing around is so much more fun! It makes me want a C64 or old intel computer to run this on :) Does anyone know how to enter an arbitrary URI though, I couldn't do it.

    On another note, for those who thought VNC over 100BaseT was slow, it's even slower when running at 3KiB/s :) Oh well, this will be the first article to ever slashdot a VNC server, I think.

    --
    My other car is first.
    1. Re:VNC by usotsuki · · Score: 3, Informative

      8086 is 16-bit ;)

      Interestingly enough I (in the past week) have thought about implementing Contiki on top of CP/M-86 4. CP/M-86 4 is a rather small OS, and can optionally run DOS programs (the infamous DOSPLUS), 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.

      --
      Dreams, dreams, don't doubt dreams, dreaming children's dreaming dreams. Sailor Moon SS
  3. As it will be slashdotted... by Anonymous Coward · · 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 *

  4. story translation by circletimessquare · · Score: 5, Funny

    the smallest os for the weakest puniest computers still in existence goes live.

    click on this vnc link here to blow to smithereens.

    --
    intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
  5. Live VNC by alta · · Score: 5, Funny

    Why don't you go ahead and say, "There was a live vnc running", or maybe "or maybe there might be a live vnc running in the distant future" but never say "there is a live vnc running..."

    --
    Do not meddle in the affairs of sysadmins, for they are subtle, and quick to anger.
  6. Re:Heh by rtaylor187 · · Score: 3, Funny

    Yep /.ing is a cross-platform "feature" - works against Windows, Linux, and Contiki servers!

  7. Specs, just in case by Cali+Thalen · · Score: 4, Informative
    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.
    I'll be seriously impressed if this thing survives the morning
    --
    Chaos, panic, disorder...my work here is done.
  8. New headline for article by BillBrasky · · Score: 5, Funny

    This just in!

    14 MHz web server Slashdotted! Oh the humanity!

    1. Re:New headline for article by suwain_2 · · Score: 3, Interesting

      I'm real impressed. It's 14 MHz and it's still running for me. Slashdot can bring down a top-notch server running a fine-tuned install of Linux, but not a 14 MHz box?! It's showing 17 current connections.

      Having a 14 MHz box survive a Slashdotting is a _real_ good ad for the OS it's running. :)

      --
      ________________________________________________
      suwain_2 :: quality slashdot p
  9. Re:Wow! by UnknowingFool · · Score: 3, Funny
    This should run like the clappers on my old 486/25sx

    What the hell is a 486? :)

    --
    Well, there's spam egg sausage and spam, that's not got much spam in it.
  10. holy melted silicone, batman! by Lord_Slepnir · · Score: 5, Funny
    live VNC demo running.

    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?

  11. A Post-Modern Cool Idea by rwiedower · · Score: 3, Informative

    Here's a link to a screenshot of an old /. entry about said OS. It would've been cool if the "live" VNC shot was of this slashdot discussion, eh?

  12. Pushing the limits of computing by groove10 · · Score: 5, Insightful

    Kudos to Adam Dunkels for pushing the envelope of 8-bit computing. Many people will say "whats' the point of this." or "This has no application whatsoever and is a waste of time." but I disagree. Adam is making software and designing methods of programming to run internet based programs on chips and systems that where never designed for it, like the Atari Jaguar the Atari 8-bit console not to mention the C64. This work will allow others to get the motivation to push the envelope in other areas of computing as well.

    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.

    --
    MMORPG fan-boy? Prove your worth
    1. Re:Pushing the limits of computing by Anonymous Coward · · Score: 4, Interesting

      I think it also shows what can be done with limited resources. The deverloper has to create more efficiant code. In today's OSes, the bloat of the code is horrendous, ala windoze. Even the "cooler" OSes, like Linuz, have much code that is sub-optimal.

      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.

    2. Re:Pushing the limits of computing by Enonu · · Score: 4, Insightful

      Those who think paying attention to resource constraints is useless are frankly a danger, and shouldn't be near a compiler. It's like haphazardly designing a car, and thinking that the airbags will save the passengers if there is an accident.

      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)

  13. Neat, now let's talk practical. by stratjakt · · Score: 4, Interesting

    Besides the nostalgia/geek factor of running a web browser on your C64 (which I've been doing for years, well cheating by using the 64 as a dumb terminal and running lynx)

    Maybe a Contiki based PDA? Contiki based email stations? Seems you could make such things dirt cheap using this as the OS.

    --
    I don't need no instructions to know how to rock!!!!
    1. Re:Neat, now let's talk practical. by Bonker · · Score: 3, Insightful

      Practical? How about a good solution for impoverished communities worldwide that need web access to do things like report on the ways they're being repressed, tortured, enslaved, etc?

      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.

      --
      The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
  14. Birds sing words and the flowers croon... by smittyoneeach · · Score: 3, Funny

    ...in Contiki, tiki, tiki, tiki, tiki room!

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  15. Pre-emptive multitasking? by Daniel+Phillips · · Score: 3, Informative
    From the FAQ:
    Does Contiki support pre-emptive multitasking?

    No, Contiki does cooperative multitasking. 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. Pre-emptive multitasking is primarily useful in general purpose multiuser operating systems such as *nix, or in real-time systems where response time is critial. Contiki does not fit in either of those categories.
    Hah, apparently this didn't stop the Geoworks people from pulling off a fully preemptive OS on the lowly 8088.
    --
    Have you got your LWN subscription yet?
    1. Re:Pre-emptive multitasking? by david.given · · Score: 4, Informative

      Also, preemption on some processors is an incredible pain: for example, the 6502 has a single, fixed address, 256-byte stack. In order to preempt a process on the 6502 you'd have to manually copy the entire stack somewhere else in memory, and copy another process' stack in. Not pleasant.

  16. Great VNC link! by not_a_george · · Score: 3, Funny

    wow that OS kinda looks like a page full of characters.. oh wait
    poor little server
    {meanwhile, somewhere else in the worl)
    wow, we have a link on slashdot!
    QUICK, WHO WANTS TO ROAST SOME MARSHMALLOWS!

    --
    Linux: Helping nerds look smarter since the late 90s.
  17. Hack gratia hacking by Futaba-chan · · Score: 3, Interesting
    Somewhere in the depths of my basement, I have an old AT&T 7300 (MC68010-based "Unix PC") with an on-board 8088 PC emulator card that can run old DOS programs. I used the 7300 and some low-level hardware libraries that another hacker wrote in the late 80s/early 90s as my target machine for OS hacking back before I got scooped by Linux. I'm tempted to haul the thing out, snag the Contiki x86 distro, and hack something together to make the two talk to each other.

    Hmm, and with a StarLAN to 10baseT router, I could get the resulting beastie on the net. Hmm....

  18. Re:Wow! by Urkki · · Score: 3, Informative

    Linux should run pretty well on that too, even with X if you have enough memory.

  19. Not the first.. by iantri · · Score: 5, Informative
    These people were long beaten.. you can run a server on an XT with EZNOS (it also acts as an LPD print server!) or one of serveral other packages..

    http://www.eznos.org

    Here's an XT running EZNOS.. there's also other 8088/87 projects, a 386 and other stuff.. neat.

    Also, a web server running on the original IBM PC.

    I've been wating to get these people slashdotted ;)...

  20. If you want something more useful by edwdig · · Score: 4, Informative

    If you'd like to do something more useful with an older system, check out GEOS. It's currently being maintained by Breadbox, who has a demo available for download. Full preemptive multitasking. Comes with a web browser (HTML 4.0, no CSS or JS), email (POP3), AIM, FTP, News Reader, and a roughly MS Works level office suite. More software is available from it at Tva Katter.

    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.

  21. Hold your misspellings, Robin! by swb · · Score: 4, Funny

    Silicone is for making tits bigger and keeping water in the tub.

    Silicon is what chips are made of.

    1. Re:Hold your misspellings, Robin! by -brazil- · · Score: 5, Funny

      Ha! Everyone knows chips are made from potatoes.

      --

      The illegal we do immediately. The unconstitutional takes a little longer.
      --Henry Kissinger

  22. Nooo!!! by Zebra_X · · Score: 3, Funny

    Haven't we abused this poor machine enough. Just several weeks ago it was the victim of a slashdotting. Now once again the moderators seek to wipe it's presence from the net.

    Silly embeded computer, web serving is for servers.

  23. Re:Wow! by Wumpus · · Score: 3, Funny

    It's a 386 compatible CPU featuring pipelined execution and an onboard FPU. Pretty neat, huh? Those puppies can be pushed to speeds in excess of 100MHz.

  24. Java port to C64!! by henriksh · · Score: 4, Informative
    Ok, this seriously made my day! From the Contiki web site:
    [...]it should be noted that Brian Bagnall actually is working on porting/implementing a Java virtual machine for the C64.
    A Java implementation on the C64??! I'm speechless!
  25. 1541? by rabidcow · · Score: 3, Interesting

    So if it'll run on a C64, will it run on a 1541 disk drive? A GUI would obviously be out, but the processor is essentially the same as the C64 (6502 vs 6510), and it would be amusing to have a web server running on a floppy drive.

    1. Re:1541? by yomegaman · · Score: 4, Funny

      Yeah, if only that processor in the 1541 had some sort of mass storage device attached to it...

      --
      ...wearing a skin-tight topless leather jumpsuit, with cutaway buttocks and transparent crotch panel.
  26. From BEYOND THE GRAVE!!! by digitalgiblet · · Score: 4, Funny
    I just hope Thor Heyerdahl doesn't slap him with a patent suit.

    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?

  27. Re:Am I the only one by AT · · Score: 4, Informative

    Since it runs on an 8088, it must use the x86 "real" mode, instead of protected mode. Which means that only 1MB of memory is addressable, so the gig of RAM is irrelevent. Contiki would only use the first 1MB.

    I'm sure it would be plenty fast at 3ghz though :)

  28. It's still alive! by Steeltoe · · Score: 3, Informative

    It's still running. I didn't download their client since I have both TightVNC and ordinary VNC from before. And it worked!! I just had to reconnect after one failed attempt.

    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 ;-)

  29. Not really by Sycraft-fu · · Score: 4, Insightful

    It shows that you can make a simple OS with minimal space. That does not mean that one could do the same of Windows (please, it just looks immature to name call) or Linux. They have far more features, and make far less assumptions, the this OS.

    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.