Nicholas Fitzroy-Dale

Learn 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.(More)
We describe Currawong, a tool to perform <i>system software architecture optimisation</i>. 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(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(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)
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,(More)
Todd Proebsting’s 1998 pronouncement that compiler optimisation research only results in marginal performance improvements was accompanied by the gloomy suggestion that perhaps researchers should spend their time in areas more likely to yield large performance gains, such as research into programmer productivity. This paper revisits Proebsting’s claims, and(More)
  • 1