Contiki

From ArticleWorld


Contiki is a very small, open-source operating system for 8-bit computers and microcontrollers. Although it is intended to run on low-memory systems, it is a full-featured operating system, actively developed and extended. Contiki provides a number of features that are not too common on such systems, including multitasking, networking and a complete GUI.

Features

Contiki runs on a wide range of architectures, from 8-bit computers like Commodore 64 to embedded controllers like TI MSP430. There is even a port allowing it to run under Windows, using X11 to display the desktop, and several ports for various game consoles, including GameBoy and GameBoy Advance.

Despite its extremely low resource consumption (less than 30 KB with all features enabled), it has a lot of functions which make it the most complete operating system of its kind. Contiki has a multitasking kernel, with optional support for pre-emptive multitasking and protothreads. It features a built-in TCP/IP stack, powerful enough to allow the creation of a web browser, a web server and simple telnet client. In fact, Contiki actually serves a number of websites, as it has complete Ethernet support and support for PPP is in-work at the time of writing. Contiki also includes a complete windowing system with GUI and a neat screensaver. With these features, it is a full-fledged competitor to Wheels and MP3, two operating systems with similar targets.

Systems

At the time of writing, Contiki was ported on the following systems:

  • Apple II family (c)
  • Atari 8-bit (c)
  • Atari ST (c)
  • Atari Portfolio (c)
  • Atmel AVR (µc)
  • Casio Pocketview (c)
  • Commodore PET (c)
  • Commodore VIC 20 (c)
  • Commodore 64 (c)
  • Commodore 128 (c) (not completely functional)
  • Game Boy (hgc)
  • Game Boy Advance (hgc)
  • GP32 (hgc)
  • PC-6001 (c)
  • PC Engine (vgc)
  • Sega Dreamcast (vgc)
  • Sharp Wizard (c)
  • Sony PlayStation (vgc)
  • TI MSP430 (µc)
  • TRS-80 Color Computer (c)
  • x86-based systems (c), including a port to X11 and Cygwin

Several other ports are being worked on.