(rhymes with Kinkos)
Swink is an experimental operating system which explores novel (ab)uses of architectural features to enable better performance and security. Although I always strive for production quality code, this is chiefly a hobby/research kernel and is certainly not a production ready.
- Basic serial I/O
- Exceptions/interrupts
- Power management
- Virtual memory
- Fast memory protection management through Lifeguard
- Kernel threads
- User processes
- Fast user space context switching through Lifeguard
- Multi-core support
- Kernel control-flow integrity through Shadow
- Fast kernel enclaves through Shadow
Due to the diversity of ARM CPUs and the load-bearing uses of certain architectural features, Swink requires a CPU which supports ARMv8A (or newer). This is due to a combination of Swink being a 64-bit only OS and because Swink requires certain debug hardware like watchpoints for normal execution. These CPUs, however, are not exceptionally difficult to acquire and are found in many popular single board computers. I have tested and developed drivers for Swink on the following platforms:
- Power management
- Mini UART
- VideoCore cross-core RPC