EN CONSTRUCCIÓN

Bienvenid@

En este blog podras encontrar apuntes, libros, software, codigo fuente, y mucho más...

Programacion en JAVA

Ejemplos y Codigo Fuente |POO | Estructura de Datos| Topicos Avanzados de Programación|

Libros en PDF Gratis

Libros de Programación, Algebra, Cálculo, Base de datos, Fisica, y más...

Software

Programas útiles en la carrera de ISC

Aplicaciones Android

Aplicaciones para PC, Celulares y Tablets.

miércoles, 21 de marzo de 2012

Encriptaciòn

Diapositiva 2

¿Que es Encriptación?
La encriptación es básicamente transformar datos en  alguna  forma  que  no  sea  legible  sin el conocimiento  de  la clave o algoritmo adecuado. El  propósito  de  esta  es  mantener  oculta la información que consideramos privada a cualquier persona o sistema que no tenga permitido  verla.

La  encriptación  en  general requiere el uso de información   secreta  para su funcionamiento la  cual  es  llamada  "llave". Algunos  sistemas de encriptación   utilizan   la  misma  llave  para codificar   y   descodificar  los  datos,  otros  utilizan llaves diferentes.
La  técnica de encriptación a aplicar se basa en la  complejidad  de la información a ocultar, es decir, entre  más compleja.

Tipos de Encriptación:
  
Encriptación mediante claves simétricas: son las funciones más clásicas, es decir, se utiliza una determinada clave en la transformación de la información encriptada para conseguir desencriptarla, el problema reside en la necesidad de que todas las partes conozcan la clave. 

Encriptación mediante claves asimétricas o públicas: existen también sistemas asimétricos de cifrado o de clave pública, cada usuario dispone de dos claves, una pública, que debe revelar o publicar para que los demás puedan comunicarse con él, y una privada que debe mantener en secreto..

Encriptación mediante firma digital: Dado un mensaje, basta calcular su huella digital y cifrarla con la clave secreta del remitente para obtener simultáneamente la seguridad de que el contenido no se manipula (integridad), y de que el firmante es quien dice ser autenticación). 


Existen muchos tipos de encriptación, que por el momento solamente mencionaremos su nombre.

•       Substitution
•       Caesar Chipre
•       Monoalphabetic Substitutions
•       Gronsfeld
•       RSA
•       DES
•       Chaffing & Winnowing 
•       SKIPJACK
•       BÍFIDO
•       WLBYKYAAOTB
•       Cifrado exponencial
•        Blowfish



•       EncryptionString

•       Consiste en tomar un mensaje y una clave de usuario, después sigue la combinación de estos y se produce una cadena modificada.

•       Texto a codificar:         ENCRYPTION
•       Caracteres del Texto:      E   N   C   R   Y   P   T   I   O   NCódigos ASCII:   69  78  67  82  89  80  84  73  79  78
•       Contraseña KEY:            K   E   Y   K   E   Y   K   E   Y   K
•       Caracteres de KEY:         75  69  89  75  69  89  75  69  89  75
•       Suma de Códigos ASCII:     144 147 156 157 158 169 159 142 168 153
•       En caracteres:             �   “   œ   �   ?   ©   Ÿ   ?   ¨   ™
•       Texto codificado:          �“œ�?©Ÿ?¨™

Transposition

En este método los mismos caracteres que son usados para la creación del mensaje, son también usados para  la encriptación.




miércoles, 7 de marzo de 2012

Seguridad

Las 10 Leyes Inmutables de la Seguridad
La gente del área de seguridad en Microsoft tiene un decálogo que llaman: las 10 leyes inmutables de la seguridad, que es el resultado de años de atención a sus clientes con todo tipo de problemáticas. Si bien el adjetivo “inmutables” suena pretencioso, pues nada es definitivo cuando se habla de seguridad informática, estos diez puntos son una guía estupenda para ser más conscientes al respecto. Mi recomendación es que los imprimas –en papel reciclando, por supuesto– y los pegues al lado de tu computadora para darles un repaso de cuando en cuando, como un pequeño Zen; tal vez un día te conviertas en un experto –un buen hacker, por qué no– que cree su propio decálogo y lo comparta con los demás. Sin más preámbulo, aquí los tienes:
Ley #1. Si un maloso puede persuadirte de ejecutar su programa en tu computadora, ya no es más tu computadora.
Ley #2. Si un maloso puede alterar el sistema operativo de tu computadora, ya no es más tu computadora.
Ley #3. Si un maloso tienes acceso físico sin restricciones a tu computadora, ya no es más tu computadora.
Ley #4. Si permites que un maloso suba programas a tu sitio web, ya no es más tu sitio web.
Ley #5. Las contraseñas débiles triunfan sobre la seguridad fuerte.
Ley #6. Una computadora es tan segura como digno de confianza sea su administrador.
Ley #7. Los datos cifrados son tan seguros como la llave que los descifra.
Ley #8. Un antivirus desactualizado es apenas mejor que no tener antivirus.
Ley #9. El anonimato absoluto no existe, ni en la vida real ni en la red.
Ley #10. La tecnología no es la solución a todas las cosas.
Conceptos Básicos de Seguridad
Seguridad: Sector de la informática cuya función es establecer medidas de protección y/o seguridad para garantizar el correcto funcionamiento de un sistema informático.
Whackers: expertos especializados. Se mueven por dinero y fama. Provocan daños al sistema.
Crackers: expertos especializados. Se mueven por fama y satisfacción personal. Causan daño.
Crashers: Inhabilitan el sistema, tienen conocimientos informáticos, les mueve el dinero o el aprendizaje. Causan daño.
Lamer: Conocimientos informáticos nulos. Sus intereses son la fama, la experiencia y la satisfación personal. Causan daños.
Phreakers: tienen amplios conocimientos informáticos y se mueven por dinero.
Script kiddies: Muy similares a los lamer.
Newbies: Tienen conocimientos informáticos básicos. Su motivación es aprender. No causan daño.
Cifrado. Evita que la información viaje sin protección (en texto plano) a través de la red.
El software anti-malware. Programa que detecta, bloquea y elimina programas maliciosos para la seguridad del sistema.
Los cortafuegos. Sirve para bloquear el trafico entrante en la red que pueda ser peligroso.   
Spoofing. Hace referencia al uso de técnicas de suplantación de identidad generalmente con usos maliciosos o de investigación.
Se pueden clasificar los ataques de spoofing, en función de la tecnología utilizada. Entre ellos tenemos el IP spoofing (quizás el más conocido), ARP spoofing, DNS spoofing, Web spoofing o email spoofing, aunque en general se puede englobar dentro de spoofing cualquier tecnología de red susceptible de sufrir suplantaciones de identidad.
Pishing. Es un término informático que denomina un tipo de delito encuadrado dentro del ámbito de las estafas cibernéticas, y que se comete mediante el uso de un tipo de ingeniería social caracterizado por intentar adquirir información confidencial de forma fraudulenta (como puede ser una contraseña o información detallada sobre tarjetas de crédito u otra información bancaria). El estafador, conocido como phisher, se hace pasar por una persona o empresa de confianza en una aparente comunicación oficial electrónica, por lo común un correo electrónico, o algún sistema de mensajería instantánea o incluso utilizando también llamadas telefónicas.
Troyano: se caracteriza por engañar a los usuarios disfrazándose de programas o archivos legítimos/benignos
Virus: es un malware que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o el conocimiento del usuario.
Worms: Estos malwares son tan dañinos que son capaces de hacer caer cientos de páginas Web y servidores Web muy potentes.
Vulnerabilidad: Probabilidad de que una amenaza se materialice contra un activo.

Las medidas de seguridad en la protección de datos de carácter personal.

Todas las empresas, independientemente de su tamaño, organización y volumen de negocio, son conscientes de la importancia de tener implantadas una serie de políticas de Seguridad tendentes a garantizar la continuidad de su negocio en el caso de que se produzcan incidencias, fallos, actuaciones malintencionadas por parte de terceros, pérdidas accidentales o desastres que afecten a los datos e informaciones que son almacenados y tratados, ya sea a través de sistemas informáticos como en otro tipo de soportes, como el papel.
MEDIDAS DE SEGURIDAD BÁSICO MEDIO ALTO

Identificación y Autenticación:
1.- Existencia de una lista actualizada de usuarios autorizados que tengan acceso autorizado al sistema de información (art.11.1 y 12.3).
2.- Procedimientos de identificación y autenticación informáticos:
a) Contraseñas: procedimiento de creación, asignación, conservación y cambio periódico (art.11.2 y 11.3).
b) Identificación de usuario, de manera inequívoca y personalizada
c) Limitación de acceso incorrecto reiterado
Control de Acceso:

1.- Los usuarios tendrán únicamente acceso a los datos/recursos de acuerdo a su puesto laboral y tareas definidas en el documento (art.12.1).
2.- Deberán implantarse mecanismos que eviten el acceso no autorizado a otros recursos: establecimiento de perfiles de usuario (art.12.2).
3.- Control de acceso físico a servidores y CPD (art.19).
4.- De cada acceso se guardarán: identificación usuario, fecha y hora, fichero accedido, tipo de acceso y su autorización o denegación, guardando la información que permita identificar registro accedido (art.24.2).
5.- Los mecanismos de acceso estarán bajo el control directo del Responsable de Seguridad, sin que pueda permitirse la desactivación (art.24.3).
6.- Registro y conservación de accesos lógicos al fichero por un plazo no inferior a 2 años (art.24.4).
7.- Para accesos a través de redes de telecomunicaciones, deberán tener las mismas medidas que para accesos en modo local (art.5).
Funciones y obligaciones del personal:

1.- Definición en el Documento de Seguridad de las funciones y obligaciones de grupos de usuarios y/o perfiles (art.9.1).
2.- Conocimiento por parte del personal de las normas y medidas de seguridad que les son aplicables (art.9.2).
3.- Identificación y funciones del/los Responsables de Seguridad (art.15 y 16).
4.- Trabajo fuera de ubicación principal debe ser expresamente autorizado (art.6).
5.- Listado de personal con acceso a Servidores y/o CPD (art.19).
6.- Listado de personal con privilegios administrativos informáticos sobre aplicaciones y ficheros (art.12.4).
Estructura de los Ficheros y del Sistema Informático:

1.- Descripción y estructura informática del Fichero (campos ID)
2.- Descripción y estructura del Sistema Informático (enumeración de equipos, redes, programas, etc...)
Gestión de Soportes:

1.- Identificación, inventariado y almacenamiento (art.13.1).
2.- Autorización necesaria para salida de soportes (art.13.2).
3.- Cifrado de soportes en caso de operaciones externas de mantenimiento (art.20.4).
4.- Medidas y procedimientos para la destrucción de soportes (art.20.3).
5.- Registro de Entrada de Soportes (art.20.1).
6.- Registro de Salida de Soportes (art.20.2).
7.- Distribución de soportes con mecanismos de cifrado de datos (art.26).
Ficheros Temporales:

Aplicación de mismo nivel de seguridad que fichero origen
Registro de Incidencias:

1.- Contenido mínimo: tipo de incidencia, momento en que se produce, efectos producidos, persona que comunica, medidas adoptadas (art.10).
2.- Contenido adicional: Procedimiento de restauración de datos, datos restaurados y datos grabados manualmente (art.21.1)
Procedimientos de Copias de Respaldo y Recuperación datos:

1.- Deberán garantizar la restauración de los datos al momento anterior a producirse la pérdida (art.14.2).
2.- Realización de copias de backup al menos con una frecuencia semanal (art.14.3).
3.- Necesaria autorización para la ejecución de procedimientos de restauración de datos (art.21.2).
4.- Almacenamiento externo de copias y procedimientos de restauración de datos (art.25).
Pruebas con datos reales:

Aplicación de mismas medidas según nivel de seguridad de los datos (art.22).
Actualización y Auditoria:

1.- Revisión y actualización del Documento de Seguridad en función de cambios relevantes en la Organización (art.8.3).
2.- Auditoria cada 2 años. Conservación de Informe a disposición AEPD
3.- Revisión periódica de la información de control de los accesos informáticos a ficheros y aplicaciones (art.24.5).
Medidas específicas para datos en soporte papel:

1.- Control de acceso a la documentación.
2.- Medidas de conservación y almacenamiento.
3.- Procedimientos y mecanismos de destrucción que impidan posterior recuperación de la información que contienen.

martes, 6 de marzo de 2012

Software del Servidor

Windows vs Linux


Diseño de Sistema Operativo Windows


La arquitectura de Windows es altamente modular y se basa en dos capas principales:
  • Modo usuario: Cuyos programas y subsistemas están limitados a los recursos del sistema a los que tienen acceso.
  • Modo núcleo: Tiene acceso total a la memoria del sistema y los dispositivos externos. Los núcleos de los sistemas operativos de esta línea son todos conocidos como núcleos híbridos, aunque hay que aclarar que este término está en discusión ya que este núcleo es esencialmente un núcleo monolítico que está estructurado al estilo de un micronúcleo. La arquitectura dentro del modo núcleo se compone de lo siguiente:
  1. Un núcleo híbrido.
  2. Una Capa de Abstracción de Hardware (HAL).
  3. Controladores o drivers.
  4. Executive: Sobre el cual son implementados todos los servicios de alto nivel.

Modo Usuario

El modo usuario está formado por subsistemas que pueden pasar peticiones de E/S a los controladores apropiados del modo núcleo a través del gestor de E/S (que se encuentra en el modo núcleo). Dos subsistemas forman la capa del modo usuario de Windows 2000: el subsistema de Entorno y el subsistema Integral.

Modo núcleo

El modo núcleo de Windows 2000 tiene un acceso completo al hardware y a los recursos del sistema de la computadora y ejecuta su código en un área de memoria protegida. Controla el acceso a la planificación, priorización de hilos, gestión de memoria y la interacción con el hardware. El modo núcleo impide que los servicios y las aplicaciones del modo usuario accedan a áreas críticas del sistema operativo a las que no deberían tener acceso. En lugar de ello, deben pedir al núcleo que realice esas operaciones en su nombre.

Executive

El Executive se relaciona con todos los subsistemas del modo usuario. Se encarga de la Entrada/Salida, la gestión de objetos, la seguridad y la gestión de procesos. Está dividido informalmente en varios subsistemas, entre los que se encuentran el Gestor de Caché, el Gestor de Configuración, el Gestor de Entrada/Salida, las Llamadas a Procedimientos Locales, el Gestor de Memoria, el Gestor de Objetos, la Estructura de Procesos, y el Monitor de Referencias de Seguridad. Todos juntos, los componentes pueden ser llamados Servicios Executive (nombre interno Ex).

Núcleo

El núcleo del sistema operativo se encuentra entre el HAL y el Executive y proporciona sincronización multiprocesador, hilos y envío y planificación de interrupciones, gestión de interrupciones y envío de excepciones. También es responsable de la inicialización de controladores de dispositivos que son necesarios en el arranque para mantener el sistema operativo funcionando. Esto es, el núcleo realiza casi todas las tareas de un micronúcleo tradicional.

Controladores del modo Núcleo

Windows 2000 utiliza cada controlador de dispositivo del modo núcleo para permitirle interactuar con los dispositivos hardware. Cada uno de los controladores tiene rutinas de sistema bien definidas y rutinas internas que exporta al resto de sistemas operativos. Todos los dispositivos son vistos por el modo usuario como un objeto archivo en el gestor de Entrada/Salida. A través del propio gestor de E/S, los dispositivos son vistos como objetos de dispositivo, que él define tanto como objetos archivo, dispositivo o drive.

Capa de Abstracción Hardware

La Capa de Abstracción de Hardware, o HAL (en inglés Hardware Abstraction Layer), es una capa que se encuentra entre el hardware físico de la computadora y el resto del sistema operativo. Fue diseñado para ocultar las diferencias de hardware y por tanto proporciona una plataforma consistente en la cual se puedan ejecutar las aplicaciones. 

Diseño de Sistema Operativo Linux 



Arquitectura 
Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones.

Jerarquía de directorios

En Linux existe un sistema de archivos que carga y contiene todos los directorios, redes, programas, particiones, dispositivos, etc. que el sistema sabe reconocer, o por lo menos, identificar. de los directorios que constituyen todo el sistema.

  • Estáticos: Contiene archivos que no cambian sin la intervención del administrador (root), sin embargo, pueden ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)
  • Dinámicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor aún, deberían ser montados en una partición aparte en el mismo disco, como por ejemplo, montar el directorio /home en otra partición del mismo disco, independiente de la partición principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...)
  • Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios.
  • Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock...)

Kernel panic
En Linux, un panic es un error casi siempre insalvable del sistema detectado por el núcleo en oposición a los errores similares detectados en el código del espacio de usuario. Es posible para el código del núcleo indicar estas condiciones mediante una llamada a la función de pánico situada en el archivo header sys/system.h. Sin embargo, la mayoría de las alertas son el resultado de excepciones en el código del núcleo que el procesador no puede manejar, como referencias a direcciones de memorias inválidas.

Lenguajes de programación

Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar), junto a unas pequeñas secciones de código escritas con el lenguaje ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo el único compilador capaz de construir correctamente Linux.

 


 

lunes, 5 de marzo de 2012

Hardware de Servidor

Elementos o Caracterististicas de un servidor.

Las principales características de un servidor son: 

Procesador: Se elegirá si se usara un Intel o AMD. Un solo núcleo, doble núcleo, 4 núcleos, etc. Normalmente para servidores se llegan a utilizar los Intel Xeon, o los AMD Opteron.

Memoria RAM: Esta llega a ser muy importante, ya que al manejar gran cantidad de datos, es conveniente no quedarnos con poca RAM. Una vez agotada la RAM se empieza a utilizar memoria virtual (o swap), la cual ralentiza los procesos. Lo recomendable son 2GB o más.

 
Disco Duro: Con una buena capacidad de almacenamiento, unos 100GB mínimo. La velocidad (RPM) y la marca del disco duro también es muy importante. Preferentemente SATA.

Velocidad del Internet: En caso de usarse como servidor web, se necesita una velocidad de subida y bajada buena.

Sistema operativo: Hablando en términos de software, también se tiene que decidir que sistema operativo llevara. Ya sea Linux o Windows Server, que son los más usados, dependiendo el ambiente de trabajo en donde se usara, la seguridad que sea necesaria, y el presupuesto con el que se cuenta.

Especificaciones de un hardware de servidor.

       Tamaños de partición mínimos

 

martes, 21 de febrero de 2012

1.5 SISTEMAS OPERATIVOS DE RED

1.5.1 Caracteristicas de un Sistema Operativo de Red. 
Después de cumplir todos los requerimientos de hardware para instalar una LAN, se necesita instalar un sistema operativo de red (Network Operating System, NOS), que administre y coordine todas las operaciones de dicha red. Los sistemas operativos de red tienen una gran variedad de formas y tamaños, debido a que cada organización que los emplea tiene diferentes necesidades. Algunos sistemas operativos se comportan excelentemente en redes pequeñas, así como otros se especializan en conectar muchas redes pequeñas en áreas bastante amplias.

Los servicios que el NOS realiza son:
Soporte para archivos: Esto es, crear, compartir, almacenar y recuperar archivos, actividades esenciales en que el NOS se especializa proporcionando un método rápido y seguro.
Comunicaciones: Se refiere a todo lo que se envía a través del cable. La comunicación se realiza cuando por ejemplo, alguien entra a la red, copia un archivo, envía correo electrónico, o imprime.
Servicios para el soporte de equipo: Aquí se incluyen todos los servicios especiales como impresiones, respaldos en cinta, detección de virus en la red, etc.
 Los sistemas operativos de Red de última generación cumplen una serie de características comunes: * Nombre de Acceso único en la red* Seguridad mediante la identificación* Control de acceso mediante derechos* Mecanismos de seguridad en el almacenamiento de los datos* Rendimiento (necesidades ajustadas de hardware y rapidez) y escalabilidad.* Integración con los sistemas operativos de escritorio más comunes * Conecta todos los equipos y periféricos.
* Coordina las funciones de todos los periféricos y equipos.
* Proporciona seguridad controlando el acceso a los datos y periféricos.

1.5.2 Ejemplos de Sistemas Operativos de Red

MS-DOS para Windows
Durante los últimos años de a década de 1980, Microsoft cedió a la presión del mercado y desarrollo una GUI (Interfaz Gráfica de Usuario) para sus computadoras basadas en arquitecturas IBM PC compatibles (computadores con procesadores x86), y la llamo Windows.

MacOS
El OS de Macintosh fue inventado por Apple en 1984. Es una interfaz sencilla, muy adecuada para los usuarios que no tienen conocimientos técnicos; esto , combinado con la reputación Macintosh de nunca   preocupar al usuario respecto al hardware de su computadora (el software de los sistemas operativos Macintosh  corre solamente en computadoras Macintosh), llevo a que los  usuarios desarrollaran una devoción casi fanática por Apple.

OS/2
El OS/2 es un sistema con orientación hacia el cliente, que soporta inicios de sesión múltiples de manera simultánea a recursos diferentes en computadoras remotas. El OS/2 es un sistema operativo poderoso y competente que se encuentra disponible en versión de servidor, así como en versión de estación de trabajo.

Windows NT
 Este sistema se creo para ofrecer básicamente dos funciones: la primera, que fuera un sistema operativo de clase empresarial para servidores, lo cual significaba que la empresas pudieran ejecutar sus sistemas en el y, a la vez, estar seguros de que trabajaría bien para ellos. Su otra función era servir como sistema operativo para estaciones de trabajo. En cualquier caso, Microsoft tuvo éxito  con NT. Como un sistema operativo para servidores, es razonablemente rápido y fácil  de administrar.

Otros:
NetWare de Novell
UNIX
LINUX

lunes, 20 de febrero de 2012

1.4 Clasificación de Tipos de Sistemas de Operativos de Red

TIPOS DE SISTEMAS OPERATIVOS
En esta sección se describirán las características que clasifican a los sistemas operativos, básicamente se cubrirán tres clasificaciones: sistemas operativos por su estructura,sistemas operativos por los servicios que ofrecen y, finalmente, sistemas operativos por la forma en que ofrecen sus servicios. 

Sistemas Operativos por su Estructura

Según [Alcal92], se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales son:
•  Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso al que se le quiere destinar.
•  Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad. 

Estructura monolítica.
Es la estructura de los primeros sistemas operativos constituídos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra (Ver Fig. 2). Las características fundamentales de este tipo de estructura son:
•  Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador.
•  Buena definición de parámetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento.
•  Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes
aspectos de los recursos de la computadora, como memoria, disco, etc. 

Estructura jerárquica.
A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los  sistemas, se hizo necesaria una mayor organización del software, del sistema operativo, donde una parte del sistema contenía subpartes y esto organizado en forma de niveles. Se constituyó una estructura  jerárquica o de niveles en los sistemas operativos, el  primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utilizó con fines didácticos (Ver Fig. 3). Se puede pensar también en estos sistemas como si fueran `multicapa'. Multics y Unix caen en esa categoría. Feld93].


 Máquina Virtual.
Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos  que suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina  extendida. El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser varias máquinas diferentes. El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas virtuales como se soliciten.



Sistemas Operativos por Servicios
Esta clasificación es la más comúnmente usada y conocida desde el punto de vista del
usuario final. Esta clasificación se comprende fácilmente con el cuadro sinóptico que a
continuación se muestra en la Fig. 6.


Monousuarios
Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo.

Multiusuarios
Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente. 

Monotareas
Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. 

Multitareas
Un sistema operativo multitarea es aquél que  le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background.

Uniproceso
Un sistema operativo uniproceso es aquél  que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS. 

Multiproceso
Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos  todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.



Sistemas Operativos por la Forma de Ofrecer sus Servicios 
Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la del usuario, el cómo accede a los servicios. Bajo esta clasificación se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos. 

Sistemas Operativos de Red
Los sistemas operativos de red se definen  como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, además de la ubicación de los recursos que desee acceder.

Sistemas Operativos Distribuidos
Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos (impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola máquina virtual que el usuario accede en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de trabajo habitual.