The Tempo Operating System
Operating system :
An Operating system is an interface between the computer user and computer hardware. An Operating system is a software which performs all the basic task like file handling, file management, memory management, handling input and output, controlling peripherals devices such as disk drive and printer, mouse…etc
Tempo operating system :
It is also a type of operating system. It is a simple operating system primarily designed for pedagogical purposes. It is, however, completely capable of stand-alone booting on typical Intel x86 computer systems, and has a few applications that run on it. It’s use pages memory management but it does not handle the page fault.
History of Tempo operating system :
Tempo is initially used for the system call Although usable, this effort depended on MS-DOS for loading, input/output services, and first-level interrupt handling.
First all the system are written in the c++ language but only a limited subset of the features of that language. modern operating system are written in the c language and assembly language like( Microsoft window and various type of Linux and Unix ) there are many flavours of the Tempo operating system that is developed through time :
1. Tempo/c :
This is the one of the early came tempo operating system and it was developed in early 2000 the major advancement in the Tempo OS is given below :
Replacement of all C++ code :
All the c++ program is replaced by the c and the assembly language which make it easier to understand and improve the usability of the system for educational purposes since it no longer had the reliance on the Borland 16-bit C++ compiler.
System call redefinition :
The System call remain the same as in the c++ in particular, some system calls have the ability to wait either an arbitrary (potentially infinite) amount of time for completion or for a user-specified maximum amount of time.
In the original system had no provision for input from a keyboard, so a system call was added to provide that capability.
2. Tempo/32 :
In summer 2000, tempo/c is completely rewritten and renamed as tempo/32 which is better than the previous version as the system was modified to 32 bit and the changes that come are :
32-bit protected mode:
The system now uses the 32-bit instructions and registers in the x86 processor and it provides the two execution model for the processor and that is kernel and user. This is consistent with the approach taken by “real” operating systems, although it does
make the system more complicated than “toy” systems.
Stand-alone booting :
In this, a floppy-disk bootstrap loader was added to Tempo which removes the work of starting an MS-DOS operating system.This was the only place where the 16-bit code was used.
Flat address space :
All the x86 memory has the two segment that is given below :
1) a segment
2) an offset in the segment
It contains the 20-bit address and that is of 16 bit of the segment and 4 bit of the offset and can be calculated as the
16*segment register + offset, which yields an address that is 20-bits long.
Cygwin used in the Windows environment :
Cygwin was employed to provide the necessary development environment on Windows platforms. It is a popular free available system which runs the window operating system.
3. Tempo/32 in Fall 2005 :
In 2005 some of the more features are added to the tempo operating system and that are given below :
Simple hard-disk input/output :
as we know that all the computer have the hard disk and to work it properly we have the system call and that system call are the driver of the hard disk. That Bochs also emulates the disk controller and drive made this a reasonable extension to Tempo/32.
Existing system calls restructured:
for some of the work on the system sometimes the system call has to visit again In particular, some of the original Tempo
system calls had flaws (which will be discussed later).
New POSIX-like I/O, command-line arguments, and system calls for process termination and awaiting process termination added:
And after that, we have the Tempo/32 in Spring 2006 and Tempo/32 in Summer and Fall 2006 and the latest one on which are working right at a movement is tempo (2007) They have only a little nit of the changes in there version .
Feature of the Tempo :
Tempo is a stand-alone system :
As we know that it does not depend on any kind of the software for the boot or run except the PC’s system BIOS. It is good as it takes less time to run the operating system.
Tempo provides POSIX-like I/O facilities :
The system calls that performs the input and output ;
open(path,mode) — open an existing file
creat(path) — create a new file
mkdir(path) — create a directory
close(fd) — close an open file
read(fd,buffer,size) — read from an open file
write(fd,buffer,size) — write to an open file
seek(fd,offset,origin) — set the position that will next be read or written
remove(path) — delete a file
Tempo development is done using open-source tools :
gcc — GNU c compiler
ld — GNU linker
make — build utility
objcopy — copy and translate object files between formats
dd — raw file copy (for disk images)
Cygwin — UNIX environment for Microsoft Windows
Bochs — PC hardware system emulation for Microsoft Windows, Linux, BSD, etc.
Shell scripts for Tempo system compiling, linking, disk image creation, etc.
Tempo is a monolithic, non-preemptible kernel :
Monolithic means formed a single big operating system that contains the operating system kernel. The feature that given by the today Operating system is the capability to dynamically load some software after the system has been booted.