Evolving an OS Kernel using Temporal Logic and Aspect-Oriented Programming