ACM Home Page
Please provide us with feedback. Feedback
A principled approach to operating system construction in Haskell
Full text PdfPdf (155 KB)
Source International Conference on Functional Programming archive
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming table of contents
Tallinn, Estonia
SESSION: Session 4 table of contents
Pages: 116 - 128  
Year of Publication: 2005
ISBN:1-59593-064-7
Also published in ...
Authors
Thomas Hallgren  Oregon Health & Science University
Mark P. Jones  Oregon Health & Science University
Rebekah Leslie  Portland State University
Andrew Tolmach  Portland State University
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 69,   Citation Count: 16
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1086365.1086380
What is a DOI?

ABSTRACT

We describe a monadic interface to low-level hardware features that is a suitable basis for building operating systems in Haskell. The interface includes primitives for controlling memory management hardware, user-mode process execution, and low-level device I/O. The interface enforces memory safety in nearly all circumstances. Its behavior is specified in part by formal assertions written in a programming logic called P-Logic. The interface has been implemented on bare IA32 hardware using the Glasgow Haskell Compiler (GHC) runtime system. We show how a variety of simple O/S kernels can be constructed on top of the interface, including a simple separation kernel and a demonstration system in which the kernel, window system, and all device drivers are written in Haskell.


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
F. Bellard. QEMU. http://fabrice.bellard.free.fr/qemu/.
 
2
 
3
L. Cardelli, J. Donahue, L. Glassman, M. Jordan, B. Kalsow, and G. Nelson. Modula-3: Language definition. http://www.research.compaq.com/SRC/m3defn/html/complete.html.
 
4
S. Carlier and J. Bobbio. hOp. http://www.macs.hw.ac.uk/~sebc/hOp/, 2004.
5
 
6
J. Cupitt. A brief walk thourgh KAOS. Techical Report 58, Computing Laboratory, Univ. of Kent at Canterbury, February 1989.
 
7
Cyclone. http://www.research.att.com/projects/cyclone/.
 
8
K. Fraser, S. Hand, R. Neugebauer, I. Pratt, A. Warfield, and M. Williamson. Safe hardware access with the Xen virtual machine monitor. In Proc. OASIS ASPLOS Workshop, 2004.
 
9
G. Fu. Design and implementation of an operating system in Standard ML. Master's thesis, University of Hawaii, August 1999.
 
10
Glasgow haskell compiler. http://www.haskell.org/ghc.
 
11
Grub. http://www.gnu.org/software/grub/.
 
12
T. Hallgren. The House web page. http://www.cse.ogi.edu/~hallgren/House/, 2004.
 
13
Intel Corp. IA-32 Intel Architecture Software Developer's Manual Volume 3: System Programming Guide, 2004.
 
14
 
15
 
16
M. P. Jones. Bare Metal: A Programatica model of hardware. In High Confidence Software and Systems Conference, Baltimore, MD, March 2005.
 
17
K. Karlsson. Nebula: A functional operating system. Technical report, Programing Methodology Group, University of Göteborg and Chalmers University of Technology, 1981.
 
18
R. B. Kieburtz. P-logic: Property verification for Haskell programs. ftp://ftp.cse.ogi.edu/pub/pacsoft/papers/Plogic.pdf, August 2002.
19
 
20
R. Noble. Lazy Functional Components for Graphical User Interface. PhD thesis, University of York, November 1995.
 
21
The OSKit Project. http://www.cs.utah.edu/flux/oskit/.
 
22
The Programatica Project home page. www.cse.ogi.edu/PacSoft/projects/programatica/, 2002.
 
23
The SPIN project. http://www.cs.washington.edu/research/projects/spin/www/, 1997.
 
24
 
25
L. Team. L4 eXperimental Kernel Reference Manual, January 2005.
 
26
Video Electronics Standards Association. VESA BIOS EXTENSION (VBE) - Core Functions Standard, Version: 3.0, September 1998. www.vesa.org.
 
27
M. Wallace. Functional Programming and Embedded Systems. PhD thesis, Dept of Computer Science, Univ. of York, UK, January 1995.
28

CITED BY  16

Collaborative Colleagues:
Thomas Hallgren: colleagues
Mark P. Jones: colleagues
Rebekah Leslie: colleagues
Andrew Tolmach: colleagues