stem/IOT/OS/OS.md
andy 3fc7fa863e vault backup: 2023-12-22 12:45:16
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
2023-12-22 12:45:16 +00:00

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