Unix architecture
Encyclopedia
A Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 architecture
is a computer operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 system architecture that embodies the Unix philosophy
Unix philosophy
The Unix philosophy is a set of cultural norms and philosophical approaches to developing software based on the experience of leading developers of the Unix operating system.-McIlroy: A Quarter Century of Unix:...

. It may adhere to standards such as the Single UNIX Specification
Single UNIX Specification
The Single UNIX Specification is the collective name of a family of standards for computer operating systems to qualify for the name "Unix"...

 (SUS) or similar POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...

 IEEE
Institute of Electrical and Electronics Engineers
The Institute of Electrical and Electronics Engineers is a non-profit professional association headquartered in New York City that is dedicated to advancing technological innovation and excellence...

 standard. No single published standard describes all Unix architecture computer operating systems - this is in part a legacy of the Unix wars
Unix wars
The Unix wars were the struggles between vendors of the Unix computer operating system in the late 1980s and early 1990s to set the standard for Unix thenceforth.- Origins :...

.

Description

There are many systems which are Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 in their architecture. Notable among these are the GNU/Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 distributions. The distinctions between Unix and Unix-like systems have been the subject of heated legal battles
Timeline of SCO-Linux controversies
The SCO Group is currently involved in a dispute with various Linux vendors and users. SCO has initiated a series of lawsuits that will probably define the future of both Linux and Unix. In this campaign SCO is trying to convince the world that Linux violates some of SCO's intellectual properties...

, and the holders of the UNIX brand, The Open Group
The Open Group
The Open Group is a vendor and technology-neutral industry consortium, currently with over three hundred member organizations. It was formed in 1996 when X/Open merged with the Open Software Foundation...

, object to "Unix-like" and similar terms.

For distinctions between SUS branded UNIX architectures and other similar architectures, see Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

.

Kernel

A Unix kernel — the core or key components of the operating system — consists of many kernel subsystems like process management
Process management (computing)
Process management is an integral part of any modern day operating system . The OS must allocate resources to processes, enable processes to share and exchange information, protect the resources of each process from other processes and enable synchronisation among processes...

, memory management
Memory management
Memory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.Several...

, file management, device management and network management
Network management
Network management refers to the activities, methods, procedures, and tools that pertain to the operation, administration, maintenance, and provisioning of networked systems....

.

Each of the subsystems has some features:
  • Concurrency
    Concurrency (computer science)
    In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other...

    : As Unix is a multiprocessing OS, many processes run concurrently to improve the performance of the system.
  • Virtual memory
    Virtual memory
    In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...

     (VM): Memory management subsystem implements the virtual memory concept and a user need not worry about the executable program size and the RAM size.
  • Paging
    Paging
    In computer operating systems, paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory. In the paging memory-management scheme, the operating system retrieves data from secondary storage in same-size blocks called...

    : It is a technique to minimize the internal as well as the external fragmentation in the physical memory.
  • Virtual file system
    Virtual file system
    A virtual file system or virtual filesystem switch is an abstraction layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way...

     (VFS): A VFS is a file system used to help the user to hide the different file systems complexities. A user can use the same standard file system related calls to access different file systems.


The kernel provides these and other basic services: interrupt
Interrupt handler
An interrupt handler, also known as an interrupt service routine , is a callback subroutine in microcontroller firmware, operating system or device driver whose execution is triggered by the reception of an interrupt...

 and trap handling, separation between user and system space, system call
System call
In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware related services , creating and executing new processes, and communicating with integral kernel services...

s, scheduling
Scheduling (computing)
In computer science, a scheduling is the method by which threads, processes or data flows are given access to system resources . This is usually done to load balance a system effectively or achieve a target quality of service...

, timer and clock handling, file descriptor
File descriptor
In computer programming, a file descriptor is an abstract indicator for accessing a file. The term is generally used in POSIX operating systems...

 management.

Features

Some key features of the Unix architecture concept are:
  • Unix systems use a centralized operating system kernel which manages system and process activities.
  • All non-kernel software is organized into separate, kernel-managed processes.
  • Unix systems are preemptively multitasking: multiple processes 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 known as thread
    Thread (computer science)
    In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

     management.
  • Files are stored on disk in a hierarchical file system
    File system
    A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...

    , with a single top location throughout the system (root, or "/"), with both files and directories, subdirectories, sub-subdirectories, and so on below it.
  • With few exceptions, devices and some types of communications between processes are managed and visible as files or pseudo-files within the file system hierarchy. This is known as everything is a file. However, Linus Torvalds states that this is inaccurate and may be better rephrased as "everything is a stream of bytes".


The UNIX operating system supports the following features and capabilities:
  • Multitasking and multiuser.
  • Kernel written in high-level language.
  • Programming interface.
  • Use of files as abstractions of devices and other objects.
  • Character-based default UI.
  • Built-in networking. (TCP/IP is standard)
  • Persistent system service processes called "daemons" and managed by init or inetd.

Criticism

Some ideas may appear unconventional to new users. This is mainly rooted in the fact that UNIX grew continually.

The UNIX-HATERS Handbook
The UNIX-HATERS Handbook
The UNIX-HATERS Handbook is a semi-humorous edited compilation of messages to the UNIX-HATERS mailing list. The book was edited by Simson Garfinkel, Daniel Weise and Steven Strassmann and published in 1994....

 covers some of these design failures from the user point of view. However, although some information is quite dated and cannot be applied to modern Unices such as Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Eric S. Raymond
Eric S. Raymond
Eric Steven Raymond , often referred to as ESR, is an American computer programmer, author and open source software advocate. After the 1997 publication of The Cathedral and the Bazaar, Raymond was for a number of years frequently quoted as an unofficial spokesman for the open source movement...

discovered that several issues are still prevailing, while others were resolved. Raymond concludes that not all concepts behind Unix can be deemed as non-functional even though the book's intention may have been to portray Unix as inferior without encouraging discussions with developers to actually fix the issues.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK