88% found this document useful (8 votes)
15K views5 pages

Unix Case Study

UNIX is an operating system developed in the 1960s that remains widely used today. It provides a stable, multi-user environment and is highly portable across hardware. The document discusses UNIX's modular design, security features, graphical interfaces, popular versions like Solaris and Linux, and its layered architecture. UNIX manages processes, memory, I/O, and scheduling to allow simultaneous users and programs in a protected environment.

Uploaded by

romesh1998
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
88% found this document useful (8 votes)
15K views5 pages

Unix Case Study

UNIX is an operating system developed in the 1960s that remains widely used today. It provides a stable, multi-user environment and is highly portable across hardware. The document discusses UNIX's modular design, security features, graphical interfaces, popular versions like Solaris and Linux, and its layered architecture. UNIX manages processes, memory, I/O, and scheduling to allow simultaneous users and programs in a protected environment.

Uploaded by

romesh1998
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

CASE STUDY ON UNIX

What is UNIX?
UNIX is an operating system which was first developed in the 1960s, and has been under constant
development ever since. . It is a stable, multi-user, multi-tasking system for servers, desktops and laptops.
UNIX is highly portable across hardware since it is written in C language.

UNIX allows only needed modules to be loaded in memory (modularity).It has an inverted tree like file
structure, with files and directories created within the file structure. Each file can be protected using read,
write and execute permissions for the user, group and others(security).. UNIX uses TCP/IP protocol.
CAD/CAM applications best perform in a UNIX system, with its varied support for graphic cards.

UNIX systems also have a graphical user interface (GUI) similar to Microsoft Windows which provides an
easy to use environment. However, knowledge of UNIX is required for operations which are not covered
by a graphical program, or when there is no windows interface available, for example, in a telnet session.

Types of UNIX
There are many different versions of UNIX, although they share common similarities. The most popular
varieties of UNIX are Sun Solaris, GNU/Linux, and MacOS X.Here in the School, we use Solaris on our
servers and workstations, and Fedora Core Linux on theservers and desktop PCs.

History of UNIX

 1969: Ken Thompson, Dennis Ritchie started working on a multi-user OS on PDP-7,Bell Labs.
 1970: OS named as UNIX
 1973: OS rewritten in C
 1975: First Version of Berkeley Software Distribution (BSD)
 1982: AT&T announced UNIX System III, first public release.
 1983: AT&T announced UNIX System V, the first supported release. Installed base45,000.
 1984: Berkeley releases 4.2BSD, includes TCP/IP. X/Open formed
 1984: System V Release 2 introduced. 1, 00,000 installations worldwide.
 1986: 4.3BSD released, including internet name server. Installed base 2, 50,000.
 1987: System V Release 3 introduced. Around 7, 50,000 installations.
 1988: Open Software Foundation formed.
 1989: System V Release 4 ships unifying System V, BSD . 1.2 million installations.
its varied support for graphic cards.

Layered Architecture
UNIX is a layered operating system. The innermost layer is the hardware that provides the services for the
OS. The operating system, referred to in UNIX as the kernel, interacts directly with the hardware and
provides the services to the user programs. Most well written user programs are independent of the
underlying hardware, making them readily portable to new systems.

Fig 1.1
Layered Architecture of the UNIX System You can have many users logged into a system simultaneously,
each running many programs. It's the kernel's job to keep each process and user separate and to regulate
access to system hardware, including CPU, memory, disk and other I/O devices.

Aims and Objectives

 To use an example of a real OS (UNIX) to give context to the course


 UNIX is one of the most popular OSs on PCs to Mainframes
 De Facto standard for Open Systems

The Shell

 The shell is the interface between the command language user and the OS
 The shell is a user interface and comes in many forms (Bourne Shell, sh; Berkeley C Shell, csh; Korn
Shell, ksh; Restricted Shell, rsh)
 User allowed to enter input when prompted ($ or %)
 System supports all shells running concurrently. Appropriate shell is loaded at login, but user can
usually (except in sh, rsh) dynamically change the shell
 A UNIX command takes the form of

executable_file [-options] arguments

 The shell runs a command interpretation loop


o accept command
o read command
o process command
o execute command
 Executing the command involves creating a child process running in another shell (an environment
within which the process can run). This is done by Forking.
 The parent process usually waits for the child to terminate before re-entering the command
interpretation loop
 Programs can be run in the background by suffixing the command-line entry with an ampersand (&).
Parent will not wait for child to terminate

The Processing Environment

Input and Output

 UNIX automatically opens three files for the process

STDIN - standard input (attached to keyboard)

STDOUT - standard output (attached to terminal)

STDERR - standard error (attached to terminal)

 Because UNIX treats I/O devices as special types of files, STDIO can be easily redirected to other
devices and files

who > list _of _users


The Kernel

 Central part of the OS which provides system services to application programs and the shell
 The kernel manages processes, memory, I/O and the Timer - so this is not the same as the kernel that
we covered in Lecture 3!
 UNIX supports multiprogramming
 Processes have their own address space - for protection
 Each process's process environment is composed of an unmodifiable re-entrant text (code) region, a
modifiable data region and a stack region.
 The text region is shareable
 Processes can modify their environment only through calls to the OS

The File System

 UNIX uses HDS with root as its origin


 A directory is a special UNIX file which contains file names and their i-nodes (index nodes)
 Subdirectories appear as file entries
 Directories cannot be modified directly, but can are changed by the operating system when files and
subdirectories are created and deleted
 File and Directory names must be unique within a particular directory (i.e., the path name must be
unique)
 The File System is a data structure that is resident on disk
 It contains a super block (definition of the file system); an array of i-nodes (definition of the files in
the system); the actual file data blocks; and a collection of free blocks
 Space allocation is performed in fixed-size blocks

The i-node

 Contains

the file owner's user-id and group-id

protection bits for owner, group, and world

the block locator

file size

accounting information

number of links to the file

file type

The Block Locator

 Consists of 13 fields
 First 10 fields points directly to first 10 file blocks
 11th field is an indirect block address
 12th field is a double-indirect block address
 13th field is a triple-indirect block address

Permissions
 Each UNIX file and directory has 3 sets of permission bits associated with it
 These give permissions for owner, group and world
 System files (inc. devices) are owned by root, wizard, or superuser (terminology!)
 Root has unlimited access to the entire installation - whoever owns the files!

Setuid

 When you need to change your password, you need to modify a file called /etc/passwd. But this file
is owned by root and nobody other than root has write permission!
 The passwd command (to change passwords) is owned by root, with execute permission for world.
 The setuid is a bit which when set on an executable file temporarily gives the user the same
privileges as the owner of the file
 This is similar in concept to some OS commands executing in Supervisor mode to perform a service
for an otherwise unauthorised process

Process Management

 Description of Process Management in SunOS

Scheduling

 Priority-based pre-emptive scheduling. Priorities in range -20 to 20. Default 0.


 Priorities for runnable processes are recomputed every second
 Allows for ageing, but also increases or decreases process's priority based on past behaviour
 I/O-bound processes receive better service
 CPU-bound processes do not suffer indefinite postponement because the algorithm `forgets' 90%
CPU usage in 5*n seconds (where n is the average number of runnable processes in the past 60
seconds)

Signals

 Signals are software equivalents to hardware interrupts used to inform processes asynchronously of
the occurrence of an event

Interprocess Communication

 UNIX System V uses semaphores to control access to shared resources


 For processes to exchange data or communicate, pipes are used
 A pipe is a unidirectional channel between 2 processes
 UNIX automatically provides buffering, scheduling services and synchronisation to processes in a
pipe line
 The presence of a pipe causes the processes in the pipe line to share STDIO devices

who | grep cstaff

 The output from who is directed to a buffer. grep will take its input from this buffer. The output
from grep will be displayed on the terminal

Timers

 UNIX makes 3 interval timers available to each process


 Each counts down to zero and then generates a signal
 The first runs continuously
 The second runs while a process is executing process code
 The third runs while the process executes process code or kernel code

Memory Management

Address Mapping (Virtual Storage) - Paged MMS

 Virtual address V is dynamically translated to real address (P, D)


 Direct Mapping is used, with the Page Map held in a high-speed RAM cache
 Each Page Map Entry contains a modified bit, an accessed bit, a valid bit (if the page is resident in
PM) and protection bits
 The system maintains 8 page maps - 1 for the kernel (not available to processes) and 7 for processes
(contexts)
 2 context registers are used - one points to the running process's page map and the other to the
kernel's page map
 The replacement strategy replaces the page that has not been active for longest (LRU)

Paging

 SunOS maintains 2 data structures to control paging


 The free list contains empty page frames
 The loop contains an ordered list of all allocated page frames (except for the kernel)
 The pager ensures that there is always free space in memory
 When a page is swapped out (not necessarily replaced) the system judges whether the page is likely
to be used again
 If the page contains a text region, the page is added to the bottom of the free list, otherwise it is
added to the top
 When a page fault occurs, if the page is still in the free list it is reclaimed

I/O

Data

 All data is treated as a byte stream


 UNIX does not impose any structure on data - the applications do
 So data can be manipulated in any way - but programmers must explicitly structure the data

Devices

 A device is just a special type of file


 These files can have protection bits, so that a printer, e.g., cannot be read
 Permission to use sensitive devices, e.g., magnetic disk, is restricted to root and all other users have
to use system calls to executable files which have their setuid bit set

Summary

 Explained how UNIX is constructed with reference to material we have covered in the course
 The UNIX File System
 Process Management in UNIX
 UNIX Memory Management
 UNIX I/O Device Independence
 Command Interpretation Loop

Common questions

Powered by AI

UNIX treats all data as byte streams without imposing a specific structure, granting high flexibility in data processing. This places the responsibility on application developers to implement and manage their data structures and parsing strategies. While this lack of enforced structure allows for customized and efficient data handling, it requires developers to carefully design their applications to ensure data integrity and efficient processing .

UNIX is highly portable because it is written in the C programming language, which is designed to be compiled and run on various hardware architectures. This design choice allows UNIX to be adapted easily for different systems by merely recompiling the source code on the target hardware .

UNIX implements a paged memory management system that dynamically translates virtual addresses to physical addresses using a page map. Each page map entry contains various bits for modification, access, and validity. The system utilizes a least recently used (LRU) strategy for page replacement, ensuring that unneeded pages are swapped out to free memory while frequently used pages remain in RAM, improving performance .

UNIX handles file permissions with three sets of permission bits for the owner, group, and others, controlling read, write, and execute access. The setuid bit is significant because it allows users to execute files with the privileges of the file owner, which is crucial for tasks like changing passwords where user-level access would be insufficient. This mechanism enhances security by providing elevated privileges only when necessary .

The UNIX file system supports security and organization through its hierarchical directory structure and the use of i-nodes, which store metadata including user and group IDs and permission bits. This enables controlled access and modification. Directories can only be changed through system calls, ensuring consistency and adding a security layer by restricting direct modification. This file system organization helps achieve robust data protection and efficient management .

The layered architecture in UNIX involves layers where the innermost layer is the hardware, followed by the kernel which manages hardware resources and interacts with user programs. This structure is significant in process management as it allows the kernel to isolate processes and manage system resources effectively, ensuring each process has controlled access to CPU, memory, and I/O devices, thus maintaining system stability and performance .

The shell acts as the interface between the user and the UNIX operating system. It allows users to execute commands, which the shell interprets and passes onto the kernel to perform operations. The shell creates new processes by forking, and it can run these processes in the background, freeing the parent process to re-enter the command loop. This interaction with the kernel allows users to carry out productive tasks within a controlled, protected environment .

UNIX uses mechanisms like semaphores and pipes for interprocess communication. Semaphores manage access to shared resources, preventing race conditions, while pipes provide a unidirectional data channel between processes. These mechanisms ensure data exchange is synchronized and efficient, enhancing overall system functionality by enabling cooperative multitasking among processes .

Signals in UNIX act as software interrupts that notify processes asynchronously about events like segmentation faults or termination requests. This mechanism improves process control by allowing processes to handle events promptly without continuous polling. By enabling the handling of asynchronous events, signals enhance system responsiveness and ensure that processes can adapt to changes dynamically .

UNIX supports multiprogramming by allowing multiple processes to run simultaneously, each with its unique address space protected from others. This isolation ensures that processes do not interfere with each other, which enhances system robustness and performance. The system schedules processes based on priority, preventing resource monopolization by any single process, hence optimizing CPU usage and system responsiveness .

You might also like