Contiki是一个小型、开源、极易移植的多任务电脑作业系统。它专门设计以适用于一系列的记忆体受限的网路系统,包括从8位电脑到微型控制器的嵌入系统。它的名字来自于托尔·海尔达尔的康提基号。
Contiki只需几千位元组的代码和几百位元组的记忆体就能提供多任务环境和内建TCP/IP支持。
作为基础的核心以及大部分的核心功能是瑞典计算机科学研究所的网路内嵌系统小组的Adam Dunkels开发的。
基本介绍
- 外文名:contiki
- 含义:多任务作业系统
- 特色:高可移植、开源、支持网路
- 性质:多任务电脑作业系统
简介
Contiki 是一个小型的,开源的,极易移植的多任务作业系统。它专门设计以适用于一系列的记忆体受限的网路系统,包括8位微处理器的嵌入系统。它的名字来自于托尔·海尔达尔的康提基号。
Contiki只需几kilobyte的代码和几百位元组的记忆体就能提供多任务环境和内建TCP/IP支持。
特点
Contiki可以在每个进程内选择是否支持先占式多执行绪,进程间通讯通过事件利用讯息来实现。Contiki中还包括一个可选的GUI子系统,可以提供对本地终端、基于VNC的网路化虚拟显示或者Telnet的图形化支持。
完整的Contiki系统包括以下特性:
- 多任务核心
- 每个应用程式中可选的先占式多执行绪
- Protothreads模型
- TCP/IP网路支持,包括IPv6
- 视窗系统与GUI
- 基于VNC的网路化远程显示
- 网页浏览器
- 个人网路伺服器
- 简单的Telnet客户端
- 萤幕保护程式
设计
Contiki适用于只有极少量记忆体的嵌入式系统。在一个较为典型的配置中,Contiki系统只需2Kb的RAM与40Kb的ROM。 Contiki包括了一个事件驱动的核心,因此可以在运行时动态载入上层应用程式。Contiki中使用轻量级的protothreads进程模型,可以在事件驱动核心上提供一种线性的、类似于执行绪的编程风格。
平台比较
Contiki可运行于各种平台上,包括嵌入式微控制器(例如TI MSP430及Atmel AVR)以及旧的家用电脑。程式代码量只有几K,存储器的使用量也只有几十Kb。
Contiki是一个专门针对物联网或者无线感测器网路套用的作业系统和协定栈,在科研以及产业化方面得到广泛的套用。在该领域,还有一个知名的类似的系统- TinyOS,两者都实现了网路协定,两者的比较如下:
性能指标 | TinyOS | Contiki |
所属领域 | 无线感测器网路、物联网 | 无线感测器网路、物联网 |
软体类型 | 小型OS +无线网路协定栈 | 小型OS +无线网路协定栈 |
OS特性 | 非抢占、共享栈空间 | 非抢占、共享栈空间 |
协定支持 | 802.15.4、6Lowpan、RPL、CoAP | 802.15.4、6Lowpan、RPL、CoAP |
开发语言 | 专用NesC语言,入门较难,其它领域几乎不使用(有可能导致失业) | 通用的C语言,入门容易,在各领域广泛使用 |
编译器 | 专用的编译器,性能和稳定性未经过验证,无商用编译器支持 | 通用的C编译器,如GCC、IAR等 |
开发环境 | Linux、Cygwin,命令行模式,开发调试困难,门槛高 | Linux Eclipse、或者Windows IAR,IAR图形化集成开发环境,功能强大 |
可移植性 | 需要移植编译器,很难 | C语言很好移植 |
支持的硬体 | 少数几种类型的处理器 | 8位、16位、32位几乎所有的处理器类型 |
开发团队 | 主要由Berkeley大学开发,核心人员已经去CISCO,不再开发,TinyOS很少更新代码 | 由LWIP的作者Adam dunkels团队以及ETH大学开发,已经成立公司全职开发,每周都有代码更新 |
发展趋势 | TinyOS从一开始就主要做科研仿真,用户逐年骤减,基本上无产品 | Contiki可以做科研,也有不少产品,2014年Adam团队的目标是要将Contiki作成物联网领域的首要选择 |
移植版本
Contiki作业系统已被移植到以下系统中:
- 电脑:
- Apple II family
- Atari 8-bit
- 雅达利ST
- Atari Portfolio
- Casio Pocketview
- Commodore PET
- Commodore VIC-20
- Commodore 64
- Commodore 128
- Oric
- PC-6001
- Sharp Wizard
游戏机平台:
- PC Engine
- FC游戏机
- 雅达利Jaguar
手持游戏机平台:
- Game Boy
- Game Boy Advance
- GP32
微型控制器:
- Atmel AVR
- LPC2103
- TI MSP430
- TI CC2430
参见
- 自由软体主题
- BeRTOS
- ERIKA Enterprise
- RIOT
- SymbOS
- TinyOS
- Wheels (operating system)
- Comparison of real-time operating systems