Here you can find guides on how Tock works, as well as short tutorials and longer workshop-style courses on how to use Tock, and reference documents that detail internal interfaces.
- Overview - Overview of the OS and this repository.
- Design - Design of the Tock primitives that make safety and security possible.
- Lifetimes - How Rust lifetimes are used in Tock.
- Mutable References - How Tock safely shares resources between components.
- Soundness - How Tock safely uses unsafe code.
- Compilation - How the kernel and applications are compiled.
- Tock Binary Format - How Tock application binaries are specified.
- Memory Layout - How memory is divided for Tock.
- Memory Isolation - How memory is isolated in Tock.
- Registers - How memory-mapped registers are handled in Tock.
- Startup - What happens when Tock boots.
- Syscalls - Kernel/Userland abstraction.
- Userland - Description of userland applications.
- Networking Stack - Design of the networking stack in Tock.
- Syscall Interfaces - API between userland and the kernel.
- Internal Kernel Interfaces - Hardware Interface Layers (HILs) for kernel components.
- Getting Started - Installing the Tock toolchain and programming hardware.
- Porting Tock - Guide to add new platforms.
- Out of Tree Boards - Best practices for maintaining boards not in Tock master.
- Debugging Help - Guides for various debugging techniques.
- Code Review Process - Process for pull request reviews and Tock releases.