Andy Pack
b96482abd3
Affected files: .obsidian/graph.json .obsidian/workspace-mobile.json .obsidian/workspace.json Politcs/America/94 Crime Bill.md Politcs/America/Black.md Politcs/America/Presidents.md Politcs/BLM.md Politcs/British/Prime Ministers.md Politcs/British/Tory.md Politcs/Compass.md Politcs/Fascism.md Politcs/Labour Laws.md Politcs/Neoliberalism/Neoliberalism.md Politcs/Neoliberalism/Thatcher.md Politcs/Now.md Politcs/Socialism.md STEM/IOT/Cyber-Physical Systems.md STEM/IOT/Networking/Networking.md STEM/IOT/OS/Composition.md STEM/IOT/OS/Contiki.md STEM/IOT/OS/OS.md STEM/IOT/Software Services.md |
||
---|---|---|
.. | ||
Composition.md | ||
Contiki.md | ||
OS.md | ||
README.md |
tags | |
---|---|
|
- 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