País:
España
Idioma:

Partner Portal

OS Malevich: Cómo hicimos un sistema que encarna la idea de simplicidad absoluta

OS Malevich: Cómo hicimos un sistema que encarna la idea de simplicidad absoluta

Hace un año, nos embarcamos en una tarea difícil. Queríamos conservar las mejores partes del sistema operativo Ajax Hub (2G) existente, pero a la vez eliminar cualquier debilidad y sentar una base sólida que nos permitiera seguir desarrollando el sistema de seguridad Ajax. Después de todo, el hub es como un equipo de expertos. Debe ser el eslabón más excepcional y fiable de la cadena. Miles de horas de ingeniería, cientos de iteraciones y varias soluciones de software elegantes nos llevaron a OS Malevich. No es tan solo otra actualización. Es un sistema operativo para hubs completamente nuevo.

Cuando haya llegado a un callejón sin salida, no tenga miedo de volver atrás

Hace tres años, decidimos crear un centro de gestión de seguridad inteligente: Ajax Hub (2G). Redactamos la tarea técnica y comenzamos a pensar cómo hacerlo. Había tres opciones: usar C, un sistema operativo en tiempo real, o bien usar Linux.

new_os_15

Un típico programa escrito en C garantizaría el control absoluto como sistema operativo, ya que habríamos escrito cada componente del sistema nosotros mismos. El problema era que el proyecto habría llevado un largo período de tiempo, su escalabilidad habría sido muy pobre y habría requerido mucha depuración.

Linux ofrecía una cantidad de soluciones listas para usar, así como la posibilidad de un desarrollo paralelo y, por lo tanto, rápido. Podríamos programar en lenguajes de alto nivel, hacer uso de abstracciones y compilar una aplicación más compleja. Pero, al mismo tiempo, tendríamos vulnerabilidades, no tendríamos límites de tiempo para las operaciones y, por lo general, tampoco tendríamos los mejores controladores. Esto sería inaceptable: vendemos seguridad y fiabilidad.

Así que elegimos un sistema operativo en tiempo real (RTOS). Esto nos dio la oportunidad de crear una aplicación que fuera multifuncional y fiable al mismo tiempo. Los sistemas operativos en tiempo real se utilizan en ascensores, frenos de automóviles y misiles balísticos. Son extremadamente fiables, porque si el mecanismo no funciona dentro de un estricto período de tiempo, el evento ya no tiene sentido y se produce una catástrofe. Esta es una diferencia fundamental entre RTOS y Linux, donde las operaciones esperan en una cola de ejecución. Y esta es una de las razones por las que Linux no se usa en sistemas de seguridad profesionales.

El desarrollo llevó un año y medio. Hemos creado un sistema operativo que admite protocolos de comunicaciones avanzadas en la nube a través de varios canales. Gestiona una red de cientos de dispositivos con tecnología de radio. Permite enviar simultáneamente mensajes de alarma a través de canales IP, telefonía fija y mensajes SMS. Posee todas las funciones necesarias de un sistema de seguridad profesional y protege de los ataques. Por lo tanto, pudimos alcanzar nuestra meta inicial. Hemos proporcionado una amplia funcionalidad que, a la vez, garantiza alta confiabilidad.

new_os_02 (2)


Pero tan pronto como se lanzó el Hub (2G), hubo una oleada de peticiones de nuevas funciones. Las compañías de seguridad solicitaban una conexión directa con el hub si pasar por nuestra nube. Nuestros socios noruegos deseaban un detector que, en caso de incendio, fuera capaz de activar todos los detectores de incendios en un sistema, y querían que eso sucediera con la velocidad de las alarmas contra incendios por cable. El mercado alemán pretendía que el producto cumpliera con las normas europeas de grado 2 y admitiera un teclado de sistema de seguridad. En Malasia y Dinamarca, los usuarios querían amplias funciones de domótica. Para Italia, era muy importante que hubiera una función independiente para instaladores.

La arquitectura existente no nos permitía ampliar la funcionalidad rápidamente. Podríamos agregar rápidamente funciones para aplicaciones móviles porque tenían entornos de desarrollo de alto nivel, pero escribir software de hub requería más tiempo. Los cambios eran difíciles de probar e implementarlos requería demasiados recursos. A fin de construir una lógica compleja, necesitábamos un nuevo nivel de abstracción, una separación entre hardware y software.

Teníamos que decidir cómo desarrollar aún más el sistema. ¿Teníamos que cambiar a Linux? ¿Refinar progresivamente nuestro sistema operativo? Necesitábamos mantener la fiabilidad y la estabilidad de un sistema operativo en tiempo real, pero al mismo tiempo, necesitábamos la escalabilidad de un sistema operativo de alto nivel como Linux. Una vez más, las soluciones listas para usar no nos servían, así que tuvimos que inventar las nuestras.

La simplicidad solo tiene valor si surge de la complejidad

La base de nuestro nuevo sistema operativo fue la idea de simplificación. Nos establecimos condiciones: la incorporación de características no debería complicar el sistema ni reducir la velocidad de su desarrollo. Para no desviarnos del camino, al proyecto se lo denominó «Malevich», en honor al famoso artista nacido en Kiev, Kazimir Malevich. Su «Cuadrado negro» es un ejemplo vívido de una brillante idea basada en la simplicidad infinita.

new_os_12


Para crear OS Malevich, tuvimos que cambiar todo: la arquitectura, el enfoque de programación, los estándares de código y diseño, la organización del trabajo y el entorno de desarrollo. Aunque el sistema operativo seguía centrándose en el tiempo de ejecución de procesos, comenzó a adquirir características de Linux. Implementamos un mecanismo similar para asignar el tiempo de CPU. Como resultado, el procesador del hub utiliza un máximo del 20%, incluso al realizar tareas de uso intensivo de recursos. Además, el sistema se volvió modular: se utilizan API estándares para permitir la interacción entre elementos. Es fácil trabajar con módulos, los errores se pueden identificar y eliminar rápidamente, y es sencillo aumentar la funcionalidad y experimentar para llegar a la eficiencia ideal.

Para nosotros, los productos Ajax son iguales en términos de velocidad de desarrollo. Podemos implementar nuevas funciones para el hub, el servidor y la app con la misma rapidez. No existen limitaciones técnicas para nuestras ideas.


Proceso de actualización del Hub


Hoy por hoy, un programa de ordenador no se considera normalmente un objeto de arte. Las masas no comprenden su belleza. Pero estamos seguros de que, con el tiempo, las ideas que hemos implementado se convertirán en un clásico de Internet de las cosas.

Lee tambien: