1. Sistema Monolítico:
Estos sistemas no
tienen una estructura definida, sino que son escritos como una colección de
procedimientos donde cualquier procedimiento puede invocar a otro.
Ejemplos de estos sistemas pueden ser MS-DOS o Linux (aunque
incluye algo de capas). Es importante tener en cuenta que ningún sistema es
puramente de un tipo.
2. Sistema en capas:
El diseño se organiza
en una jerarquía de capas, donde los servicios que brinda una capa son
consumidos solamente por la capa superior. La capa 0 es del Hardware y la N es
la de los procesos de Usuario.
Estos sistemas tienen
como ventaja que son modulares y la verificación se puede hacer a cada capa por
separado (son más mantenibles). Sin embargo el diseño es muy costoso y es menos
eficiente que el sistema monolítico ya que pierde tiempo pasando por cada capa.
3. Sistema con micronúcleo:
La idea consiste en tener un núcleo que brinde los servicios
mínimos de manejo de procesos, memoria y que provea la comunicación entre
procesos. Todos los restantes servicios se construyen como procesos separados
del micronúcleo, que ejecutan en modo usuario. Estos sistemas tienen como
ventaja un diseño simple y funcional, que aumenta la portabilidad y la
escalabilidad. Para agregar un nuevo servicio no es necesario modificar el núcleo,
y es más seguro ya que los servicios corren en modo usuario.
4. Sistemas por módulos:
La mayoría de los sistemas operativos modernos implementan
este enfoque. Lo que caracteriza este tipo de estructura es que el kernel se
compone por módulos, y cada uno de estos módulos se encuentra separado de forma
independiente, tal que, si alguno falla no afecta a los otros, ni al núcleo,
por ejemplo, si el módulo de software que se encarga de controlar el proceso de
Telnet en una unidad se bloquea o es atacado, sólo este proceso se verá
afectado. El resto de las operaciones siguen sus funciones habituales. Los
módulos se pueden cargar dinámicamente en el núcleo cuando se necesiten, ya
sea, en tiempo de ejecución o durante el arranque del sistema. El kernel
dispone de los componentes fundamentales y se conectan directamente con
servicios adicionales
Ejemplos:
- Unix modernos
- Solaris
- Linux
- Mac OSX