andy
3fc7fa863e
Affected files: .obsidian/graph.json .obsidian/workspace-mobile.json .obsidian/workspace.json Christmas Movies.md Politcs/Fascism.md Politcs/Neoliberalism/Neoliberalism.md STEM/AI/Neural Networks/CNN/Interpretation.md STEM/CS/Languages/Python.md STEM/IOT/OS/Composition.md STEM/IOT/OS/Contiki.md STEM/IOT/OS/OS.md STEM/IOT/OS/README.md STEM/img/iot-event-based.png STEM/img/iot-os-stack.png STEM/img/iot-thread-based.png
87 lines
2.7 KiB
Markdown
87 lines
2.7 KiB
Markdown
- 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](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.636.3680&rep=rep1&type=pdf)
|
|
|
|
# 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
|
|
- 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
|
|
- 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](https://en.wikipedia.org/wiki/Wireless_sensor_network) (WSNs), [smartdust](https://en.wikipedia.org/wiki/Smartdust), [ubiquitous computing](https://en.wikipedia.org/wiki/Ubiquitous_computing), [personal area networks](https://en.wikipedia.org/wiki/Personal_area_network), [building automation](https://en.wikipedia.org/wiki/Building_automation), and [smart meters](https://en.wikipedia.org/wiki/Smart_meter)*
|
|
|
|
From <[https://en.wikipedia.org/wiki/TinyOS](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 |