Slashdot Mirror


The Contiki Desktop OS for C64, NES, 8-bit Atari,

Adam Dunkels writes "This is for those of you who think that a text-based operating system that fits compressed on a 1.44Mb floppy counts as 'tiny': the brand new Contiki operating system and desktop environment for the Commodore 64, with ports to a bunch of other platforms such as the 8-bit Nintendo Entertainment System, the VIC-20, 8-bit Ataris, Atari Jaguar, the Tandy CoCo, and the Apple ][ under development. The Contiki system includes the following: a multi-tasking kernel, a windowing system and themeable GUI toolkit, a screen saver, a TCP/IP stack, a personal web server, and a web browser. The Contiki web browser, which is likely to be the world's smallest browser given its extremely small memory footprint, is the world's first true web browser for an 8-bit system and probably makes the 21 years old Commodore 64 the oldest system ever to run a real web browser! All of the above programs are contained in a single, fully self-contained, 42 kilobytes large binary. The entire Contiki system with all programs running simultaneously is comfortable in 64 kilobytes of memory. The name 'Contiki' is derived from Thor Heyerdahl's famous Kon-Tiki raft which was able to sail across the Pacific Ocean despite being built using prehistoric techniques, something previously thought impossible. There are also screenshots and a FAQ avaliable."

23 of 386 comments (clear)

  1. This fucking 0wns. Period. by Anonymous Coward · · Score: 1, Insightful

    This is the closest we've ever been to having a fully native Internet suite for the stock C64. All we need now is a PPP implementation :P

    And don't bring up The Wave or any of the other SCPU-only tools - this is straight 1MHz 6510 :P

  2. Nowhere, just yet by yerricde · · Score: 3, Insightful

    According to the ports page:

    The NES port of Contiki is developed by Groepaz and currently works but without networking support because there is no networking hardware for the NES available (yet!).

    If you know much about electrical engineering, the nesdev community could use your expertise in creating network hardware for the NES. Even a high-speed serial port would be a good thing.

    --
    Will I retire or break 10K?
  3. Re:this begs the question.... by Anonymous Coward · · Score: 1, Insightful

    Develop an Ethernet adapter for the NES, and you can. Or develop an RS232 adapter and settle for SLIP/PPP.

  4. Bigger is not necessarily better. by Mossfoot · · Score: 5, Insightful

    This gets me to thinking about how much programing is probably "junk" programming these days. Anyone remember the sequal to Elite? Elite 2: Final Frontiers I think it was called. That had thousands of systems, planets, bases, stations, etc... set up in a game that had "realistic" physics. You could actually land on the planets yourself!

    It was 1 disk big (1.44 floppy).

    Now I look at Freelancer. A big CD full of great graphics. Yet at the same time I see it as not nearly as complex and thought out as Elite 2.

    This is an interesting attempt not to make bigger programs, but tighter ones. Making the most of what you have. It feels like there is so much available on computers these days, that programs aren't concerned with getting the most out of it, just using as much of the bells and whistles as they can. Imagine using the same mentality on a modern computer!

    --
    Fuzzy Knights: New RPG Strips Tuesday and Friday!:
    http://www.fuzzyknights.com
    1. Re:Bigger is not necessarily better. by TheLink · · Score: 2, Insightful

      Yah, plus writing in 68000 assembly language doesn't sound much worse than writing in C. Esp if you have a decent assembler/IDE.

      It's not like it's 8088 asm!

      When I was a kid I was punching 6502 machine code on my Apple II for fun - the only annoying part was calculating the branches. Even modified DOS a bit - more storage space, faster seek times, different sector headers (not the usual D5AA96 D5AAAD ), some reset protection and so on.

      Not all assembly languages are that difficult or ugly.

      --
  5. Cool, but.. by erlando · · Score: 2, Insightful

    Seriously, why..? The C64 was a cool piece of machinery in its day but honestly... Who other than sentimental geeks would WANT to browse the web on a C64? Or run anything else than Iridium or Krakout or any of the other cool games..?

    I'm not putting the C64 down. I've owned one myself and I've been pretty impressed by some of the things that have been done on it (including Contiki). But I can't help thinking that such talent that it takes to do this could be put to better use.

    Maybe it's just me. Come to think of it it probably is..

    --
    Remember, there are no stupid questions. But there are a lot of inquisitive idiots.
    1. Re:Cool, but.. by djupdal · · Score: 5, Insightful
      Because it is fun.

      Programming on old 8-bit systems is very different from programming for windows/unix. You must know the hardware better and do optimisations you would not even think about on a modern computer.

      Some people find that challanging and fun. Not everything needs to be useful.

    2. Re:Cool, but.. by kennylives · · Score: 2, Insightful

      Fun programming exercise?
      Interesting engineering challenge?
      A way to show off mad skillz?
      A way to develop those skills?
      To make statement regarding bloat in modern systems?
      It's art?
      Because it's there?

      ... or maybe you'd care to define "better use"?

      You're right though, I wouldn't want to run a web browser on there to do anything 'real', but this is the sort of thing that'll get me to haul the old SX64 out of the closet once more (yes, I am one of those "sentimental geeks"). Not because it's some kind of newfound productivity. And not because I neeed another webserver.

      Simply because it's fun.

      --

      Where the value of X-Mailer: is the true measure of a man...

  6. Re:Thats something! by Surak · · Score: 2, Insightful

    Anytime you run emulation of any kind there is a considerable amount of overhead, even in the case of emulating an 8-bit computer on a 32-bit platform.

    BTW--links has a smaller footprint than lynx and supports graphics under SVGAlib or X.

  7. Re:C64 is the oldest? What? by Asprin · · Score: 4, Insightful


    OOPS! RTFA!

    Drat, It looks like the Atari version is "under development". C64 still wins (temporarily)!

    --
    "Lawyers are for sucks."
    - Doug McKenzie
  8. An amazing project. by Lethyos · · Score: 4, Insightful

    Although the focus of this project is not the technology itself I think. This guy has proven to any employeer he will ever approach that he has superior skills when it comes to programming under tight constraints. Enjoy working in the embedded systems industry (and making money hand-over-fist doing it)!

    What else is interesting about this is that it goes to show how foolish and blind nearly the entire computer industry is when it comes to technology advances. People can't upgrade to a 10GHz processor fast enough, when all they need to do is check their email. Companies are constantly wasting servers and replacing them with newer models. This is not necessary. Today's software is written so poorly that super high-end hardware is needed to make up for lazy/poor programmers. Look at what these ancient systems can do. That "old" PIII or PII or K6 sitting on your desk is a power house. What's the problem? The software you're running on it is likely to be wasting 75% of the CPU cycles it eats.

    It's a shame there aren't more developers or at least software architects out there with this guy's talent. We'd all be saving a hell of a lot of money I think. Then again, hardware prices would increase in proportion to its long-term value. Then again, there's a lot of savings in many ways (largely environmental -- less junk being dumped into the wild at the beginning and end of a computer's life cycle). Of course, I wonder if most of the blame goes to businesses just trying to get software out the door as soon as possible without stopping to think about good design (in all senses).

    --
    Why bother.
    1. Re:An amazing project. by evilviper · · Score: 2, Insightful
      What else is interesting about this is that it goes to show how foolish and blind nearly the entire computer industry is when it comes to technology advances.

      Uh, no, I'd say Opera is a much better demonstration of that fact... Mozilla and IE are how big?!!!

      It's not secret that modern programmers waste huge ammounts of performance. Just look at KDE. However, that doesn't mean you have to use what is commonly being churned out.

      I am an OpenBSD user myself, the OS performs amazingly, and is very very small. I could fit the OS and all the programs I use in 512MB... (OpenBSD, OpenBox WM, GIMP, MPlayer, Web Browser). The only place things get hairy is with the web browser. Opera is nice, but I despise it's horrible UI, and no fast browsers have even the basice features I need, so I typically use Mozilla or Konqueror, which would be a bit slow on a 100MHz PC. If the Dillo developers just add a few more features, and improve stability, we'd have a good web browser too. Then again, Konq-embedded works fairly well if you are willing to give up on those minor features, like printing, multiple windows, folders to organize bookmarks, etc.

      Since the OS, and the programs I use are very quick, I would be happy with a 100MHz machine with a 512MB hard drive. With soft updates, I could do just fine with an old 4500RPM hard drive a well.

      --

      Now, ignorng the unfortunate browser situation (since it will likely improve), there is just one problem... Multimedia. No matter how great you are at programming, you can only get so much performance out of a 100MHz CPU. Playback has some reasonably modest requirements (I can play downscaled, downsampled DivX video on my 106MHz handheld), but encoding is the big problem. Even if every program you use is incredibly fast, you still need to get a fast damn processor to encode multimedia at reasonable speeds, and large storage to save it.

      So, although everything else would be fine on a 100MHz system, I still have to have a 750MHz Athlon (which oddly enough runs mencoder as fast as my 1.2GHz P3 Celeron in my notebook) to encode video. For other people, video games are their poison, and since they need such a fast system to run their games, they don't care that Windows XP is eating up such a huge ammount of their CPU, RAM, and HDD.

      My point is just that so many people just don't care about the requirements, that it is more cost effective to make an ineffecient program. Unfortunately, many people who don't play games, or encode multimedia, want to use these ineffecient programs, and so they have no choice but to jump on the upgrade bandwagon as well. At least, that's the current state of affairs.
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    2. Re:An amazing project. by theperplepigg · · Score: 2, Insightful
      If cars, alarm clocks, chairs, buildings and so forth were all built with the same principles, we'd all be dead, late, dead, and more dead.

      I understand the cars, alarm clocks, and buildings. But exactly how buggy would a chair have to be to kill someone??

      More on topic, I think that many people are taught the "just get it done" thing even in college. Granted, the teachers might not actually teach that way on purpose, but most comp scis I know have at least once pulled an allnighter to finish a program the night before it is due. In that circumstance, it is not always so much "Does it work?" as "Does it appear to work?" A TA or professor might have a cheap little script to test the main functionality of the program, but it usually doesn't test limits and bounderies very much. With so many of us leaving college with this mentality (and not just us programmers, either) It's easy to see why such a problem is so prevalent. Of course, as with everything, there are always a handful who never partied in college (even us geeks party!) and actually leave with all the information they were given to become really good coders. And while the rest of us may include quite a few good coders, too, the fact is that the slacker mentality will probably still be present in the workplace, because we are "taught" that it works.

      --paul

      --
      -- Every time you kill a kitten, God masturbates.
  9. Truly artistic by XshadowstarX · · Score: 2, Insightful

    This is what I call making a point! The very concept of a multitasking OS and web browser/server on a C64 or ATARI is the greatest thing the coding community could do to show how much waste and politics has sucked itself into technology. Not only that, but this OS might even be portable to a watch-sized machine.

    --
    -ad105
  10. Jaw drops... by Jugalator · · Score: 4, Insightful

    All of the above is included in the self-contained Contiki binary, which is 42 kilobytes large and runs comfortably in 64 kilobytes of memory.

    Kernel, GUI, screen saver, TCP/IP stack, web server, telnet client and web browser in 42 KB? Wow... I suppose the TCP/IP stack is based on his uIP code that's around 5 KB large, using 500 bytes of RAM. =) And I like how the GUI is skinnable. =)

    Another cool part is of course that I've studied at the same university as him. hehe.. He was rather well-known there as a "decent" programmer. =) You know, those that writes a complex algorithm, compiles it once, and it works.

    --
    Beware: In C++, your friends can see your privates!
  11. credit due by zuralin · · Score: 2, Insightful

    looks like the submitter just found this article on osnews and slightly re-worded it.

  12. Wow! by BinaryCodedDecimal · · Score: 3, Insightful

    Incredible, absolutely incredible.

    In this day of ever increasing memory and hardware demands for new software, it's nice to see that there are people out there still trying to do new stuff on old hardware.

    Old computers never die - They just get TCP/IP stacks written for them!

  13. The beauty of older video games by Multiple+Sanchez · · Score: 2, Insightful

    is that with strict hardware limitations, games could be designed entirely by one person -- or a small group of people -- so a more coherent artistic vision was possible.

    These days, with games being created by tens or hundreds of people, what you get is the median quality of everyone's artistry, and it's a lot harder to produce a unique or artful product.

    How beautiful to go back and play Crystal Castles coin-op, or Adventure on the Atari 2600, and really hear one person's unique voice.

  14. you'll need broadband to live with it... by Hubert_Shrump · · Score: 2, Insightful

    because it renders the HTML on the fly, without caching.

    so, to scroll a page, it has to reload the page and rerender it.

    being on 56k is bad enough. i like to forget what 300 baud was like. *shudder*

    --
    Keep your packets off my GNU/Girlfriend!
  15. Re:DRAT! by skwirl42 · · Score: 2, Insightful

    The Coco 3 has a factory amount of 128k RAM... are you sure it's a III and not a II?

  16. C64 is NOT oldest system ever to run a web browser by Eric+Smith · · Score: 3, Insightful

    Not even close. People have run web browsers on PDP-11s. The PDP-11 was introduced twelve years before the Commodore 64. I suspect that people have run web browsers on computers even older than that.

  17. Re:Written in C? by Hayzeus · · Score: 2, Insightful
    If it precludes recursion, then it's not C. Don't change the definition to suit your argument, because C is an international standard.

    First of all, your assertion that C is unsuited for 8-bit devices is simply wrong. C compilers are widely used in the embedded development world with extremely limited machines, and such compilers work very well indeed.

    As to what constitutes a 'C' complier, you're splitting hairs. If you like, then I'll concede the point that, yes indeed, a fully standards-compliant C compiler is indeed unsuitable for most 8-bit development.

    Using your reasoning,though, K&R C isn't really C either, since it isn't ANSI standard. A compiler that takes code which is recognizably C is C. Period. Not ANSI C or even standards compliant, granted, but C nonetheless. You know C? You know the hardware? Then you can use these compilers immediately.

    Having used both straight assembler and these same compilers pretty extensively on 8-bit platforms (68HC11, PIC and AVR in my case)I can assure you that they are entirely well-suited for their little respective corners of the embedded universe. Do they produce the highly portable code you might expect of a standards-compliant compiler? Of course not. But then neither would any other language suitable for use with these platforms -- and in any case, portability is the least of your concerns working on a microcontroller with 1024 bytes or less of program memory.

  18. Re:Ataris and such... by OzJimbob · · Score: 2, Insightful

    Why did Mozilla create another web browser? PCs have had the third party Mosaic since around 1993.

    Get the point?

    Never debase people for trying to build a better mouse trap.

    --
    -"I still believe in revolution; I just don't capitalize it anymore." - srini!