Apress

Formal Refinement for Operating System Kernels

By Iain D. Craig

Formal Refinement for Operating System Kernels Cover Image

  • ISBN13: 978-1-8462-8966-8
  • 352 Pages
  • User Level: Science
  • Publication Date: July 18, 2007
  • Available eBook Formats: PDF
  • eBook Price: $119.00
Buy eBook Buy Print Book Add to Wishlist
Full Description
The kernel of any operating system is its most critical component. The remainder of the system depends upon a correctly functioning and reliable kernel for its operation. The purpose of this book is to show that the formal specification of kernels can be followed by a completely formal refinement process that leads to the extraction of executable code. The formal refinement process ensures that the code meets the specification in a precise sense. Two kernels are specified and refined. The first is small and of the kind often used in embedded and real-time systems. It closely resembles the one modelled in our Formal Models of Operating System Kernels. The second is a Separation Kernel, a microkernel architecture devised for cryptographic and other secure applications. Both kernels are refined to the point at which executable code can be extracted. Apart from documenting the process, including proofs, this book also shows how refinement of a realistically sized specification can be undertaken.
Table of Contents

Table of Contents

  1. Introduction.
  2. Reasons for Selecting the Examples.
  3. Refinement Method.
  4. Code Production.
  5. Organisation of this Book.
  6. Relationship to Other Work.
  7. The Simple Kernel’s Organisation.
  8. A Simple Kernel.
  9. Types.
  10. Hardware.
  11. The Process Table.
  12. Process Queue.
  13. Priority Queue.
  14. The Scheduler.
  15. Semaphores.
  16. Semaphore Table.
  17. Synchronous Messages.
  18. The Clock.
  19. Sleepers.
  20. User Interface.
  21. The Separation Kernel.
  22. Basic Architecture.
  23. Extending the Architecture.
  24. Summary.
  25. An Overview of the Formal Specification.
  26. A Separation Kernel.
  27. Basic Types.
  28. Hardware Issues.
  29. Security Exits and Return Values.
  30. The Process Table.
  31. Process Queues.
  32. The Scheduler.
  33. Storage Pools.
  34. Raw Storage.
  35. Message Queues.
  36. Kernel Interface
  37. User Processes.
  38. Devices
  39. Trusted Code.
  40. Process Interface to the Kernel.
  41. Final Thoughts.
  42. Closing Thoughts.
  43. References.
  44. List of Definitions.
Errata

If you think that you've found an error in this book, please let us know about it. You will find any confirmed erratum below, so you can check if your concern has already been addressed.

* Required Fields

No errata are currently published