awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
tock avatar

tock/tock

0
View on GitHub↗
www.tockos.org↗

Tock

Tock is a secure embedded operating system and microcontroller kernel designed to isolate untrusted applications and drivers. It functions as a memory-safe process isolator that uses a combination of hardware memory protection and language-level type safety to execute mutually distrustful applications on bare metal.

The system distinguishes itself through a hardware abstraction layer that decouples high-level components from specific microcontroller implementations using standardized traits. It further employs a virtualization layer to allow multiple independent software components to share a single piece of physical hardware.

The kernel covers a broad range of capabilities, including capability-based API access, grant-based memory management to prevent global heap exhaustion, and an event-based scheduler for managing process execution. It also provides mechanisms for runtime application updates by flashing new binaries to non-volatile storage while the system remains running.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Features

  • Hardware-Based Memory Protection - Uses hardware Memory Protection Units to enforce memory access boundaries and isolate mutually distrustful application processes.
  • Embedded Operating Systems - Provides a modular operating system distribution specifically tailored for secure execution on resource-constrained embedded hardware.
  • Task Schedulers - Implements a kernel-level mechanism for managing the execution order and context switching of concurrent tasks.
  • Kernel Event Schedulers - Manages hardware interrupts and application process execution via a kernel-level scheduler based on pending callbacks.
  • Hardware Abstraction Layers - Decouples high-level kernel components from specific microcontroller hardware using standardized traits.
  • Secure Embedded Operating Systems - Runs multiple distrustful applications on microcontrollers using memory protection to ensure system stability and security.
  • MPU-Based Application Isolation - Executes untrusted applications in separate threads with reduced privileges using a hardware memory protection unit.
  • Hardware Abstraction Layers - Provides a standardized interface that decouples high-level system components from specific microcontroller hardware implementations.
  • Grant-Based Allocators - Allocates memory from application heaps to the kernel via grants to prevent global heap exhaustion.
  • Process Isolation - Employs security techniques to restrict process access to system resources by running applications in isolated execution environments.
  • System Call Interfaces - Defines the secure software interrupt mechanism used by user-space applications to request kernel services.
  • Microcontroller Kernels - Implements a core kernel for embedded devices that manages hardware abstraction and process scheduling on bare metal.
  • Capability-Based Access Controls - Employs a security model that requires specific delegatable authorization objects to permit the execution of sensitive kernel functions.
  • Execution Schedulers - Provides a scheduler that controls the execution order and timing of concurrent processes.
  • Embedded Binary Updates - Provides a mechanism to update device functionality by flashing new binaries to non-volatile storage during runtime.
  • Runtime Binary Flashing - Allows loading and flashing of application binaries to non-volatile storage for updates while the system is running.
  • Peripheral Resource Virtualization - Shares a single piece of physical hardware among multiple independent software components through a controlled virtualization layer.
  • Hardware Driver Virtualization - Provides virtualization layers that wrap physical hardware drivers to allow multiple components to share a single resource.
  • System Call and Driver Callback Routings - Implements a system for routing kernel control through registered driver callbacks and system call tables.
  • Hardware Resource Virtualization - Wraps physical hardware drivers in software layers to allow multiple system components to share a single resource.
  • User-Space Upcalls - Signals user processes by executing registered callback functions through a controlled system call interface.
  • Process and Memory Management - Manages the allocation of memory from application heaps to the kernel via grants for safe data exchange.
  • Managed Memory Allocators - Uses specialized allocators and fixed-size buffers to ensure predictable memory consumption and prevent global heap exhaustion.
  • Process Lifecycle Managers - Controls application execution by blocking processes via yield calls and waking them during driver events.
  • Inter-Process Communication - Provides communication protocols and interfaces that allow separate application processes to exchange data and synchronize actions.
  • Kernel-to-User Bridges - Implements a mechanism to route asynchronous notifications and callbacks from the kernel back to user-space processes.
  • Type-Safe Component Isolation - Leverages Rust type and module systems to isolate trusted kernel drivers without requiring hardware memory protection.
  • Language-Level Driver Isolation - Uses a language sandbox to protect internal modules and drivers from each other without incurring hardware overhead.
  • Real-Time Operating Systems - Secure embedded operating system for Cortex-M.
  • Operating Systems - Secure embedded OS for Cortex-M microcontrollers.
6,351 stars·836 forks·Rust·22 views

Star history

Star history chart for tock/tockStar history chart for tock/tock

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Frequently asked questions

What does tock/tock do?

Tock is a secure embedded operating system and microcontroller kernel designed to isolate untrusted applications and drivers. It functions as a memory-safe process isolator that uses a combination of hardware memory protection and language-level type safety to execute mutually distrustful applications on bare metal.

What are the main features of tock/tock?

The main features of tock/tock are: Hardware-Based Memory Protection, Embedded Operating Systems, Task Schedulers, Kernel Event Schedulers, Hardware Abstraction Layers, Secure Embedded Operating Systems, MPU-Based Application Isolation, Grant-Based Allocators.

Which projects share features with tock/tock?

Projects with overlapping indexed features include: mit-pdos/xv6-public — xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an… riot-os/riot — RIOT is a real-time operating system designed for resource-constrained microcontrollers. It provides a kernel for… rt-thread/rt-thread — RT-Thread is an IoT real-time operating system and embedded device kernel. It provides a lightweight execution… s-matyukevich/raspberry-pi-os — This project is a bare-metal operating system developed for ARM64 architecture. It serves as a low-level… cfenollosa/os-tutorial — This project is an educational curriculum designed to teach the fundamentals of operating system development and… zephyrproject-rtos/zephyr — Zephyr is a real-time operating system and cross-platform embedded framework designed for resource-constrained…

Projects sharing features with Tock

These projects share indexed features with Tock. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • mit-pdos/xv6-publicmit-pdos avatar

    mit-pdos/xv6-public

    9,466View on GitHub↗

    xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an instructional kernel for x86 and RISC-V architectures, featuring a virtual memory manager and support for symmetric multiprocessing. The system is designed to demonstrate core OS principles through a simplified re-implementation of Unix Version 6. It provides a controlled environment for studying system calls, trap handling, and process lifecycles. Its capability surface covers process management, including scheduling and context switching, and memory management via page tables for

    C
    View on GitHub↗9,466
  • riot-os/riotRIOT-OS avatar

    RIOT-OS/RIOT

    5,760View on GitHub↗

    RIOT is a real-time operating system designed for resource-constrained microcontrollers. It provides a kernel for managing hardware peripherals, memory, and multitasking on embedded devices, featuring a microcontroller hardware abstraction layer to unify hardware access across different chipsets. The system employs a preemptive tickless task scheduler with priority-based execution to maximize energy efficiency in battery-powered hardware. It also includes an embedded security framework consisting of cryptographic APIs and secure transport protocols to facilitate authenticated over-the-air fir

    C
    View on GitHub↗5,760
  • rt-thread/rt-threadRT-Thread avatar

    RT-Thread/rt-thread

    12,048View on GitHub↗

    RT-Thread is an IoT real-time operating system and embedded device kernel. It provides a lightweight execution environment for microcontrollers, combining a real-time kernel with a hardware abstraction layer to manage multi-threaded task scheduling and hardware resource allocation. The project is built as a modular framework that utilizes a package-based ecosystem. This allows for the integration of reusable software libraries and high-level services through a loosely coupled architecture. The system covers real-time task scheduling, resource-constrained memory management, and embedded hardw

    Caiotarmcortex-a
    View on GitHub↗12,048
  • s-matyukevich/raspberry-pi-oss-matyukevich avatar

    s-matyukevich/raspberry-pi-os

    13,854View on GitHub↗

    This project is a bare-metal operating system developed for ARM64 architecture. It serves as a low-level implementation of kernel engineering, focusing on the fundamental construction of an OS from the hardware level up. The system is distinguished by its comprehensive approach to ARM64 processor control, featuring a red-black tree task scheduler and a hierarchical page table system for virtual memory management. It implements a sophisticated privilege model that handles transitions between kernel and user modes, ensuring process isolation through address space splitting and exception level m

    Carmarmv8assembler
    View on GitHub↗13,854
Compare all 30 related projects→