
Francisco Villarreal Soluciones Extreme Networks
VENTAJAS DE UN SISTEMA OPERATIVO MODULAR SOBRE UN SISTEMA OPERATIVO MONOLÍTICO
Antecedentes
De manera casi estándar un dispositivo de internetworking como un ruteador o un switch, se diseña y construye utilizando componentes de hardware específicos tales como ASICs, Network Procesors y Microprocesadores de uso específico que a diferencia de un sistema de cómputo convencional, en los primeros corre un micro‐código reducido, pues las funciones a ejecutar son destinadas a manipular paquetes de información ya sea de Capa 2 o Capa 3. Mientras que un sistema de cómputo convencional puede servir para múltiples propósitos. Para el caso de los dispositivos de interneteworking el fin es conseguir los mínimos tiempos posibles al procesar los paquetes de datos. Un rutedor o un switch procesan información, la información procesada son paquetes de datos transportados por los sistemas de red.
En los inicios de la industria de tecnologías de redes de información, se trataba de mantener al mínimo el set de instrucciones que se programaban para procesar los paquetes de datos, pues se empleaban microprocesadores multipropósito. Con el tiempo los sistemas operativos desarrollados para estos escenarios fueron incrementando su programación, así como el número de comandos e instrucciones cada vez más y más. El resultado fue el desarrollo de sistemas operativos monolíticos que agrupan todos esos complejos grupos de instrucciones y comandos. Fue necesario que los fabricantes de este tipo de sistemas, empezaran a utilizar dispositivos electrónicos más especializados y no microprocesadores multipropósito.
Las tecnologías de redes han avanzado en protocolos y funcionalidades y cada vez que una función o protocolo se adiciona, el sistema operativo se tiene que reescribir o recompilar. Las unidades de red con este tipo de sistemas operativos tienen que ser reiniciados para poder cargar y ejecutar las nuevas adecuaciones. Como todo sistema, tiene que ser depurado y liberado de bugs y errores de programación. Sin un bug no descubierto compromete la operación, la unidad tiene que ser sacada de línea para poder instalarle el sistema corregido o el parche que lo corrige. Esto se traduce en tiempos caídos en la operación con la consecuente discontinuidad de los servicios.
Los Sistemas Modulares
Arquitecturas de Sistemas Operativos Modulares como UNIX y LINUX dieron la pauta para llevar este concepto a las tecnologías de redes. Con los sistemas electrónicos para procesar paquetes de datos mejorados en capacidades, rendimiento y alto grado de integración, ahora es posible tomar ventaja de esta tecnología y tener modularidad en las funciones de Capa 2 y Capa 3. Estas se procesan de manera independiente y en memoria protegida, a diferencia de los monolíticos que ocupan un espacio continuo de memoria. En el caso de los monolíticos, si este rango de memoria queda bloqueado por algún error o ataque de Negación de Servicio, el sistema entero queda en un estado inestable o detenido por completo.
Los Sistemas Operativos Modulares de red, seccionan por capas muchísimas líneas de código agrupándolas por capas para ser procesadas en zonas protegidas de la memoria de las unidades de red, que apoyadas por procesadores de múltiples tareas, casi siempre de tecnología RISC o MIPS, se logra que cada proceso se ejecute de manera independiente de los demás. Un núcleo de procesamiento (kernel), es el responsable de invocar la ejecución de los procesos y administrar recursos para cada proceso. De igual manera mantiene una comunicación directa con hardware y las interfaces de comunicación. Esto hace que la ejecución de las tareas de Capa 2 (procesos de conmutación) , y las de Capa 3 (ruteo), sean independientes del hardware del dispositivo, por lo que se tiene la posibilidad de mantener la operación de la red, aunque se hagan cambios en el software o el hardware de la unidad.
Otra ventaja de lo anterior es tener el mismo código de sistema operativo, realmente el mismo código, en todos los modelos, familias y plataformas del mismo fabricante. Con las ventajas de simplificar la operación, administración y control de toda la red. Además el fabricante se ve beneficiado al emplear un grupo de programadores para toda la línea en lugar de mantener equipos para cada modelo o familia, puesto que cada uno provee diferentes modalidades en su uso y capacidades de operación. Esto beneficia al usuario final al no tener que pagar altos costos por la ingeniería de software detrás de cada desarrollo.
La modularidad permite corregir en tiempo real y sin reiniciar los sistemas, parches que corrigen errores de programación, al dar de baja aquellos procesos fallidos sin afectar el resto de las funciones. Incluso se tienen funciones de auto‐corrección (self‐healing), donde el Sistema Operativo trata de reiniciar el proceso en problemas para recuperarlo. Si esto no tiene éxito, solo ese proceso se da de baja manteniendo la operación del resto del sistema. Por ejemplo, si el módulo de software que controla el proceso de Telnet en una unidad se bloquea o es atacado, solo este proceso se ve afectado. El resto de las operaciones se mantienen. En un sistema operativo monolítico, si algún proceso se bloquea, toda la unidad se ve afectada. Otra ventaja importante es la posibilidad de actualizar a versiones nuevas del sistema operativo sin necesidad de reiniciar la unidad. Al tener un kernel responsable de mantener la comunicación entre el hardware y los módulos de software, es el kernel el que mantiene activa la unidad, llevando al mínimo que permite la tecnología actual para reiniciar los procesos sin interrumpir el hardware y sus sub‐procesos. Estamos hablando de interrupciones que están en orden de milisegundos.
Que dentro de la jerga tecnológica, se considera como un tiempo de recuperación sin impacto (hitless failover).
Por todo lo anterior, un Sistema Operativo Modular eleva el tiempo en línea de la unidad, agregando un nivel adicional de alta disponibilidad al dispositivo switch/router. Hay redes que no pueden darse el lujo de tener tiempos de caída. Ya sea por el impacto económico que esto conlleva, o por al criticidad que implica el no tener acceso a información vital. Sea el tipo de mercado o utilización dada a la red, las Tecnologías de Información se ven beneficiadas al contar con la seguridad que ofrece el tener una red con altos niveles de servicio. Las aplicaciones que son sensibles al tiempo, como las que se tienen en ambientes convergentes, ganan un nivel más de protección. La experiencia que han tenido los Proveedores de Servicio son el claro ejemplo de lo crítico puede llegar a ser tiempo fuera de línea. Los altos costos de tener hardware redundante han demostrado que la inversión se paga sola, al mantener satisfechos a los clientes de la red. Ahora se puede tener redundancia en software, al implementar la red con unidades de red cuyo software también es redundante gracias a la modularidad en el Sistema Operativo.
| Funcionalidad o característica | Sistema Operativo Monolítico | Sistema Operativo Modular |
| Arquitectura | Cerrada | Abierta |
| Procesamiento | Centralizado | Distribuido e independiente para
cada proceso |
| Protección de Memoria | No hay. Pues está estáticamente
compilado y ocupando un espacio contiguo de memoria Para cada proceso |
Módulos de
software independientes corriendo en memoria protegida |
| Dependencia del Hardware | Totalmente dependiente | No hay dependencia |
| Vulnerabilidad ante ataques | Muy vulnerable | Vulnerabilidad controlada |
| Cambios dinámicos en el
software |
No son posibles pues todas las
funciones conforman un bloque de instrucciones |
Posibles pues cada módulo
puede ser dado de baja o de alta de manera independiente |
| Capacidad de hacer cambios sin reiniciar el sistema | No es posible, pues un cambio
en el código implica que tenga que ser ejecutado uevamente desde cero |
Totalmente posible. Con
instrucciones de consola es posible dar de baja, cargar y dar de alta nuevos componentes de software |
| Capacidad de actualizaciones de hardware o software | No es posible, el sistema entero tiene que darse de baja, para que la nueva versión pueda ser ejecutada. Además el código es dependiente del hardware en el que corre* | Es posible, dado que el kernel puede mantener operaciones vitales mientras que otros módulos son actualizados. Además, no tiene dependencia del hardware que controla |
| Escalabilidad | No hay escalabilidad en un S.O. monolítico | Cada función nueva tiene que ser instalada como un nuevo S.O. requiriendo un reinicio de la unidad Se pueden agregar funciones estando el S.O. en línea, pues el kernel mantiene la operación de todo el sistema, mientras inicia un nuevo proceso |
| Extensibilidad | No es posible extender las
capacidades del S.O. sin crear un nuevo código. |
Dada la arquitectura abierta del sistema, es posible extender sus capacidades hacia operaciones con agentes externos mediante API´s en un modelo cliente servidor. Sobre todo si el sistema es compatible con la recomendación POSIX (Portable Operating System Interface), que garantiza total interoperabilidad con aplicaciones externas |
| Seguridad Modular | No flexible. | Cada ACL que se programa o configura, invoca a un proceso pre‐cargado en memoria al momento de iniciar Las ACL se ejecutan invocando la ejecución de un proceso o la lectura un archivo (script) que tiene los comandos de filtrado y el sistema* seguridad. Por lo que hay total flexibilidad en estos procesos de seguridad |
| Ejecución de Scripts | Limitado. La ejecución de
instrucciones externas es difícil de realizar, dado que el sistema debe cargar desde un inicio las funciones que deben realizar. Un segmento del bloque de comandos del código debe estar siempre activo esperando la instrucciones del script |
Total control de la ejecución de comandos externos, al cargar un script (archivo con comandos), como si fuese un proceso adicional que se está corriendo. Se puede tener la flexibilidad de que se ejecuta, cuando se ejecuta y por qué se ejecuta. |
| Niveles de Disponibilidad | Bajos, puesto que un bloqueo en una parte de las miles de líneas de código de programación, puede resultar en un sistema inestable o completamente detenido. El resultado será tener tiempos fuera de línea en la red. Se debe hacer costosas inversiones de equipo para diseñar topologías redundantes, para mantener niveles altos de disponibilidad | Altos, pues si existe un error de programación en el código, este sucede solo en un componente del software, que puede ser fácilmente descargado, actualizado y puesto en operación. Aunado a arreglos de hardware. protocolos y topologías redundantes, se logran elevados niveles de disponibilidad de servicio |
| Soporte para Redes
Convergentes |
Un sistema operativo monolítico, no es una solución adecuada para la convergencia de voz, datos y video, por el riesgo de tener tiempos fuera de línea | Un sistema operativo modular es adecuado para la convergencia en redes de comunicaciones, por los altos niveles de disponibilidad que puede ofrecer |
| Protección a la inversión | Un S.O. monolítico crea total dependencia del desarrollo que el fabricante pueda hacer sobre este. Generalmente migrar hacia nuevas tecnologías implica el reemplazo total de la unidad. | Un sistema operativo modular no solo ofrece la posibilidad de cargar dinámicamente software con funciones o protocolos, también es posible ejecutar módulos de software no enfocados a funciones de
switcheo o ruteo, como módulos de seguridad, de administración o de control avanzado. Incluso permite el desarrollo de aplicaciones desarrolladas por el mismo usuario para comunicarse con el S.O. y sus funciones. Mediante programación abierta que no es dependiente del hardware o de un fabricante en particular |
¿Quién soporta Sistemas Operativos Modulares de networking?
*Algunos fabricantes tienen medios para hacer estas funciones, pero generalmente son limitadas y no cuentan con una arquitectura flexible que permita extenderse a nuevas capacidades y funcionalidades sin tener que hacer un nuevo desarrollo. Realmente no están hablando de modularidad en este tipo de sistemas.
Alcanzando todos los rincones de la red. Este es el futuro de las redes LAN. Los Proveedores de Servicio Metropolitanos exploran estos beneficios aprovechando que las interfaces LAN cubren distancias geográficas dentro de una zona metropolitana. Más aun, tomando en cuenta que las redes de transporte de datos a largas distancias, operan de manera casi transparente para un servicio LAN, Ethernet que es la tecnología LAN de facto, es vista de manera muy prometedora por estos proveedores, por su simplicidad y bajo costo.








