|
ABSTRACT
We propose a development methodology for designing and prototyping high assurance microkernels, and describe our application of it. The methodology is based on rapid prototyping and iterative refinement of the microkernel in a functional programming language. The prototype provides a precise semi-formal model, which is also combined with a machine simulator to form a reference implementation capable of executing real user-level software, to obtain accurate feedback on the suitability of the kernel API during development phases. We extract from the prototype a machine-checkable formal specification in higher-order logic, which may be used to verify properties of the design, and also results in corrections to the design without the need for full verification. We found the approach leads to productive, highly iterative development where formal modelling, semi-formal design and prototyping, and end use all contribute to a more mature final design in a shorter period of time.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Andreas Abel , Marcin Benke , Ana Bove , John Hughes , Ulf Norell, Verifying haskell programs using constructive type theory, Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, p.62-73, September 30-30, 2005, Tallinn, Estonia
[doi> 10.1145/1088348.1088355]
|
| |
2
|
|
 |
3
|
|
| |
4
|
|
 |
5
|
Nils Anders Danielsson , John Hughes , Patrik Jansson , Jeremy Gibbons, Fast and loose reasoning is morally correct, Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.206-217, January 11-13, 2006, Charleston, South Carolina, USA
|
| |
6
|
G. Duval and J. Julliand. Modelling and verification of the RUBIS ?-kernel with SPIN. In SPIN95 Workshop Proceedings, 1995.
|
| |
7
|
R. J. Feiertag and P. G. Neumann. The foundations of a provably secure operating system (PSOS). In AFIPS Conference Proceedings (NCC 79), pages 329--334, New York, NY, USA, June 1979.
|
| |
8
|
Bryan Ford , Mike Hibler , Jay Lepreau , Roland McGrath , Patrick Tullmann, Interface and execution models in the Fluke kernel, Proceedings of the third symposium on Operating systems design and implementation, p.101-115, February 1999, New Orleans, Louisiana, United States
|
| |
9
|
G. Fu. Design and implementation of an operating system in Standard ML. Master's thesis, Dept. of Information and Computer Sciences, University of Hawaii at Manoa, 1999. Available: http://www2. ics.hawaii.edu/~esb/prof/proj/hello/index.html.
|
| |
10
|
M. Gargano, M. Hillebrand, D. Leinenbach, and W. Paul. On the correctness of operating system kernels. In Proc. 18th International Conference on Theorem Proving in Higher Order Logics (TPHOLs'05), pages 1--16, Oxford, UK, 2005.
|
| |
11
|
T. Hallgren, J. Hook, M. P. Jones, and R. B. Kieburtz. An overview of the Programatica ToolSet. High Confidence Software and Systems Conference, HCSS04, 2004.
|
 |
12
|
|
| |
13
|
|
| |
14
|
Haskell hierarchical libraries. http://www.haskell.org/ghc/ docs/latest/html/libraries/index.html, 2006.
|
| |
15
|
M. Hohmuth and H. Tews. The VFiasco approach for a verified operating system. In Proc. 2nd ECOOP Workshop on Programm Languages and Operating Systems, Glasgow, UK, Oct. 2005.
|
| |
16
|
B. Huffman, J. Matthews, and P. White. Axiomatic constructor classes in Isabelle/HOLCF. In J. Hurd and T. F. Melham, editors, TPHOLs, volume 3603 of Lecture Notes in Computer Science, pages 147--162. Springer Verlag, 2005.
|
| |
17
|
K. Karlsson. Nebula: a functional operating system. Technical Report LPM11, Laboratory for Programming Methodology, Chalmers University of Technology and University of Goteburg, 1981.
|
| |
18
|
G. Klein and H. Tuch. Towards verified virtual memory in L4. In K. Slind, editor, TPHOLs Emerging Trends '04, Park City, Utah, USA, 2004.
|
| |
19
|
|
| |
20
|
L4Ka Team. L4Ka::Pistachio kernel. http://l4ka.org/projects/pistachio/.
|
 |
21
|
R. Levin , E. Cohen , W. Corwin , F. Pollack , W. Wulf, Policy/mechanism separation in Hydra, Proceedings of the fifth ACM symposium on Operating systems principles, p.132-140, November 19-21, 1975, Austin, Texas, United States
|
 |
22
|
|
 |
23
|
|
 |
24
|
|
| |
25
|
The M5 simulator system. http://m5.eecs.umich.edu/, 2006.
|
| |
26
|
|
| |
27
|
J. Shapiro. Coyotos. www.coyotos.org, 2006.
|
| |
28
|
|
| |
29
|
H. Tuch and G. Klein. A unified memory model for pointers. In Proceedings of the 12th International Conference on Logic for Programming, Artificial Intelligence and Reasoning, pages 474--488, Montego Bay, Jamaica, Dec. 2005.
|
| |
30
|
H. Tuch, G. Klein, and G. Heiser. OS verification - now! In Proceedings of the 10th Workshop on Hot Topics in Operating Systems, Santa Fe, NM, USA, June 2005.
|
| |
31
|
P. Tullmann , J. Turner , J. McCorquodale , J. Lepreau , A. Chitturi , G. Back, Formal Methods: A Practical Tool for OS Implementors, Proceedings of the 6th Workshop on Hot Topics in Operating Systems (HotOS-VI), p.20, May 05-06, 1997
|
 |
32
|
|
 |
33
|
|
CITED BY 5
|
|
|
|
|
Kevin Elphinstone , Gerwin Klein , Philip Derrin , Timothy Roscoe , Gernot Heiser, Towards a practical, verified kernel, Proceedings of the 11th USENIX workshop on Hot topics in operating systems, p.1-6, May 07-09, 2007, San Diego, CA
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.4
OPERATING SYSTEMS
D.4.5
Reliability
Subjects:
Verification
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.2
Language Classifications
Subjects:
Applicative (functional) languages
I.
Computing Methodologies
I.6
SIMULATION AND MODELING
I.6.3
Applications
General Terms:
Design,
Documentation,
Languages,
Verification
Keywords:
Haskell,
Isabelle/HOL,
executable specification,
formalisation,
monads,
operating systems,
rapid prototyping,
verification
|