ERTOS Honours Thesis Projects
Introduction
The thesis topics listed here are available to strong undergraduate
students. They are mostly associated with research projects and
generally quite challenging; many topics have the potential to lead to a
publication, and in average we get about one paper a year from the work
of one (or more) undergraduate thesis students.
Students who are not aiming for excellence are in the wrong place
here. We are generally looking for honours candidates, or students with
outstanding performance in operating systems. Specifically we guarantee
a thesis topic to any student who has obtained a HD grade in UNSW's Operating
Systems or Advanced Operating Systems
course, no matter what their other grades are!
Note that the below list is constantly updated, new topics are added
as we identify them as work on various research projects
proceeds. Topics marked
are recent
additions.
UNSW students can access all of our recent student
theses.
Undergraduate Thesis Topics
Present topics supervised by Gernot Heiser
(official list)
- 2868: Operating-system kernel for security architecture

The UNSW-NICTA OS group is collaborating with the computer architecture
group of Ruby Lee at
Princeton University on a highly-secure computer system. It uses a
combination of hardware and software mechanisms to build a chain of
trust that enables the execution of software in a guaranteed trustworthy
environment. The seL4
kernel will be the starting point for the lowest OS layer for this
architecture. This project is to design a (formally verifiable) kernel,
based on seL4, and develop a prototype (using a simulator for the
hardware).
This topic is suitable for a research thesis.
- 2867: L4 vs Singularity

The open-sourcing of the Singularity
opeating system makes it possible to perform an in-depth comparison with
L4. Such a comparison is of significant interest (and publishable) as
Singularity and L4 are the leading examples of the two alternative
approaches to protection: using language (Singularity) or hardware (L4)
mechanisms. The thesis is to perform such a quantitative
comparison. This includes comparing performance
(IPC, thread- and process creation/deletion, lmbench, macrobenchmarks)
as well as security-related measures (eg size and nature of the trusted
computing base).
- 1445 (GH146): X server for OKL4

In recent years the X windowing system, originally designed for
desktops, has become more prevalent on embedded system. This is mostly
driven by the widespread use of X, provision of an X server therefore
significantly increases the amount of software that can be easily ported
to an embedded platoform.
The OKL4 microkernel operating system is becoming widely used in medium-
to high-end embedded systems, including mobile phones and other consumer
electronics, network infrastructure devices and others. While it can
host a virtualized Linux system, a lightweight X server that does not
depend on an underlying Linux kernel would be an attractive service for
devices that do not have megabytes of memory.
The aim of this thesis is to port an appropriate X server to OKL4. This
would involve rewriting the underlying communication mechanism to use
OKL4 primitives, rather than socket-based communication. The resulting
system is to be evaluated against native Linux.
Needs excellent C programming skills, strong OS background, ability to
cope with large and complex software systems. Prior experience with L4
(eg through COMP9242) is highly desired. Industrial thesis at Open Kernel Labs.
- 1444 (GH145): Linux multiprocessor
scalability

Linux is claimed to be scalable to 1000s of CPU. However, experience
shows that this is only really true for HPC workloads that do
essentially no system calls.
This thesis is to analyse Linux scalability, identify bottlenecks and
suggest approaches to resolve them. Specifically develop and run
benchmarks that perform concurrent system calls on multiple processors,
and measure they overhead as a function of the number of processors. Use
profiling to determine the bottlenecks.
This work is in collaboration with HP and is expected to lead to publishable results.
Day-to-day supervision by Peter Chubb.
- 1443 (GH144): Disk scheduling with latency guarantees

Modern disk controllers re-order disk requests in order to maximise
throughput. This means that on a highly loaded disk, individual requests
can experience significant latency, as much as 3 seconds. This is
unacceptable for many web servers.
This thesis is to evaluate existing approaches to disk scheduling with
QoS guarantees, and determine which form the best starting point for a
web server scenario. Design a suitable approach, and implement it in
Linux. The aim is to get a highly probably (say 99%) worst-case response
time of the order of 100ms.
This research is a collaboration with Google and has the potential to
lead to a publication. Day-to-day supervision
by members of the Gelato team.
- 1437 (GH143): Dtrace on OKL4

DTrace is a dynamic instrumentation facility originally developed for Solaris. It that allows users to augment operating-system execution with user-defined code. This thesis is to design and implement a Dtrace facility for the OKL4 microkernel.
When dormant, DTrace probes should present no performance overhead. When active, they allow the user to analyse performance profiles, call paths, and identify potential bottlenecks in the OKL4 kernel. Given the extremely short duration of most OKL4 system calls, meeting the no-overhead is a challenge.
The goal is to provide support for the following DTrace providers (or equivalent) in OKL4: lockstat, fbt, sdt, syscall, vminfo, and sched. Performance and usability of the implementation is to be evaluated. Ultimately you want to demonstrate whether such a facility makes sense for a microkernel.
Industrial thesis at Open Kernel
Labs.
- 1436 (GH142): Analysing the L4 IPC fast
path

The high-performance OKL4 microkernel uses an assembler
“fastpath” to overcome the performance problems resulting
from C code in the critical IPC system call path. Relying on assembler
code has a high engineering and maintenance cost, and makes formal
verification harder. Eliminating the need for assembler code, or, at
least, reducing the amount needed, would have significant practical
benefits.
This thesis is to analyse the IPC path in order to understand why C
compilers do not do a better job on it. It will analyse possible
(semantically-invariant) modifications of the C code, in order to
investigate how far C performance can be pushed, and whether it can be
made competitive with the assembler implementation. This study is to be
done on at least two architectures (x86 and ARM) and using several
compilers (gcc, Intel compiler, RVCT, maybe Green Hills).
A thorough and insightful evaluation should be publishable in an OS
workshop.
- 1435 (GH141): An Empirical Study of Bugs in the
Linux Kernel

Building new, more reliable, operating systems requires good understanding of the sources of failures in current systems. To date, very little systematic knowledge has been collected about types and causes of bugs in operating systems. This project will give answers to the following questions: What types of bugs are most common in system code? How and why are particular types of bugs introduced? What is the typical lifecycle of a bug?
Initially, the study will be confined to a single part of the Linux kernel -- the USB device framework. The project will involve in-depth study and reverse engineering of Linux kernel code. In addition, development of software tools for automatic code analysis may be required.
Results of the project will be incorporated in a research paper that will be submitted to one of the major conferences on operating systems or software reliability.
Day-to-day supervision by Leonid Ryzhyk.
- 1266 (GH140): Steering-wheel integrated driver controls and display for the
Sunswift 4 solar race car

Recent changes to the international technical regulations for solar racing were required to slow the cars below the road speed limit. One new regulation requires a steering wheel. By integrating the driver controls and display into a steering wheel, all driver interfaces with the car can be consolidated in a similar way to Formula 1 racing cars. In addition, the greater visibility and area for controls allows for more functionality to be built into the steering wheel, including all driver controls, data logging, speed control, and a graphical display.
This project will involve the specification, design, manufacture, integration and testing of steering-wheel based computer for a next-generation solar racing car. This will require close collaboration with the UNSW solar racing team. An ideal student would have, or have the ability to very quickly learn, PCB design and low-level software skills.
Day-to-day supervision by David Snowdon
- 1265 (GH139): Accurate data acquisition for the Sunswift 4 solar race car

The Sunswift solar car has the most advanced electrical system of any solar racing car in the world, with fully-custom electronics feeding real-time telemetry information to the support crew during the race. The car has a 30kg Lithium Polymer battery pack running at up to 164V. Estimating the charge left in the batteries is crucial to implementing good strategy during the race (i.e. never over-filling, or running the batteries flat except at the start and end of the race respectively).
This project would focus on implementing a battery-state-of-charge estimation system for Sunswift electrical systehttp://www.sunswift.com/m. The system would connect to the car's control area network (CAN), allowing these measurements to be read by the driver and wirelessly by the support crew. While the exact approach would be dependent on the student, one method requires an integration of the current into and out of the battery, along with some linear modelling. Ideally, other factors, such as the voltage, would be determined to provide multiple methods of characterisation. Depending on the aptitude of the student, a large number of other useful sensors could and should be developed, including tyre pressure, temperatures, tilt, acceleration, etc. all connected to the car's telemetry network, feeding information to the driver and support crew.
This project would require close collaboration with the UNSW solar racing team.
Day-to-day supervision by David Snowdon
- 1264 (GH138): On-race strategy and data analysis software for the Sunswift 4 solar race car

Modern solar racing cars have a limited battery storage (equivalent to about a third of a day's energy needs, running at 100km/h). This charge must be managed over the course of a race in order to complete the race most efficiently (similarly to the way a a Formula 1 team must manage the car's fuel through the duration of a race). Additionally, real-time telemetry data from the car must be analysed to determine the car's correct operation, and the severity of any faults. Data about the course, data being transmitted from the car itself, data from sensors around the support fleet (wind speed/ direction, solar radiation, road conditions, etc), and anecdotal data from the support crew can all be taken into account.
This project would first of all develop models for the behaviour of a solar car. A testing scheme would be developed and data gathered (via on-road testing) to characterise the models. A software system would be developed to analyse data coming from the car with respect to these models. Finally, methods for choosing the speed at each point along a pre-surveyed course would be implemented. The entire package should be tested on-road with Sunswift 3 in preparation for future solar car races. Depending on the success of the strategy decisions, the optimal speed could be fed back to the car's cruise control system in real-time, allowing for intelligent, efficient, autonomous cruise control.
This project would require close collaboration with the UNSW solar racing team. Day-to-day supervision by David Snowdon
- 1263 (GH137): Maximum power point tracking for the Sunswift 4 solar race car

Maximum power point trackers allow a solar panel to operate under its optimal operating conditions. They are a power electronics device which converts between the panel's optimal operating voltage and the output voltage which is determined by the battery state of charge. MPPTs have generally been a weak point of the Sunswift race cars. The team have designed a highly efficient (>98%) MPPT, with reliable hardware, but the control software has a number of issues which causes the devices to behave sub-optimally.
This project would, depending on the student's aptitude, first of all perfect the control software for the MPPTs in Sunswift 3. Secondly, implement new features such as diagnostics (IV curve sweeps) and improved tracking algorithms (aiming to improve the solar array power output), and explore efficiency-increasing behaviours (e.g. synchronous rectification). Lastly, depending on the available time, the student would look at implementing improved MPPT hardware based on a novel power-electronics architecture.
This project would require close collaboration with the UNSW solar racing team.
Day-to-day supervision by David Snowdon
- 1221 (GH135): Forensic-friendly operating system

Computer forensics deals with extracting information from computers
after crimes (be it that the computers were used as a tool by a
criminal, or that the computer itself is the crime scene). It also is
about the design of computer systems to support forensic analysis. This
thesis investigates microkernel-based system designs in this
context. For example, given formally verified microkernel (that has been
shown to be secure against attempts to compromise it), how can this be
leveraged into constructing a system where it is impossible to destroy
evidence of break-ins.
The thesis will survey the relevant literature of
computer forensics, propose a design of a forensic-friendly
microkernel-based system, and implement a prototype.
- 1180 (GH134): Darbat Resource Management
When virtualising an operating system, getting it working is only half
the story. Darbat is a
para-virtualised version of Darwin, the kernel of Apple's Mac OS X
operating system. Darbat runs on the L4 microkernel. Several Darwin
instances can run concurrently on the same L4 kernel.
This thesis will involve examining resource management issues in
Darbat. It will require examining static policies such as partitioning
as well as dynamic techniques for scheduling and VM management. An
analysis of the trade-offs involved between performance and security
will be required. Optionally, this project may involve building a user
interface for runtime management of resources.
- 1179 (GH133): Darbat Aqua
Darbat is a
version of Darwin, the kernel of Apple's Mac OS X operating system, on
the L4 microkernel. Currently Darbat supports a single-user shell prompt
as well as user input device drivers, however it can not run the full
OS X GUI.
This project involves putting in the necessary features to the Darbat
virtualisation layer to support running OS X GUI applications. This
will require working at the L4 level as well as Darwin kernel hacking.
- 1178 (GH132): Crashable I/O Kit Drivers
Darbat is a
version of Darwin, the kernel of Apple's Mac OS X operating system, on
the L4 microkernel. I/O Kit is the device driver framework for OS X,
including the actual drivers. Darbat presently runs all I/O Kit device
drivers in a single user-mode process on L4.
This thesis aims to run multiple I/O kit processes on a single machine,
in order to confine device drivers. Part of this thesis will involve
measurement of different system architectures to evaluate the trade-offs
in user-level I/O kit device drivers. The major goal is to allow a
system to continue with minimal disruption when a non-essential device
driver crashes.
- 1038 (GH129): Afterburning Linux on Itanium
Afterburning, also called pre-virtualisation,
is a way to
semi-automatically virtualise an operating system to run in a virtual
machine. Unlike the better-known para-virtualisation technique, the
result is an OS binary that can run on any hypervisor as well as on bare
hardware. Yet, pre-virtualisation achieves the same performance as
para-virtualisation.
Pre-virtualisation has been fully implemented on x86 hardware in a
collaborative project between NICTA, UNSW and the University of
Karlsruhe. On Itanium, the NICTA/UNSW so far has produced a partial
implementation, that does not yet produce a binary that can run on
hardware as well as any hypervisor. There are a number of reasons why
the x86 approach doesn't easily translate to Itanium.
This thesis is to design, implement, benchmark and optimise full
pre-virtualisation on Itanium, for bare hardware and the Xen and vNUMA
hypervisors. If time allows, the L4 microkernel and Linux can also be
supported as hypervisors.
Day-to-day supervision by Peter Chubb or Matt Chapman
- 835 (GH125): Fault-tolerant embedded system
Microkernels provide hardware-enforced encapsuation of system
components. This provides fault containment and a basis for fault
tolerance.
This thesis is to inviestigate approaches to component-level fault
tolerance applicable to the L4/Iguana embedded operating system and the
CAmkES component architecture. It is then to design, implement, test and
benchmark a fault-tolerant prototype demonstrating the viability of one
or more of those approaches.
- 834 (GH124): Elan compiler for L4/Iguana
Elan is an elegant and high-level language which was extensively used in
L3, the predecessor of L4. Source for an Elan compiler for L3 (written
in Elan) is available. Availability of an Elan compiler is a
pre-requisite for migrating existing commercial L3 installation to the
L4/Iguana operating system.
This project is to port the Elan compiler to Linux and re-target it for
L4/Iguana. As the compiler itself is written in Elan, this will require
bootstrapping it on the new environment.
- 741 (GH122): T-Kernel on L4
μITRON is
an API specification for a real-time OS kernel that is widely used in
the Japanese and Korean industry. The basic μITRON specification is
aimed at MMU-less micro-controllers. An implementation of this
``unprotected'' μITRON on L4 has recently been done by a local
student.
In practical terms, however, running L4 on hardware without memory
protection is pointless, and hence an implementation of unprotected
μITRON on L4 is of limited practical use. There is a ``protected''
version of the μITRON API (for microprocessors with memory
protection), but it is presently available in Japanese only. Moreover,
it seems that it has found little uptake in industry. Instead, a new
standard has emerged in the TRON family: the T-Engine, which
is a standardised embedded platform, with a standard OS, the
T-Kernel.
This project will analyse the T-Kernel specification, understand how it
can be mapped to L4, and design and implement an L4-based T-Kernel
prototype. This may be based on the existing μITRON implementation.
- 724 (GH118): Sunswift components
A number of Sunswift issues that can be tackled by a thesis student
include:
- Improved CAN nodes (less power consumption, more isolation,
utilise improved controllers to improve connection reliability)
- Design and build tyre-pressure sensors
- Reliable wireless communication with support vehicle
The actual thesis topic would be decided depending on the skills and
interests of the student.
Day-to-day supervision by David Snowdon
- 721 (GH115): Optimiser for Itanium System Code
Low-level Itanium system code, such as TLB miss handlers, often needs to
be written in assembly code. Instruction scheduling is explicit in Itanium
assembly code, so good scheduling is time-consuming, makes the code
difficult to read, and requires a separate implementation for each
processor model. We suggest a better solution would be to write the
assembly code in "unbundled" form, and implement an optimisation tool
which uses some appropriate constraints and heuristics to decide how to
order and bundle instructions.
Day-to-day supervision by Matthew Chapman
- 605 (GH110): Multi-kernel fault tolerance
Fault tolerance of computer systems is important in mission-critical
applications. A number of standard approaches to fault tolerance exist,
including hardware- and software redundancy. However, protection from
redundancy-based approaches is limited, as long as the redundant
components are identical, and thus likely to fail in exactly the same
way at the same time. A more reliable approach to redundancy-based fault
tolerance would employ components that are independently engineered to
the same (or compatible) specification.
While this is a reasonable approach at the application software level,
the cost of independently manufactured operating systems is normally
prohibitive. Given that failure of the operating system is generally
fatal for the system, this implies serious limitations for practical
fault tolerance.
However, the small size and simplicity of a microkernel could make
kernel-level redundancy feasible. Furthermore, on some architectures
there already exist independently engineered implementations of the L4
microkernel, namely L4Ka::Pistachio and Fiasco. This thesis is to
investigate the use of these independent kernels as a redundant
fault-tolerant operating systems platform on a suitable SMP or SMT
system, and design and implement a prototype.
If successful, this work can lead to a landmark publication.
- 594 (GH109): BLUEsat OS
Design and implement an operating system for the BLUEsat student
satellite project. The operating system will require a high degree of
fault tolerance, including resilience against memory errors, and a very
high degree of robustness.
- 498 (GH99): Multics on modern
hardware
Forward-port Multics to Itanium or
64-bit PowerPC.
While this topic had originally been posed as a joke (which not everybody got), the recent release of Multics sources means that this could be looked at seriously. Nevertheless, it isn't for the faint-hearted!
- 488 (GH96): Sunswift OS
Design and implement an L4-based operating system for Sunswift, the UNSW
solar racing car. Sunswift features a CAN-based control system with a
PLEB for central coordination and external communication. The PLEB
presently runs Linux and L4.
This project will build a new, lightweight OS for Sunswift,
specially designed to meet the car's requirements for real-time control,
communication and reliability. It will be based on Iguana and
serve as a demonstrator for the groups embedded-systems framework.
Suitable for a student with a good OS background, L4 experience and
an interest in embedded systems and interfacing to hardware.
- 486 (GH94): JVM on L4
Port a Java virtual machine (JVM) to L4. This will provide a
minimal Java environment for L4-based embedded applications and
constitutes an important step into making L4 an ideal base for building
embedded systems.
- 293 (GH85): L3 on L4
L3 is a persistent operating system which has been in commercial use for
20 years. It is also in a sense the predecessor of L4. However, L4 is a
very minimal kernel, which requires general system services, such as
those provided by L3 (or UNIX) to be provided by user-level
servers.
The existing user base of L3 presents a potential user-base for an
L4-based system, provided a (more-or-less) L3-compatible system could be
provided on top of L4. The purpose of this thesis is to examine the
structure of L3, design an L3 emulation on L4, and implement a first
prototype. Schönbeck, the present L3 maintainers, have agreed to
help.
- 57 (GH46): Port L4Ka::Pistachio to SuperHitachi or
MC68000
Port Pistachio, the latest L4Ka kernel, to the SuperHitachi or Motorola
68000 architecture. This will cover the last outstanding mainstream
general-purpose architectures and make L4Ka a truly platform-independent
kernel. It will also open the way for deploying L4 in the Japanese and
the embedded industry.
Serious operating system kernel hacking.... Only suitable for
students with very strong OS background and a good understanding of
architectural issues.
I will not take on students who have not shown a convincing performance
in COMP3231 ``Operating Systems''. I normally expect students to have
done COMP9242 ``Advanced Operating Systems'', although I make exceptions
in special cases.
Most topics can lead to publications.
Background
The following projects are related to embedded systems applications
and componentised embedded operating systems.
We are looking at a wide range of embedded applications in order to
get a feel for the complexity and issues involved in designing and
building such systems. We will use this experience to aid in the
further design and development of an embedded systems framework (a software
framework for building and deploying embedded applications) and
embedded component architecture (a component-based programming
architecture especially targeted at embedded systems).
Topics
-
IK24: Non-C languages on L4

Currently almost all software for L4-based systems is written in C.
There are however many languages whose runtimes or interpreters could
be ported to run on L4 as well. For example, Python was ported to
Mungi, an early version of
Io was made to run on L4, as was a very
simple version of the Squeak Smalltalk system,
and Lua was also ported
to L4/Iguana. However, none of these run on current versions and, as
such, we are still limited to using C for programming all L4-based applications. In
this project you will choose a favourite language and
port its runtime or interpreter and critical libraries to run on L4. Furthermore you
should integrate the language into the L4 environment such that code
written in that language can invoke L4 system calls, perform IPC and
transfer data to processes implemented in other languages.
(see also GH94: JVM on L4)
-
IK23: Shared resources in an microkernel-based OS

One of the key services that an OS provides is a managing access to
shared resources. For example, a file system manages access to shared
disk space, a network stack manages access to a network device, a
window system manages access to the display, etc. In a modular,
microkernel-based OS, these shared resources are managed by user-level
services. In this project you will investigate ways of modelling such
shared resource managers within the CAmkES component framework on
L4 and develop a suitable model for building such services in a
componentised environment. You will assess the suitability of this
model by designing, implementing, and evaluating one or more such
services (e.g., a file system, a network stack, etc.).
-
IK22: Component Architecture on Secure Microkernel

The seL4 kernel is a new secure version of the L4 microkernel. CAmkES is a
component architecture designed for building microkernel-based
operating systems. Currently CAmkES is based on L4 and does not
address security issues. The aim of this project would be to get
CAmkES working with seL4 and then explore the ways that seL4 security
features can be leveraged by CAmkES to build secure embedded systems.
-
IK15: Video game console
Design a video game console system (based on CAmkES and L4) that is
programmable but cannot be 'hacked' i.e., games cannot be used to
override the default OS or other security software.
-
IK14: Programmable security camera
Design and build a networked and programmable security camera based on
L4/Iguana. It is basically a regular security camera that can be
programmed to do image manipulation, analysis, etc. directly in the
camera. There are numerous security issues involved, e.g., there must
be a tamper proof way of marking images as originals. There are also
real-time issues to deal with.
-
IK11: Display architecture for L4
Explore the possibilities for a display (GUI) architecture for
L4/Iguana. It should be flexible so that it can be used on many
different kinds of (embedded) displays (PDAs, phones, watches, media
players, etc.). The project will include exploring existing embedded
graphics display architectures (e.g., QT/embedded)
and evaluating whether basing such an architecture on L4/Iguana would
provide benefits or drawbacks.
-
IK10: Click Modular Router on L4
Investigate, design and implement a Click compatible modular network router
architecture on L4 making use of the CAmkES component framework.
Click is a software architecture for building network router software
from small, reusable, software components, while CAmkES is a
component-based framework for developing L4-based systems. Given
the componentised nature of both Click and CAmkES, it should be possible
to define a Click router in terms of CAmkES components. The project will
require you to design a framework on L4 that will allow Click
components to be reused to build network routers. Besides designing
and implementing this framework, you will also reuse existing Click
components to build several variations of network routers and
compare the performance of your implementation to existing Click
implementations.
Projects
-
SMP01: C++ source code analysis for real-time systems
An essential step in the estimation of the worst case execution times of
software, is the establishment of a control-flow-graph of the software.
This can be either achieved by analysing the source or the object code
or the traces provided by a program execution. However, neither analysis
alone yields the correct picture. This source code provides only a rough
picture, due to the results of optimisations performed by the compiler,
while many issues like, for example, indirect branches and calls, can
not be resolved by looking at the object-code alone. The analysis of
traces is unsafe as only observed transitions between basic blocks
will be considered. In order to apply a worst case execution time
analysis on L4 micro kernel code, a parser of a subset of C++ code
is essential. This should establish the control flow graph of the
source code and yield additional information, which is otherwise
hard to establish from the object code, like loops with multiple
exit or continue conditions, bounds on the number of loop iterations
were possible, possible jumps/calls to multiple destinations in the
code. This step will also be used to automatically introduce
instrumentation into the source code.
-
SMP03: Fusion of Several Control Flow Graphs
Structural analysis of code is one of the major steps for the real-time
analysis of code. There are several approaches to this problem, but none
of these is ultimately right. The structural analysis of source code,
for example, suffers from optimisations done by the compiler, which
might change significantly the structure of the code. Object code
analysis, in turn, has considerable problems of identifying indirect
function calls. Within this project a mechanism to fuse the
information available in several control flow graphs available in an
XML file has to be designed and implemented. This requires some
pattern matching and rules how to integrate conflicting information.
-
SMP04: Coordination Instance for a Detailed Execution-Time Analysis
One aspect of the estimation of the longest execution time of real-time
software is the influence of the implementation of a given algorithm.
Often small changes in the implementation can result in major changes in
the overestimation. This project is focussed on identifying possible
sources of overestimation and inform the user, where in his code, hand
optimisation looks most promising. Typical examples are code, which is
only executed in the first iteration of a loop and thus lead to severe
overestimations, or small if-then-else constructs, which may be recoded
to allow for larger units to be analysed. Supervision will be directly
by a Senior Researcher.
-
SMP05: A Real-Time Programmers Guide Dog towards Better Predictable
Software
One aspect of the estimation of the longest execution time of real-time
software is the influence of the implementation of a given algorithm.
Often small changes in the implementation can result in major changes in
the overestimation. This project is focussed on identifying possible
sources of overestimation and inform the user, where in his code, hand
optimisation looks most promising. Typical examples are code, which is
only executed in the first iteration of a loop and thus lead to severe
overestimations, or small if-then-else constructs, which may be recoded
to allow for larger units to be analysed. Supervision will be directly
by a Senior Researcher.
-
SMP06: GUI Implementation for an Analysis Tool
The worst-case execution-time analysis of code is performed by many
different steps. Furthermore there are a number of different views the
person analysing a piece of code may have. This GUI would need to
coordinate the analysis steps and provide a suitable extensible user
interface to access all available informationen in an efficient way and
allow the user to interact with the analysis. The
project will be in close collaboration with a senior researcher.
Projects
-
GWK01: Formal Model of an ARM Processor in
Isabelle/HOL
Develop a specification of an ARM processor (e.g. Xscale) suitable for
use in formal verification of programs. A similar such model for an
MMU-less ARM6 core has been developed by Anthony Fox at Cambridge in the
HOL4 system. This should be examined for its usability, and for what is
missing with respect to a full model of an Xscale processor. If time
allows, an instruction-set level simulator should be generated from the
model. This project is an integral part of the formal verification of
the L4 micro kernel at NICTA. It connects cutting edge OS research with
real-world large-scale system verification. You will work with the
developers of L4 and Isabelle in an international team of PhD students
and researchers in NICTA's ERTOS group.
-
GWK02: Verifying the core of standard C library in Isabelle/HOL
You will work with a state-of-the-art interactive theorem prover
(Isabelle/HOL) to formally verify the functional behaviour of a small
number of basic C functions like memcpy, memset, etc. The verification
of these functions is at the basis of any undertaking that wants to
provide guarantees about programs implemented in C. This project is an
integral and important part of the formal verification of the L4 micro
kernel at NICTA. You will work with the developers of L4 and Isabelle in
an international team of PhD students and researchers in NICTA's ERTOS group.
-
GWK03: Formal Model of L4 IPC and/or Threads in Isabelle/HOL
Develop a specification of a subsystem of the L4 microkernel in the
theorem prover Isabelle/HOL. L4 provides three basic abstractions -
address spaces, threads and IPC. An abstract model has been developed
for address spaces and the virtual memory subsystem, the aim of this
project is to provide a similar model for one or both of the remaining
abstractions. In addition, an investigation into high-level properties
of this model will be undertaken, together with the development of
proofs that the models satisfy these properties. If time allows, the
model will be refined towards the L4Ka::Pistachio implementation on
ARM. This project is an integral part of the formal verification of the
L4 micro kernel at NICTA. It connects cutting edge OS research with
real-world large-scale system verification. You will work with the
developers of L4 and Isabelle in an international team of PhD students
and researchers in NICTA's ERTOS group.
Projects
-
KJE15: A Secure Bootstrapper for the seL4
The seL4 microkernel is a high assurance microkernel capable of acting
as a seperation kernel when it and the encompassing system is
instantiated correctly. The goal of this thesis is to develop a simple
component model that can specific an initial system state - i.e. the
servers and applications that will run on the microkernel. THe
component model is then used to generate the boot strapping code to
instantiate the system with the specified seperation guarantees. The
project may involve evaluating the existing CAMKES framework for the
component model, and looking at formal models and guarantees for both
the component model, and the generation of the boot strapper.
-
KJE16: Linux as a component.
NICTA has various versions of Linux that run para-virtualised on
various versions of micro-kernels developed here at NICTA. However,
the connection between Linux and the platform is rather ad-hoc, which
makes is difficult bring Linux into the principled componet framework
(CAMKES) developed here at NICTA. This project would involve examining
the interface between the micro-kernel and the support infrastructure
to allow Linux to be just another component in the CAMKES framework.
-
KJE17: ARTEMIS robotic clarinet player
NICTA is entering the ARTEMIS intrument playing robot
competition. This project involves developing the system software side
of the robot, with an eye to making it general enough to use it for
future entries. It involves low-level embedded controller programming,
Linux kernel programming, and application programming. A familiarity
with music is also helpful.
How to apply:
Contact the relevant supervisor.
Note: We promise a thesis topic to every interested student who
has obtained a HD grade in COMP3231/COMP9201 Operating Systems or
COMP9242 Advanced Operating Systems. If necessary we will define
additional topics to match demand.
We will not turn down any students doing exceptionally well in OS
courses. However, this does not mean that an HD in OS or Advanced
OS is a prerequisite for doing a thesis with me. Interested
students with lower OS marks are welcome to talk to me if they feel they
can convince me that they will be able to perform well in an OS
thesis.
Keep in mind that these topics are all research issues and generally at
the level of Honours Theses. They are not suitable for marginal students
or students with a weak understanding of operating systems. We expect you
to know your OS before you start.
Past thesis reports and DiSy thesis rules (internal access only)
Postgraduate thesis topics:
Undergraduate thesis topics are also suitable for coursework Master's
projects. Same conditions apply: You must have a pretty good track
record in OS courses.
Information about research theses