Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Formal Refinement for Operating System KernelsJuly 2007
Publisher:
  • Springer-Verlag
  • Berlin, Heidelberg
ISBN:978-1-84628-966-8
Published:01 July 2007
Skip Bibliometrics Section
Reflects downloads up to 26 Jan 2025Bibliometrics
Abstract

No abstract available.

Cited By

  1. Martins Gomes R, Aichernig B and Baunach M (2024). A framework for embedded software portability and verification: from formal models to low-level code, Software and Systems Modeling (SoSyM), 23:2, (289-315), Online publication date: 1-Apr-2024.
  2. Gomes R, Aichernig B and Baunach M A Formal Modeling Approach for Portable Low-Level OS Functionality Software Engineering and Formal Methods, (155-174)
  3. Zhao Y, Sanan D, Zhang F and Liu Y (2019). Refinement-Based Specification and Security Analysis of Separation Kernels, IEEE Transactions on Dependable and Secure Computing, 16:1, (127-141), Online publication date: 1-Jan-2019.
  4. Zhao Y, Yang Z and Ma D (2017). A survey on formal specification and verification of separation kernels, Frontiers of Computer Science: Selected Publications from Chinese Universities, 11:4, (585-607), Online publication date: 1-Aug-2017.
  5. Zhao Y, Sanán D, Zhang F and Liu Y Reasoning About Information Flow Security of Separation Kernels with Channel-Based Communication Proceedings of the 22nd International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Volume 9636, (791-810)
  6. Cheng S, Woodcock J and D’Souza D (2015). Using formal reasoning on a model of tasks for FreeRTOS, Formal Aspects of Computing, 27:1, (167-192), Online publication date: 1-Jan-2015.
  7. ACM
    Barreto L, Andrade A, Duran A, Lima C and Lima A (2011). Abstract specification and formalization of an operating system kernel in Z, ACM SIGOPS Operating Systems Review, 45:1, (156-160), Online publication date: 18-Feb-2011.
  8. Velykis A and Freitas L Formal modelling of separation kernel components Proceedings of the 7th International colloquium conference on Theoretical aspects of computing, (230-244)
  9. Craig I and Börger E Synchronous message passing and semaphores Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (20-33)
Contributors

Reviews

R. Clayton

What happens once a software system has been formally specified__?__ This book provides one answer: the specification can be refined through decreasing abstraction levels until it's reduced to code, or something close to code. The book can be partitioned into two pairs of chapters, preceded by an introductory chapter and followed by a concluding chapter. The first pair of chapters describes informally (chapter 2) and then formally (chapter 3) a simple embedded real-time operating system kernel. The second pair of chapters describes informally (chapter 4) and then formally (chapter 5) a separation kernel designed to provide complete temporal and spatial isolation among processes. The separation kernel is intended to be a microkernel for secure systems. (The adjective "cryptographic" is frequently mentioned relative to systems for the separation kernel, but "cryptographic system" isn't defined, and I could discern no cryptography in the kernel development.) Each kernel is divided into 12 or so pieces, along functional lines (process table and semaphores), and each piece is formally defined at a top level, and then refined in one or two (or sometimes no) steps. With this structure, a cagey reader might anticipate having some control over presentation detail, by reading the development horizontally, skipping from top-level definition to top-level definition, and then, once the top-level definitions were read, repeating for the first-level refinements. In this, the cagey reader would be wrong. Most specifications and refinements have an inverted pyramid shape, with a majority of the detail introduced at the top level, and successive refinement steps focusing on specific details. I was excited when I initially opened the book to the bibliography and saw a citation for Morgan's book [1], but the presentation in this book does not correspond to Morgan's presentation of program development by refinement. The index is pedestrian, consigned to the end of the book and containing only Z-entity definitions. The indexing standard set by Fraser and Hanson's book [2] should be the minimum for works of this kind. The bibliography is small, and covers the necessary citations in the text. The systems are specified using Z [3]; the book assumes knowledgeable readers, and contains no expository material about Z. Except for some comments in the first and last chapters, Z is used unselfconsciously, making the book less valuable for nascent Z specifiers looking to hone their skills on the strop of practical application. Only basic operating system knowledge is needed; familiarity with this book's predecessor [4] is helpful, but not necessary. The microkernel assumes generic hardware, and is refined down to a simple sequential language. The separation kernel assumes Intel hardware for segmentation capabilities, and is mostly refined to the same language as the microkernel, although in some places the refinement is carried down to suggest x86 assembly code. Formal proofs are sprinkled throughout, but not at every opportunity. In many cases, the proofs are compressed into paragraph-sized bricks rather than being laid out more expansively. This may save space, but it invites the eye (or at least my eye) to skate lightly down the page. There is no validation or verification. On the whole, this book doesn't make a practical case for formal methods, because I can't imagine it influencing people who don't know about formal methods, don't care about them, or have dismissed them as impractical. The author may wish to object that the book wasn't written for those kinds of readers, and that objection is certainly valid and consistent with the book. However, if you're going to do all this work, why not amortize your effort by slanting it toward a slightly (or perhaps much) larger audience__?__ The formal methods adepts are going to accept it anyway, and you may create a few converts with clear and plausible demonstrations (formal methods adepts may appreciate it too; the ability to plow through page after page of detail doesn't imply the desire to do so). More to the point, the book does meet its objective of demonstrating system development through specification refinement, and can stand as yet another marker for the power and utility of formal methods. While students (as opposed to practitioners and researchers) of formal methods, and Z in particular, may not find the book directly helpful, it can be a spur for further activity, such as exploring alternative specification-to-code transformations [5], or as a basis for using alternative techniques (such as in Lamport's book [6]) to develop specifications for comparison to Z. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations