System V
System V, commonly abbreviated to SysV and rarely System 5, was one of the versions of the Unix operating system.
It was originally developed by AT&T and first released in 1983. Four versions of System V were released, called Releases 1, 2, 3, and 4. System V Release 4, or SVR4, was the most popular version, and the source of several common Unix features, such as "SysV init scripts" (/etc/init.d), used for system startup and shutdown control. The system also forms the basis of SVID (System V Interface Definition), a standard that defines how System V systems should work. The other of the two major branches of Unix systems is the Berkeley BSD software distribution.
The System V startup system controls the startup of programs at machine boot time. This init system is considered by many to be easier to use, more powerful, and flexible than the traditional BSD init system.
Version history
SVR1
SVR1 was the first version of System V, released in 1983, based on System III. It includes the vi editor and the curses libraries, both taken from BSD. It worked on DEC machines.
SVR2
SVR2 in 1984 includes kernel enhancements such as paged virtual memory. The Apple A/UX operating system is based on SVR2.
SVR3
SVR3 in 1987 includes file system improvements and a new network API. It is the basis of IBM's AIX
SVR4
SVR4 announced in 1988, is a joint development of ATT and Sun Microsystems. Sun's Solaris 2 (Sun OS 5) (released in 1992) is based on SVR4. The same happens with many commercial Unixes (HP, SGI, SCO...). It incorporates features from 4.3 BSD, Xenix and SunOS.
- BSD: TCP/IP support, sockets, csh
- From SunOS: virtual file system, NFS, ONC RPC
- De Xenix: drivers and binary compatibility in x86 equipment
- also adds many other features such as ksh, improved internationalization, standard support (ANSI C, POSIX,...)
The Amiga Unix operating system is based on SVR4. There was also a version for Atari.
Subsequently there were minor revisions to the SVR4:
- SVR4MP: version with multiprocessor support. Used by Unisys, ICL and NCR
- SVR4.1: adds entry/exit asynchronous
- SVR4.2 (1992): adds ACL, and loadable core modules, among others. It is the base of the UnixWare of Univel
- SVR4.2MP (1993): multiprocessor version of 4.2 used in Unixware 2 in 1995
UNIX SVR4 I/O
In UNIX, each I/O device has a special file associated with it, managed by the file system; This provides a consistent and well-defined interface with users and processes.
In UNIX there are two types of I/O: buffered and unbuffered. Buffered I/O takes advantage of system buffers, while unbuffered I/O uses [DMA], directly performing the transfer between the I/O module and the process I/O zone. Two kinds of buffers can be used with buffered I/O: cache systems and character queues.
Buffer Cache
The UNIX buffer cache is essentially a disk cache. Since the buffer cache and the I/O area of the process both reside in main memory, DMA will be used to perform a memory-to-memory copy. This action will not spend any processor cycles, but will consume bus cycles.
When a reference is made to a physical block number of a particular device, the operating system first checks whether the block is in the cache buffer. To minimize search time, the device list is organized as a hash table.
After a buffer has been allocated to a disk block, it cannot be used by another block until all other buffers have been used.
Character queue
The I/O device writes to a character queue, which the process reads from, or the process writes and the device reads from it. In this way, the character queues can only be read once; as each character is read, it is destroyed. This mechanism is different from the cache buffer, where it can be read multiple times.
Unbuffered I/O
It is the fastest method of performing I/O for a process. Processes that perform unbuffered I/O are locked in main memory and cannot be ejected to disk. This condition reduces eviction opportunities by tying up part of the main memory and thereby reducing overall system performance. In addition, the I/O device is paralyzed along with the processor for the duration of the transfer, making it unavailable to other processes.
Unix Devices
UNIX recognizes five classes of devices: Disk Drives, Tape Drives, Terminals, Communication Lines, Printers.
SVR5
SVR5 used exclusively by SCO on UnixWare 7 and SCO OpenServer 6