Papers by Nicholas Fitzroy-dale
Journal of Computer Science and Technology, 2005
Running device drivers as unprivileged user-level code, encapsulated into their own process, has ... more Running device drivers as unprivileged user-level code, encapsulated into their own process, has often been proposed as a technique for increasing system robustness. However, in the past, systems based on user-level drivers have generally exhibited poor I/O performance. Consequently, user-level device drivers have never caught on to any significant degree. In this paper we demonstrate that it is possible to build systems which employ user-level device drivers, without significant performance degradation, even for high-bandwidth devices such as Gigabit Ethernet.
We describe Currawong, a tool to perform system software architecture optimisation. Currawong is ... more We describe Currawong, a tool to perform system software architecture optimisation. Currawong is an extensible tool which applies optimisations at the point where an application invokes framework or library code. Currawong does not require source code to perform optimisations, effectively decoupling the relationship between compilation and optimisation. We show, through examples written for the popular Android smartphone platform, that Currawong is capable of significant performance improvement to existing applications. Categories and Subject Descriptors

Proceedings of the Second Workshop on Isolation and Integration in Embedded Systems - IIES '09, 2009
Use of hardware-based memory protection to implement a componentised system is an effective way t... more Use of hardware-based memory protection to implement a componentised system is an effective way to enforce isolation between untrusted software components. Unfortunately this type of system design can lead to poor performance. Manual optimisation is error-prone and difficult. Instead, we describe a system to perform automatic optimisation of components, relying on three major functional units: a method to reconfigure the component system, simulations of each component in order to determine performance characteristics, and a system simulator that makes use of those characteristics to construct a ranking of optimisations. We start with a simple model and iteratively expand it until it is suitable for a wide variety of performance-measurement scenarios, and show that a small amount of information provided with each component allows for a wide variety of optimisation checks, such as scheduling, threading, and cache performance. We present our initial results with this system and discuss a number of interesting extensions.
ACM SIGCOMM Computer Communication Review, 2011
We describe Currawong, a tool to perform system software architecture optimisation. Currawong is ... more We describe Currawong, a tool to perform system software architecture optimisation. Currawong is an extensible tool which applies optimisations at the point where an application invokes framework or library code. Currawong does not require source code to perform optimisations, effectively decoupling the relationship between compilation and optimisation. We show, through examples written for the popular Android smartphone platform, that Currawong is capable of significant performance improvement to existing applications.
Smartphones have come to resemble PCs in software complexity, with complexity usually leading to ... more Smartphones have come to resemble PCs in software complexity, with complexity usually leading to bugs and vulnerabilities. Moreover, as smartphones are increasingly used for financial transactions and other privacysensitive tasks, they are becoming attractive targets for attackers. Unfortunately, smartphones are quite different from PCs in terms of resource constraints imposed on the design of protection mechanisms, as battery power is an extremely scarce resource. As a consequence, security solutions designed for PCs may not be directly applicable to smartphones, as they may reduce battery lifetime significantly. Worse, as no single protection mechanism offers 100% security, it may be desirable to tighten up security further by applying multiple security solutions at the same time, thus increasing attack coverage and accuracy. Doing so exacerbates the problem.
The reliability of device drivers is of critical importance to the overall stability of computer ... more The reliability of device drivers is of critical importance to the overall stability of computer systems. This paper presents the software architecture used for userlevel device drivers in the Mungi operating system. We argue that this framework provides a safer environment in which to run device drivers, while making device driver implementation easier and more flexible, thus improving overall reliability of the system.
Journal of Computer Science and Technology, 2005
Running device drivers as unprivileged user-level code, encapsulated into their own process, has ... more Running device drivers as unprivileged user-level code, encapsulated into their own process, has often been proposed as a technique for increasing system robustness. However, in the past, systems based on user-level drivers have generally exhibited poor I/O performance. Consequently, user-level device drivers have never caught on to any significant degree. In this paper we demonstrate that it is possible to build systems which employ user-level device drivers, without significant performance degradation, even for high-bandwidth devices such as Gigabit Ethernet.
Uploads
Papers by Nicholas Fitzroy-dale