Tiny OS是UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度。Tiny OS是一个具备较高专业性,专门为低功耗无线设备设计的操作系统,主要应用于传感器网络、普适计算、个人局域网、智能家居和智能测量等领域。
1)特性,Tiny OS的如下特性决定了其在传感器网络中的广泛应用,使其在物联网中占据了举足轻重的地位。
a.相对于主流操作系统成百上千MB的庞大体积来说,Tiny OS显得十分迷你,只需要几KB的内存空间和几十KB的编码空间就可以运行的起来,而且功耗较低,特别适合传感器这种受内存、功耗限制的设备。
b.Tiny OS本身提供了一系列的组件,包括:网络协议、分布式服务器、传感器驱动及数据识别工具等,使用者可以通过简单方便的编制程序将多个组件连接起来,用来获取和处理传感器的数据并通过无线电来传输信息。
c.Tiny OS在构建无线传感器网络时,通过一个基地控制台控制各个传感器子节点,聚集和处理各子节点采集到的信息。Tiny OS只要在控制台发出管理信息,然后由各个节点通过无线网络互相传递,最后达到协同一致的目的。
2)应用:
Tiny OS是一个开源的操作系统,所有人都可查看和修改Tiny OS的源代码,参与到Tiny OS及配套软件的开发,并应用到商业和工业领域中。在众多参与者的协作下,Tiny OS于2012年发布了的V2.1.2版本,并在2013年将Tiny OS上线到Github,供全球的参与者下载,平均下载量已经高达3.5万次/年。
Tiny OS已经有很多产品,例如:用于神经信号接收、调解、显示的接收器、用于能源领域中的石油和气体监控、用于传感网络的控制和优化、用于无线传感网络进行健康监测等。
参考:
TinyOS是用nesC程序编写的嵌入式操作系统,其作为一系列合作项目的结果。 它的首先出现是做为UC Berkeley和Intel Research合作实验室的杰作,用来嵌入智能微尘当中,之后慢慢演变成一个国际合作项目,即TinyOS联盟。内容 TinyOS应用程序是用nesC编写,它是C programming language的一个分支对于感知网络的内存限制问题作了优化。它的补充工具主要来自于Java形式和shell script的front-ends。其他的相关的库和工具,例如NesC编译器和Atmel AVRbinutils toolchains,大部分用C编写。 TinyOS程序由基于组件的软件工程software component建构,它们中一些表现了硬件的抽象概念, 组件用接口互相连接。TinyOS为普通的抽象描述(abstractions)提供了接口和组件,例如数据包通信(packet communication),路由,感知(sensing),行为(actuation)和储存。 TinyOS 2.x版本后完全的non-blocking:它配备了一个单独的堆栈。因此所有的持续超过几百微秒I/O操作都以异步进行并且带有回叫功能(callback)。为了使本地的编译器更加出色地优化交叉调用边界(optimize across call boundaries),TinyOS用nesC的特性去连接这些回叫,叫作事件(events)。non-blocking系统可以让TinyOS在单一存储器下保持高度的协同性(concurrency)。它强迫程序用stitching together many small event handlers的方法编写复合逻辑。为了支持更高的计算量,TinyOS提供了任务(tasks),其比Deferred Procedure Call and interrupt handler bottom halves小。 一个TinyOS组建可以发布一个任务,操作系统可以把它排入列表以待之后执行。任务是没有优先权的并且按照FIFO运行。 这个简单的协同模型是典型的满足了以I/O为中心的应用,但这样的模型对于CPU负荷重的应用程序来说不是太好的,因为它会导致向OS多次提出线程间协同处理的请求(but its difficulty with CPU-heavy applications has led to several proposals for incorporating threads into the OS.)。 TinyOS代码与程序代码进行静态连接,然后用GNU toolchain。编译到一个小的二进制系统中。 查看原帖>>