Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.
-
Upload
julia-paul -
Category
Documents
-
view
213 -
download
0
Transcript of Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.
Minix
Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech
Minix History and Purpose
• In 1975 the source for UNIX version 6 was available from AT&T– Universities took advantage of this and used the
source in courses on OS design and implementation.
• With the release of UNIX version 7, AT&T decided to restrict the use of the source.
Minix History and Purpose
• Dr. Tanenbaum wrote MINIX (from scratch) as a replacement for AT&T UNIX in OS design and implementation courses.– Originally, MINIX was written to be
compatible with UNIX V7.– Since, it has become increasingly POSIX
compliant.
Minix and Linux
• Independent users of Minix were unsatisfied with its limited capabilities.– Linus Torvalds decided to write his own OS
based on Minix.
The Boot Process
• The boot sector contains the hard-coded location of a boot program – The program is stored in the 1st Kilobyte block
of the MINIX partition.– This is known as the bootblock and is a
standard feature in UNIX.
The Boot Process
• The boot program provides two main services.– Boot MINIX or any other OS on the disk.– Configure boot parameters for MINIX.
Processes: Process Scheduling
• There are three levels of processes in MINIX:– User Processes– Server Processes– I/O Tasks
• I/O Tasks are run first, then Server Processes and finally User Processes.
Processes: Process Scheduling
• Tasks within each level are handled differently:– User Processes:
• Scheduled using a round robin algorithm
• Interrupts are used to indicate when a process has to give up the CPU.
– Server Processes and I/O Tasks• Run until blocked (FIFO)
Deadlock
• “True to its heritage, MINIX follows the same path as UNIX with respect to deadlocks: it just ignores the problem altogether.”
-- Tanenbaum and Woodhull
I/O
• There are no dedicated I/O devices (this is the reason for no deadlock avoidance).
• Hardware– This is where all the physical devices are.
Communication is achieved through interrupts.
I/O
• Interrupt Handlers– Serves as a communication layer between Driver and
Hardware.
– Buffers information in some cases (like clock events) to percent the system from being flooded by messages.
• Device Drivers– Handles interpretation of information coming from the
Interrupt Handler
– Full, separate process that run in the task layer.
I/O
• Device-independent Software– The layer that provides a standard interface for
user level programs.– Functions like fprintf and fscanf reside in this
layer.
• User Processes– User programs that make calls to the Device-
independent Software layer reside here.
Memory Management
• A list of holes (unused sections of memory) is maintained in memory address order.
• When a request for memory is made the first hole that can accommodate the request is used.
Memory Management
• Once a process is in memory there is no moving or resizing of the partition.– Two reasons for this simplistic memory
management system:• Since MINIX was designed as a learning tool Dr.
Tanenbaum felt that a more complex memory management system was not needed.
• MINIX is designed to run on all x86 processors including the 8088 which can’t handle segmented memory.
Threads (?)
• MINIX doesn’t support threading in the kernel. – Since it is a partially compliant POSIX system,
one could use a thread library.