词条 | TinyOS |
释义 |
| name = TinyOS | logo = | screenshot = | caption = | developer = TinyOS Alliance | source model = Open source | kernel type = | supported platforms = | ui = | family = Embedded operating systems | released = {{Start date and age|2000}} | latest release version = 2.1.2 | latest release date = {{Start date and age|2012|08|20}} | latest test version = 2.1.3 | latest test date = | marketing target = Wireless sensor networks | programmed in = nesC | language = English | updatemodel = | package manager = | working state = Current | license = BSD | website = {{URL|github.com/tinyos/tinyos-main}} }} TinyOS is an embedded, component-based operating system and platform for low-power wireless devices, such as those used in wireless sensor networks (WSNs), smartdust, ubiquitous computing, personal area networks, building automation, and smart meters. It is written in the programming language nesC, as a set of cooperating tasks and processes. It began as a collaboration between the University of California, Berkeley, Intel Research, and Crossbow Technology, was released as free and open-source software under a BSD license, and has since grown into an international consortium, the TinyOS Alliance. TinyOS has been used in space, being implemented in ESTCube-1. ImplementationTinyOS applications are written in the programming language nesC, a dialect of the C language optimized for the memory limits of sensor networks. Its supplementary tools are mainly in the form of Java and shell script front-ends. Associated libraries and tools, such as the nesC compiler and Atmel AVR binutils toolchains, are mostly written in C. TinyOS programs are built of software components, some of which present hardware abstractions. Components are connected to each other using interfaces. TinyOS provides interfaces and components for common abstractions such as packet communication, routing, sensing, actuation and storage. TinyOS is fully non-blocking: it has one call stack. Thus, all input/output (I/O) operations that last longer than a few hundred microseconds are asynchronous and have a callback. To enable the native compiler to better optimize across call boundaries, TinyOS uses nesC's features to link these callbacks, called events, statically. While being non-blocking enables TinyOS to maintain high concurrency with one stack, it forces programmers to write complex logic by stitching together many small event handlers. To support larger computations, TinyOS provides tasks, which are similar to a Deferred Procedure Call and interrupt handler bottom halves. A TinyOS component can post a task, which the OS will schedule to run later. Tasks are non-preemptive and run in first in, first out order. This simple concurrency model is typically sufficient for I/O centric applications, but its difficulty with CPU-heavy applications has led to developing a thread library for the OS, named TOSThreads. TOSThreads are unmaintained and have been deprecated.[1] TinyOS code is statically linked with program code and is compiled into a small binary, using a custom GNU toolchain. Associated utilities are provided to complete a development platform for working with TinyOS. HistoryTinyOS began as a project at UC Berkeley as part of the DARPA NEST program. It has since grown to involve thousands of academic and commercial developers and users worldwide. (list in reverse chronological order)
Integrated development environmentsAs of 2010, three integrated development environments (IDEs) are available for TinyOS, as plug-ins for Eclipse:
References1. ^{{cite web |title=TinyOS development repository TOSThreads deprecated |url=https://github.com/tp-freeforall/prod/tree/2308921ea2f2a1d48abb24c115a7691e1e400140/deprecated |website=TinyOS current development repository |accessdate=3 December 2018}} External links
2 : Embedded operating systems|Software using the BSD license |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。