Trustworthy Systems

Loading and debugging tasks in SawMill


Luke Deller

    School of Computer Science and Engineering
    Sydney 2052, Australia


Title: Loading and Debugging Tasks in SawMill Author: Luke Deller School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, Australia, Abstract: Sawmill is a highly configurable multi-server operating system built on the Lava nucleus, currently under development at IBM's T. J. Watson Research Center. This thesis describes some contributions that I made to the project during my stay at Watson. Preparing a task for execution in a multi-server environment is not as simple as in a monolithic kernel because a number of different components need to co-operate to provide the necessary services to start the task. A general design for loading tasks in Sawmill is presented and its rationale explained. My implementation of a system for loading tasks from ELF files is described and issues which arose have been discussed. Debugging an experimental operating system and its processes is traditionally quite tedious, often featuring serial port debugging output and frequent reboots. Interactive loading of tasks removes much of the need for rebooting, but complex debugging can still be difficult. I have ported a popular symbolic debugger to the Sawmill system, which allows multi-threaded Sawmill tasks to be debugged. Some implementation issues encountered in debugging on the Lava nucleus are discussed. The Sawmill system aims to provide Linux binary compatibility which involves supporting the services which are usually provided by the Linux kernel. A strategy for migrating virtual memory support from the Linux kernel to Sawmill services is presented.

BibTeX Entry

    address          = {Sydney, Australia},
    author           = {Luke Deller},
    month            = nov,
    note             = {Available from publications page at \url{}},
    paperUrl         = {},
    school           = {School of Computer Science and Engineering},
    title            = {Loading and Debugging Tasks in {SawMill}},
    year             = {1999}