Find out how ICT can support biomedical and clinical researchFind out more. Managing complexity by developing new tools and processes. Managing Complexity

The University of New South Wales

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

UNSW students can access all of our recent student theses.

Undergraduate Thesis Topics


Present topics supervised by Gernot Heiser (official list)

  • 3116: OS for a Dataflow Computer NEW
    NICTA is involved in a project to build a peta-scale computer based on the concept of a dataflow machine. This roject is to re-examine traditional OS functionality in the context of a totally different computing paradigm, and identify the core functions an OS for such a machine should have. It is furthermore to evaluate the existing hardware design for its ability to meet the requirements of the OS. A basic OS prototype is to be developed on a simulator for the architecture.
    Novelty and Contribution: Peta-scale (million GFLOPS) computing is a strategic initiative of the US government, with significant funding attached. Present computing architectures will not scale to PFLOPS, hence the renewed interest in dataflow architectures. This ToR is part of a large project to build a peta-scale computer (details are under NDA).
  • 3115: OKL4 microvisor as a systems platform NEW
    The OKL4 Microvisor is a new platform which combines the properties of a hypervisor and a microkernel. This project is to evaluate to which degree the Microvisor fulfills the functions of a classical microkernel, in that it should be able to support the construction of general systems with a minimal trusted computing base. Specifically evaluate its ability to support a microkernel-oriented component system, such as CAmkES, at overhead comparable to L4 microkernels.
    Novelty and Contribution: The OKL4 Microvisor has already demonstrated its suitability as a hypervisor, with measured overheads for para-virtualized Linux far lower than for any other hypervisor where performance data is available. Demonstrating competitive performance in classical microkernel-based systems would prove that the Microvisor is truly the convergence point of hypervisors and microkernels, and settle the old hypervisor vs microkernels debate for good.
    more info
  • 3114: Native Real-time Java on L4 NEW
    Ovm is a real-time capable JVM for use in embedded systems. This project is to port Ovm to an L4 platform (seL4 or OKL4) to enable the use of Java components in safety- or security-critical environments. The performance and real-time properties of the port are to be evaluated.
    Novelty and Contribution: Java, owing to its type safety, is an attractive language for programming critical systems. This usually requires real-time capability, which, in usable form, has only recently become available in JVMs, Ovm being one of them. To date, none has been ported to a secure microkernel that provides a small trusted computing base. The combination of real-time Java and L4 microkernel will provide new opportunities for trustworthy computing.
  • 3113: Global scheduling in virtualized systems via semantic patches NEW
    Virtual machines inherently introduce a hierarchical scheduling approach, where the hypervisor schedules VMs and guest OSes schedule processes. This approach does not meet the requirements of embedded systems, where a global view of priorities is required.
    This project is to use semantic patches, as supported by the Coccinelle tool, to remove the scheduling decisions from a para-virtualized Linux guest and integrate them into a global scheduling policy. The virtualization platform used will be the OKL4 Microvisor.
    Novelty and Contribution: Virtualization is getting increasing traction in embedded systems, but the hierarchical scheduling model limits applicability and leads to ugly hacks and workarounds. Semantic patches present a potentially clean approach to collapsing the scheduling hierarchy, without increasing engineering effort. This will open new application areas for virtualization in embedded systems.
    more info
  • 2978: VT-x support for OKL4
    OKL4 uses para-virtualization to run Linux, even on x86, where pure virtualization is enabled by the VT-x extensions. This makes sense on performance-sensitive mobile devices, as para-virtualization has performance advantages over pure virtualization (see Adams and Agesen, ASPLOS'06). However, there are uses where the convenience of running an unmodified OS binary outweighs the performance penalty.
    This project is to evaluate this tradeoff for the OKL4 platform. It will enable the execution of an unmodified Linux binary on the OKL4 hypervisor, and compare the performance with OK Linux (using lmbench and other benchmarks as appropriate).
    This topic i quite open-ended, with in-depth performance analysis and performance tuning, particularly when making use of more recent VT-x features, such as two-level virtual-address translation.
  • 2977: Efficient concurrency control for high-performance microkernels
    Concurrency control in OS kernels for multicore (CMP) or multithreaded (SMT) processors requires locking, which introduces complexity and overheads. Both can be minimised by either of two extreme approaches: a big kernel lock (single-threading the whole kernel) and multikernel (avoiding shared kernel data alltogether and using a message-passing approach).
    This project evaluates both schemes in the context of a high-performance microkernel (featuring very short system calls) for present and near-future high-performance embedded hardware. The approach will use simulation, measurements and analytical models as appropriate to determine which approach presents the best tradeoff for a particular hardware platform.
    Novelty and Contribution: Most OS kernels use more-or-less fine-grained locking, as a big lock is thought not to scale. However, unlike most kernels, L4 microkernels are designed for very short system calls, which make a big lock competitive for small to moderate numbers of processor. The multikernel approach is mostly attractive for high numbers of cores and high communication latencies, none apply to embedded processors.
    No systematic evaluation of the tradeoffs has been made to date. Given that CMPs are becoming widespread in the embedded space, and the commercial success of the L4 microkernel, this study is topical and relevant.
  • 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.

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)

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.
  • 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.
  • IK31: Secure display architecture for seL4
    Explore the possibilities for a display (GUI) architecture for seL4. The key property of such a display architecture is that it allows mutually distrusting systems to access the display without being able to observe or manipulate each others output, nor to be able to spoof one another's output. The architecture should also 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 secure display architectures (e.g., QT/embedded) and evaluating whether adopting such an architecture on seL4 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.

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 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.

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.
    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