開発者メーリングリストで興味深い議論があったので転載します。 回答しているのはAdam Dunkels(原作者)です。 -- > What is the future of Contiki ?. I mean, what is the final goal set > for Contiki ?. Is it a R&D platform to learn from or is it intended to > be expanded into a real open product like Linux.. Does it have a > future since there are many small OSes available, some smaller than > others and some more advanced than others.
Great question. Short answer: the long-term goal is a polished system (like Linux); the short-term goal is R&D.
Longer answer:
At this point, Contiki *has* to be an R&D system. The field in which Contiki moves is not yet fully explored and we haven't yet figured out what the proper APIs, abstractions, mechanisms, and protocols should be. We are still in the exploratory phase.
In this sense, Contiki is more like the original Unix than like Linux. The original Unix developers had to figure out the basics: what should the process model be of an OS, what should the APIs be, how should we do IPC, etc. Linux is a reimplementation of the known Unix mechanisms and abstractions. Unlike Linux, Contiki cannot rely on an existing API that we can reimplement. That's why the APIs are sometimes a little odd (e.g. protosockets) or slightly inconsistent.
But just like the original Unix, Contiki is a useful system without having reached the final polished system phase. Sure, there are a lot of quirks and little weird things all around Contiki. But we aim to iron these out as we go along, just as we aim to figure out what those proper mechanisms and abstractions are.
Contiki does not aim to be just another small OS for embedded systems, but an OS for the emerging area that we may call smart objects, the Internet of Things, or any of the many catch phrases around. As such, Contiki takes its inspiration from many areas, such as wireless sensor networks (e.g. duty-cycled power-saving radio mechanisms, the Rime protocols), ubiquitous computing (e.g. the announcements mechanism), ad hoc networking (e.g. routing), computer networking (e.g. uIP/v6), embedded systems (e.g. rtimers), web 2.0 (e.g. Twitter client), computer systems research (e.g. Coffee, the shell), programming languages and parallel computing (e.g. protothreads), etc.
For me, the high level principles for Contiki have always been clarity, efficiency, elegance, and simplicity (in no particular order). The goal has always been to have a fully functional system that is built on a solid foundation of good abstractions. We sometimes stray away from the principles (in the pursuit of those elusive proper abstractions and mechanisms...) but the aim is to keep things simple.
Ok, I hope this lengthy reply didn't scare you away ;) All in all, Contiki is a friendly little system with a future. -- 私はOSというものの可能性を探ってゆくという意味でとても共感します。 それがたとえ8ビットパソコンという古いシステムをターゲットとしたポートでも(というか、だからこそ)、 新しい「何か」を生み出せるのではないかと思っています。