Difference between revisions of "MansOS"
(→Development with MansOS - tools and techniques) |
|||
(52 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{|align=right |
|||
MansOS is an operating system for wireless sensor networks. |
|||
|__TOC__ |
|||
| |
|||
[[Image:qr_mansos-net-s.png]] |
|||
MansOS.net QR code |
|||
⚫ | |||
|} |
|||
[[Image:mansos_logo.png|thumb|alt=MansOS Logo|MansOS Logo]] |
|||
MansOS is a branch from LiteOS operating system, initially made to support TI Msp430 based platforms. Both OS share several defining characteristics. MansOS like LiteOS is designed to be easily adopted by the system designers and IT community familiar with C and C++ languages and Unix operating system concepts. The goal is to avoid the steep learning curve present in some other specialized operating systems. |
|||
<big> |
|||
Key concepts common with [[http://www.liteos.net/ LiteOS]]: |
|||
⚫ | |||
* MansOS is adopting programming in C (and eventually C++), known to many developers |
|||
</big> |
|||
* MansOS is managing a sensor network using Unix-like concepts, command tools and resources |
|||
* MansOS has a Unix-like file system (in development) |
|||
* MansOS enables thread-like programming environment (in development) |
|||
MansOS is an operating system for wireless sensor networks and netted embedded systems. It is designed for users familiar with C programming and Unix-like environment. MansOS supports various platforms and controllers, including TelosB and MSP430, Atmega controllers and Arduino, and others. Users may develop and test their systems on a PC as a virtual "mote". |
|||
<big> |
|||
Some key aspects specific to '''MansOS''': |
|||
'''The new MansOS homepage and git repository''' is at [https://github.com/edi-riga/MansOS/wiki GitHub] |
|||
* MansOS is designed to be easily portable to new platforms |
|||
</big> |
|||
* Debugging support is integral part of MansOS: for example, Simple Sensor Management Protocol and Print Anywhere (over the serial or radio link) techniques help with debugging tasks. |
|||
* MansOS has PC as one of the supported platforms, enabling rapid development and high-level simulation and debugging on PC and Mac class computers. |
|||
* MansOS enforces the hardware abstraction in three layers: HPL, HAL, and HIL at a mote level, ensuring clear interface for ease of portability to other platforms |
|||
* MansOS introduces a device concept similar to Unix systems. Access to most resources and sensors can be done through the device interface, using standard API including open, close, read, write and configure functions. |
|||
* Future goal: The focus during the development should be the whole system - a collection of mote entities rather than a single mote |
|||
The information below is outdated. Please read the [https://github.com/edi-riga/MansOS/wiki wiki at github]. |
|||
---- |
|||
⚫ | |||
⚫ | |||
* [[MansOS_Introduction | Introduction]] |
|||
* [[MansOS_Philosophy | Philosophy]] |
* [[MansOS_Philosophy | Philosophy]] |
||
* [[MansOS_Architecture | Architecture]] |
* [[MansOS_Architecture | Architecture]] |
||
* [[MansOS features]] - a simple list of features supported by MansOS |
|||
* [[MansOS tutorial]] |
|||
* [[Declarative programming with MansOS]] |
|||
⚫ | |||
=== |
=== Installing MansOS === |
||
MansOS GitHub link is at [http://mansos.net mansos.net]. From there you can download or pull the MansOS repository with all the sources and support tools. The Wiki there will help you to get started: |
|||
* [[Mansos installation]] |
|||
* How to setup the MansOS and related toolchains |
|||
* A few tutorials |
|||
* MansOS SVN repository is open to public for reading. For example, to get the whole MansOS tree in the current-directory/mansos do this: |
|||
* A reference to the main components. |
|||
svn co http://mansos.net/svn/mansos/ mansos |
|||
* Authenticated developers may access the [[MansOS_SVN]] repository via svn+ssh. |
|||
svn co svn+ssh://yourloginname@mansos.net/svn/mansos mansos |
|||
* [[MansOS_Trac | TRAC - Bug tracking and task lists]] |
|||
http://mansos.net/trac |
|||
Here is some information about the older versions [[Installing MansOS]]. |
|||
=== Development with MansOS - tools and techniques === |
=== Development with MansOS - tools and techniques === |
||
* [[MansOS tutorial]] |
|||
* MansOS [[MansOS_Ref | Reference Guide]] and [http://jupiter.cs.fmf.lu.lv/~kursi/bst/mansos/MansOS-API.pdf API (pdf)] |
|||
* [[Building MansOS]] - description of make targets. |
|||
* [[MansOS configuration options]] - configuration file syntax and options. |
|||
* [[MansOS_Platforms | MansOS platforms]] - List of supported platforms and platform specific notes, e.g.: |
|||
** ''make'' syntax |
|||
** dependencies for this platform, |
|||
** where is the particular executable built |
|||
** what options are available for this platform |
|||
* [[MansOS_API | MansOS API]] |
|||
* [[MansOS IDE]] |
|||
* [[MansOS_Apps_examples | Application examples]] |
* [[MansOS_Apps_examples | Application examples]] |
||
* [[MansOS_Makefiles | Setting up and using Makefiles]] |
* [[MansOS_Makefiles | Setting up and using Makefiles]] |
||
* [[MansOS_Eclipse | Eclipse setup]] |
* [[MansOS_Eclipse | Eclipse setup]] |
||
* [[MansOS_IAR | Compiling MansOS with IAR Embedded Workbench]] |
|||
* [[MansOS_Testing | Debugging and testing]] |
* [[MansOS_Testing | Debugging and testing]] |
||
* [[MansOS_PC_Emulation | Mote network emulation on PC]] |
|||
* [[MansOS_FAQ | FAQ]] |
* [[MansOS_FAQ | FAQ]] |
||
=== Developing the MansOS - notes === |
=== Developing the MansOS - notes === |
||
* [[MansOS_Platforms]] - make syntax and platform specific notes, e.g. where the particular executable is built and what options are available |
|||
⚫ | |||
* [[MansOS_Directory_Structure | Source directory structure]] |
* [[MansOS_Directory_Structure | Source directory structure]] |
||
* [[MansOS_Coding_Standard | Coding standard]] |
* [[MansOS_Coding_Standard | Coding standard]] |
||
* [[MansOS_new_platform | Adapting a new hardware platform]] |
* [[MansOS_new_platform | Adapting a new hardware platform]] |
||
* Future developments - [[MansOS_Ref | Reference Guide]] for a simpler interface |
|||
=== Internals === |
|||
* [[MansOS_Sources | Source code]] |
|||
* [[MansOS_Kernel | Kernel]] |
|||
* [[MansOS_File_System | File system]] |
|||
* [[MansOS_TODO | Todo]] |
|||
=== Hardware notes === |
=== Hardware notes === |
||
* An [[Ideal_mote]] should... | would have... (notes for future HW designs) |
|||
Chips |
Chips |
||
Line 78: | Line 83: | ||
Platforms |
Platforms |
||
* [[ |
* [[MansOS_Platforms | Supported platforms]], such as telosb, Tmote Sky, Mini, Arduino, generic msp430, Atmel chips, etc. |
||
=== Related publications and papers === |
=== Related publications and papers === |
||
* G. Strazdins, L. Selavo, [http://www.bjmc.lu.lv/fileadmin/user_upload/lu_portal/projekti/bjmc/Contents/2_2_4_Strazdins_a.pdf "Wireless Sensor Network Software Design Rules"], Baltic Journal of Modern Computing, VOL. 2(2014) NO. 2, 2014. |
|||
⚫ | |||
⚫ | |||
* G. Strazdins, A. Elsts, K. Nesenbergs, L. Selavo, [http://www.mdpi.com/2224-2708/2/3/509 "Wireless Sensor Network Operating System Design Rules Based on Real-World Deployment Survey"], Journal of Sensor and Actuator Networks. 2013; 2(3):509-556. |
|||
* A. Elsts, J. Judvaitis, L. Selavo, "SEAL: A Domain-Specific Language for Novice Wireless Sensor Network Programmers," Software Engineering and Advanced Applications (SEAA), 2013 39th EUROMICRO Conference on , vol., no., pp.220,227, 4-6 Sept. 2013. |
|||
* A. Elsts, G. Strazdins, A. Vihrov, L. Selavo, "Design and Implementation of MansOS: a Wireless Sensor Network Operating System," Scientific Papers, University of Latvia, volume 787, pp 79–105, 2012. |
|||
* A. Elsts, L. Selavo, "A User-Centric Approach to Wireless Sensor Network Programming Languages." In SESENA ’12: Proceedings of the 3rd Workshop on Software Engineering for Sensor Network Applications, pages 29–30, New York, NY, USA, 2012. |
|||
* G. Strazdins, A. Elsts, L. Selavo. "Mansos: easy to use, portable and resource efficient operating system for networked embedded devices." Proceedings of the 8th ACM Conference on Embedded Networked Sensor Systems. ACM, 2010. [http://www.researchgate.net/profile/Atis_Elsts/publication/221091501_MansOS_easy_to_use_portable_and_resource_efficient_operating_system_for_networked_embedded_devices/links/0046352c6d0f4b8867000000.pdf (pdf)] |
|||
⚫ | |||
⚫ |
Latest revision as of 22:48, 2 February 2023
MansOS.net QR code |
MansOS = Mobile agent netted sensor Operating System.
MansOS is an operating system for wireless sensor networks and netted embedded systems. It is designed for users familiar with C programming and Unix-like environment. MansOS supports various platforms and controllers, including TelosB and MSP430, Atmega controllers and Arduino, and others. Users may develop and test their systems on a PC as a virtual "mote".
The new MansOS homepage and git repository is at GitHub
The information below is outdated. Please read the wiki at github.
General information
- Introduction
- Philosophy
- Architecture
- MansOS features - a simple list of features supported by MansOS
- MansOS tutorial
- Declarative programming with MansOS
- API - reference manual/wiki
Installing MansOS
MansOS GitHub link is at mansos.net. From there you can download or pull the MansOS repository with all the sources and support tools. The Wiki there will help you to get started:
- How to setup the MansOS and related toolchains
- A few tutorials
- A reference to the main components.
Here is some information about the older versions Installing MansOS.
Development with MansOS - tools and techniques
- MansOS tutorial
- Building MansOS - description of make targets.
- MansOS configuration options - configuration file syntax and options.
- MansOS platforms - List of supported platforms and platform specific notes, e.g.:
- make syntax
- dependencies for this platform,
- where is the particular executable built
- what options are available for this platform
- MansOS API
- MansOS IDE
- Application examples
- Setting up and using Makefiles
- Eclipse setup
- Compiling MansOS with IAR Embedded Workbench
- Debugging and testing
- Mote network emulation on PC
- FAQ
Developing the MansOS - notes
- Source directory structure
- Coding standard
- Adapting a new hardware platform
- Future developments - Reference Guide for a simpler interface
Hardware notes
- An Ideal_mote should... | would have... (notes for future HW designs)
Chips
Platforms
- Supported platforms, such as telosb, Tmote Sky, Mini, Arduino, generic msp430, Atmel chips, etc.
Related publications and papers
- G. Strazdins, L. Selavo, "Wireless Sensor Network Software Design Rules", Baltic Journal of Modern Computing, VOL. 2(2014) NO. 2, 2014.
- G. Strazdins, A. Elsts, K. Nesenbergs, L. Selavo, "Wireless Sensor Network Operating System Design Rules Based on Real-World Deployment Survey", Journal of Sensor and Actuator Networks. 2013; 2(3):509-556.
- A. Elsts, J. Judvaitis, L. Selavo, "SEAL: A Domain-Specific Language for Novice Wireless Sensor Network Programmers," Software Engineering and Advanced Applications (SEAA), 2013 39th EUROMICRO Conference on , vol., no., pp.220,227, 4-6 Sept. 2013.
- A. Elsts, G. Strazdins, A. Vihrov, L. Selavo, "Design and Implementation of MansOS: a Wireless Sensor Network Operating System," Scientific Papers, University of Latvia, volume 787, pp 79–105, 2012.
- A. Elsts, L. Selavo, "A User-Centric Approach to Wireless Sensor Network Programming Languages." In SESENA ’12: Proceedings of the 3rd Workshop on Software Engineering for Sensor Network Applications, pages 29–30, New York, NY, USA, 2012.
- G. Strazdins, A. Elsts, L. Selavo. "Mansos: easy to use, portable and resource efficient operating system for networked embedded devices." Proceedings of the 8th ACM Conference on Embedded Networked Sensor Systems. ACM, 2010. (pdf)
- LiteOS, the original OS from which MansOS branched
- Flexible Hardware abstraction describing the HPL - HAL - HIL architecture