Internet Of Things 简明教程
Internet of Things - Contiki
Contiki 是一个物联网操作系统,专门针对内存、电源、带宽和处理能力有限的小型物联网设备。它采用极简主义设计,同时仍然包含现代操作系统的常用工具。它提供了用于管理程序、进程、资源、内存和通信的功能。
Contiki is an operating system for IoT that specifically targets small IoT devices with limited memory, power, bandwidth, and processing power. It uses a minimalist design while still packing the common tools of modern operating systems. It provides functionality for management of programs, processes, resources, memory, and communication.

其受欢迎程度归功于极轻量级(按照现代标准)、成熟且灵活。许多学者、组织研究人员和专业人士将其视为一种必备操作系统。Contiki 只需几千字节即可运行,且在不到 30KB 的空间内,它便容纳了其整个操作系统 − 网页浏览器、网络服务器、计算器、外壳、Telnet 客户端和守护程序、电子邮件客户端、VNC 查看器和 FTP。它借鉴了几十年前的操作系统和开发策略,轻松地利用了同样小的空间。
It owes its popularity to being very lightweight (by modern standards), mature, and flexible. Many academics, organization researchers, and professionals consider it a go-to OS. Contiki only requires a few kilobytes to run, and within a space of under 30KB, it fits its entire operating system − a web browser, web server, calculator, shell, telnet client and daemon, email client, vnc viewer, and ftp. It borrows from operating systems and development strategies from decades ago, which easily exploited equally small space.
Contiki Communication
Contiki 支持标准协议和 IoT 的最新启用协议 −
Contiki supports standard protocols and recent enabling protocols for IoT −
-
uIP (for IPv4) − This TCP/IP implementation supports 8-bit and 16-bit microcontrollers.
-
uIPv6 (for IPv6) − This is a fully compliant IPv6 extension to uIP.
-
Rime − This alternative stack provides a solution when IPv4 or IPv6 prove prohibitive. It offers a set of primitives for low-power systems.
-
6LoWPAN − This stands for IPv6 over low-power wireless personal area networks. It provides compression technology to support the low data rate wireless needed by devices with limited resources.
-
RPL − This distance vector IPv6 protocol for LLNs (low-power and lossy networks) allows the best possible path to be found in a complex network of devices with varied capability.
-
CoAP − This protocol supports communication for simple devices, typically devices requiring heavy remote supervision.
Dynamic Module Loading
运行时动态模块加载和链接支持应用程序行为在实施后发生更改的环境。Contiki 的模块加载器加载、重新定位和链接 ELF 文件。
Dynamic module loading and linking at run-time supports environments in which application behavior changes after deployment. Contiki’s module loader loads, relocates, and links ELF files.
The Cooja Network Simulator
Contiki 网络模拟器 Cooja 衍生出了一个由 Cooja 控制的实际编译且运行的 Contiki 系统。
Cooja, the Contiki network simulator, spawns an actual compiled and working Contiki system controlled by Cooja.
使用 Cooja 证明简单。只需通过选择 Motes 菜单和 Add Motes → Create New Mote Type 创建新的节点类型。在出现的对话框中,您选择节点的名称,选择其固件,并测试其编译。
Using Cooja proves simple. Simply create a new mote type by selecting the Motes menu and Add Motes → Create New Mote Type. In the dialog that appears, you choose a name for the mote, select its firmware, and test its compilation.

创建后,通过单击 Create 添加节点。一个新的节点类型将显示,您可以在其上附加节点。最后一步要求保存仿真文件以供将来使用。
After creation, add motes by clicking Create. A new mote type will appear to which you can attach nodes. The final step requires saving your simulation file for future use.