Professional Documents
Culture Documents
x : [4][32];
x = [23 13 1 0];
†
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
What we have:
• A rapid prototyping system for OS designs
• Build minimalist, strongly separated systems, in Haskell, without a
host OS
• Write drivers in Haskell
• Many gory details in practice...
Particularly useful for rolling systems with interesting
network stacks quickly
Uses the rich GHC runtime and language to solve the
client need for fast, small prototypes and rapid exploration
While giving more assurance than C
●
Copilot is a Haskell eDSL targeted at monitoring hard
real-time systems.
●
Synchronous language defined by a set of stream
equations (simple data-flow model).
●
Uses the Atom Haskell eDSL as an intermediate
language to generate hard real-time C.
●
eDSLs building on eDSLs!
●
Atom is co-maintained by Galois and Eaton.
●
Generates it's own schedule---no RTOS needed.
engine:: Streams
engine = do
temps .= [0,0,0] ++ extF temp 1
overTempRise .= drop 2 (var temps)
> const 2.3 + var temps
trigger .= (var overTempRise)
implies (extB shutoff 2)
●
Representative of fault-tolerant systems
• 4 X STM microcontrollers
• ARM Cortex M3 cores clocked at 72 Mhz
• MPXV5004DP differential pressure sensor
• Senses dynamic and static pressure
• Pitot tubes measure airspeed
• Designed to fit in UAS (unpiloted air system)
• Power, weight,...
Questions?