LINUX Operating System



Operating System
An operating system is a resource manager. It takes the form of a set of software routines that allow users and application programs to access system resources (example:-The CPU, memory, disks, modems, printer, network card etc.) in a safe and abstract way.
For example an OS ensure safe access to send data directly to the printer at any one time. An OS encourages efficient use of the CPU by suspending programs, that are waiting for I/O operations to complete to make for programs that can use the CPU more productively

General OS Architecture
Figure presents the architecture of a typical OS and show how an OS succeeds in presenting users and application programs with a uniform interface without regard to the details of the underlying hardware.
We see that ->

  • The OS kernel is in direct control of the underlying hardware. The kernel provide low level device memory of processor management functions (example dealing with interrupts, sharing the processor among multiple progress, allocating memory for programs etc.
  • Basic hardware independent kernel services are exposed to higher level programs through a library of system calls(example: services to create a file begin execution of a program or open a logical network connection to the another computer).


History of Unix
Unix has been a popular OS for more than two decades because of its multi-user, multi-tasking environment, stability, portability and powerful networking capabilities.
Simplified Unix Family Tree
In the late 1960’s, the researchers from General Electric MIT and Bell Labs launched at a joint project to develop and ambitious multiuser, multitasking OS for mainframe computers known as MULTICS(Multiplexed Information and Computing System).
Ken Thompsan then teamed up with Dennis Richard, the author of the first C compiler in 1973. They rewrote the Unix Kernel in C.
Linux is a free open source Unix OS for pc that was originally developed in 1991 by Linux Tarvalds a finish undergraduate student. Linux is neither pure SySv or pure BSD. To maximize code portability, it typically supports SySv, BSD and POSIX System calls ( example: Poll, select, memset, memcpy).
As Linux has become more popular, several different development streams or distribution have emerged. Example: Red hat, slackware, mandrake, debian and caldera, mandriva, ubuntu.
Red hat is the most popular distribution because it has been ported to a large number of hardware platform(include intel, Alpha and Sparc).
Architecture of Linux OS
Linux has all of the components of a typical OS ->
Kernel:- The Linux Kernel includes device driver support for a large number of PC hardware devices (graphics card, network card, hard disks, etc.), advanced processor and memory management features, and support for many different types of file systems.
The Kernel( in raw binary form that is loaded directly into memory at system start up time) is typically found in the file/boot/vimlinuz. While the source files can usually be found in usr/scr/linux.
Shell & GUI:- Linux supports two forms of command input through textual command line shell similar to those found on most Unix Systems(example sh- The bourne shell, bash- the bourne shell and csh the c shell) and through graphical interfaces (GUIs) such as the KDE & GNOME window managers.
System Utilities:- Virtually every system utility that you would expect to find on standard implementations of Unix(including every system utility described in POSIX specification) has been ported to Linux. This includes commands such as ls, grep, awk, sed, bc, wc, more and soon.
Application Programs:- Linux distribution typically come with several useful applications programs as standard.

Features of Unix:-
  •        A multiuser System
  •        Multitasking System
  •        Repository of Applications
  •        Building Block
  •         Pattern Matching
  •        Programming Facility
  •        Documentation 
 User Architecture
Unix OS used to manage the resources of a computer such as CPU, memory, I/O devices,network, etc. The memory resident portion of UNIX system is kernel.
File system and process control system are two major component of Unix kernel. there are many features are available of Unix OS kernel such as
  1. Concurrency:- As Unix is a multiprocessing OS, many processes run concurrently to improve the performance of the system.
  2. Virtual Memory:- Memory management subsystem impliments the virtual memory concept and a user need not worry about the executable program, size and the RAM size.
  3. Paging:- It is a technique to minimize the internal as well as external fragmentation in the physical memory.
  4. Virtual File System:- A VTS is a file system used to help the different file system complexity. A user can use the same contra standard file system related calls to access different file systems.
  5. The kernel also provides some other basic services such as interrupt and trap handling, system calls scheduling and timer clock handling and file discriptive system management.

Features of UNIX Architecture
  1. Unix system use a centralized OS kernel which manages system and process activities.
  2. All non kernel  system is organized into separate kernel managed processes.
  3. Unix OS are preemptively multitasking. multiprocess can run at the same time or within small time slices and nearly at the same time and any process can be interrupted and moved out of execution by the kernel. This is also known as Thread Management.
  4. Files are stored on a disk in a hierarchical file system, with a single top location throughout the system(root or "/") with both files and directories, sub directories and sub sub directories.
  5. With few exceptions devices and some type of communication between processes are managed and visible as files or Pseudo-files within the file System hierarchy. This is known as everything is a file.
Some other features and capabilities :-
  1. Multitasking and multiuser
  2. Programming interface
  3. Use of files as abstractions of devices and other objects.
  4. Built in Networking(TCP/IP)
  5. Persistent system service processes called "damons" and managed by init or initd. 
Some principles
  1. Interactive multiused and multiuser OS design.
  2. Design objective principle of Unix , file store organization, text processing and programming.
  3. Role of C programming language with regard to Portability and Reliability System Software.
  4. Process control- signals and fork.
  5. Error logging and recovery from system failures.
  6. Modifiability and Application Programmer Interface(API).
  7. The user's perspective on Unix.

3 comments:

FEEDBACK

Name

Email *

Message *