OS
- Thin software layer
- Basic programming abstractions
- Interact with hardware- Schedule and prioritise tasks
 
- Mediate between applications and services requiring resources Comparison of Operating Systems TinyOS and Contiki
Environment
- Energy efficiency
- Restricted code- Compared to full OS
 
Features
- Memory management
- Power management
- File management
- Networking
- Dev environment and tools- Commands
- Interpreters
- Compilers
 
- Entry points for sensitive resources- Input components
 
- Functional aspects- Scheduling
- Multi-threading
- Interrupts
- Memory allocation
 
Dynamic Programming
- Program parts of application after deployment- Settings and requirements not known prior to deployment- Can change over time
 
- Bug fixes or update requirements wile in operation
- Manual updates maybe not possible
 
- Settings and requirements not known prior to deployment
- Needs boundaries between application and OS
- OS receive software updates and store in active memory- Check this is an updated version
- Install and configure new version
 
Paradigm
- Node-centric- Focuses on software for each node
- Operating individually
 
- Application-centric- Treat nodes as one application
- Requires collaboration between nodes- Collection
- Dissemination
- Analysis and/or processing of generated and collected data
 
 
Deploy to Mote
- Compile- make TARGET=xm1000 _____
 
- Deploy- make TARGET=xm1000 _____.upload- As root
 
 
- make TARGET=xm1000 _____.upload
- Terminal- make TARGET=xm1000 login
 
TinyOS
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
From <https://en.wikipedia.org/wiki/TinyOS>
- Written in nesC- Network Embedded Systems C
- Component-based- Wired together to run applications
 
- Event-driven
- Extension to C
 
- Non-blocking- One stack
- No abstraction between OS and application
 
- No dynamic programming
- I/O ops longer than hundreds of milliseconds are async
- Mainly event-based
FreeRTOS
- Minimal ROM, RAM, processing overhead
- Bin image 6K - 12K
- 3 C files
- Smaller & easier real-time processing alternative
- Port layer- Architecture specific part of port
- Officially supported or contributed
 
- Good for AWS