![]() |
Mini Tunis Book |
| Title: | Mini Tunis Book |
| Authors: | R.C. Holt and D.A. Penny |
| ISBN: | 0-921598-23-8 |
| Publisher: | Holt Software Associates Inc. |
| Binding: | 8.5"x11" cerlox bound |
| Pages: | 388 pgs |
| Price: | Contact Holt Software 1-800-361-8324 |
| Ordering Information: | Contact Holt Software 1-800-361-8324 |
| Program Examples: | Contact Holt Software for obtaining example programs from this book. |
| Solutions Manual: | Not Available |
This book presents the structure of a model Unix-like operating system called Mini Tunis. Students experiment with this system, for example, by replacing its memory manager with one that does paging. This hands-on experimentation, in the form of student projects, provides a deeper understanding of the function of operating systems than is possible with only readings and written assignments.
With Mini Tunis' clear structure, students immediately learn the essential organization of an operating system. Mini Tunis is written in a language, Object Oriented Turing (OOT), that supports information hiding, so the modular structure is obvious and is mechanically enforced.
Although it is not strictly necessary, it is recommended that Mini Tunis be studied by actually running and modifying it using the OOT system. Within the OOT system, Mini Tunis is run "on top of" Unix, as a regular Unix job. To support this, OOT provides a "turbo" programming environment in which a program such as Mini Tunis can be "bread boarded". Student experiments in changing the operating system require only a few seconds of compilation with OOT's high speed compiler and integrated linker. The OOT environment supports a CASE tool that presents the structure of the system diagrammatically, further enhancing the learning experience.
In a one semester course on operating systems, Mini Tunis can be used as follows. In the first part of the course, concurrent programming is introduced. A good way to do this is through short programming assignments that use OOT's concurrency features (fork, monitors, wait and signal). The next assignment could be to modify Mini Tunis' shell to implement pipes using temporary files. At this point, the student should have a good understanding of the basic system calls of Unix-like systems and their role in supporting systems programs such as the shell. The next assignment can be to make a simple modification to the actual Mini Tunis operating system, such as adding a new system call, for example, the SetUID system call. Depending on the nature of the course, one or two more ambitious assignments for modifying the system would follow, such as replacing the memory manager with one that does paging.
Mini Tunis has the following characteristics. It supports the fundamental system calls of Unix-like systems, including Fork, Exec, Exit, Wait, Create, Open, Read, Write, Seek, Close and Unlink. With these it is straightforward to write simplified but realistic versions of common systems programs such as a shell. Mini Tunis comes with a fundamental set of systems programs: a shell, cat, echo, ls, rm, etc. These systems programs are written in a subset of OOT called Mini Turing. A Mini Turing compiler, which comes with Mini Tunis, translates these programs to pseudo code. This pseudo code is considered to be the machine language of the machine on which Mini Tunis is running. When it comes time for Mini Tunis to actually run a user program, it invokes an interpeter for this pseudo code, thereby executing the user's program. Students can write their own user programs and their own systems programs using the Mini Turing compiler.
Mini Tunis is a multithreaded operating system meaning that it uses concurrency internally. For example, inside Mini Tunis, a separate thread manages the file requests for each user. It does this in a high-level fashion, using the concurrency features of OOT. Mini Tunis itself is executed directly and not via the user's pseudo code interpreter.
Mini Tunis has evolved from two decades of model operating systems used at the University of Toronto. The system, created by David Penny, takes its name from Tunis (Toronto Unix-like System), a Unix-compatible operating system written in Turing Plus. Mini Tunis has been used in classes since 1987. It was translated from the Turing Plus language to OOT in summer 1991 and has has been used in that form since then. It is not uncommon to hear a student say he/she learned as much from the Mini Tunis experiments as from the rest of the course on operating systems.
This book is based on chapters in the text Concurrent Euclid, the Unix System and Tunis [Holt, Addison-Wesley 1983]. An earlier draft of this book has been used in classes at the University of Toronto and elsewhere since 1988. The original inspiration for a model operating system comes from Alan Shaw in his course in operating system at Cornell University in 1969, taught using PL/I. This evolved to a project at the University of Toronto using various concurrent languages including TOPPS and Concurrent Euclid. The present model system was developed by David Penny under Turing Plus and has since been ported to Object Oriented Turing.
R. C. Holt
D. A. Penny
Toronto, August 1992