# System V

UNIX System V o System V, abreviado comúnmente SysV y raramente System 5, fue una de las versiones del sistema operativo Unix.
Fue desarrollado originalmente por AT&T y lanzado por primera vez en 1983. Fueron liberadas cuatro versiones de System V, denominadas Releases 1, 2, 3 y 4. System V Release 4, o SVR4, fue la versión más popular, y la fuente de varias características comunes de Unix, tales como "SysV init scripts" (/etc/init.d), usadas para el control de inicio y apagado del sistema. El sistema también forma la base de SVID (del inglés System V Interface Definition, Definición de Interfaz de System V), un estándar que define como los sistemas System V deben trabajar. La otra de las dos mayores ramas de los sistemas Unix es la distribución de software de Berkeley BSD.

## Historial de versiones
### SVR1

SVR1 fue la primera versión de System V, aparecida en 1983, basada en System III. Incluye el editor vi y las librerías curses, ambos tomados de BSD. Funcionó en máquinas DEC.

### SVR2

SVR2 en 1984 incluye mejoras en el núcleo como memoria virtual paginada. El sistema operativo Apple A/UX está basado en SVR2.

### SVR3

SVR3 en 1987 incluye mejoras en el sistema de ficheros y un nuevo API de red. Es la base del AIX de IBM

### SVR4

SVR4 anunciado en 1988, es un desarrollo conjunto de ATT y Sun Microsystems. Solaris 2 (Sun OS 5) de Sun (presentado en 1992) está basado en SVR4. Lo mismo sucede con muchos Unix comerciales (HP, SGI, SCO...).Incorpora características de 4.3 BSD, Xenix y SunOS.
* De BSD: soporte de TCP/IP, sockets, csh
* De SunOS: virtual file system, NFS, ONC RPC
* De Xenix: drivers y compatibilidad binaria en equipos x86
* además añade muchas otras características como ksh, mejor internacionalización, soporte de estándares (ANSI C, POSIX,...)
El sistema operativo Amiga Unix está basado en SVR4. También hubo una versión para Atari.
Posteriormente hubo revisiones menores del SVR4:

#### SVR4Mp

versión con soporte multiprocesador. Utilizado por Unisys, ICL y NCR

#### SVR4.1

Añade entrada/salida asíncrona

#### SVR4.2

(1992): añade ACL, y módulos de núcleo cargables, entre otros. Es la base del UnixWare de Univel

#### SVR4.2MP

(1993): versión multiprocesador del 4.2 usado en Unixware 2 en 1995

## E/S DE UNIX SVR4

En UNIX, cada dispositivo de E/S tiene asociado un archivo especial, gestionado por el sistema de archivos; así se ofrece una interfaz uniforme y bien definida con los usuarios y los procesos.
En UNIX hay dos tipos de E/S: amortiguada y no amortiguada. La E/S amortiguada aprovecha los buffers del sistema, mientras que la no amortiguada utiliza [DMA], realizando directamente la transferencia entre el módulo de E/S y la zona de E/S del proceso. Con E/S amortiguada se puede usar dos clases de memorias intermedias: sistemas de memoria caché y colas de caracteres.

### Caché de buffer

La caché de buffer en UNIX es esencialmente una caché de disco. Como la caché de buffer y la zona de E/S del proceso residen ambas en la memoria principal, se usará DMA para llevar a cabo una copia de memoria a memoria. Esta acción no gastará ningún ciclo del procesador, pero consumirá ciclos del bus.
Cuando se hace una referencia a un número de bloque físico de un dispositivo en particular, el sistema operativo comprueba primero si el bloque está en el buffer de la caché. Para minimizar el tiempo de búsqueda, la lista de dispositivos se organiza como una tabla de dispersión.
Después de que se haya asignado un buffer a un bloque de disco, no podrá ser usado por otro bloque hasta que todos los demás buffers se hayan usado.

### Cola de caracteres

El dispositivo de E/S escribe en una cola de caracteres, de la que lee el proceso o, el proceso escribe y el dispositivo lee de ella. De esta manera, las colas de caracteres solo podrán ser leídas una sola vez; a medida que se lee cada carácter, éste es destruido. Este mecanismo es distinto al del buffer de la caché, donde se puede leer varias veces.

### E/S no amortiguada

Es el método más rápido de realizar E/S para un proceso. Los procesos que realizan E/S no amortiguada quedan bloqueados en la memoria principal y no pueden ser expulsados al disco. Esta condición reduce las oportunidades de expulsión inmovilizando parte de la memoria principal y reduciendo, por lo tanto, el rendimiento global del sistema. Además, el dispositivo de E/S se paraliza junto al procesador mientras dure la transferencia, quedando inasequible para otros procesos.

### Dispositivos Unix

UNIX reconoce cinco clases de dispositivos: Unidades de disco, Unidades de cinta, Terminales, Líneas de comunicación, Impresoras.

### SVR5

SVR5 utilizado exclusivamente por SCO en UnixWare 7 y SCO OpenServer 6

## Bibliografía

* Bach (1986). "The Design of the UNIX Operating System". Prentice Hall. ISBN 0-13-201799-7.
* Goodheart, Berny; James Cox (1994). "The Magic Garden Explained. The internals of UNIX System V Release 4: an open systems design". Prentice Hall. ISBN 0-13-098138-9.