Forgot your password?
typodupeerror

Contiki Ported To x86 243

Posted by timothy
from the reuse-is-recycling dept.
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."
This discussion has been archived. No new comments can be posted.

Contiki Ported To x86

Comments Filter:
  • by Anonymous Coward on Wednesday August 06, 2003 @10:44AM (#6625527)

    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 *

  • Specs, just in case (Score:4, Informative)

    by Cali Thalen (627449) on Wednesday August 06, 2003 @10:47AM (#6625559) Homepage
    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
  • by rwiedower (572254) on Wednesday August 06, 2003 @10:50AM (#6625592) Homepage
    Here's [www.sics.se] 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?
  • Re:VNC (Score:4, Informative)

    by usotsuki (530037) on Wednesday August 06, 2003 @10:51AM (#6625603) Homepage
    8086 is 16-bit ;)

    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.
  • by Daniel Phillips (238627) on Wednesday August 06, 2003 @10:56AM (#6625643)
    From the FAQ [dunkels.com]:
    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 [toastytech.com] people from pulling off a fully preemptive OS on the lowly 8088.
  • by mirko (198274) on Wednesday August 06, 2003 @11:03AM (#6625694) Journal
    Pre-emptive multitasking indeed costs more in system resources than cooperative.
    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:Wow! (Score:4, Informative)

    by Urkki (668283) on Wednesday August 06, 2003 @11:09AM (#6625747)
    Linux should run pretty well on that too, even with X if you have enough memory.
  • Not the first.. (Score:5, Informative)

    by iantri (687643) <iantri AT gmx DOT net> on Wednesday August 06, 2003 @11:12AM (#6625772) Homepage
    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 [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 ;)...

  • by david.given (6740) <dg@coEULERwlark.com minus math_god> on Wednesday August 06, 2003 @11:17AM (#6625810) Homepage Journal
    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.
  • Re:VNC (Score:2, Informative)

    by iantri (687643) <iantri AT gmx DOT net> on Wednesday August 06, 2003 @11:20AM (#6625829) Homepage
    Whoops.. my mistake.

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

    That page is running on an 8086, BTW.
  • by edwdig (47888) on Wednesday August 06, 2003 @11:23AM (#6625848)
    If you'd like to do something more useful with an older system, check out GEOS. It's currently being maintained by Breadbox [breadbox.com], 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 [tvakatter.org].

    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.
  • by pdbogen (596723) <pdbogen-slashdot.cernu@us> on Wednesday August 06, 2003 @11:24AM (#6625858) Homepage
    What Linux distro is similar to Contiki?
    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:VNC (Score:2, Informative)

    by ajs318 (655362) <sd_resp2 AT earthshod DOT co DOT uk> on Wednesday August 06, 2003 @11:27AM (#6625877)
    No, you're wrong. The 8088 has a 16-bit internal architecture, however, it only brings out 8 data lines - so "word" transfers take 2 clock cycles, but you needed only 8n one-bit-wide RAM chips and one 8-bit-wide *ROM chip for the memory. Bear in mind memory was expensive when these things reigned supreme! The 8086 requires 16-bit-wide memory, hence 16n one-bit-wide RAM chips and two 8-bit-wide *ROM chips. I think it has a compatibility mode whereby it can access memory and I/O devices in 8-bit bytes rather than 16-bit words.

  • by k98sven (324383) on Wednesday August 06, 2003 @11:36AM (#6625956) Journal
    Steady on old boy. The jaguar was a 64-bit console, and a damn fine one at that.

    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:VNC (Score:2, Informative)

    by gearry (28838) on Wednesday August 06, 2003 @11:51AM (#6626110) Homepage
    Just to clarify, they say that it CACHES 10 lookups in the table, and that the size of this table is configurable at compile time. So, you can lookup any domain, but it will slow you down, and on this system the difference between a cache hit and a lookup will probably be significant. However, as the link you provided states, their DNS implementation is not heavily tested, so some domail lookups may fail unexpectedly.
  • Java port to C64!! (Score:4, Informative)

    by henriksh (683138) <hsh@freecode.dk> on Wednesday August 06, 2003 @11:57AM (#6626173) Homepage
    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!
  • Re:No wonder (Score:3, Informative)

    by -brazil- (111867) on Wednesday August 06, 2003 @12:17PM (#6626343) Homepage
    Nope, "US billion" was meant to clarify that it's 10^9; in other countries 1 billion = 10^12.
  • Re:Am I the only one (Score:4, Informative)

    by AT (21754) on Wednesday August 06, 2003 @12:28PM (#6626453)
    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 :)
  • It's still alive! (Score:4, Informative)

    by Steeltoe (98226) on Wednesday August 06, 2003 @12:41PM (#6626558) Homepage
    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 ;-)
  • Re:Cute! (Score:3, Informative)

    by 1u3hr (530656) on Wednesday August 06, 2003 @01:05PM (#6626781)
    As for old x86 systems, 19K2 modems didn't even properly work with those, so it's going to be fun to have internet with those things

    RTFA: "An RS-232 (serial) card or Ethernet connection is required for Internet connectivity" so it should be fast enough.

  • by drinkypoo (153816) <martin.espinoza@gmail.com> on Wednesday August 06, 2003 @01:20PM (#6626862) Homepage Journal
    Just some random babbling on the subject of GEOS; Palm Computing's first PDA was the Tandy/Casio Z-PDA 7000 Zoomer. It was Palm's in the sense that the entire software 'suite' was their work. They used PC-GEOS, the zoomer was a V20-powered PC with an LCD display. It also came with (or you could at least buy this separately) PC-GEOS with a file link feature.

    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 it, and get a large PDA. Now if only I had all the applications from the Zoomer. (Mine died some time ago.)

  • by Daniel Phillips (238627) on Wednesday August 06, 2003 @03:31PM (#6627825)
    ...the 6501 chip in the C64 limited you to 127 byte either direction relative branching. Anything else had to be handled by an explicit jmp, which meant you couldn't dynamically load your program into other areas of memory (unless you had isolated branch instructions within 127 bytes of every call and didn't use a single jmp - *nearly* impossible) - which kind of blows serious multitasking!

    You are talking about relocation, which has nothing to do with multitasking

    Anyway, even code with absolute branches can be loaded wherever you want in memory, it just means the loader/linker has to be able to do the necessary fixups.
  • You are both wrong. (Score:3, Informative)

    by default luser (529332) on Wednesday August 06, 2003 @05:09PM (#6628639) Journal
    The 8086 and 8088 are both 16-bit processors.

    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 main instruction path(s) is / are.

    Example: 80286: 16-bit registers, 24-bit address space, 16-bit memory bus.

    Example: 80386SX: 32-bit registers, 24-bit address space, 16-bit memory bus.

    Address space, memory bus width and instruction path width do not have to be the same. Do not assume they are tied together.
  • Re:Great Idea! (Score:3, Informative)

    by kasperd (592156) on Friday August 08, 2003 @01:26AM (#6642554) Homepage Journal
    And...some things won't work on a conventional turning machine, at least not in polynomial time.

    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 than O(n^2) really makes the TM look slow.

"I'm a mean green mother from outer space" -- Audrey II, The Little Shop of Horrors

Working...