1%
2% Copyright 2016, Data61
3% Commonwealth Scientific and Industrial Research Organisation (CSIRO)
4% ABN 41 687 119 230.
5%
6% This software may be distributed and modified according to the terms of
7% the BSD 2-Clause license. Note that NO WARRANTY is provided.
8% See "LICENSE_BSD2.txt" for details.
9%
10% @TAG(D61_BSD)
11%
12
13%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
14% For papers:
15% - use ``article''
16% - remove the \else part of the \iftrue below (and remove the
17%    \iftrue/\fi commands)
18%    \documentclass[a4paper,11pt,twoside,twocolumn]{article}
19%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
20%    For technical reports, manuals etc:
21%    - use ``report''
22%    - use the \else part of the \iftrue below (and remove the \iftrue/fi commands
23%    Use ``report'' for techreports, manuals etc and use \else part of \iffalse
24%    and also uncomment the \usepackage{disy}
25
26\documentclass[a4paper,11pt,twoside]{report}
27\usepackage[colour,nictaonly]{disy}
28
29%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
30\usepackage{msctexen}
31\usepackage{indentfirst}
32
33%%% $Id: paper.tex,v 1.22 2008-07-19 08:14:55 gernot Exp $
34
35% Setting this to true turns on the ``draft'' watermark
36\newif \ifDraft         \Drafttrue
37
38%%% Hyperlinks embed links for references in the PDF output (both for
39%%% internal as well as external links).
40\newif \ifhyperlinks    \hyperlinkstrue
41%%% When using this you should use \autoref{label} instead of
42%%% Section~\ref{label}. This will make ``Section'' part of the link, not
43%%% just the number.
44
45% Easy control over page margins. You can use ``right'', ``top'', ...
46\usepackage[margin=25mm]{geometry}
47% \usepackage[margin=25mm,left=33mm]{geometry}	% better for double-sided reports
48\usepackage{xspace} 
49\usepackage{graphicx}
50\setkeys{Gin}{keepaspectratio=true,clip=true,draft=false,width=\linewidth}
51\usepackage{times,cite,url,fancyhdr}
52\urlstyle{rm}
53\renewcommand{\ttdefault}{cmtt}	% CM rather than courier for \tt
54
55\ifDraft
56\usepackage{draftcopy}
57\newcommand{\Comment}[1]{\textbf{\textsl{#1}}}
58\newcommand{\FIXME}[1]{\textbf{\textsl{FIXME: #1}}}
59\date{\small$\relax$Id: paper.tex,v 1.22 2008-07-19 08:14:55 gernot Exp $\relax$}
60\else
61\newcommand{\Comment}[1]{\relax}
62\newcommand{\FIXME}[1]{\relax}
63\date{}
64\fi
65
66\ifhyperlinks
67\usepackage[pdftex,pagebackref,hyperindex,bookmarks]{hyperref}
68\hypersetup{linktocpage,colorlinks}
69\else   
70\providecommand{\href}[2]{\url{#2}}
71\fi
72
73\pagestyle{fancyplain}
74\lhead[\fancyplain{}{\sl\thepage}]{\fancyplain{}{\sl\rightmark}}
75\chead{}
76\rhead[\fancyplain{}{\sl\leftmark}]{\fancyplain{}{\sl\thepage}}
77\lfoot[\fancyplain{\sl\thepage}{}]{}
78\cfoot{}
79\rfoot[]{\fancyplain{\sl\thepage}{}}
80
81\newcommand{\ty}[1]{\texttt{#1}}
82
83\begin{document}
84
85\ifhyperlinks
86
87%% Capitalisation of cross references
88\renewcommand{\chapterautorefname}{Chapter}
89\renewcommand{\sectionautorefname}{Section}
90\renewcommand{\subsectionautorefname}{Section}
91\renewcommand{\subsubsectionautorefname}{Section}
92\renewcommand{\appendixautorefname}{Appendix}
93\renewcommand{\Hfootnoteautorefname}{Footnote}
94
95%% Commands for index
96\newcommand{\Htextbf}[1]{\textbf{\hyperpage{#1}}}
97\fi
98
99%% Custom Colours
100\definecolor{refos_purple}{RGB}{163, 73, 164}
101\definecolor{refos_dpurple}{RGB}{72, 12, 68}
102\definecolor{refos_dgray}{RGB}{64, 64, 64}
103\definecolor{seL4_green}{RGB}{0, 64, 0}
104
105%% Custom commands
106\newcommand{\refOS}{\textcolor{refos_purple}{\texttt{RefOS}}\xspace}
107\newcommand{\Lf}{\texttt{L4}\xspace}
108\newcommand{\seLf}{\textcolor{seL4_green}{\texttt{seL4}}\xspace}
109
110\title {
111    \centering\includegraphics[width=0.5\textwidth]{refos} \\\
112    RefOS --- Reference Design For A Microkernel Based Operating System
113}
114
115\author {Kevin Elphinstone}
116\AuthorEmail {
117    Kevin.Elphinstone@data61.csiro.au
118}
119\date{August 31, 2016}
120
121\begin{titlepage}
122\maketitle
123\end{titlepage}
124
125\urlstyle{sf}
126\thispagestyle{empty}
127
128\begin{abstract}
129  \pagenumbering{roman}
130
131  The design of a multi-server operating system is crucial to its efficiency, security and dependability. Increasing usage of embedded systems and microcontroller chips has increased the interest from both industrial and academic communities in microkernel-based component-based software systems. This has resulted in heightened interest in developing better systems and more advanced microkernels.
132
133  This document outlines a basic reference design for system components and interfaces for an operating system. The protocols have been designed with an \Lf like microkernel in mind and assume functionality such as interprocess communcation, capability-based access models and virtual memory support. This reference design aims to standardise the protocols for tasks often required to build a system such as resource sharing, virtual memory management and naming. Operating systems may implement these protocols and extend them to incorporate more features.
134
135  A sample implementation of the following protocols is provided in addition to this document in the form of a simple operating system which runs simple client programs. The sample implementation, named \refOS, runs on the \seLf microkernel, which adds an extra dimension of dependability. Although this document outlines the major design strategies that \refOS employs, the doxygen code documentation provides additional details about \refOS.
136
137  \vfill
138
139  \copyright~2016 Data61, CSIRO
140\end{abstract}
141
142\newcommand{\contributors}{
143    \begin{center}
144        \textbf{Contributors}
145    \end{center}
146    The following people have contributed to this document:
147    \begin{itemize}
148        \item Kevin Elphinstone
149        \item Andi Cheng
150        \item Xi Chen
151        \item Alexander Wharton
152    \end{itemize}
153
154    \clearpage
155}
156\contributors
157\tableofcontents
158
159\newcommand{\srv}[1]{\textcolor{refos_dpurple}{\texttt{#1}}}
160\newcommand{\obj}[1]{\texttt{#1}}
161\newcommand{\cp}[2]{\textcolor{refos_dpurple}{\srv{#1}\texttt{\_}\obj{#2}\texttt{\_C}}}
162\newcommand{\met}[3]{\cp{#1}{#2}{\texttt{.#3}}}
163\newcommand{\pro}[4]{
164    \met{#1}{#2}{#3} \\
165    $\Rightarrow$ \textcolor{refos_dgray}{\texttt{#4}} \\
166}
167
168\chapter{Introduction}
169\setcounter{page}{1}
170\pagenumbering{arabic}
171\label{s:intro}
172\input{intro}
173
174\chapter{Interfaces}
175\label{s:interface}
176\input{interface}
177
178\chapter{Message Protocol}
179\label{s:protocolip}
180\input{protocol}
181
182\chapter{Implementation Notes}
183\label{s:implementation}
184\input{implementation}
185
186\chapter{\label{s:concl}Conclusions}
187
188This paper presents a reference design for a multi-server operating system designed for an \texttt{L4} based microkernel. It outlines a set of minimal design abstractions and methodologies which provide a standard protocol for common tasks and sample message sequences. In addition to this document, \refOS provides a documented sample implementation of this protocol. For more information about \refOS, refer to the doxygen code documentation.
189
190%\cleardoublepage
191%\bibliographystyle{alpha}
192%\bibliography{extra}
193
194%%%%%%%%%%%% END REPORTS %%%%%%%%%%%%
195\end{document}
196
197% 
198%%% Local Variables: %%%
199%%% ispell-local-dictionary: "british" %%%
200%%% End: %%%
201