@node Bibliography
@appendix Bibliography

@macro bibdfn{cite}
@noindent @anchor{\cite\}
[\cite\].@w{  }
@end macro

@menu
* Hardware References::     
* Software References::     
* Operating System Design References::
@end menu

@node Hardware References
@section Hardware References

@bibdfn{IA32-v1}
IA-32 Intel Architecture Software Developer's Manual Volume 1: Basic
Architecture.  Basic 80@var{x}86 architecture and programming
environment.  Available via @uref{developer.intel.com}.  Section numbers
in this document refer to revision 18.

@bibdfn{IA32-v2a} 
IA-32 Intel Architecture Software Developer's Manual
Volume 2A: Instruction Set Reference A-M.  80@var{x}86 instructions
whose names begin with A through M.  Available via
@uref{developer.intel.com}.  Section numbers in this document refer to
revision 18.

@bibdfn{IA32-v2b}
IA-32 Intel Architecture Software Developer's Manual Volume 2B:
Instruction Set Reference N-Z.  80@var{x}86 instructions whose names
begin with N through Z.  Available via @uref{developer.intel.com}.
Section numbers in this document refer to revision 18.

@bibdfn{IA32-v3a}
IA-32 Intel Architecture Software Developer's Manual Volume 3A: System
Programming Guide.  Operating system support, including segmentation,
paging, tasks, interrupt and exception handling.  Available via
@uref{developer.intel.com}.  Section numbers in this document refer to
revision 18.

@bibdfn{FreeVGA}
@uref{specs/freevga/home.htm, , FreeVGA Project}.  Documents the VGA video
hardware used in PCs.

@bibdfn{kbd}
@uref{specs/kbd/scancodes.html, , Keyboard scancodes}.  Documents PC keyboard
interface.

@bibdfn{ATA-3}
@uref{specs/ata-3-std.pdf, , AT Attachment-3 Interface (ATA-3) Working
Draft}.  Draft of an old version of the ATA aka IDE interface for the
disks used in most desktop PCs.

@bibdfn{PC16550D}
@uref{specs/pc16550d.pdf, , National Semiconductor PC16550D Universal
Asynchronous Receiver/Transmitter with FIFOs}.  Datasheet for a chip
used for PC serial ports.

@bibdfn{8254}
@uref{specs/8254.pdf, , Intel 8254 Programmable Interval Timer}.
Datasheet for PC timer chip.

@bibdfn{8259A}
@uref{specs/8259A.pdf, , Intel 8259A Programmable Interrupt Controller
(8259A/8259A-2)}.  Datasheet for PC interrupt controller chip.

@bibdfn{MC146818A}
@uref{specs/mc146818a.pdf, , Motorola MC146818A Real Time Clock Plus
Ram (RTC)}.  Datasheet for PC real-time clock chip.

@node Software References
@section Software References

@bibdfn{ELF1}
@uref{specs/elf.pdf, , Tool Interface Standard (TIS) Executable and
Linking Format (ELF) Specification Version 1.2 Book I: Executable and
Linking Format}.  The ubiquitous format for executables in modern Unix
systems.

@bibdfn{ELF2}
@uref{specs/elf.pdf, , Tool Interface Standard (TIS) Executable and
Linking Format (ELF) Specification Version 1.2 Book II: Processor
Specific (Intel Architecture)}.  80@var{x}86-specific parts of ELF.

@bibdfn{ELF3}
@uref{specs/elf.pdf, , Tool Interface Standard (TIS) Executable and
Linking Format (ELF) Specification Version 1.2 Book III: Operating
System Specific (UNIX System V Release 4)}.  Unix-specific parts of
ELF.

@bibdfn{SysV-ABI}
@uref{specs/sysv-abi-4.1.pdf, , System V Application Binary Interface:
Edition 4.1}.  Specifies how applications interface with the OS under
Unix.

@bibdfn{SysV-i386}
@uref{specs/sysv-abi-i386-4.pdf, , System V Application Binary 
Interface: Intel386 Architecture Processor Supplement: Fourth
Edition}.  80@var{x}86-specific parts of the Unix interface.

@bibdfn{SysV-ABI-update}
@uref{specs/sysv-abi-update.html/contents.html, , System V Application Binary
Interface---DRAFT---24 April 2001}.  A draft of a revised version of
@bibref{SysV-ABI} which was never completed.

@bibdfn{SUSv3}
The Open Group, @uref{http://www.unix.org/single_unix_specification/,
, Single UNIX Specification V3}, 2001.

@bibdfn{Partitions}
A.@: E.@: Brouwer, @uref{specs/partitions/partition_tables.html, ,
Minimal partition table specification}, 1999.

@bibdfn{IntrList}
R.@: Brown, @uref{http://www.ctyme.com/rbrown.htm, , Ralf Brown's
Interrupt List}, 2000.

@node Operating System Design References
@section Operating System Design References

@bibdfn{Christopher}
W.@: A.@: Christopher, S.@: J.@: Procter, T.@: E.@: Anderson,
@cite{The Nachos instructional operating system}.
Proceedings of the @acronym{USENIX} Winter 1993 Conference.
@uref{http://portal.acm.org/citation.cfm?id=1267307}.

@bibdfn{Dijkstra}
E.@: W.@: Dijkstra, @cite{The structure of the ``THE''
multiprogramming system}.  Communications of the ACM 11(5):341--346,
1968.  @uref{http://doi.acm.org/10.1145/363095.363143}.

@bibdfn{Hoare}
C.@: A.@: R.@: Hoare, @cite{Monitors: An Operating System
Structuring Concept}.  Communications of the ACM, 17(10):549--557,
1974.  @uref{http://www.acm.org/classics/feb96/}.

@bibdfn{Lampson}
B.@: W.@: Lampson, D.@: D.@: Redell, @cite{Experience with processes and
monitors in Mesa}.  Communications of the ACM, 23(2):105--117, 1980.
@uref{http://doi.acm.org/10.1145/358818.358824}.

@bibdfn{McKusick}
M.@: K.@: McKusick, K.@: Bostic, M.@: J.@: Karels, J.@: S.@: Quarterman,
@cite{The Design and Implementation of the 4.4@acronym{BSD} Operating
System}.  Addison-Wesley, 1996.

@bibdfn{Wilson}
P.@: R.@: Wilson, M.@: S.@: Johnstone, M.@: Neely, D.@: Boles,
@cite{Dynamic Storage Allocation: A Survey and Critical Review}.
International Workshop on Memory Management, 1995.
@uref{http://www.cs.utexas.edu/users/oops/papers.html#allocsrv}.
