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 robust-ness. 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)
The reliability of device drivers is of critical importance to the overall stability of computer systems. This paper presents the software architecture used for user-level 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(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 privacy-sensitive tasks, they are becoming attractive targets for attackers. Unfortunately, smartphones are quite different from PCs in terms of(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)
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)
58 3 Foreword The First International Workshop on MicroKernels for Embedded Systems was conceived to provide a forum for the discussion of issues in the application of microkernels in the embedded systems domain, including emerging problems, novel concepts, analysis approaches, and case studies. The workshop attracted submissions from both academia and(More)
A key advantage of the component methodology is a sharp distinction between components themselves, which are relatively static, and the composition of those components, which tends to change frequently. It is a common practice to take advantage of this distinction through the use of a systems language to construct components, and a scripting language to(More)
  • 1