SunOS--Minix - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

SunOS--Minix

Description:

You will need to do a sunread to get the bin from the solaris system to the minix system System Call All the headers used in the system calls are kept in the – PowerPoint PPT presentation

Number of Views:5
Avg rating:3.0/5.0
Slides: 25
Provided by: sasa6
Learn more at: https://web.ecs.syr.edu
Category:
Tags: sunos | minix | solaris

less

Transcript and Presenter's Notes

Title: SunOS--Minix


1
SunOS--Minix
  • A Operating System used in teaching Laboratories.
  • Presented By-
  • Oliver Dsouza
  • Sankara Narayanan

2
What we will be covering!!!
  • Overview of the Minix Operating System
  • The Architecture of Minix
  • The Booting Process
  • Implementation of System Calls How it works
  • An Insight into the security
  • Conclusion

3
Birds Eye View of Minix
  • Minix Mini Unix (Minix) basically, a UNIX
    -compatible operating system.
  • Minix is small in size, with microkernel-based
    design.
  • Minix has been kept (relatively) small and
    simple.
  • Minix is small, it is nevertheless a preemptive,
    multitasking operating system.
  • Internally, Minix is highly modular, consisting
    of several system processes organized into a
    number of independent programs.

4
Continuation..
  • Full multiprogramming (multiple programs can run
    at once).
  • Most of the code is written is C language and the
    source code is freely available.
  • Networking with TCP/IP

5
Internal Architecture
  • The figure represents the internal architecture
    of Minix.

Different Layers
User Processes init, login, passwd, sh, ls, cp,
cc,.. Server Processes File System (FS),
Memory Manager (MM) Kernel I/O Tasks Floppy, tty,
clock, system, Kernel Process
Management Interrupt handlers
4
3
2
1
6
Architecture Continuation..
  • There are 4 layers in the Architecture
  • Layers 1 to 3 comprise the Minix operating
    system, with applications running in Layer 4.
  • The operating system code is linked into three
    totally separate programsmm (the memory
    manager), fs (the file system), and kernel
    (layers 1 and 2).
  • Processes in layer 2 and interrupt handlers in
    layer 1 can communicate by message passing or
    shared memory all other communication is through
    message passing.

7
Detailed Analysis of the Different Layers.
  • Layer 1(Kernel Process Management) implements
    communicating sequential processes, thus allowing
    the remainder of Minix to be implemented as a set
    of communicating sequential processes. Layer 1 is
    a group of interrupt handlers, with its own stack
    space within kernel.
  • Layer 2 (Kernel I/O Tasks) contains device driver
    processes. System provides an interface between
    kernel and the layer 3 processes.
  • Layer 3 (Server Processes) contains the memory
    manager and the file system.

8
Continuation.
  • Layer 4 (User Processes) contains a Unix-like
    process hierarchy rooted at process 1. Every
    system call" made by a user process in layer 4 is
    converted into a message to one or other of these
    processes.

9
Booting Process
  • The booting process is an important one in any
    operating system. Here in Minix, the
    bootstrapping occurs in the following way,
  • A small SunOS program (minix) is responsible for
    processing a configuration file, allocating
    memory for SunOS Minix, loading and relocating
    the SunOS Minix \image" and then jumping to the
    startup code within the SunOS Minix kernel
    proper.

10
Continuation.
  • minix allocates the requested amount of memory in
    the data segment of the SunOS process, and loads
    the image, consisting of kernel, mm, fs and init,
    at the beginning of the area allocated.
  • Booting has 2 phases
  • The minix Phase
  • The kernel Phase

11
Booting Phases.
  • Booting the minix phase
  • The main functions of the minix program are,
  • Read the configuration file, open various devices
    on well known (to minix and kernel) SunOS
    descriptors.
  • A child process is created that will run the
    Solaris minix.
  • The child creates a temporary file that is the
    same size as minix physical memory and maps to
    childs address space at the virtual address
    assigned to the beginning of kernels text
    segment.
  • A bootinfo structure at the start of kernel data
    segment is filled in.
  • Execution then switches to kernel entry point.

12
Continuation
  • Booting the kernel phase
  • The kernel entry point is in a small piece of
    assembler code that sets the stack pointer to
    layer 1 stack, and then calls the C function
    main(main.c).
  • Then the standard pieces of code that are added
    to the boot sequence involve the setting up the
    handling of SunOS signals, and setting up of
    memory protection.

13
The Important Directory Structure
  • commands
  • fs file system
  • kernel kernel codes
  • solaris
  • tools
  • mm memory manager

14
Flow OF control
  • The flow of control in minix from the user level
    the kernel level is handled by system calls.
  • Minix has a set of system calls which are located
    in the table.c file.
  • The fs has its own table and so the memory but
    the number of system calls is fixed

15
System Call
  • System call in minix is similar to a system, call
    in any system.
  • A user-level process cannot directly access a
    disk. Instead it asks the kernel to obtain data
    from a file for it (the read system call).
  • A user-level process cannot create another
    process. Instead, it asks the kernel to create
    one for it.

16
System call
  • System calls are typically made via library
    routines. Library routines are normal procedure
    calls. They perform the setup for the system
    call.
  • In minix the system call functions in a similar
    fashion.

17
System call
  • To implement a system call in minix one needs to
    do the following steps.
  • Look for a free slot in the table.c file
  • Follow the standard convention
  • no_sys, / 0 unused /
  • do_exit, / 1 exit /
  • do_fork, / 2 fork /

18
System Call
  • The system call would be named in the following
    manner
  • do_sandbox or do_encrypt
  • Once the system call method has been written its
    declaration should be mentioned in the function
    declaration header file in the file system it is
    proto.h
  • _PROTOTYPE ( return type do_XXXX, (arguments if
    any) )

19
System Call
  • The library should also be informed about the
    system call that would be called by the user.
  • The library file for the system call is written
    in the lib/other directory. The file naming
    convention is followed here it starts with an
    underscore
  • Eg - _sandbox.c

20
System Call
  • Once the code for the system call is written in
    the "lib/other" directory a system file needs to
    be created. The system file is present in the
    "lib/sunsyscall" directory.
  • A standard naming convention is followed here to.
    The filename extension is ".s".
  • .global systemcallname
  • systemcallname
  • ba _systemcallname
  • nop

21
System Call
  • A system call will contain a user created command
    file which when compiled creates a binary
    executable command. the command is created in the
    commands/simple directory. The file once
    compiled creates an executable binary in the
    commands/simple/bin directory.
  • You will need to do a sunread to get the bin from
    the solaris system to the minix system

22
System Call
  • All the headers used in the system calls are kept
    in the "include" directory. The "type.h " header
    file is a very important and most useful header
    file.
  • To pass a message a variable of a specific data
    type is defined, and the variable is added to the
    message structure

23
System Call
  • Typedef struct datatype mnYY mess_n
  • n gt message number of the message
  • YY gt variable name
  • The size of the structure defined in the message
    is also an important factor as if the size of the
    message is increased then the system crashes

24
System Call
  • Typedef struct char m1sb mess_1
  • define m1_sb m_u.m_m1.m1sb
  • To add data in the message variable the following
    need to be done
  • Message m
  • m.m1_sb data
Write a Comment
User Comments (0)
About PowerShow.com