-
Talking Tock 59: Runtime process loading support
With PR #3941 merged, the Tock kernel now supports dynamically loading userspace apps at runtime. New apps can be installed on a board without restarting Tock or affecting any existing applications.
-
Talking Tock 58: New pointer type in the kernel
Correctly expressing data types in Rust between userspace and the kernel with correctly captured semantics is challenging as different hardware platforms provide different data representations. The common example of this is 32-bit platforms versus 64-bit platforms which store different sized types in registers and therefore provide a different amount of data between userspace and the kernel. Emerging platforms, for example hardware with CHERI support, complicate this further. With pull request #4174 merged, Tock has taken a step to improve this by adding
CapabilityPtr
, a type within the kernel to clearly express when data within the kernel is a pointer. -
Tock 2.2 Release: First release tested with hardware-assisted CI
Version 2.2 of Tock has just been released! The 2.2 release marks significant improvements from the 2.1.1 release. Some major highlights include:
-
Rust's Mutex, Atomics and UnsafeCell – Spooky Action at a Distance?
In this post we explore how Rust's Atomic, Mutex, and UnsafeCell types interact with its type system and concepts of references and aliasing ⊕ mutability. We do so by looking at how the AtomicUsize and Mutex types are implemented, how violating Rust's assumptions can lead to incorrect optimizations by the compiler, and the surprising global impact of synchronization primitives.
-
TockWorld 7 Recap
On June 26-28 we held the 7th annual Tock gathering in San Diego, CA. This year combined a developer day, conference, and tutorials, expanding the purpose and audience of TockWorld.