Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

15
Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech

Transcript of Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

Page 1: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

Minix

Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech

Page 2: 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.

Page 3: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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.

Page 4: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

Minix and Linux

• Independent users of Minix were unsatisfied with its limited capabilities.– Linus Torvalds decided to write his own OS

based on Minix.

Page 5: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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.

Page 6: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

The Boot Process

• The boot program provides two main services.– Boot MINIX or any other OS on the disk.– Configure boot parameters for MINIX.

Page 7: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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.

Page 8: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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)

Page 9: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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

Page 10: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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.

Page 11: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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.

Page 12: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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.

Page 13: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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.

Page 14: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

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.

Page 15: Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.

Threads (?)

• MINIX doesn’t support threading in the kernel. – Since it is a partially compliant POSIX system,

one could use a thread library.