Skip to main content
The University of New South Wales

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.

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 NEW are recent additions.

UNSW students can access all of our recent student theses.

Undergraduate Thesis Topics in Operating Systems and Formal Methods


Undergraduate Thesis Topics in Operating Systems and Formal Methods

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!


Present topics supervised by Gernot Heiser

  • Power management on seL4 NEW

    Investigate the requirements for doing power management, i.e. dynamic voltage and frequency scaling (DVFS) and the use of core sleep states on the seL4 microkernel. Understand how power management interacts with seL4's new scheduling model, which uses scheduling contexts for managing time allocation (so-called MCS kernel as it is designed to support mixed-criticality systems). Design a model for securely exporting access to the privileged power-management instructions to usermode.

    Based on the above, design a usermode power management framework for seL4, implement and evaluate it.

  • Optimise seL4 multicore IPC performance NEW

    IPC on single-core seL4 is highly optimised. On multicore, IPC should only be used intra-core, and that case should ideally be no slower than single-core. In particular, concurrent IPCs running on different cores should not interfere. In practice, IPC operates inside the kernel lock, which leads to artificial contention (and thus performance degradation) and slows down even the uncontented case.

    This project is to investigate the changes needed to take the IPC fastpath outside the kernel lock, and optimise and evaluate performance. Of particular concern are the exact conditions under which IPC can be performed outside the lock, and what is needed to ensure this is safe, considering that cross-core IPC remains a valid operation (which would have to be locked, of course). The design and implementation must be discussed with verification exterts to ensure that verifying the kernel remains feasible.

  • Optimise seL4 cold-cache / worst-case performance NEW

    seL4 IPC operations are highly optimised for hot-cache (best case) but far less so for bad/worst-case. This project is to first determine present cold-cache performance by extending the sel4bench suite for cold caches. It is then to analyse and understand what limits present performance and is to improve it, by ensuring cache-friendly datastructure layout and other optimisations. The emphasis will be on the IPC, interrupt and exception ast paths, optionally looking at other parts of the code as well (especially slow paths).

  • Multicore locking protocols on seL4 NEW

    Evaluate multicore locking protocols with respect to their suitability for the mixed-criticality model implemented in the new seL4 kernel. Needs more detail and references ;-) Implement and analyse performance.

  • Secure, Android-based OS for IoT NEW

    Android is popular as an IoT OS, but its security is dubious, given its large trusted computing base (TCB). A better solution could be built on seL4, using Android to support a programmer-friendly interface, and also leveraging Android for user interfaces. This project will develop a proof of concept of such an OS, where Andriod runs in a virtual machine on seL4. It will support secure apps, where all critical operations are performed outside the Android environment in seL4-provided sandboxes. These communicate with the user via seL4-protected secure paths to user-interface (UI) devices (touchscreen, microphone, speaker) and with the internet via seL4-protected encryption that allows secure tunneling of data through Android’s networking infrastructure.

  • Performance limits of protected-mode real-time OSes NEW

    Most commercial protected-mode real-time OSes (RTOSes) are &lquo;fully preemptible” (in reality they are mostly preemptible, with non-preemptible critical sections). In contrast, seL4 is by design non-preemptible, but uses an incremental consistency design that allows supsending and restarting long-running operations if interrupts are pending. This design leads to reasonable worst-case interrupt latencies.

    This thesis is to explore the performance limits of the non-preemptable approach, and compare it to the mostly-preeemptable one. Specifically, it is to investigate what iterrrupt latencies could be achieved in seL4 if there were no verification-provided constraints on the design and implementation, and the API could be simplified as needed. The features that must be kept are capability-based protection and the present scheduling model. Then compare this to a kernel that runs with interrupts enabled as much as possible, and uses interrupt-protected critical sections where possible. This investigation is initially to be performend in a uniprocessor context, extending it to multicore is a bonus.

    The thesis will perform a theoretical analysis of what an optimal non-preemptible system system would look like, and long the biggest non-preemptible sections of the mostly-preemptible system would be. This should lead to a on-paper comparison of the performance limits of the two approaches. This will be complemented by an experimental part, where the existing seL4 code base is (possibly drastically) simplified to demonstrate the two approaches, and perform best-case and worst-case latency measurements.

    This topic requires a very good understanding of OS implementation trade-offs and the effect of hardware. It also requires strong systems-programming skills. A convincing execution should lead to publishable results.

  • 3823: Capability-oriented programming interface for seL4 NEW

    The formally verified seL4 microkernel is arguably the world's most secure operating system. Capability-based access control is a core enabler of security, as it provides fine-grained control over access rights.

    Existing middleware for seL4 provides a programming model similar to traditional (Posix-like) systems, effectively reverting to ambient authority and thus abandoning most of the security advantages of capabilities. Instead, seL4 should be complemented with a programming language that uses object capabilities, and they should be mapped to seL4 capabilities.

    The Jessie language from Agorics, designed by capability-expert Mark Miller, might be an excellent candidate, it is a tiny JavaScript subset aimed at supporting safe mobile code. Jessie is supported by SES (Secure EcmaScript) as a runtime and the SwingSet Vat host that models protection domains modelled after the KeyKOS capability-based OS. seL4 has borrowed or adopted a number of concepts from KeyKOS, so this model is likely to map well to seL4.

    This project is to analyse the Jessie/SES/SwingSet framework and understand how to map it to seL4. It will design and implement such a mapping and conduct a performance and security analysis.

  • 3586: Sloth vs eChronos

    eChronos is an RTOS designed for deeply-embedded systems with no memory protection and single-mode execution, that is being developed and formally verified by Data61. Sloth is a system for a similar application domain, which takes the unusual approach of leaving all scheduling to hardware, by running everything in an interrupt context. This limits the use of Sloth to processors where interrupts mode can be entered by software. This project is to evaluate and quantify the performance advantage of Sloth over eChronos.

    Novelty: Sloth is presently the world's fastest RTOS. eChronos, which has the advantage of formal verification and less dependence on hardware features, is a more traditionally-designed RTOS. This project will determine whether the performance advantage of Sloth is significant enough to justify the different (and more limiting) design.

    Outcome: A better understanding of RTOS design tradeoffs, eminently publishable results.

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.

Present topics supervised by Ihor Kuz (official list)

Topics

  • 3287: Secure terminal on seL4
    seL4 is a formally verified microkernel for building secure systems. A key element of such systems is secure access to terminal I/O (i.e. the screen, keyboard, and mouse), which means that different applications can get user input and output without worrying that other malicious applications (such as a key logger) can interfere. Nitpicker is a secure display architecture developed at Technical University of Dresden. In this project implement a version of Nitpicker for seL4, and use it as the basis for building a secure windowed terminal. Evaluate the resulting system by analysing its functionality, performance, and security.
  • 3288: seL4 AUTOSAR
    seL4 has been developed to be the basis for building secure systems, however, it can also be used as the basis for safety-critical systems, such as those used in cars. With seL4 in such systems, it becomes possible to provide guarantees about memory isolation properties, which is crucial for safety-critical systems. Besides memory isolation, seL4 also has known timing properties, making it possible to give timing guarantees, which is important for real-time systems such as those found in cars. The goal of this project is to investigate the role that seL4 can play in such systems by implementing the AUTOSAR automotive framework to use seL4 as the underlying OS.
  • 3289: Qubes on seL4
    Qubes is a new operating system architecture for developing secure desktop systems. It is based on isolation, running each application in a separate virtual machine so that they cannot maliciously interfere with each other. However, Qubes is based on Xen, which is a relatively heavyweight, and unsecure, hypervisor. Qubes would be much better if it ran on, and relied on, seL4 for its isolation. In this project you will implement a version of Qubes on seL4, and evaluate it by running various applications to analyse the security benefits that seL4 provides.
  • 1268: 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 seL4 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.).

Related topics supervised by Gerwin Klein (official list)

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 Data61. 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 Data61's TS 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 Data61. You will work with the developers of L4 and Isabelle in an international team of PhD students and researchers in Data61's TS 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 Data61. 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 Data61's TS group.

Related topics supervised by Kevin Elphinstone (official list)

Projects

  • 2981: Secure microkernel-based web server using Linux instances
    Our research group has developed a formally verified secure microkernel that supports virtualisation. We have a version of Linux that runs on top of this kernel. The goal of this project is to develop a secure web server platform consisting of a instance of Linux running in the DMZ and an instance of Linux running on the trusted network - all actually running on the same machine using the secure microkernel to separate them. This project has the chance to be deployed as a demonstrator for our groups web site.
  • 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.
    Data61 has various versions of Linux that run para-virtualised on various versions of micro-kernels developed here at Data61. 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 Data61. 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
    Data61 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 for OS/FM related topics: 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 for OS and FM related topics.

Information about research theses

Served by Apache on Linux on seL4.