Check out the new USENIX Web site.

Cohabitation and Cooperation of Chorus and MacOS


Christian Bac
Institut National des Tlcommunications
rue Charles Fourier, 91000 Evry, France

Edmond Garnier
Alcatel Alsthom Recherche
Route de Nozay, 91460 Marcoussis, France

Abstract

This paper describes experimental work on cohabitation and cooperation between a distributed operating system (Chorus1) and an event driven operating system (MacOS2). Our aims were to exploit the graphical and the musical capabilities of Macintosh hardware and software directly from Chorus applications, while minimizing our efforts in the field of device drivers and hardware interfaces. The work was carried out in four major stages. The first stage was to port the Chorus kernel on the Macintosh hardware. In the second stage we changed the way Chorus managed the hardware in order to keep the MacOS system alive. Conversely, we modified slightly the way Chorus was booted so as to present it as an application to MacOS. This led us to the third stage, which was to share system events (e.g. hardware interrupts) between the two systems. The Chorus system allows one to have multiple functions connected to an interrupt. This feature was used to connect both an internal Chorus driver and a low level function to an interrupt. The low level function leads to the MacOS interrupt driver. The fourth stage is currently being carried out. It consists in the design and implementation of an interface permitting user level events (as system calls) to cross the borders of the two systems. This paper describes each stage and draws lessons about system software cohabitation and reusability.


Download the full text of this paper in ASCII form (28,198 bytes).

To Become a USENIX Member, please see our Membership Information.