miércoles, 14 de abril de 2010

PROTOCOLOS

PROTOCOLOS

Los protocolos son reglas y procedimientos para la comunicación. El término «protocolo» se utiliza en distintos contextos. Por ejemplo, los diplomáticos de un país se ajustan a las reglas del protocolo creadas para ayudarles a interactuar de forma correcta con los diplomáticos de otros países. De la misma forma se aplican las reglas del protocolo al entorno informático. Cuando dos equipos están conectados en red, las reglas y procedimientos técnicos que dictan su comunicación e interacción se denominan protocolos.

-Existen muchos protocolos: A pesar de que cada protocolo facilita la comunicación básica, cada uno tiene un propósito diferente y realiza distintas tareas. Cada protocolo tiene sus propias ventajas y sus limitaciones.

-Algunos protocolos sólo trabajan en ciertos niveles OSI: El nivel al que trabaja un protocolo describe su función. Por ejemplo, un protocolo que trabaje a nivel físico asegura que los paquetes de datos pasen a la tarjeta de red (NIC) y salgan al cable de la red.

-Los protocolos también puede trabajar juntos en una jerarquía o conjunto de protocolos: Al igual que una red incorpora funciones a cada uno de los niveles del modelo OSI, distintos protocolos también trabajan juntos a distintos niveles en la jerarquía de protocolos. Los niveles de la jerarquía de protocolos se corresponden con los niveles del modelo OSI. Por ejemplo, el nivel de aplicación del protocolo TCP/IP se corresponde con el nivel de presentación del modelo OSI. Vistos conjuntamente, los protocolos describen la jerarquía de funciones y prestaciones.

Cómo funcionan los protocolos
La operación técnica en la que los datos son transmitidos a través de la red se puede dividir en dos pasos discretos, sistemáticos. A cada paso se realizan ciertas acciones que no se pueden realizar en otro paso. Cada paso incluye sus propias reglas y procedimientos, o protocolo.
Los pasos del protocolo se tienen que llevar a cabo en un orden apropiado y que sea el mismo en cada uno de los equipos de la red. En el equipo origen, estos pasos se tienen que llevar a cabo de arriba hacia abajo. En el equipo de destino, estos pasos se tienen que llevar a cabo de abajo hacia arriba.

-El equipo origen
1.- Se dividen en secciones más pequeñas, denominadas paquetes.
2.-Se añade a los paquetes información sobre la dirección, de forma que el equipo de destino pueda determinar si los datos le pertenecen.
3.-Prepara los datos para transmitirlos a través de la NIC y enviarlos a través del cable de la red.

-El equipo de destino
Los protocolos en el equipo de destino constan de la misma serie de pasos, pero en sentido inverso.
1.-Toma los paquetes de datos del cable y los introduce en el equipo a través de la NIC.
2.-Extrae de los paquetes de datos toda la información transmitida eliminando la información añadida por el equipo origen.
3.-Copia los datos de los paquetes en un búfer para reorganizarlos enviarlos a la aplicación.
Los equipos origen y destino necesitan realizar cada paso de la misma forma para que los datos tengan la misma estructura al recibirse que cuando se enviaron.

Protocolos encaminables
Hasta mediados de los ochenta, la mayoría de las redes de área local (LAN) estaban aisladas. Una LAN servía a un departamento o a una compañía y rara vez se conectaba a entornos más grandes. Sin embargo, a medida que maduraba la tecnología LAN, y la comunicación de los datos necesitaba la expansión de los negocios, las LAN evolucionaron, haciéndose componentes de redes de comunicaciones más grandes en las que las LAN podían hablar entre sí.
Los datos se envían de una LAN a otra a lo largo de varios caminos disponibles, es decir, se encaminan. A los protocolos que permiten la comunicación LAN a LAN se les conoce como protocolos encaminables. Debido a que los protocolos encaminables se pueden utilizar para unir varias LAN y crear entornos de red de área extensa, han tomado gran importancia.

Protocolos en una arquitectura multinivel
En una red, tienen que trabajar juntos varios protocolos. Al trabajar juntos, aseguran que los datos se preparan correctamente, se transfieran al destino correspondiente y se reciban de forma apropiada.
El trabajo de los distintos protocolos tiene que estar coordinado de forma que no se produzcan conflictos o se realicen tareas incompletas. Los resultados de esta coordinación se conocen como trabajo en niveles.

Jerarquías de protocolos
Una jerarquía de protocolos es una combinación de protocolos. Cada nivel de la jerarquía especifica un protocolo diferente para la gestión de una función o de un subsistema del proceso de comunicación. Cada nivel tiene su propio conjunto de reglas. Los protocolos definen las reglas para cada nivel en el modelo OSI:

-Nivel de aplicación Inicia o acepta una petición
-Nivel de presentación Añade información de formato, presentación y cifrado al paquete de datos
-Nivel de sesión Añade información del flujo de tráfico para determinar cuándo se envía el paquete
-Nivel de transporte Añade información para el control de errores
-Nivel de red Se añade información de dirección y secuencia al paquete
-Nivel de enlace de datos Añade información de comprobación de envío y prepara los datos para que vayan a la conexión física
-Nivel físico El paquete se envía como una secuencia de bits

Los niveles inferiores en el modelo OSI especifican cómo pueden conectar los fabricantes sus productos a los productos de otros fabricantes, por ejemplo, utilizando NIC de varios fabricantes en la misma LAN. Cuando utilicen los mismos protocolos, pueden enviar y recibir datos entre sí. Los niveles superiores especifican las reglas para dirigir las sesiones de comunicación (el tiempo en el que dos equipos mantienen una conexión) y la interpretación de aplicaciones. A medida que aumenta el nivel de la jerarquía, aumenta la sofisticación de las tareas asociadas a los protocolos.

El proceso de ligadura
El proceso de ligadura (binding process), el proceso con el que se conectan los protocolos entre sí y con la NIC, permite una gran flexibilidad a la hora de configurar una red. Se pueden mezclar y combinar los protocolos y las NIC según las necesidades. Por ejemplo, se pueden ligar dos jerarquías de protocolos a una NIC, como Intercambio de paquetes entre redes e Intercambio de paquetes en secuencia (IPX/SPX). Si hay más de una NIC en el equipo, cada jerarquía de protocolos puede estar en una NIC o en ambas.
El orden de ligadura determina la secuencia en la que el sistema operativo ejecuta el protocolo. Cuando se ligan varios protocolos a una NIC, el orden de ligadura es la secuencia en que se utilizarán los protocolos para intentar una comunicación correcta. Normalmente, el proceso de ligadura se inicia cuando se instala o se inicia el sistema operativo o el protocolo. Por ejemplo, si el primer protocolo ligado es TCP/IP, el sistema operativo de red intentará la conexión con TCP/IP antes de utilizar otro protocolo. Si falla esta conexión, el equipo tratará de realizar una conexión utilizando el siguiente protocolo en el orden de ligadura.
El proceso de ligadura consiste en asociar más de una jerarquía de protocolos a la NIC. Las jerarquías de protocolos tienen que estar ligadas o asociadas con los componentes en un orden para que los datos puedan moverse adecuadamente por la jerarquía durante la ejecución. Por ejemplo, se puede ligar TCP/IP al nivel de sesión del Sistema básico de entrada/salida en red (NetBIOS), así como al controlador de la NIC. El controlador de la NIC también está ligado a la NIC.

Jerarquías estándar
La industria informática ha diseñado varios tipos de protocolos como modelos estándar de protocolo. Los fabricantes de hardware y software pueden desarrollar sus productos para ajustarse a cada una de las combinaciones de estos protocolos. Los modelos más importantes incluyen:
-La familia de protocolos ISO/OSI.
-La arquitectura de sistemas en red de IBM (SNA).
-Digital DECnet.
-Novell NetWare.
-Apple Talk de Apple.
-El conjunto de protocolos de Internet, TCP/IP.

Los protocolos existen en cada nivel de estas jerarquías, realizando las tareas especificadas por el nivel. Sin embargo, las tareas de comunicación que tienen que realizar las redes se agrupan en un tipo de protocolo entre tres. Cada tipo está compuesto por uno o más niveles del modelo OSI.
Antes del modelo de referencia OSI se escribieron muchos protocolos. Por tanto, no es extraño encontrar jerarquías de protocolos que no se correspondan directamente con el modelo OSI.

Protocolos de aplicación
Los protocolos de aplicación trabajan en el nivel superior del modelo de referencia OSI y proporcionan interacción entre aplicaciones e intercambio de datos.

-APPC (Comunicación avanzada entre programas): Protocolo SNA Trabajo en Grupo de IBM, mayormente utilizado en equipos AS/400. APPC se define como un protocolo de aplicación porque trabaja en el nivel de presentación del modelo OSI. Sin embargo, también se considera un protocolo de transporte porque APPC utiliza el protocolo LU 6.2 que trabaja en los niveles de transporte y de sesión del modelo OSI.
-FTAM (Acceso y gestión de la transferencia de archivos): Un protocolo OSI de acceso a archivos
-X.400: Un protocolo CCITT para las transmisiones internacionales de correo electrónico.
-X.500: Un protocolo CCITT para servicios de archivos y directorio entre sistemas.
-SMTP (Protocolo básico para la transferencia de correo): Un protocolo Internet para las transferencias de correo electrónico.
-FTP (Protocolo de transferencia de archivos): Un protocolo para la transferencia de archivos en Internet.
-SNMP (Protocolo básico de gestión de red): Un protocolo Internet para el control de redes y componentes.
-Telnet: Un protocolo Internet para la conexión a máquinas remotas y procesar los datos localmente.
-SMBs (Bloques de mensajes del servidor) de Microsoft y clientes o redirectores: Un protocolo cliente/servidor de respuesta a peticiones.
-NCP (Protocolo básico de NetWare) y clientes o redirectores: Un conjunto de protocolos de servicio.
-AppleTalk y AppleShare: Conjunto de protocolos de red de Apple.
-AFP (Protocolo de archivos AppleTalk): Protocolo de Apple para el acceso a archivos remotos.
-DAP (Protocolo de acceso a datos): Un protocolo de DECnet para el acceso a archivos.

Protocolos de transporte
Los protocolos de transporte facilitan las sesiones de comunicación entre equipos y aseguran que los datos se pueden mover con seguridad entre equipos.

-TCP: El protocolo de TCP/IP para la entrega garantizada de datos en forma de paquetes secuenciados.
-SPX: Parte del conjunto de protocolos IPX/SPX de Novell para datos en forma de paquetes secuenciados.
-NWLink: La implementación de Microsoft del protocolo IPX/SPX.
-NetBEUI (Interfaz de usuario ampliada NetBIOS): Establece sesiones de comunicación entre equipos (NetBIOS) y proporciona los servicios de transporte de datos subyacentes (NetBEUI).
-ATP (Protocolo de transacciones Apple Talk) y NBP (Protocolo de asignación de nombres): Protocolos de Apple de sesión de comunicación y de transporte de datos.

Protocolos de red
Los protocolos de red proporcionan lo que se denominan «servicios de enlace». Estos protocolos gestionan información sobre direccionamiento y encaminamiento, comprobación de errores y peticiones de retransmisión. Los protocolos de red también definen reglas para la comunicación en un entorno de red particular como es Ethernet o Token Ring.

-IP: El protocolo de TCP/IP para el encaminamiento de paquetes.
-IPX: El protocolo de Novell para el encaminamiento de paquetes.
-NWLink: La implementación de Microsoft del protocolo IPX/SPX.
-NetBEUI: Un protocolo de transporte que proporciona servicios de transporte de datos para sesiones y aplicaciones NetBIOS.
-DDP (Protocolo de entrega de datagramas): Un protocolo de Apple Talk para el transporte de datos.

Estándares de protocolo
El modelo OSI se utiliza para definir los protocolos que se tienen que utilizar en cada nivel. Los productos de distintos fabricantes que se ajustan a este modelo se pueden comunicar entre sí.
La ISO, el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE), ANSI (Instituto de Estandarización Nacional Americano), CCITT (Comité Consultivo Internacional de Telegrafía y Telefonía), ahora llamado ITU (Unión Internacional de Telecomunicaciones) y otros organismos de estandarización han desarrollado protocolos que se correspondan con algunos de los niveles del modelo OSI.

Los protocolos de IEEE a nivel físico son:

-802.3 (Ethernet). Es una red lógica en bus que puede transmitir datos a 10 Mbps. Los datos se transmiten en la red a todos los equipos. Sólo los equipos que tenían que recibir los datos informan de la transmisión. El protocolo de acceso de múltiple con detección de portadora con detección de colisiones (CSMA/CD) regula el tráfico de la red permitiendo la transmisión sólo cuando la red esté despejada y no haya otro equipo transmitiendo.
-802.4 (Token Bus). Es una red en bus que utiliza un esquema de paso de testigo. Cada equipo recibe todos los datos, pero sólo los equipos en los que coincida la dirección responderán. Un testigo que viaja por la red determina quién es el equipo que tiene que informar.
-802.5 (Token Ring). Es un anillo lógico que transmite a 4 ó a 16 Mbps. Aunque se le llama en anillo, está montada como una estrella ya que cada equipo está conectado a un hub. Realmente, el anillo está dentro del hub. Un token a través del anillo determina qué equipo puede enviar datos.

El IEEE definió estos protocolos para facilitar la comunicación en el subnivel de Control de acceso al medio (MAC).
Un controlador MAC está situado en el subnivel de Control de acceso al medio; este controlador de dispositivo es conocido como controlador de la NIC. Proporciona acceso a bajo nivel a los adaptadores de red para proporcionar soporte en la transmisión de datos y algunas funciones básicas de control del adaptador.
Un protocolo MAC determina qué equipo puede utilizar el cable de red cuando varios equipos intenten utilizarlo simultáneamente. CSMA/CD, el protocolo 802.3, permite a los equipos transmitir datos cuando no hay otro equipo transmitiendo. Si dos máquinas transmiten simultáneamente se produce una colisión. El protocolo detecta la colisión y detiene toda transmisión hasta que se libera el cable. Entonces, cada equipo puede volver a tratar de transmitir después de esperar un período de tiempo aleatorio.


TCP/IP
El Protocolo de control de transmisión/Protocolo Internet (TCP/IP) es un conjunto de Protocolos aceptados por la industria que permiten la comunicación en un entorno heterogéneo (formado por elementos diferentes). Además, TCP/IP proporciona un protocolo de red encaminable y permite acceder a Internet y a sus recursos. Debido a su popularidad, TCP/IP se ha convertido en el estándar de hecho en lo que se conoce como interconexión de redes, la intercomunicación en una red que está formada por redes más pequeñas.
TCP/IP se ha convertido en el protocolo estándar para la interoperabilidad entre distintos tipos de equipos. La interoperabilidad es la principal ventaja de TCP/IP. La mayoría de las redes permiten TCP/IP como protocolo. TCP/IP también permite el encaminamiento y se suele utilizar como un protocolo de interconexión de redes.
Entre otros protocolos escritos específicamente para el conjunto TCP/IP se incluyen:

-SMTP (Protocolo básico de transferencia de correo). Correo electrónico.
-FTP (Protocolo de transferencia de archivos). Para la interconexión de archivos entre equipos que ejecutan TCP/IP.
-SNMP (Protocolo básico de gestión de red). Para la gestión de redes.

Diseñado para ser encaminable, robusto y funcionalmente eficiente, TCP/IP fue desarrollado por el Departamento de Defensa de Estados Unidos como un conjunto de protocolos para redes de área extensa (WAN). Su propósito era el de mantener enlaces de comunicación entre sitios en el caso de una guerra nuclear. Actualmente, la responsabilidad del desarrollo de TCP/IP reside en la propia comunidad de Internet. La utilización de TCP/IP ofrece varias ventajas:

-Es un estándar en la industria. Como un estándar de la industria, es un protocolo abierto. Esto quiere decir que no está controlado por una única compañía, y está menos sujeto a cuestiones de compatibilidad. Es el protocolo, de hecho, de Internet.

-Contiene un conjunto de utilidades para la conexión de sistemas operativos diferentes. La conectividad entre un equipo y otro no depende del sistema operativo de red que esté utilizando cada equipo.

-Utiliza una arquitectura escalable, cliente/servidor. TCP/IP puede ampliarse (o reducirse) para ajustarse a las necesidades y circunstancias futuras. Utiliza sockets para hacer que el sistema operativo sea algo transparente.
Un socket es un identificador para un servicio concreto en un nodo concreto de la red. El socket consta de una dirección de nodo y de un número de puerto que identifica al servicio.

Históricamente, TCP/IP ha tenido dos grandes inconvenientes: su tamaño y su velocidad. TCP/IP es una jerarquía de protocolos relativamente grandes que puede causar problemas en clientes basados en MS-DOS. En cambio, debido a los requerimientos del sistema (velocidad de procesador y memoria) que imponen los sistemas operativos con interfaz gráfica de usuario (GUI), como Windows NT o Windows 95 y 98, el tamaño no es un problema.

Estándares TCP/IP
Los estándares de TCP/IP se publican en una serie de documentos denominados Requests for comment (RFC); Solicitudes de comentarios. Su objeto principal es proporcionar información o describir el estado de desarrollo. Aunque no se crearon para servir de estándar, muchas RFC han sido aceptadas como estándares.
El desarrollo Internet está basado en el concepto de estándares abiertos. Es decir, cualquiera que lo desee, puede utilizar o participar en el desarrollo de estándares para Internet. La Plataforma de arquitectura Internet (IAB) es el comité responsable para la gestión y publicación de las RFC. La IAB permite a cualquier persona o a cualquier compañía que envíe o que evalúe una RFC. Esto permite que cualquier sugerencia sea tenida en cuenta para cambiar o crear estándares. Transcurrido un tiempo razonable para permitir la discusión, se crea un nuevo borrador que se convertirá o no en un estándar.

TCP/IP y el modelo OSI
El protocolo TCP/IP no se corresponde exactamente con el modelo OSI. En vez de tener siete niveles, sólo utiliza cuatro. Normalmente conocido como Conjunto de protocolos de Internet, TCP/IP se divide en estos cuatro niveles:

-Nivel de interfaz de red.
-Nivel Internet.
-Nivel de transporte.
-Nivel de aplicación.
Cada uno de estos niveles se corresponde con uno o más niveles del modelo OSI.

Nivel de interfaz de red
El nivel de interfaz de red, que se corresponde con los niveles físicos y de enlace de datos del modelo OSI se comunica directamente con la red. Proporciona la interfaz entre la arquitectura de red (como Token Ring, Ethernet) y el nivel Internet.

Nivel Internet
El nivel internet, que se corresponde con el nivel de red del modelo OSI, utiliza varios protocolos para encaminar y entregar los paquetes. Los routers son dependientes del protocolo. Funcionan a este nivel del modelo y se utilizan para enviar paquetes de una red a otra o de un segmento a otro. En el nivel de red trabajan varios protocolos.

Protocolo Internet (IP)
El Protocolo Internet (IP) es un protocolo de conmutación de paquetes que realiza direccionamiento y encaminamiento. Cuando se transmite un paquete, este protocolo añade una cabecera al paquete, de forma que pueda enviarse a través de la red utilizando las tablas de encaminamiento dinámico. IP es un protocolo no orientado a la conexión y envía paquetes sin esperar la señal de confirmación por parte del receptor. Además, IP es el responsable del empaquetado y división de los paquetes requerido por los niveles físico y de enlace de datos del modelo OSI. Cada paquete IP está compuesto por una dirección de origen y una de destino, un identificador de protocolo, un checksum (un valor calculado) y un TTL (tiempo de vida, del inglés time to live). El TTL indica a cada uno de los routers de la red entre el origen y el destino cuánto tiempo le queda al paquete por estar en la red. Funciona como un contador o reloj de cuenta atrás. Cuando el paquete pasa por el router, éste reduce el valor en una unidad (un segundo) o el tiempo que llevaba esperando para ser entregado. Por ejemplo, si un paquete tiene un TTL de 128, puede estar en la red durante 128 segundos o 128 saltos (cada parada, o router, en la red), o una combinación de los dos. El propósito del TTL es prevenir que los paquetes perdidos o dañados (como correos electrónicos con una dirección equivocada) estén vagando en la red. Cuando la cuenta TTL llega a cero, se retira al paquete de la red.
Otro método utilizado por IP para incrementar la velocidad de transmisión es el conocido como «ANDing». La idea del ANDing es determinar si la dirección es de un sitio local o remoto. Si la dirección es local, IP preguntará al Protocolo de resolución de direcciones (ARP) por la dirección hardware de la máquina de destino. Si la dirección es remota, el IP comprueba su tabla de encaminamiento local para encaminarlo al destino. Si existe un camino, el paquete se envía por ahí. Si no existe el camino, el paquete se envía a través del gateway a su destino.
Un AND es una operación lógica que combina los valores de dos bits (0, 1) o dos valores lógicos (verdadero, falso) y devuelve un 1 (verdadero) si los valores de ambas entradas son 1 (verdadero) y devuelve 0 (falso) en caso contrario.

Protocolo de resolución de direcciones (ARP)
Antes de enviar un paquete IP a otro host se tiene que conocer la dirección hardware de la máquina receptora. El ARP determina la dirección hardware (dirección MAC) que corresponde a una dirección IP. Si ARP no contiene la dirección en su propia caché, envía una petición por toda la red solicitando la dirección. Todos los hosts de la red procesan la petición y, si contienen un valor para esa dirección, lo devuelven al solicitante. A continuación se envía el paquete a su destino y se guarda la información de la nueva dirección en la caché del router.

Protocolo inverso de resolución de direcciones (RARP)
Un servidor RARP mantiene una base de datos de números de máquina en la forma de una tabla (o caché) ARP que está creada por el administrador del sistema. A diferencia de ARP, el protocolo RARP proporciona una dirección IP a una petición con dirección de hardware. Cuando el servidor RARP recibe una petición de un número IP desde un nodo de la red, responde comprobando su tabla de encaminamiento para el número de máquina del nodo que realiza la petición y devuelve la dirección IP al nodo que realizó la petición.

Protocolo de mensajes de control de Internet (ICMP)
El ICMP es utilizado por los protocolos IP y superiores para enviar y recibir informes de estado sobre la información que se está transmitiendo. Los routers suelen utilizar ICMP para controlar el flujo, o velocidad, de datos entre ellos. Si el flujo de datos es demasiado rápido para un router, pide a los otros routers que reduzcan la velocidad de transmisión.
Los dos tipos básicos de mensajes ICMP son el de informar de errores y el de enviar preguntas.

Nivel de transporte
El nivel de transporte, que se corresponde con el nivel de transporte del modelo OSI, es el responsable de establecer y mantener una comunicación entre dos hosts. El nivel de transporte proporciona notificación de la recepción, control de flujo y secuenciación de paquetes. También gestiona las retransmisiones de paquetes. El nivel de transporte puede utilizar los protocolos TCP o el Protocolo de datagramas de usuario (UDP) en función de los requerimientos de la transmisión.

Protocolo de control de transmisión (TCP)
El TCP es el responsable de la transmisión fiable de datos desde un nodo a otro. Es un protocolo orientado a la conexión y establece una conexión (también conocida como una sesión, circuito virtual o enlace) entre dos máquinas antes de transferir ningún dato. Para establecer una conexión fiable, TCP utiliza lo que se conoce como «acuerdo en tres pasos». Establece el número de puerto y los números de secuencia de inicio desde ambos lados de la transmisión. El acuerdo consta de tres pasos:
1. El solicitante envía al servidor un paquete especificando el número de puerto que él planea utilizar y el número de secuencia inicial (ISN).
2. El servidor responde con su ISN, que consiste en el ISN del solicitante más uno.
3. El solicitante responde a la respuesta del servidor con el ISN del servidor más uno.

En orden a mantener una conexión fiable, cada paquete tiene que contener:

-Un número de puerto TCP origen y destino.
-Un número de secuencia para mensajes que tienen que dividirse en partes más pequeñas.
-Un checksum que asegura que la información se ha recibido sin error.
-Un número de confirmación que indica a la máquina origen qué partes de la información han llegado.
-Ventanas deslizantes (Sliding Windows) TCP.

Puertos, sockets y ventanas deslizantes (sliding windows)
Los números de puerto del protocolo se utilizan para hacer referencia a la localización de una aplicación o proceso en particular en cada máquina (en el nivel de aplicación). Al igual que una dirección IP identifica la dirección de un host de la red, el número de puerto identifica la aplicación a nivel de transporte, por lo que proporciona una conexión completa de una aplicación de un host a una aplicación de otro host. Las aplicaciones y servicios (como servicios de archivos e impresión o telnet) pueden configurar hasta 65.536 puertos. Las aplicaciones y servicios TCP/IP suele utilizar los primeros 1.023 puertos. La Internet Assigned Numbers Authority (IANA) los ha asignado como estándar, o puertos por omisión. Cualquier aplicación cliente puede asignar números de puerto dinámicamente cuando sea necesario. Un puerto y una dirección de nodo forman un socket.
Los servicios y las aplicaciones utilizan sockets para establecer conexiones con otro host. Si las aplicaciones necesitan garantizar la entrega de datos, el socket elige el servicio orientado a conexión (TCP). Si la aplicación no necesita garantizar la entrega de los datos, el socket elige el servicio no orientado a la conexión (UDP).
TCP utiliza una ventana deslizante para transferir datos entre hosts. Regula cuánta información puede pasarse a través de una conexión IP antes de que el host de destino envíe una confirmación. Cada equipo tiene una ventana de envío y de recepción que utiliza a modo de búfer para guardar los datos y hacer más eficiente el proceso de comunicación. Una ventana deslizante permite al equipo origen transmitir una serie de paquetes sin tener que esperar a que le sea confirmada la llegada de cada paquete. Esto permite al equipo de destino que pueda recibir los paquetes en otro orden al enviado, y si no se recibe una confirmación en un período de tiempo, se reenvían los paquetes.

Protocolo de datagramas de usuario (UDP)
UDP es un protocolo no orientado a la conexión y es el responsable de la comunicación de datos extremo a extremo. En cambio, a diferencia de TCP, UDP no establece una conexión. Intenta enviar los datos e intenta comprobar que el host de destino recibe los datos. UDP se utiliza para enviar pequeñas cantidades de datos que no necesitan una entrega garantizada. Aunque UDP utiliza puertos, son distintos de los puertos TCP; así pues, pueden utilizar los mismos números sin interferirse.

Nivel de aplicación
El nivel de aplicación se corresponde con los niveles de sesión, presentación y aplicación del modelo OSI, y conecta las aplicaciones a la red. Dos interfaces de programación de aplicaciones (API) proporcionan acceso a los protocolos de transporte TCP/IP, los sockets de Windows y NetBIOS.

Interfaz de sockets de Windows
Los sockets de Windows (WinSock) son una API de red diseñada para facilitar la comunicación entre aplicaciones y jerarquías de protocolos TCP/IP diferentes. Se definió para que las aplicaciones que utilizasen TCP/IP pudiesen escribir en una interfaz estándar. WinSock se deriva de los sockets originales que creó la API para el sistema operativo Unix BSD. WinSock proporciona una interfaz común para las aplicaciones y protocolos que existen cerca de la cima del modelo de referencia TCP/IP. Cualquier programa o aplicación escrito utilizando la API de WinSock se puede comunicar con cualquier protocolo TCP/IP, y viceversa.


Protocolos NetWare

Introducción a los protocolos NetWare

Al igual que TCP/IP, Novell proporciona un conjunto de protocolos desarrollados específicamente para NetWare. Los cinco protocolos principales utilizados por NetWare son:

-Protocolo de acceso al medio.
-Intercambio de paquetes entre redes/Intercambio de paquetes en secuencia (IPX/SPX).
-Protocolo de información de encaminamiento (RIP).
-Protocolo de notificación de servicios (SAP).
-Protocolo básico de NetWare (NCP).

Debido a que estos protocolos se definieron antes de la finalización del modelo OSI, no se ajustan exactamente al modelo OSI. Actualmente, no existe una correlación directa entre los límites de los niveles de las dos arquitecturas. Estos protocolos siguen un patrón de recubrimiento. Concretamente, los protocolos de nivel superior (NCP, SAP y RIP) están recubiertos por IPX/SPX. Luego, una cabecera y un final del Protocolo de acceso al medio recubre a IPX/SPX.


Protocolos de acceso al medio
Los protocolos de acceso al medio definen el direccionamiento que permite diferenciar a los nodos de una red NetWare. El direccionamiento está implementado en el hardware o en la NIC. Las implementaciones más conocidas son:

-802.5 Token Ring.
-802.3 Ethernet.
-Ethernet 2.0.

El protocolo es responsable de colocar la cabecera al paquete. Cada cabecera incluye el código del origen y del destino. Una vez que se haya transmitido el paquete y que está en el medio, cada tarjeta de red comprueba la dirección; si la dirección coincide con la dirección del destino del paquete, o si el paquete es un mensaje de difusión, la NIC copia el paquete y lo envía a la jerarquía de protocolos.
Además del direccionamiento, este protocolo proporciona un control de errores a nivel de bit como una comprobación de redundancia cíclica (CRC). Una vez que se le añade la CRC al paquete, supuestamente los paquetes estaban libres de errores.
La comprobación de errores CRC utiliza un cálculo complejo para generar un número basado en los datos transmitidos. El dispositivo que realiza el envío hace el cálculo antes de realizar la transmisión y lo incluye en el paquete que se envía al dispositivo de destino. El dispositivo de destino vuelve a hacer este cálculo después de la transmisión. Si ambos dispositivos obtienen el mismo resultado, se supone que no se han producido errores en la transmisión. A este procedimiento se le conoce como comprobación de redundancia, porque cada transmisión incluye no sólo los datos, sino que además incluye valores de comprobación extras (redundantes).


Intercambio de paquetes entre redes/Intercambio de paquetes en secuencia (IPX/SPX,
Internetwork Packet Exchange/Sequenced Packet Exchange)

El Intercambio de paquetes entre redes (IPX) define los esquemas de direccionamiento utilizados en una red NetWare, e Intercambio de paquetes en secuencia (SPX) proporciona la seguridad y fiabilidad al protocolo IPX. IPX es un protocolo a nivel de red basado en datagramas, no orientado a la conexión y no fiable, equivalente a IP. No requiere confirmación por cada paquete enviado. Cualquier control de confirmación o control de conexión tiene que ser proporcionado por los protocolos superiores a IPX. SPX proporciona servicios orientados a la conexión y fiables a nivel de transporte.
Novell adoptó el protocolo IPX utilizando el Protocolo de datagramas Internet del Sistema de red de Xerox (XNS). IPX define dos tipos de direccionamiento:

-Direccionamiento a nivel de red. La dirección de un segmento de la red, identificado por el número de red asignado durante la instalación.
-Direccionamiento a nivel de nodo. La dirección de un proceso en un nodo que está identificado por un número de socket.

Los protocolos IPX sólo se utilizan en redes con servidores NetWare y se suelen instalar con otro conjunto de protocolos como TCP/IP. Incluso NetWare está empezando a utilizar TCP/IP como un estándar.

Protocolo de información de encaminamiento (RIP, Routing Information Protocol)
RIP, al igual que IPX, facilita el intercambio de información de encaminamiento en una red NetWare y fue desarrollado desde XNS. Sin embargo, en RIP se ha añadido al paquete un campo de datos extra para mejorar el criterio de decisión para seleccionar la ruta más rápida hasta un destino. El hecho de realizar una difusión de un paquete RIP permite que ocurran ciertas cosas:

-Las estaciones de trabajo pueden localizar el camino más rápido a un número de red.
-Los routers pueden solicitar información de encaminamiento a otros routers para actualizar sus propias tablas internas.
-Los routers pueden responder a peticiones de encaminamiento de otras estaciones de trabajo o de otros routers.
-Los routers pueden asegurarse de si otros routers conocen la configuración de la red.
-Los routers pueden detectar un cambio en la configuración de la red.

Protocolo de notificación de servicios (SAP, Service Advertising Protocol)
El Protocolo de notificación de servicios (SAP) permite a los nodos que proporcionan servicios (incluyen a los servidores de archivos, servidores de impresión, servidores gateway y servidores de aplicación) informar de sus servicios y direcciones. Los clientes de la red son capaces de obtener la dirección de la red de los servidores a los que pueden acceder. Con SAP, la incorporación y la eliminación de servicios en la red se vuelve dinámica. Por omisión, un servidor SAP informa de su presencia cada 60 segundos. Un paquete SAP contiene:

-Información operativa. Especifica la operación que está realizando el paquete.
-Tipo de servicio. Especifica el tipo de servicio ofrecido por el servidor.
-Nombre del servidor. Especifica el nombre del servidor que difunde los servicios.
-Dirección de red. Especifica el número de red del servidor que difunde los servicios.
-Dirección de nodo. Especifica el número de nodo del servidor que difunde los servicios.
-Dirección de socket. Especifica el número de socket del servidor que difunde los servicios.
-Total de saltos hasta el servidor. Especifica el número de saltos que hay hasta el servidor que difunde los servicios.
-Campo de operación. Especifica el tipo de petición.
-Información adicional. Uno o más conjuntos de campos que pueden seguir al campo de operación con más información sobre uno o más servidores.

Protocolo básico de NetWare (NCP, NetWare Core Protocol)
El Protocolo básico de NetWare (NCP) define el control de la conexión y la codificación de la petición de servicio que hace posible que puedan interactuar los clientes y los servidores. Éste es el protocolo que proporciona los servicios de transporte y de sesión. La seguridad de NetWare también está proporcionada dentro de este protocolo.


Otros protocolos habituales

Sistema básico de Entrada/Salida en red (NetBIOS, Network Basic Input/Output System)La mayoría de los servicios y aplicaciones que se ejecutan en el sistema operativo Windows utilizan la interfaz NetBIOS o la Comunicación entre procesos (IPC). NetBIOS se desarrolló sobre LAN y se ha convertido en una interfaz estándar para que las aplicaciones puedan acceder a los protocolos de red en el nivel de transporte con comunicaciones orientadas y no orientadas a la conexión. Existen interfaces NetBIOS para NetBEUI, NWLink y TCP/IP. Las interfaces NetBIOS necesitan una dirección IP y un nombre NetBIOS para identificar de forma única a un equipo.
NetBIOS realiza cuatro funciones importantes:

-Resolución de nombres NetBIOS. Cada estación de trabajo de una red tienen uno o más nombres. NetBIOS mantiene una tabla con los nombres y algunos sinónimos. El primer nombre en la tabla es el nombre único de la NIC. Se pueden añadir nombres de usuario opcionales para proporcionar un sistema de identificación expresivo.
-Servicio de datagramas NetBIOS. Esta función permite enviar un mensaje a un nombre, a un grupo de nombres, o a todos los usuarios de la red. Sin embargo, debido a que no utiliza conexiones punto a punto, no se garantiza que el mensaje llegue a su destino.
-Servicio de sesión NetBIOS. Este servicio abre una conexión punto a punto entre dos estaciones de trabajo de una red. Una estación inicia una llamada a otra y abre la conexión. Debido a que ambas estaciones son iguales, pueden enviar y recibir datos concurrentemente.
-Estado de la sesión/NIC NetBIOS. Esta función ofrece información sobre la NIC local, otras NIC y las sesiones activas disponibles a cualquier aplicación que utilice NetBIOS.
Originalmente, IBM ofrecía NetBIOS como un producto separado, implementado como un programa residente (TSR). Actualmente, este programa TSR es obsoleto; si se encuentra uno de estos sistemas, debería sustituirlo con la interfaz NetBIOS de Windows.

NetBEUI
NetBEUI es el acrónimo de Interfaz de usuario ampliada NetBIOS. Originalmente, NetBIOS y NetBEUI estaban casi unidos y se les consideraba como un protocolo. Sin embargo, varios fabricantes separaron NetBIOS, el protocolo a nivel de sesión, de forma que pudiera utilizarse con otros protocolos de transporte encaminables. NetBIOS (Sistema básico de entrada/salida de la red) es una interfaz para LAN a nivel de sesión de IBM que actúa como una interfaz de aplicación para la red. NetBIOS proporciona a un programa las herramientas para que establezca en la red una sesión con otro programa, y debido a que muchos programas de aplicación lo soportan, es muy popular.
NetBEUI es un protocolo pequeño, rápido y eficiente a nivel de transporte proporcionado con todos los productos de red de Microsoft. Está disponible desde mediados de los ochenta y se suministró con el primer producto de red de Microsoft: MS-NET.
Entre las ventajas de NetBEUI se incluyen su pequeño tamaño (importante para los equipos que ejecuten MS-DOS), su velocidad de transferencia de datos en el medio y su compatibilidad con todas las redes Microsoft.
El principal inconveniente de NetBEUI es que no soporta el encaminamiento. También está limitado a redes Microsoft. NetBEUI es una buena solución económica para una red Trabajo en Grupo donde todas las estaciones utilizan sistemas operativos Microsoft.

Conmutación de paquetes X.25
X.25 es un conjunto de protocolos WAN para redes de conmutación de paquetes y está formado por servicios de conmutación. Los servicios de conmutación se crearon originalmente para conectar terminales remotos a sistemas mainframe. La red dividía cada transmisión en varios paquetes y los colocaba en la red. El camino entre los nodos era un circuito virtual, que los niveles superiores trataban como si se tratase de una conexión lógica continua. Cada paquete puede tomar distintos caminos entre el origen y el destino. Una vez que llegan los paquetes, se reorganizan como los datos del mensaje original.
Un paquete típico está formado por 128 bytes de datos; sin embargo, el origen y el destino, una vez establecida la conexión virtual, pueden negociar tamaños de paquete diferentes. El protocolo X.25 puede soportar en el nivel físico un máximo teórico de 4.095 circuitos virtuales concurrentes entre un nodo y una red X.25. La velocidad típica de transmisión de X.25 es de 64 Kbps.
El protocolo X.25 trabaja en los niveles físico, de enlace de datos y de red del modelo OSI. Se conoce desde mediados de los setenta y se ha depurado muy bien, por lo que proporciona un entorno de red muy estable. Sin embargo, tiene dos inconvenientes:
El mecanismo de guardar y enviar causa retardos. Normalmente, el retardo es de 6 décimas de segundos y no tiene efecto en bloques de datos grandes. En cambio, en un tipo de transmisión «flip-flop», el retraso puede ser considerable.
Un «flip-flop» es un circuito que alterna entre dos estados posibles cuando se recibe un pulso en la entrada. Por ejemplo, si la salida de un flip-flop es un valor alto y se recibe un pulso en la entrada, la salida cambia a un valor bajo; un segundo pulso en la entrada vuelve a colocar en la salida un valor alto, y así sucesivamente.
Para soportar la transferencia de guardar y enviar se requiere una gran cantidad de trabajo con el búfer.
X.25 y TCP/IP son similares en la medida en que utilizan protocolos de conmutación de paquetes. Sin embargo, existen algunas diferencias entre ellos:
TCP/IP sólo tiene comprobación de errores y control de flujo extremo a extremo; X.25 tienen control de errores nodo a nodo.
Para compensar el hecho de que una red TCP/IP sea completamente pasiva, TCP/IP tiene un control de flujo y un mecanismo de ventana más complicado que el de X.25.
X.25 tiene unos niveles de enlace y eléctricos muy concretos; TCP/IP está diseñado para trabajar con distintos tipos de medios, y con servicios de enlace muy variados.

Sistema de red de Xerox (XNS, Xerox Network System)
Xerox desarrolló el Sistema de red de Xerox (XNS) para sus LAN Ethernet. XNS se utilizaba mucho en los ochenta, pero ha sido lentamente sustituido por TCP/IP. Es un protocolo de gran tamaño, lento, ya que genera muchos envíos a todos los dispositivos, aumentando el tráfico de la red.

Comunicación avanzada entre programas (APPC, Advanced Program-to-Program Communication)
La Comunicación avanzada entre programas es un protocolo de transporte de IBM desarrollado como parte de su Arquitectura de sistemas en red (SNA). Se diseñó para permitir que los programas de aplicación que se estuviesen ejecutando en distintos equipos se pudiesen comunicar e intercambiar datos directamente.

Apple Talk
Apple Talk es la jerarquía de protocolos de Apple Computer para permitir que los equipos Apple Macintosh compartan archivos e impresoras en un entorno de red. Se introdujo en 1984 como una tecnología LAN autoconfigurable. Apple Talk también está disponible en muchos sistemas UNIX que utilizan paquetes comerciales y de libre distribución. El conjunto de protocolos AppleTalk permite compartir archivos a alto nivel utilizando AppleShare, los servicios de impresión y gestores de impresión de LaserWriter, junto con la secuencia de datos de bajo nivel y la entrega de datagramas básicos.

Protocolos AppleTalk
AppleTalk: Una colección de protocolos que se corresponde con el modelo OSI. Soporta LocalTalk, EtherTalk y TokenTalk.
LocalTalk: Describe el cable par trenzado apantallado utilizado para conectar equipos Macintosh con otros Macintosh o impresoras. Un segmento LocalTalk permite hasta un máximo de 32 dispositivos y opera a una velocidad de 230 Kbps.
Ether Talk: AppleTalk sobre Ethernet. Opera a una velocidad de 10 Mbps. Fast Ethernet opera a una velocidad de 100 Mbps.
Token Talk: AppleTalk sobre Token Ring. Dependiendo de su hardware, TokenTalk opera a 4 o a 16 Mbps.

Conjuntos de protocolos OSI
El conjunto de protocolos OSI es una jerarquía completa de protocolos. Cada protocolo se corresponde directamente con un único nivel del modelo OSI. El conjunto de protocolos OSI incluye protocolos de encaminamiento y transporte, la serie de protocolos IEEE 802, un protocolo a nivel de sesión, un protocolo a nivel de presentación y varios protocolos a nivel de aplicación diseñados para proporcionar una funcionalidad de red, incluyendo el acceso a archivos, impresión y emulación de terminal.

DECnet
DECnet es una jerarquía de protocolos de Digital Equipment Corporation. Es un conjunto de productos hardware y software que implementan la Arquitectura de red de Digital (DNA). Define redes de comunicación sobre LAN Ethernet, redes de área metropolitana con Interfaz de datos distribuida de fibra (FDDI MAN) y WAN que utilicen características de transmisión de datos privados o públicos. DECnet también puede utilizar protocolos TCP y OSI, así como sus propios protocolos. Se trata de un protocolo encaminable.

miércoles, 31 de marzo de 2010

INTERRUPCIONES EN LOS SISTEMAS POR HARDWARE Y SOFTWARE

Mecanismo de interrupciones en un PC
Un ordenador PC típico dispone en su placa base de un controlador de interrupciones 8259 de Intel o de un circuito integrado análogo. Este dispositivo electrónico dispone de hasta 16 líneas IRQ, numeradas desde el 00 hasta el 15. En las nuevas placas base este circuito está integrado junto con el resto del chipset y permite hasta 24 interrupciones.
Tipos de interrupciones]
En este subapartado vamos a hacer una clasificación de las distintas clases de interrupciones que nos podemos encontrar atendiendo a la fuente que las produce. Por un lado distinguiremos si se producen por causas internas o externas al procesador y remarcaremos que este hecho está íntimamente ligado con que las interrupciones sean síncronas o asíncronas:

Interrupciones hardware: Estas son asíncronas a la ejecución del procesador, es decir, se pueden producir en cualquier momento independientemente de lo que esté haciendo la CPU en ese momento. Las causas que lo producen son externas al procesador y a menudo suelen estar ligadas con distintos dispositivos de E/S.

Interrupciones software o excepciones : Son aquellas que se producen de forma síncrona a la ejecución del procesador y por tanto podrían predecirse si se analiza con detenimiento la traza del programa que en ese momento estaba siendo ejecutado en la CPU. Normalmente las causas de estas interrupciones suelen ser realizaciones de operaciones no permitidas tales como la división por 0, el desbordamiento, el acceso a una posición de memoria no permitida, etc.

Trampas: A menudo se tiende a confundir las interrupciones software y las trampas, ya que su naturaleza es bastante similar. Sin embargo las excepciones se producen al realizar una operación no permitida por lo que de algún modo podemos decir que no es controlada directamente por el programador si no que, por un fallo al programar, se producen. No obstante las trampas si que son provocadas por el programador, para provocar una trampa existen distintas instrucciones en el repertorio máquina que permiten al programador producir una interrupción al ejecutar dicha instrucción. Suelen tener nemotécnicos tales como INT. Suelen ser de vital importancia ya que a partir de las trampas se pueden pedir al SO que realice determinadas funciones, para ello, en DOS se realiza la instrucción INT 0x21 y en Unix se utiliza INT 0x80.
Interrupciones hardware
Son interrupciones que se producen como resultado de, normalmente, una operación de E/S. No son producidas por ninguna instrucción si no que son señales que producen los dispositivos para indicarle al procesador que necesitan ser 'atendidos'. Las interrupciones hardware son interesantes en cuanto a que permiten mejorar la productividad del procesador ya que este último puede ordenar una operación de E/S y en lugar de tener que esperar a que el dispositivo acabe realizando una espera activa, es decir, sin hacer ningún trabajo útil, se puede dedicar a atender a otro proceso o aplicación y cuando el dispositivo este de nuevo disponible será el encargado de notificarle al procesador mediante la línea de interrupción ya que está preparado para continuar/terminar la operación de E/S.
Interrupciones software o excepciones
Es un tipo de interrupción sincrónica típicamente causada por una condición de error, por ej. una división por 0 o un acceso inválido a memoria en un proceso de usuario. Normalmente genera un cambio de contexto a modo supervisor para que el sistema operativo atienda el error. De manera que podemos ver como las excepciones son un mecanismo de protección que permite garantizar la integridad de los datos tanto en el espacio de usuario como en el espacio kernel. El SO cuando detecta una excepción intenta solucionarla pero en caso de no poder simplemente notificará la condición de error a la aplicación y abortará la misma.

Trampas
En este apartado se consideran las llamadas al sistema operativo mediante una instrucción, normalmente de Entrada/Salida.
Una interrupción por software, se prevé en qué momento de la ejecución de un programa sucederá. En general actúa de la siguiente manera:
. Un programa que se venía ejecutando luego de su instrucción I5, llama al Sistema Operativo, por ejemplo para leer un archivo de disco.
. A tal efecto, luego de I5 existe en el programa, la instrucción de código de máquina CD21, simbolizada INT 21 en Assembler, que realiza el requerimiento del paso 1. Puesto que no puede seguir le ejecución de la instrucción I6 y siguientes del programa hasta que no se haya leído el disco y esté en memoria principal dicho archivo, virtualmente el programa se ha interrumpido, siendo, además, que luego de INT 21, las instrucciones que se ejecutarán no serán del programa, sino del Sistema Operativo.
. La ejecución de INT 21 permite hallar la subrutina del Sistema Operativo.
. Se ejecuta la subrutina del Sistema Operativo que prepara la lectura del disco.
. Luego de ejecutarse la subrutina del Sistema Operativo, y una vez que se haya leído el disco y verificado que la lectura es correcta, el Sistema Operativo ordenará reanudar la ejecución del programa autointerrumpido en espera.
. La ejecución del programa se reanuda.

CLASIFICACION DE LAS EMPRESAS

Clasificación de las empresas
Existen numerosas diferencias entre unas empresas y otras. Sin embargo, según en qué aspecto nos fijemos, podemos clasificarlas de varias formas. Dichas empresas, además cuentan con funciones, funcionarios y aspectos disímiles, a continuación se presentan los tipos de empresas según sus ámbitos y su producción.
Según la actividad o giro
Las empresas pueden clasificarse, de acuerdo con la actividad que desarrollen, en:
Industriales. La actividad primordial de este tipo de empresas es la producción de bienes mediante la transformación de la materia o extracción de materias primas. Las industrias, a su vez, se clasifican en:
Extractivas. Cuando se dedican a la explotación de recursos naturales, ya sea renovables o no renovables. Ejemplos de este tipo de empresas son las pesqueras, madereras, mineras, petroleras, etc.
Manufactureras: Son empresas que transforman la materia prima en productos terminados, y pueden ser:
De consumo final. Producen bienes que satisfacen de manera directa las necesidades del consumidor. Por ejemplo: prendas de vestir, muebles, alimentos, aparatos eléctricos, etc.
De producción. Estas satisfacen a las de consumo final. Ejemplo: maquinaria ligera, productos químicos, etc.
Comerciales. Son intermediarias entre productor y consumidor; su función primordial es la compra/venta de productos terminados. Pueden clasificarse en:
Mayoristas: Venden a gran escala o a grandes rasgos.
Minoristas (detallistas): Venden al menudeo.
Comisionistas: Venden de lo que no es suyo, dan a consignación.
Servicio. Son aquellas que brindan servicio a la comunidad que a su vez se clasifican en:
Transporte
Turismo
Instituciones financieras
Servicios públicos (energía, agua, comunicaciones)
Servicios privados (asesoría, ventas, publicidad, contable, administrativo)
Educación
Finanzas
Salubridad
Según la forma jurídica
Atendiendo a la titularidad de la empresa y la responsabilidad legal de sus propietarios. Podemos distinguir:
Empresas individuales: si sólo pertenece a una persona. Esta puede responder frente a terceros con todos sus bienes, es decir, con responsabilidad limitada, o sólo hasta el monto del aporte para su constitución, en el caso de las empresas individuales de responsabilidad limitada o EIRL. Es la forma más sencilla de establecer un negocio y suelen ser empresas pequeñas o de carácter familiar.
Empresas societarias o sociedades: constituidas por varias personas. Dentro de esta clasificación están: la sociedad anónima, la sociedad colectiva, la sociedad comanditaria y la sociedad de responsabilidad limitada
Las cooperativas u otras organizaciones de economía social.
Según su dimensión
No hay unanimidad entre los economistas a la hora de establecer qué es una empresa grande o pequeña, puesto que no existe un criterio único para medir el tamaño de la empresa. Los principales indicadores son: el volumen de ventas, el capital propio, número de trabajadores, beneficios, etc. El más utilizado suele ser según el número de trabajadores. Este criterio delimita la magnitud de las empresas de la forma mostrada a continuación:
Micro empresa: si posee 10 o menos trabajadores.
Pequeña empresa: si tiene un número entre 11 y 50 trabajadores.
Mediana empresa: si tiene un número entre 51 y 250 trabajadores.
Gran empresa: si posee más de 250 trabajadores.
Multinacional: si posee ventas internacionales.
Según su ámbito de actuación
En función del ámbito geográfico en el que las empresas realizan su actividad, se pueden distinguir
1. Empresas locales
2. Regionales
3. Nacionales
4. Multinacionales
5. Transnacionales
6. Mundial
Según la procedencia de capital
1. Empresa privada: si el capital está en manos de accionistas particulares (empresa familiar si es la familia, empresa autogestionada si son los trabajadores, etc.)
2. Empresa pública: si el capital y el control está en manos del Estado
3. Empresa mixta: si la propiedad es compartida
Según la cuota de mercado que poseen las empresas
Empresa aspirante: aquélla cuya estrategia va dirigida a ampliar su cuota frente al líder y demás empresas competidoras, y dependiendo de los objetivos que se plantee, actuará de una forma u otra en su planificación estratégica.
Empresa especialista: aquélla que responde a necesidades muy concretas, dentro de un segmento de mercado, fácilmente defendible frente a los competidores y en el que pueda actuar casi en condiciones de monopolio. Este segmento debe tener un tamaño lo suficientemente grande como para que sea rentable, pero no tanto como para atraer a las empresas líderes.
Empresa líder: aquélla que marca la pauta en cuanto a precio, innovaciones, publicidad, etc., siendo normalmente imitada por el resto de los actuantes en el mercado.
Empresa seguidora: aquélla que no dispone de una cuota suficientemente grande como para inquietar a la empresa líder.

lunes, 22 de marzo de 2010

SISTEMAS OPERATIVOS

Acorn Computers
Acorn MOS (on the BBC Micro and BBC Master)
Arthur
ARX
RISC OS
RISC iX (based on 4.3BSD)
Amiga Inc.
AmigaOS
AmigaOS 1.0-3.9 (68k)
AmigaOS 4 (PowerPC)
Amiga Unix (aka Amix)
Apollo Computer
AEGIS
Domain/OS One of the first network-based systems. Ran on Apollo/Domain hardware. Later bought by Hewlett-Packard.
vikek OS
Apple Inc.
For
Apple II
Apple DOS
UCSD Pascal
ProDOS
GS/OS
For
Apple III
SOS (Sophisticated Operating System)
For
Apple Lisa
Lisa OS
For
Apple Newton
Newton OS
Classic
Mac OS
System Software 1
System Software 2
System Software 3
System Software 4
System Software 5
System 6
System 7 (codenamed "Big Bang")
Mac OS 8
Mac OS 9
Unix-like operating systems
For
Macintosh Computers
For 68k CPUs
A/UX
For
PowerPC CPUs
MkLinux
For
PowerPC and Intel CPUs
Mac OS X
Mac OS X v10.0 (aka "Cheetah")
Mac OS X v10.1 (aka "Puma")
Mac OS X v10.2 (aka "Jaguar")
Mac OS X v10.3 (aka "Panther")
Mac OS X v10.4 (aka "Tiger")
Mac OS X v10.5 (aka "Leopard")
Mac OS X v10.6 (aka "Snow Leopard")
Mac OS X Server
For
iPhone/iPod Touch/iPad
iPhone OS
Atari
Atari DOS (for 8-bit computers)
Atari TOS
Atari MultiTOS
BAE Systems
XTS-400
Be Inc.
BeOS
BeIA
BeOS r5.1d0
magnussoft ZETA (based on BeOS r5.1d0 source code, developed by yellowTAB)
Blue Eyed OS
Cosmoe
Burroughs Corporation
Burroughs MCP
Control Data Corporation
COS (Chippewa Operating System)
SIPROS (for Simultaneous Processing Operating System)
SCOPE (Supervisory Control Of Program Execution)
MACE (Mansfield and Cahlander Executive)
KRONOS (Kronographic OS)
NOS (Network Operating System)
NOS/BE NOS Batch Environment
Convergent Technologies
Convergent Technologies Operating System (later acquired by Unisys)
Data General
RDOS Real-time Disk Operating System, with variants: RTOS and DOS (not related to IBM PC DOS).
AOS for 16-bit Data General Eclipse computers and AOS/VS for 32-bit (MV series) Eclipses, MP/AOS for microNOVA-based computers
DG/UX
DataPoint
CTOS Z-80 based, Cassette Tape Operating System for early desktop systems. Capable of up to 8 simultaneous users. Replaced by DataPoint DOS.
DOS Intel 808x/80x86-based, Disk Operating Systems for desktop systems. Capable of up to 32 users per node. Supported a sophisticated network of nodes that were often purpose-built. The name DOS was used in these products login screens before it was popularized by IBM, Microsoft and others.
Digital Research Inc
Control Program/Monitor (CP/M)
CP/M-80 CP/M for Intel 8080/8085 and Zilog Z80
MP/M-80 Multi-user version of CP/M-80
CP/M-86 CP/M for Intel 8088/86
MP/M-86 Multi-user version of CP/M-86
CP/M-68k CP/M for Motorola 68000
CP/M-8000 CP/M for Zilog Z8000
DR-DOS (Digital Research's [later Novell, Caldera, ...] DOS variant, based on CP/M descendants)
Concurrent DOS (Digital Research's first multiuser DOS variant)
Multiuser DOS (Digital Research's [later CCI's. Real's/...] multiuser DOS variant)
Digital/Tandem Computers/Compaq/HP
OS/8
ITS (for the PDP-6 and PDP-10)
Multi-Programming Executive (from HP)
TOPS-10 (for the PDP-10)
WAITS (for the PDP-6 and PDP-10)
TENEX (from BBN, for the PDP-10)
TOPS-20 (for the PDP-10)
RSTS/E (multi-user time-sharing OS for PDP-11s)
RSX-11 (multiuser, multitasking OS for PDP-11s)
RT-11 (single user OS for PDP-11)
VMS (originally by DEC, now by HP) for the VAX mini-computer range, Alpha and Intel Itanium 2; later renamed OpenVMS)
Domain/OS (originally Aegis, from Apollo Computer who were bought by HP)
RTE HP's Real Time Executive (ran on the HP 1000)
TSB HP's Time Share Basic (yes, it was an operating system, ran on the HP 2000 series)
Digital UNIX (derived from OSF/1, became HP's Tru64 UNIX)
HP-UX
Ultrix
NonStop Kernel (Originally from
Tandem Computers for their line of fault-tolerant platforms; originally called Guardian). It supports concurrent execution of:
Guardian
OSS (POSIX-compliant Open System Services)
Fujitsu
Towns OS
Gould CSD (Computer System Division)
UTX-32, Unix based OS
Green Hills Software
INTEGRITY Reliable Operating system
INTEGRITY-178B A DO-178B certified version of INTEGRITY.
µ-velOSity A lightweight microkernel.
Hewlett-Packard
HP Real-Time Environment; ran on HP1000 series computers.
HP Multi-Programming Executive; (MPE, MPE/XL, and MPE/iX) runs on HP 3000 and HP e3000 mini-computers.
HP-UX; runs on HP9000 and Itanium servers - from small to mainframe-class computers.
Honeywell
OLERT-E; Online Executive for Real Time. Ran on Honeywell DDP-516 computers.
GCOS
Multics
Intel Corporation
iRMX; real-time operating system originally created to support the Intel 8080 and 8086 processor families in embedded applications.
ISIS-II; "Intel Systems Implementation Supervisor" was THE environment for development of software within the Intel microprocessor family in the early 1980'ies on their Intellec Microcomputer Development System and clones. ISIS-II worked with 8 inch floppy disks and had an editor, cross-assemblers, a linker, an object locator, compilers for PLM (PL/I for microprocessors of the 8080/86 family), a BASIC interpreter, etc. and allowed file management through a console.
IBM
OS/360 and successors on IBM mainframes
OS/360 (First official OS targeted for the System/360 architecture, saw customer installations of the following variations:)
PCP (Primary Control Program, a kernel and a ground breaking automatic space allocating file system)
MFT (Multi-Programming Fixed Tasks, had 15 fixed size partitions defined at boot time)
MVT (Multi-Programming Variable Tasks, had up to 15 partitions defined dynamically)
OS/VS (The official port of OS/360 targeted for the
System/370 virtual memory architecture. "OS/370" is not correct name. Customer installations in the following variations:)
SVS (Single Virtual Storage (both VS1 & VS2 began as SVS systems))
OS/VS1 (Operating System/Virtual Storage 1, Virtual-memory version of OS/MFT)
OS/VS2 (Operating System/Virtual Storage 2, Virtual-memory version of OS/MVT)
OS/VS2 R2 (called
Multiple Virtual Storage, MVS, eliminated any need for VS1)
MVS/SE
MVS/SP (MVS System Package)
MVS/XA (MVS/SP V2. MVS supported eXtended Architecture, 31bit addressing)
MVS/ESA (MVS supported Enterprise System Architecture, horizontal addressing extensions: data only address spaces called Dataspaces)
OS/390 (Upgrade from MVS, with an additional Unix-like environment.)
z/OS (OS/390 supported z/Architecture, 64bit addressing.)
DOS/360 and successors on IBM mainframes
BOS/360 (Early interim version of DOS/360, briefly available at a few Alpha & Beta System 360 sites)
TOS/360 (Similar to BOS above and more fleeting, able to boot and run from 2x00 series tape drives)
DOS/360 (Disk Operating System (DOS). First commonly available OS for System/360 due to problems in the OS/360 Project. Multi-programming system with up to 3 partitions.)
DOS/360/RJE (DOS/360 with a control program extension that provided for the monitoring of remote job entry hardware (card reader & printer) connected by dedicated phone lines.)
DOS/VS (First DOS offered on System/370 systems, provided virtual storage.)
DOS/VSE (upgrade of DOS/VS. Still had fixed size processing partitions, but up to 14 partitions.)
VSE/SP (renamed from DOS/VSE.)
VSE/ESA (DOS/VSE extended virtual memory support to 32 bit addresses (Extended System Architecture)).
z/VSE (Latest version of the four decades old DOS lineage. Now supports 64 bit addresses, multiprocessing, multiprogramming, SNA, TCP/IP, and some virtual machine features in support of Linux workloads. (All DOS ref. IBM website))
CP/CMS and successors on IBM mainframes (Control Program / Cambridge Monitor System, virtual machine operating system, VM line)
CP-40/CMS (for System/360 Model 40)
CP-67/CMS (for System/360 Model 67)
VM/370 Virtual Machine / Conversational Monitor System, VM (operating system) for System/370 with virtual memory.
VM/XA
VM (operating system) eXtended Architecture for System/370 with extended virtual memory.
VM/ESA
Virtual Machine /Extended System Architecture, added 32 bit addressing to VM series.
z/VM z/Architecture version of the VM OS (64 bit addressing).
TPF Line on IBM mainframes (real-time operating system, largely used by airlines)
ACP (Airline Control Program)
TPF (Transaction Processing Facility)
z/TPF (z/Architecture extension)
Unix-like on IBM mainframes
UTS
AIX/370
AIX/ESA
Linux (Linux on System z, z/Linux)
OpenSolaris (OpenSolaris for IBM System z)
Others on IBM mainframes
IBSYS (tape based operating system for IBM 7090 and IBM 7094)
CTSS (The Compatible Time-Sharing System developed at MIT's Computation Center)
RTOS/360 (Real Time Operating System, run on 5 NASA custom System/360/75s. A mash up by the Federal Systems Division of the MFT system management, PCP basic kernel and file system, with MVT task management and FSD custom real time kernel extensions and error management. The pinnacle of OS/360 development .)
MTS (Michigan Terminal System for IBM System/360)
TSS/360 (Time Sharing System for IBM System/360)
MUSIC/SP (developed by McGill University for IBM System/370)
IJMON (A bootable serial I/O monitor for loading programs for IBM 1400 and IBM 1800.)
IBM Series/1
EDX (Event Driven Executive)
RPS (Realtime Programming System)
IBM 8100
DPCX (Distributed Processing Control eXecutive)
DPPX (Distributed Processing Programming Executive)
IBM System/3
DMS (Disk Management System)
IBM System/34, IBM System/36
SSP (System Support Program)
IBM System/38
CPF (Control Program Facility)
IBM System/88
Stratus VOS (developed by Stratus, and used for IBM System/88, Original equipment manufacturer from Stratus.)
AS/400, iSeries, System i, Power Systems i Edition
OS/400 (descendant of System/38 CPF, include System/36 SSP environment.)
i5/OS (extends OS/400 with significant interoperability features.)
IBM i (extends i5/OS.)
UNIX on IBM POWER
AIX (Advanced Interactive eXecutive, a System V Unix version)
AOS (a BSD Unix version), not related to Data General AOS
IBM PC and successors on x86 architecture
PC DOS / IBM DOS
PC DOS 1.x, 2.x, 3.x (developed jointly with Microsoft)
IBM DOS 4.x, 5.0 (developed jointly with Microsoft)
PC DOS 6.x, 7, 2000
OS/2
OS/2 1.x (developed jointly with Microsoft)
OS/2 2.x
OS/2 Warp 3
OS/2 Warp 4
eComStation (Warp 4.5/Workspace on Demand, rebundled by Serenity Systems International)
Others
IBM Workplace OS (Microkernel based operating system, developed and canceled in 1990s)
K42 (open-source research operating system on PowerPC or x86 based cache-coherent multiprocessor systems)
Dynix (developed by Sequent, and used for IBM NUMA-Q too.)
International Computers Limited
J and MultiJob for the System 4 series mainframes
GEORGE 2/3/4 GEneral ORGanisational Environment, used by ICL 1900 series mainframes
Executive, used on the 290x range of minicomputers
TME, used on the ME29 minicomputer
ICL VME, including early variants VME/B VME/K, appearing on the ICL 2900 Series and Series 39 mainframes
LynuxWorks (originally Lynx Real-time Systems)
LynxOS
Micrium Inc.
MicroC/OS-II (Small pre-emptive priority based multi-tasking kernel)
]
Microsoft
Xenix (licensed version of Unix; licensed to SCO in 1987)
MSX-DOS (developed by MS Japan for the MSX 8-bit computer)
MS-DOS (developed jointly with IBM, versions 1.0–6.22)
Windows 1.0 (Windows 1 - Based on Visi-On)
Windows 2.0 (Windows 2)
Windows 3.0 (Windows 3 - Is the first version of Windows to make substantial commercial impact)
Windows 3.1x (Windows 3.1)
Windows 3.2 (Chinese-only release)
Windows 9x
Windows 95 (Windows 4) (codename: Chicago)
Windows 98 (Windows 4.1) (codename: Memphis)
Windows Millennium Edition (Windows Me - Windows 4.9)
OS/2 (developed jointly with IBM)
Windows NT
Windows NT 3.1 (OS/2 3.0 - Windows 3.1)
Windows NT 3.5 (Windows 3.5)
Windows NT 3.51 (Windows 3.51)
Windows NT 4.0 (Windows 4)
Windows 2000 (Windows NT 5.0 - Windows 5)
Windows XP (Windows NT 5.1 - Windows 5.1) (codename: Whistler)
Windows Server 2003 (Windows NT 5.2 - Windows 5.2) (codename: Whistler Server)
Windows Fundamentals for Legacy PCs
Windows Vista (Windows NT 6.0 - Windows 6) (codename: Longhorn)
Windows Home Server
Windows Server 2008 (Windows NT 6.0 - Windows 6) (codename: Longhorn Server)
Windows 7 (Windows 6.1 - previously codenamed Blackcomb, then Vienna)
Windows Preinstallation Environment (WinPE)
Windows CE (OS for handhelds, embedded devices, and real-time applications that is similar to other versions of Windows)
Windows CE 3.0
Windows CE 5.0
Windows CE 6.0
Windows Mobile (based on Windows CE, but for a smaller form factor)
Singularity - A research operating system written mostly in managed code (C#)
Midori - A managed code operating system
MontaVista Software
MontaVista Linux
MontaVista Professional Edition
MontaVista Carrier Grade Edition
MontaVista
Mobilinux
NCR Corporation
TMX - Transaction Management eXecutive
Novell
NetWare network operating system providing high-performance network services. Has been superseded by Open Enterprise Server line, which can be based on NetWare or Linux to provide the same set of services.
Open Enterprise Server, the successor to NetWare.
OpenSUSE, SUSE operating system (formerly SuSe and s.u.s.e)

Quadros Systems
RTXC Quadros RTOS proprietary C-based RTOS used in embedded systems
QANTEL
BEST - Business Executive System for Timesharing
RCA
TSOS, first OS supporting virtual addressing of the main storage and support for both timeshare and batch interface
RoweBots
Unison RTOS Ultra Tiny Embedded Linux Compatible RTOS
DSPnano RTOS Ultra Tiny Embedded Linux Compatible RTOS
Unison/Reliant V3 pSOS derivative RTOS
SCO / The SCO Group[1]
Xenix, Unix System III based distribution for the Intel 8086/8088 architecture
Xenix 286, Unix System V Release 2 based distribution for the Intel 80286 architecture
Xenix 386, Unix System V Release 2 based distribution for the Intel 80386 architecture
SCO Unix, SCO UNIX System V/386 was the first volume commercial product licensed by AT&T to use the UNIX System trademark (1989). Derived from AT&T System V Release 3.2 with an infusion of Xenix device drivers and utilities plus most of the SVR4 features
SCO Open Desktop, the first 32-bit graphical user interface for UNIX Systems running on Intel processor-based computers. Based on SCO Unix
SCO OpenServer 5, AT&T UNIX System V Release 3 based
SCO OpenServer 6, SVR5 (UnixWare 7) based kernel with SCO OpenServer 5 application and binary compatibility, system administration, and user environments
UnixWare
UnixWare 2.x, based on AT&T System V Release 4.2MP
UnixWare 7, UnixWare 2 kernel plus parts of 3.2v5 (UnixWare 2 + OpenServer 5 = UnixWare 7). Referred to by SCO as SVR5
Scos
Scos 1
Scos 1.2
Scos 1.5
Scos 2.0
Scos 2.5
Scos 3
Scos 4
Scos 5
Scos 6 (Latest Stable Version)

SDS (Scientific Data Systems)
CP Control Program. SDS later acquired by Xerox, then Honeywell.
SEL (
Systems Engineering Laboratories)
Real Time Monitor (RTM)
MPX-32
TmaxSoft
Tmax Window
TRON Project
TRON (open real-time operating system kernel)
Unicoi Systems
Fusion RTOS highly prolific, license free Real-time operating system.
DSPOS was the original project which would become the royalty free Fusion RTOS.
Unisys
Unisys OS 2200 operating system
UNIVAC (later Unisys)
EXEC I
EXEC II
EXEC 8 Ran on 1100 series.
VS/9, successor to RCA TSOS
Wavecom
Open AT OS
Wang Laboratories
2200T Wang BASIC based system for the multi-user, 2200T systems. Products included a system called Personal Computer before the term was made more popular with IBM products.
2200VP/MVP Wang BASIC based system for the higher performance, 2200VP/MVP multi-user systems. Contained sophisticated micro-code programming for high performance operation.
WPS Wang Word Processing System. Micro-code based system. Very clever and productive system developed by Harold Kaplow while at Wang. Eventually phased out by the PC and Word Perfect.
OIS Wang Office Information System. Successor to the WPS. Combined the WPS and VP/MVP systems. Harold Kaplow was its principal architect. Eventually phased out by the 2200VS.
2200VS IBM assembler instruction set microcode emulation. Supported the Wang 2200VS high-performance, multi-user systems. Designed to be a COBOL developers dream machine. Included some of the OIS operating system code. Eventually phased out by the UNIX operating system.
Wind River Systems
VxWorks Small footprint, scalable, high-performance RTO
] Other
Lisp-based
Symbolics Genera written in a systems dialect of the Lisp programming language called ZetaLisp and Symbolics Common Lisp. Genera was ported to a virtual machine for the DEC Alpha line of computers.
Texas Instruments' Explorer Lisp machine workstations also had systems code written in Lisp Machine Lisp.
The
Xerox 1100 series of Lisp machines ran an operating system written in Interlisp that was also ported to virtual machine called "Medley."
Lisp Machines, Inc. also known as LMI, also ran an operating system based on MIT's Lisp Machine Lisp.
Non-standard language-based
The
Mesa programming language was used to implement the Pilot operating system, used in Xerox Star workstations.
PERQ Operating System (POS) was written in PERQ Pascal.
Other proprietary non-Unix-like
EOS; developed by ETA Systems for use in their ETA-10 line of supercomputers
EMBOS; developed by
Elxsi for use on their mini-supercomputers
GCOS is a proprietary Operating System originally developed by General Electric
PC-MOS/386; DOS-like, but multiuser/multitasking
SINTRAN III; an operating system used with Norsk Data computers.
THEOS
TRS-DOS; A floppy-disk-oriented OS supplied by Tandy/Radio Shack for their Z80-based line of personal computers.
NewDos/80; A third-party OS for Tandy's TRS-80 personal computers.
TX990/TXDS,
DX10 and DNOS; proprietary operating systems for TI-990 minicomputers
MAI Basic Four; An OS implementing Business Basic from MAI Systems.
Michigan Terminal System; Developed by a group of American universities for IBM 360 series mainframes
MUSIC/SP; an operating system developed for the S/370, running normally under VM
SkyOS; commercial desktop OS for PCs
TSX-32; a 32-bit operating system for x86 platform.
OS ES; an operating system for
ES EVM
Prolog-Dispatcher; used to control Soviet
Buran space ship.
Other proprietary Unix-like and POSIX-compliant
Aegis (Apollo Computer)
Amiga Unix (Amiga ports of Unix System V release 3.2 with Amiga A2500UX and SVR4 with Amiga A3000UX. Started in 1989, last version was in 1992)
Clix (Intergraph's System V implementation)
Coherent (Unix-like OS from Mark Williams Co. for PC class computers)
DC/OSx (DataCenter/OSx was an operating system for MIPS based systems developed by Pyramid Technology)
DG/UX (Data General Corp)
DNIX from DIAB
DSPnano RTOS (POSIX nanokernel, DSP Optimized, Open Source)
Idris workalike from Whitesmiths
INTERACTIVE UNIX (a port of the UNIX System V operating system for Intel x86 by INTERACTIVE Systems Corporation)
IRIX from SGI
MeikOS
NeXTSTEP (developed by NeXT; a Unix-based OS based on the Mach microkernel)
OS-9 Unix-like RTOS. (OS from Microware for Motorola 6809 based microcomputers)
OS9/68K
Unix-like RTOS. (OS from Microware for Motorola 680x0 based microcomputers; based on OS-9)
OS-9000 Unix-like RTOS. (OS from Microware for Intel x86 based microcomputers; based on OS-9, written in C)
OSF/1 (developed into a commercial offering by Digital Equipment Corporation)
OpenStep
QNX (POSIX, microkernel OS; usually a real time embedded OS)
Rhapsody (an early form of Mac OS X)
RISC/os (a port by MIPS of 4.3BSD to the RISC MIPS architecture)
RMX
SCO UNIX (from SCO, bought by Caldera who renamed themselves SCO Group)
SINIX (a port by SNI of Unix to the RISC MIPS architecture)
Solaris (Sun's System V-based replacement for SunOS)
SunOS (BSD-based Unix system used on early Sun hardware)
SUPER-UX (a port of System V Release 4.2MP with features adopted from BSD and Linux for NEC SX architecture supercomputers)
System V (a release of AT&T Unix, 'SVR4' was the 4th minor release)
System V/AT, 386 (The first version of AT&T System V UNIX on the IBM 286 and 386 PCs, ported and sold by Microport)
Trusted Solaris (Solaris with kernel and other enhancements to support multilevel security)
UniFLEX (Unix-like OS from TSC for DMA-capable, extended addresses, Motorola 6809 based computers; e.g. SWTPC, GIMIX, …)
Unicos (the version of Unix designed for Cray Supercomputers, mainly geared to vector calculations)
Unison RTOS (Multicore RTOS with DSP Optimization)
Non-proprietary
Unix-like
Research Unix-like and other POSIX-compliant
Minix (study OS developed by Andrew S. Tanenbaum in the Netherlands)
Plan 9 (distributed OS developed at Bell Labs, based on original Unix design principles yet functionally different and going much further)
Inferno (distributed OS derived from Plan 9, originally from Bell Labs)
Plan B (distributed OS derived from
Plan 9 and Off++ microkernel)
Unix (OS developed at Bell Labs ca 1970 initially by Ken Thompson)
Xinu, (Study OS developed by Douglas E. Comer in the USA)
Free/Open source Unix-like
BSD (Berkeley Software Distribution, a variant of Unix for DEC VAX hardware)
FreeBSD (one of the outgrowths of UC Regents' abandonment of CSRG's 'BSD Unix')
NetBSD (one of the outgrowths of UC Regents' abandonment of CSRG's 'BSD Unix')
OpenBSD forked from NetBSD
GNU
Linux (GNU Free/Open Source Operating System Software combined with the Linux kernel)
See also:
List of Linux distributions
Darwin
OpenSolaris, contains original Unix (SVR4) code
AuroraUX, fork of OpenSolaris
SSS-PC, developed at Tokyo University
Syllable Desktop
VSTa
FMI/OS, successor of VSTa
Other Unix-like
TUNIS (University of Toronto)
Non-Unix-like
Research non-Unix-like
Amoeba (research OS by Andrew S. Tanenbaum)
Cambridge CAP computer operating system demonstrated the use of security capabilities, both in hardware and software, also a useful fileserver. Written in ALGOL 68C.
Croquet
House Haskell User's Operating System and Environment, research OS written in Haskell and C.
ILIOS Research OS designed for routing
EROS microkernel, capability-based
CapROS microkernel EROS successor.
Coyotos microkernel EROS successor, goal: be first formally verified OS.
L4 Second generation microkernel
Mach (from OS kernel research at Carnegie Mellon University; see NeXTSTEP)
MONADS, capability-based OS designed to support the MONADS hardware projects
SPEEDOS (Secure Persistent Execution Environment for Distributed Object Systems) builds on MONADS ideas
Nemesis Cambridge University research OS - detailed quality of service abilities.
Spring (research OS from Sun Microsystems)
V from Stanford, early 1980s [2]
FreeNOS, a microkernel educational operating system
Free/Open source non-Unix-like
FullPliant (programming language-based)
FreeDOS (open source DOS variant)
FreeVMS (open source VMS variant)
Haiku (open source inspired by BeOS, under development)
Kinetic (written in Haskell)
MonaOS (written in C++)
ReactOS (Windows NT-compatible OS, in early development since 2001)
osFree (open source OS/2 implementation)
OZONE (object-oriented)
Disk Operating Systems
Main article:
DOS
86-DOS (developed at Seattle Computer Products by Tim Paterson for the new Intel 808x CPUs; licensed to Microsoft, became PC DOS/MS-DOS. Also known by its working title QDOS.)
PC DOS (IBM's DOS variant, developed jointly with Microsoft, versions 1.0 – 7, 2000)
MS-DOS (Microsoft's DOS variant for OEM, developed jointly with IBM, versions 1.x – 6. Microsoft's now abandoned DOS variant)
FreeDOS (open source DOS variant)
ProDOS (operating system for the Apple II series computers)
PTS-DOS (DOS variant by Russian company Phystechsoft)
RDOS by Leif Ekblad (not to be confused with
Data General Corporation's "Real-time Disk Operating System" for Data General Nova and Data General Eclipse minicomputers).
TurboDOS (Software 2000, Inc.) for Z80 and Intel 8086 processor-based systems
Multi-tasking user interfaces and environments for DOS
DESQview+ QEMM 386 multi-tasking user interface for DOS
DESQView/X (
X-windowing GUI for DOS)
Network
Main article:
Network operating system
Cambridge Ring
CSIRONET by (CSIRO)
CTOS (Convergent Technologies, later acquired by Unisys)
Data ONTAP by NetApp
SAN-OS by Cisco (now NX-OS)
Enterprise OS by McDATA
ExtremeWare by Extreme Networks
ExtremeXOS by Extreme Networks
Fabric OS by Brocade
JUNOS (Juniper Networks)
NetWare (networking OS by Novell)
NOS (developed by CDC for use in their Cyber line of supercomputers)
Novell Open Enterprise Server (Open Source networking OS by Novell. Can incorporate either SUSE Linux or Novell NetWare as its kernel).
OliOS
Plan 9 (distributed OS developed at Bell Labs, based on Unix design principles but not functionally identical)
Inferno (distributed OS derived from Plan 9, originally from Bell Labs)
Plan B (distributed OS derived from Plan 9 and Off++ microkernel)
TurboDOS (Software 2000, Inc.)
XPATH OS by Brocade
Web operating systems
Main article:
Web operating system
Chrome OS
G.ho.st
eyeOS
DesktopTwo
YouOS
Browser OS
Glide OS
Lucid Desktop
Generic/commodity and other
BLIS/COBOL
Bluebottle also known as AOS (a concurrent and active object update to the Oberon operating system)
BS1000 by Siemens AG
BS2000 by Siemens AG, now BS2000/OSD from Fujitsu-Siemens Computers (formerly Siemens Nixdorf Informationssysteme)
BS3000 by Siemens AG (functionally similar to OS-IV and MSP from Fujitsu)
FLEX9 (by TSC for Motorola 6809 based machines; successor to FLEX, which was for Motorola 6800 CPUs)
FutureOS (for Amstrad/Schneider CPC6128 and CPCPlus machines)
GEM (windowing GUI for CP/M, DOS, and Atari TOS)
GEOS (popular windowing GUI for PC, Commodore, Apple computers)
JavaOS
JNode JNode.org's OS written 99% in Java (native compiled), provides own JVM and JIT compiler. Based on GNU Classpath
JX Java operating system that focuses on a flexible and robust operating system architecture developed as an open source system by the University of Erlangen.
KERNAL (default OS on Commodore 64)
MERLIN for the Corvus Concept
MorphOS (Amiga compatible)
MSP by
Fujitsu (successor to OS-IV), now MSP/EX[3], also known as Extended System Architecture (EXA), for 31-bit mode
nSystem by Luis Mateu at DCC, Universidad de Chile
NetWare (networking OS by Novell)
Oberon (operating system) (developed at ETH-Zürich by Niklaus Wirth et al.) for the Ceres and Chameleon workstation projects.
OSD/XC by Fujitsu-Siemens (BS2000 ported to an emulation on a Sun SPARC platform)
OS-IV by Fujitsu (based on early versions of IBM's MVS)
Pick (often licensed and renamed)
PRIMOS by Prime Computer (sometimes spelled PR1MOS and PR1ME)
Sinclair QDOS (multitasking for the Sinclair QL computer)
SSB-DOS (by TSC for Smoke Signal Broadcasting; a variant of FLEX in most respects)
SymbOS (GUI based multitasking operating system for Z80 computers)
Symobi (GUI based modern micro-kernel OS for x86, ARM and PowerPC processors, developed by Miray Software; used and developed further at Technical University of Munich)
TraOS, kin to Darwin? Seems active late 2009
TripOS, 1978
TurboDOS (Software 2000, Inc.)
UCSD p-System (portable complete programming environment/operating system/virtual machine developed by a long running student project at the Univ Calif/San Diego; directed by Prof Ken Bowles; written in Pascal)
UMIX, made for the ICFP Programming Contest 2006.
VOS by Stratus Technologies with strong influence from Multics
VOS by Hitachi for its IBM-compatible mainframes, based on IBM's MVS
VM2000 by Siemens AG
VisiOn (first GUI for early PC machines; not commercially successful)
VPS/VM (IBM based, main operating system at Boston University for over 10 years.)
aceos under GPL
Miraculix Russian OS, under unknown license.
For
Elektronika BK
ANDOS
AO-DOS
BASIS
CSI-DOS
DOSB10
DX-DOS
FA-DOS
HC-DOS
KMON
MicroDOS
MK-DOS
NORD
NORTON-BK
RAMON
PascalDOS
RT-11
ROM embedded
RT-11SJ
OS BK-11 (RT-11 version)
Turbo-DOS
BKUNIX
OS/A WASP
Hobby
AROS (AROS Research Operating System, formerly known as Amiga Research Operating System)
AtheOS (branched to become Syllable Desktop)
Syllable Desktop (a modern, independently originated OS; see AtheOS)
DexOS, (Games console OS, for x86, written in
FASM)
DSPnano RTOS FREE
EROS (Extremely Reliable Operating System)
FAMOS (Foremost Advanced Memory Operating System)
HelenOS, based on a preemptible microkernel design
LoseThos, the stated goal is "programming as entertainment" - oriented toward video games
LSE/OS
MenuetOS (extremely compact OS with GUI, written entirely in FASM assembly language)
Möbius (an open-source operating system for the IA-32 platform (Intel i386 and compatibles) [4])
MikeOS
NewOS
Unison RTOS FREE
Visopsys
TajOS
eSTORM
Embedded
Personal digital assistants (PDAs)
iPhone OS (a subset of Mac OS X)
Inferno (distributed OS originally from Bell Labs)
Palm OS from Palm, Inc; now spun off as PalmSource
Symbian OS
Windows CE, from Microsoft
Pocket PC from Microsoft, a variant of Windows CE.
Windows Mobile from Microsoft, a variant of Windows CE.
Embedded Linux
OpenZaurus
Ångström distribution
Familiar Linux
webOS from Palm, Inc.
Maemo based on Debian deployed on Nokia's Nokia 770, N800 and N810 Internet Tablets.
MS-DOS on Poqet PC
Newton OS on Apple Newton Messagepad
VT-OS for the Vtech Helio
Magic Cap
NetBSD
Plan 9 from Bell Labs
Digital media players
DSPnano RTOS
ipodlinux
Pixo OS
RockBox
iPhone OS (a subset of Mac OS X)
iriver clix OS
Robots
Robotic Operating System
Dave's Robotic Operating System
[5]
Smartphones
BlackBerry OS
Embedded Linux
Access Linux Platform
Android
bada
Openmoko Linux
OPhone
Maemo
Mobilinux
MotoMagx
Qt Extended
LiMo Platform
webOS
iPhone OS (a subset of Mac OS X)
JavaFX Mobile
Palm OS
Symbian OS
Windows Mobile (Recently changed to Windows Phone)
Routers
AlliedWare by
Allied Telesis (aka Allied Telesyn)
AirOS by Ubiquiti Networks
CatOS by Cisco Systems
Cisco IOS (originally Internetwork Operating System) by Cisco Systems
CyROS by Cyclades Corporation
DD-WRT by NewMedia-NET
Inferno (distributed OS originally from Bell Labs)
IOS-XR by Cisco Systems
IronWare by
Foundry Networks
JunOS by Juniper Networks
RouterOS by
Mikrotik
ROX by Ruggedcom
ScreenOS by
Juniper Networks, originally from Netscreen
Timos by Alcatel-Lucent
Unison Operating System by RoweBots
FTOS by Force10 Networks
RTOS by Force10 Networks
Microcontrollers and real-time systems
Atomthreads
[6]
A/ROSE
BeRTOS
ChibiOS/RT (GPL-licensed RTOS)
ChorusOS
CMX-RTX (RTOS for 8-/16-/32-bit µC/microprocessors. Has TCP/IP and USB support.)
Contiki written in C
DSPnano RTOS (POSIX nanokernel, DSP Optimizations, Open Source)
eCos
embOS
FreeOSEK
FreeRTOS
FunkOS
Fusion RTOS
iRMX (originally developed by Intel)
Inferno (distributed OS originally from Bell Labs)
INTEGRITY
LUnix written in 6502
LynxOS
MenuetOS
MicroC/OS-II
MontaVista Linux
Nucleus
Open AT OS
Operating System Embedded (OSE)
OS-9 by Microware
OSEK
OS/RT
Phoenix-RTOS
Prex
pSOS
QNX
RTAI
RTEMS (Real-Time Executive for Multiprocessor Systems)
RTLinux by Wind River Systems
RTXC Quadros RTOS by Quadros Systems
SCIOPTA RTOS
ThreadX
TRON Project and ITRON Project (related to BTRON, CTRON, MTRON, etc.)
μClinux
uKOS
µOS++ (micro OS plus plus)
Unison Operating System
Versatile Real-Time Executive (VRTX)
VxWorks by Wind River Systems
XMK (eXtreme Minimal Kernel)
Xenomai
Other embedded
FreeBSD
LOCUS_(operating_system)[7]
MINIX
.NET Micro Framework
polyBSD (embedded
NetBSD)
ROM-DOS
TinyOS
µTasker
Windows Embedded
Windows CE
Windows Embedded Standard
Windows Embedded Enterprise
Windows Embedded POSReady
Capability-based
LEGO Mindstorms
brickOS
leJOS
ChyanOS
SOOS
Other capability-based
KeyKOS nanokernel
EROS microkernel
CapROS EROS successor
Coyotos EROS successor, goal: be first formally verified OS
MONADS, designed to support the MONADS hardware projects.
SPEEDOS builds on MONADS ideas
V from Stanford, early 1980s [2]