• Please review our updated Terms and Rules here

Contiki OS: Able to put an Atari 800 on the Internet!

Super-Slasher

Experienced Member
Joined
Jun 21, 2003
Messages
222
Location
Ontario, Canada... the frosty north.
http://dunkels.com/adam/contiki/index.html

I just had to share this all with you'se. This is a truly amazing piece of programming - an OS that's able to impliment Internet capabilaties on 8-bit computers! To sum it up, it currently has a web browser, telenet client and screen savers. In the future e-mail clients, picture support, and dial-up will be implemented into future releases... and it's all small enough to be stored on the RAM of a C64 - no hard drives needed!

Just check it out. That programmer(s) deserves a damned medal!
 
Very, VERY cool!

I'm going to have to set up some systems to do this. . . :)


Erik
 
Contiki is kind of a funny ... It's basically a window manager and a network stack. It really doesn't fit the definition of an 'OS' - it's more of an application. Then again, by the standards of most of the machines we are talking about, it is incredible.

You can use it to get an old machine on the network using telnet. This is a step above the good old terminal emulator. But it's a horribly limited environment, so stretching beyond telnet is going to be hard.

First, they have a TCP stack. On a machine like a C64 that probably takes up one third to one half of the available memory. Next you have the 'window manager' - that's got to eat up a few K too. To grow beyond the telnet app and get a more full functioned web browser they're going to have to start swapping to disk. (Using overlays, as the term was back then.) That'll slug it down a bit ...

I was really impressed with the ethernet setup on the C64 that I read about - it was a $70 homebrew project. Gave me some thoughts for my Jr. Heck, if a C64 can drive ethernet using 2 8 bit ports, a Jr should be able to do much better.
 
Microsoft Windows is also basically a window manager and a network stack. Most people (at least the clueless among us) does not hesitate to call it an operating system. All those old Basics + kernals in the 80:ties were some kind of operating systems too. Some computers had specific Disk Operating Systems since their disk drives required special attention..

AFAIR, Contiki runs a web browser without swapping onto disk. It is a desktop OS, not a server OS. The browser is 9K large and requires 4K of work space. The uIP stack has a few hundred bytes of work space, so not 1/3 of the total RAM. Of course, if you don't believe the developer himself, you could always try it and closely investigate in how the system runs.
 
Ok, I'm a little off. From the Contiki home page:

"A uIP configuration with 1 listening TCP port, 10 TCP connection slots, 10 ARP table entries, a packet buffer of 400 bytes and the simple HTTP server will have the properties shown in the table below.

An example configuration Module

Code:
Code size RAM usage
ARP 	1324 	118
IP/ICMP/TCP 	3304 	360
HTTP 	994 	110
Checksum functions 	636 	0
Packet buffer 	0 	400

Sum 	6258 	988
"

Sorry about the formatting. Bottom line is 6k of code, 1K of storage. That's 7K out of a possible 64K. Not all of the 64K is available because of ROM areas on the various machines .. So it's more like 1 6th or 1 7th of available memory, not 1 3rd like I thought.


As for Windows, most of the later versions of Windows count as an OS. Besides window manager and network stack it manages I/O resources, provides driver/library routines for printers, video, etc.
 
Fraction of memory is not that important I believe. If Contiki was to be run on VIC-20 (which I used to port it to, but got stuck with memory requirements), you could probably get the barebones + uIP into 32K. In that case, the uIP module would take 1/5 of the available memory. On the C64, which can bank switch the Basic and Kernel, the same module takes about 1/10 of the memory (or 1/8 if you are careful). On the C128, I would assume it takes 1/20, since it should be able to use both banks of 64K.

Display support is more or less bundled into the CTK, and each port can have its own CTK based on what the graphics capabilities are. Printers and sound I can't tell about.
 
Fraction of memory is important - it tells you what's left for the rest of the OS and applications.
 
Back
Top