History of Unix Operating System
Lets know something history of Unix Operating System. Unix is the most popular operating system on multi user system. it was developed at AT & T laboratories in 1969 by ken THOMPSON and DENNIS RITCHE. BRION KERNIGHAN named it Unics (Uniplexe information and computing system). in 1970, the name was changed from Unics to Unix. originally written in assembler, Unix was rewritten in 1973 in c.
In 1969, AT & T withdrew its team from the MULTICS project, which was engaged n development of a flexible OS. IN 1973 , they rewrote the entire system in C language that was invented by Richie itself. Portability is considered one of the strongest features of Unix. however, a US govt. decree prevented sales of Unix os and so they distributed it to academic and research institution at a nominal cost. the university of California. Berkley (UCB) created their own Unix called BSD UNIX. they created a better file system, more flexible mail features, symbolic links and offered networking tools which was made standard later.
A set of standard operating system interfaces now guides the development of UNIX called portable operating system interface (POSIX) and is based on UNIX. finally UNIX turned commercial. there is one another development going on at the moment by LINUS Torvalds and Richard Stall man. They want to develop an OS which will be available for free. Linus is the father of Linux and Stallman runs a foundation called free software foundation (FSF). Linux is distributed under a GNU/GPL license which allows developers and sellers to make the source code public. there are various flavours of Linux available such as RED HAT, DEBIN, SUSE, UBUNTU, FEDORA, FREE BSD AND SO ON.
The Unix system structure
The Unix operating system is divided into three major components.
- The kernel
- The shell
- utilities and application programs
Architecture of the Unix operating system
The functioning of Unix is manned in 3 levels:-
- It is the interface between the user and the kernel that effectively insulates the user from knowledge of kernel function .
- It actually analyzes the commands ( or it reads the commands and interprets them, before forwarding it to another agency which actually executes them.
- It also has a programming capability if its own.
- As a programming language it control how and when commands are carried.
The Unix utilities are a collection of about 200 programs that service the day to day processing requirements. these Unix utilities are the Unix commands, which are invoked by name, through the shell which is itself another utility.
Unix provide more than thousand Unix based application programs like database management system, word processing, accounting software and language processors etc. are available from independent software developers.
- kernel is the heart of the Linux system.
- It is the Unix operating system.
- It is a collection of programs written in C that directly communicate with hardware.
- It is the memory resident portion of the system but not directly interact with user.
- There is only one kernel for any system.
Major tasks of kernel
- Manages system’s resources.
- Process management : it keeps track of the programs being run, allotting time to each user, decides process priorities, runs shell programs etc.
- Device management : it handles the transfer of information between computer and terminals , tape drives and printers.
- File management : it assigns storage for files and enforces the access permission on the file system
There are three levels :-
User, kernel and hardware. The system call and library interface represents the border between user programs and the kernel. system calls look like ordinary function calls in C programs, and libraries map these function calls to the primitives needed to enter the operating system. assembly language programs frequently use other libraries such as the standard I/O library to provide more sophisticated use of the system calls. the libraries are linked with the programs at compile time and are thus part of the user program.
The set of system calls can be partitioned into those that interact with file subsystem and those that interact with the process controls subsystem. the file subsystem and those that interact with the process control subsystem. the file subsystem manages files, allocating file space, administering free space, controlling access to files, and retrieving data for users. processes interact with the file subsystem via a specific set of system calls, such as open (to open a file for reading or writing), close, read, write, start (query the attributes of a file), chown (change the record of who owns the file), and chmod (change the access permissions of a file.
The file subsystem accesses file data using a buffering mechanism that regulates data flow between the kernel and secondary storage devices the buffering mechanism interacts with block I/O device drivers to initiate data transfer to and from the kernel. device drivers are the kernel modules that control the operation of peripheral devices. the file subsystem also interacts directly with the “raw” I/O device drivers without the intervention of a buffering mechanism. the process control subsystem is responsible for process synchronization, ther-process communication memory management, and process scheduling. the file subsystem and the process control subsystem interact when loading a file into memory for execution: the process subsystem reads executable files into memory for executing them.
I hope that you understand my post. if you like this post then share my post, and comment on my post if you have any suggestion or Queries related Unix. Thank you!