ERTOS - 1 Haskell on L4/Iguana
NICTA Project - Dr Kevin Elphinstone (Kevin.Elphinstone@nicta.com.au) and Philip Derrin (Philip.Derrin@nicta.com.au)
One approach to developing more reliable systems is to use a type-safe programming language. Another approach is to formally model and verify the correctness of a system. Haskell is a type-safe functional programming language whose semantics are close to those used for formal model and verification. Having the ability to use Haskell as a prototyping (and even the eventual implementation) language would open up the opportunity to explore the combination of these two approaches to building reliable systems.
Haskell is currently unavailable on a microkernel-like environment, and a successful project would enable its use in a new application domain to tackle real problems in building systems. Expected outcomes of the research include:
- Identification of issues in cross compiling Haskell to an embedded platform.
- A cross compilation environment for Haskell, and a port of the Haskell runtime to Iguana.
For further information, please contact the supervisor or consider the following:
ERTOS http://www.ertos.nicta.com.au/
Iguana http://www.ertos.nicta.com.au/software/kenge/iguana-project/latest/
Haskell http://www.haskell.org/
ERTOS - 2 Client-Server vs Migrating Threads
NICTA Project - Professor Gernot Heiser (gernot@nicta.com.au) and Dr Ihor Kuz
(Ihor.Kuz@nicta.com.au)
Perform a thorough qualitative and quantitative comparison of the client-server (or active-objects) and migrating-threads models of computation, in the context of an L4-based implementation. Examine and compare the performance and resource usage of both approaches. Examples of both approaches are available in the form of the Mungi and Iguana systems, which share many commonalities (including a large fraction of their source code). This should help a fair comparison.
The project will be conducted in one of the world's leading operating-systems research groups, in a stimulating environment that combines cutting-edge research with building systems that are deployed in real products. This project may settle a long-ranging debate in the community, and can lead to an international publication, as well as influence future research in ERTOS.
COMP3231/COMP9201 Operating systems is essential. COMP9242 Advanced Operating systems is essential. Excellent understanding of operating systems and excellent programming skills also required.
For further information, please contact the supervisor or consider the following:
ERTOS http://nicta.com.au/director/research/programs/ertos.cfm
Disy https://www.disy.cse.unsw.edu.au/
Further info http://gernot.web.cse.unsw.edu.au//theses.html
ERTOS - 3 Fault-Tolerant L4/Iguana-Based Embedded System
NICTA Project - Professor Gernot Heiser (gernot@nicta.com.au) and Dr Ihor Kuz
(Ihor.Kuz@nicta.com.au)
Design and implement a demonstrator system on top of the L4/Iguana embedded operating system that exhibits fault tolerance at the component level.
In a microkernel-based system individual operating system and application components can fail without compromising integrity of other components. In order to make use of this property, the operating system requires protocols to transparently recover the failed component and reintegrate it into the system. In this project you will implement one or more of such protocols and use them to build a fault-tolerant embedded application, e.g., a VoIP client that can tolerate faults in the network driver, network protocol stack and the application itself.
The project will be conducted in one of the world's leading operating-systems research groups, in a stimulating environment that combines cutting-edge research with building systems that are deployed in real products. This forms the first step towards delivering on one of the classical promises of microkernel technology: easy provision of fault tolerance.The experience from this project will influence the future approach to designing fault-tolerant componentised embedded systems based on L4/Iguana.
COMP3231/COMP9201 Operating systems is essential COMP9242; Advanced Operating systems is useful and COMP9243 Distributed systems is also useful. Excellent understanding of operating systems and excellent programming skills also required.
For further information, please contact the supervisor or consider the following:
ERTOS http://nicta.com.au/director/research/programs/ertos.cfm
Disy https://www.disy.cse.unsw.edu.au/
Further info http://gernot.web.cse.unsw.edu.au//theses.html
ERTOS - 4 Web Server for L4/Iguana
NICTA Project - Professor Gernot Heiser (gernot@nicta.com.au) and Dr Felix Rauch (Felix.Rauch@nicta.com.au)
The L4/Iguana system is mature enough to be deployed in commercial products, it should be mature and stable enough to run the ERTOS web site. What is missing is a web server.
This project is to select a suitable open-source web server and port it to L4/Iguana. The challenge is to map the Unix model on which the original code will be inevitably based to Iguana's single-address-space and client-server model, as well as its capability-based protection.
The project will be conducted in one of the world's leading operating-systems research groups, in a stimulating environment that combines cutting-edge research with building systems that are deployed in real products. The project will provide valuable lessons on the difficulty of migrating between programming models, and what support can be provided to ease this transition. If successful, the project will be used to run the group's web pages.
For further information, please contact the supervisor or consider the following:
ERTOS http://www.ertos.nicta.com.au/
Further info http://www.ertos.nicta.com.au/education/projects.pml
ERTOS - 5 Extended component architecture for embedded systems
NICTA Project - Dr Ihor Kuz (ihor.kuz@nicta.com.au) and Dr Jenny Liu (jenny.liu@nicta.com.au)
The NICTA ERTOS (embedded real-time and operating systems) program researches and develops operating system technologies for embedded systems. One of the projects undertaken together with the empirical software engineering program (ESE) is CAmkES (component architecture for microkernel-based embedded systems). The goal of CAmkES is to provide a software component architecture suitable for the development of next-generation embedded systems.
There are many additions and extensions that can be made to this architecture to provide greater functionality. For example, the current architecture only provides support for systems that are fully defined at build-time, however, it can be extended to allow for dynamically changing systems as well. This project would involve developing such extensions to the CAmkES architecture. Depending on the area of interest and the skills of the candidate other possibilities include applying the CAmkES model to distributed (embedded) systems, investigating reflection support for the architecture, developing a test infrastructure for componentised systems, etc.
In all cases it is important to consider the flexibility of the resulting architecture, as well as limiting overhead (both performance and size) of the resulting system.
Note that there is enough material in this topic that it could be the source for multiple separate projects. We therefore welcome multiple candidates to apply for this project.
The student will learn "hands-on" how to properly structure system-level software to maximize flexibility and minimize overhead and resource usage, skills extremely valuable for a professional career in embedded systems development. The benefit for ERTOS is the chance to extend the functionality of the CAmkES architecture.
A well developed extensible component architecture will make programming for embedded systems based on our software (operating system and component architecture) easier and less error prone, making the platform more enticing for embedded system developers.
Operating Systems is a pre-requisite. Advanced OS is highly recommended.
A good knowledge of C and system-level programming are necessary. A familiarity with component based software engineering would be of great help as well.
For further information, please contact the supervisor or consider the following:
ERTOS http://www.ertos.nicta.com.au/
CAmkES http://www.ertos.nicta.com.au/research/camkes/
L4 http://www.l4hq.org/ http://www.l4ka.org/
Iguana http://www.ertos.nicta.com.au/software/kenge/iguana-project/latest/
ERTOS - 6 Demonstrators for L4/Iguana
NICTA Project - NICTA Project - Professor Gernot Heiser (gernot@nicta.com.au) and David Snowdon (david.Snowdon@nicta.com.au)
The L4/Iguana operating system has matured significantly over the past two years and it is now being adopted by industry for use in real applications. In order to better understand the problems associated with deploying L4/Iguana, a fourth year thesis student is implementing a point-of-sale system, as well as system for digital surveillance. In the course of the implementation of these devices, deficiencies in the OS, which had previously been overlooked, were identified, and the required components implemented, optimised, tested and documented. The devices produced will make it easier to demonstrate the L4/Iguana operating system. The goal of this summer project is to choose an application and implement a solution using L4/Iguana. In-so-doing, the project should aim to identify and document (and potentially solve) any other missing components or areas which could be improved. Designing and implementing device drivers, and their supporting frameworks are likely to form a large part of this project. If porting L4/Iguana to a new platform is required, documentation on the procedure taken should be developed.
Potential applications include (but are not limited to):
- a programmable video recorder (PVR) based on ERTOS's iBox hardware;
- a programmable video recorder (PVR) based on commercially available hardware;
- a portable video recorder based on a commercially available Linksys NSLU2;
- personal organiser software for an HP iPaq (using either Iguana-native or Wombat device drivers).
L4/Iguana is a new operating system and therefore there are areas which have not yet been required. It is necessary to identify what these required features might be, and how the deficiencies can be addressed. The device developed would be used at trade-shows and demonstrations with customers. Contributions would be made to the development of L4/Iguana. Expected outcomes of the research include:
- a working embedded device;
- any developed software added to the L4/Iguana operating system.
For further information, please contact the supervisor or consider the following:
ERTOS http://www.ertos.nicta.com.au
Iguana http://www.ertos.nicta.com.au/software/kenge/iguana-project/latest/
PLEB http://www.ertos.nicta.com.au/hardware/pleb
ERTOS - 7 A constant bandwidth server for L4
NICTA Project - Dr Stefan M. Petters (smp@nicta.com.au)
Many systems incorporate several real-time applications which need to be isolated in the temporal sense. One way of achieving this is to set and monitor deadlines, which ensure that one application is not using more than its share of time. However, this restricts applications much more than necessary to be able to make any guarantees. A way around this is a constant bandwidth server, which ensures that a thread gets a certain fraction of CPU in any given window of time. To achieve this an accounting mechanism is required which tracks how much time an application has already consumed in this window. The performance impact of the accounting mechanism is crucial.
While theoretical solutions have been presented in literature these suffer from restrictions and assumptions which make them practically unusable. This project aims to do it and to do it right! A potential outcome of the research includes workable mechanisms which can be integrated into the L4 kernel mainline as compile time option.
COMP3231/COMP9201 Operating systems is essential. Excellent understanding of operating systems and excellent programming skills also required.
For further information, please contact the supervisor or consider the following:
ERTOS http://www.ertos.nicta.com.au/
Further info http://www.ertos.nicta.com.au/education/projects.pml
ERTOS - 8 Coordination Instance for a Detailed Execution-Time Analysis
NICTA Project - Dr Stefan M. Petters (smp@nicta.com.au)
A closer inspection of the dependencies of the execution time of small units of a program (blocks) is computationally expensive. Since, on one side, a closer bound on the distribution of the overall execution times is achieved by this analysis and, on the other side, an analysis of all blocks is inhibited due to limited analysis time, a intelligent selection of blocks to perform the analysis on is desirable. This project aims to select promising candidates for the analysis. The current available approaches suffer the major drawback that complexity makes simplifying assumptions necessary. By limiting the scope for search fewer assumptions are necessary. This is set in an effort to analyse the L4 microkernel to establish a bound on the worst case execution time. You will be working closely with a senior researcher in the ERTOS program.
COMP3231/COMP9201 Operating systems is essential. Excellent programming skills are also required.
For further information, please contact the supervisor or consider the following:
ERTOS http://www.ertos.nicta.com.au/
Further info http://www.ertos.nicta.com.au/education/projects.pml
ERTOS - 9 A Real-Time Programmers Guide Dog towards Better Predictable Software
NICTA Project - Dr Stefan M. Petters (smp@nicta.com.au)
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.
A good guide to programming to improve the worst-case behaviour and analysability is long overdue. This project is a major step in this direction.This work will produce have a document which may lead to a publication. The document will provide a series of templates and outline pitfalls in real-time programming.
COMP3231/COMP9201 Operating systems is essential. Excellent programming skills and an understanding of compiler techniques is also required.
For further information, please contact the supervisor or consider the following:
ERTOS http://www.ertos.nicta.com.au/
Further info http://www.ertos.nicta.com.au/education/projects.pml
ERTOS - 10 Static Analysis of ARM Assembler Code
NICTA Project - Dr Felix Rauch (felix.rauch@nicta.com.au) and Dr Ralf Huuck (ralf.huuck@nicta.com.au)
The goal of the Goanna project is to improve the quality of system software by automatically detecting software defects (bugs). Our prototype tool analyses C/C+ code, but system software (like kernel code) often contains assembler parts. A module analyses part of ARM assembler code, but it does not yet handle the full ARM instruction set and is not yet integrated into the main tool.
The goal of this summer project is to complete the assembler analysis module to handle all relevant ARM instructions and to integrate it into the main analysis module, enabling the analysis of a real operating system. This research would make Goanna the first tool that does static analysis on a combination of C/C++ and assembler code. The project is in collaboration with a team of international researchers and students. An expected outcome of the research is working implementation, documentation.
For further information, please contact the supervisors, or consider http://www.ertos.nicta.com.au/research/goanna/
[Top of Page]