Opinión

Microsoft trabaja en Polaris, el cambio más importante de núcleo en Windows de su historia

La compañía de Redmond está creando Polaris, una nueva API de sistema basada en Windows Universal que dejaría atrás el antiguo y obsoleto Win32

Resumen del artículo

  • Microsoft está trabajando en Polaris, un cambio de núcleo muy importante para Windows en su API principal, que sustituiría la API Win32 que lleva presente desde antes de Windows 95 en el propio Windows NT. Un cambio completo de API de sistema, núcleo por componentes e interfaz que diseñan un nuevo Windows. Repasamos la historia de Windows para entenderlo y la línea de evolución de la propia Apple y cómo ellos han resuelto el problema que ahora Microsoft quiere solucionar.

El concepto que tenemos hoy día de sistema operativo tiene los días contados. Esto es una realidad incuestionable. Todo comenzó a cambiar cuando Apple lanzó en 2007 una versión para dispositivos móviles de su sistema operativo de escritorio OS X. Desde entonces, la informática de consumo dio el salto al sector consumo generalista. ¿Qué significa en palabras normales?

Hasta 2007, la informática tenía dos sectores claros: el profesional y el de consumo tech (o geek, como quiera llamársele). Hasta 2007 el smartphone era un producto mal concebido porque las capacidades tecnológicas no permitían aun crear un ordenador de bolsillo. Así que nos conformábamos con un quiero y no puedo que desvirtuaba casi cada experiencia, empezando por la navegación. Pero las ventajas de la movilidad estaban ahí y el correo electrónico, por ejemplo, fue uno de los grandes beneficiados y un foco de la mayoría de tecnología de aquella época.


El iPhone en 2007 llevó la informática a todo el mundo. El iPad creó la Era Post-PC, donde ya se no necesitaba un ordenador para acceder a la vida digital


Pero el ordenador, el acceso a internet o el uso de servicios online se limitaba al trabajo o a los pocos amantes de la tecnología que la usábamos en el día a día. Frases como: “yo cuando llego a casa después de todo el día con el ordenador, lo último que quiero es encender otro ordenador” eran lo normal a la hora de escuchar a la gente hablar sobre tecnología. Pero hoy día no tenemos problema al llegar a casa de encender nuestro iPad o consultar constantemente el iPhone… dos ordenadores que están permanentemente encendidos. Ese fue el gran cambio que trajo Apple: poner un sistema operativo de escritorio (un núcleo, Darwin) en un dispositivo móvil y luego en una tableta y ofrecer un uso que encajó con el sector de consumo. Llevo la informática a las masas, a través de la necesidad de estar permanentemente conectados a la red, pero de una forma que requería una curva de aprendizaje mínima para entrar.

Desde entonces, más de 10 años después, los ordenadores son algo que podemos usar en el trabajo, pero los dispositivos han popularizado y transformado el sector haciendo que hasta nuestras abuelas tenga una tableta y/o un smartphone en su bolsillo. Un smartphone que no deja de ser un ordenador con sistema operativo.

Win32, la API inmortal

Si hay una cosa que ha caracterizado el mundo de la informática de consumo desde sus inicios a finales de los años 70, ha sido la necesidad de poner un software a la máquina que nos permita operar con ella: un sistema operativo. Y uno de los puntos claves de toda esa historia fue el lanzamiento en 1981 por parte de Microsoft de su sistema operativo DOS (Disk Operating System) o comúnmente conocido como MSDOS. Luego el lanzamiento de macOS en 1984 con la llegada del Macintosh supuso otro gran cambio y al año siguiente, Microsoft haría lo propio con Windows.

Hasta la versión 6 de MSDOS, Windows era una aplicación con interfaz gráfica que se lanzaba cuando la llamábamos desde línea de comando con win y nos permitía instalar aplicaciones para ella. No era un sistema operativo en sí mismo. Las apps que se movían en esta aplicación (no sistema) y ella misma, usaban la API Win16. Pero entonces llegó Windows 95. En esencia era igual: en realidad estabas usando MSDOS 7 (el primero puro en 32 bits) que cuando arrancaba, ejecutaba de forma automática el comando win para lanzar la aplicación Windows 95 (o Windows 4). Pero a la hora de apagar, podíamos decidir ir de nuevo a línea de comandos, si queríamos. Aún existía el config.sys y el autoexec.bat, ¿recuerdan?

En esencia, es algo muy parecido a lo que históricamente hacían los sistemas basados en Unix. Arrancaban el shell del sistema, y luego ejecutaban automáticamente x que era el entorno gráfico del mismo.

Diálogo Win32 en Windows 10

Pero Windows 95 trajo una novedad importante a los sistemas. Antes de Windows 95, existía ya un sistema operativo para trabajo en red, servidores y estaciones de trabajo: Windows NT. Su versión 3.1, anterior a Windows 95 introdujo la primera versión de la API de Windows en 32 bits: Win32, compuesta principalmente por los ficheros kernel32.dll, user32.dll y gdi32.dll. Todos los componentes del sistema estaban basados en esta API, al igual que en Apple lo están en el llamado FoundationKit (Foundation para los amigos) y AppKit (en el caso de OS X).

Win32, desde entonces, es la API y núcleo de funcionamiento de Windows. Obviamente, con el tiempo apareció Win64 como versión de la misma en 64 bits. Pero en esencia esta es la API de desarrollo del sistema donde están creados los propios componentes del sistema. Si somos usuarios de Windows (o lo hemos trabajado) sabremos que incluso en Windows 10, cuando llegamos a un nivel lo suficientemente bajo de configuración del sistema, nos aparecen los típicos cuadros de diálogo que han estado ahí desde Windows 95, como el de configuración de red. Estas ventanas son Win32. Y aún hay muchas apps basadas en Win32.


Tras más de 20 años, Windows sigue teniendo en su núcleo Win32, lo que lastra el propio sistema. Uno de los precios a pagar por él, es el famoso registro de Windows.


En esencia: Windows, por asegurar la retrocompatibilidad, tiene el mismo núcleo de desarrollo desde el año 1995. Más de 20 años en los que, aunque la API obviamente ha evolucionado y se han incorporado otras opciones propias de Microsoft o de terceros, Win32 sigue ahí dando soporte al propio sistema operativo. Y eso, al final, es una rémora para el sistema.

Apple, de Carbon a Cocoa

Para Apple la convergencia viene por el software, una idea que han “heredado” de Microsoft. Los de Redmond fueron los primeros en ver la necesidad de crear una única librería de desarrollo que englobara a toda su gama de productos y sistemas operativos. Pero Microsoft ha ido más allá, porque Apple aun teniendo el mismo núcleo para todos sus sistemas, luego ofrece una capa de control de usuario diferente. Por eso iOS, tvOS, watchOS y macOS son totalmente diferentes en cuanto a cómo se aproximan al usuario, en aspecto y en cómo se manejan. Pero en esencia es el mismo sistema operativo con diferentes capas de “manejo”.

Microsoft quiere hacer lo mismo pero vendiendo Windows como una sola entidad: un sistema operativo para dominarlos a todos. De forma que el mismo Windows sea usado desde en un dispositivo pequeño iOT hasta un gran servidor (pasando por los ordenadores o tabletas que tengamos en casa).

Cocoa & Carbon

Lo que está claro es que Microsoft necesita dar un paso al futuro que Apple ya dio en 2001 y le ha dado una posición de ventaja. Apple usaba el mismo núcleo de desarrollo desde el lanzamiento del Macintosh en 1984. La misma API (su propia Win32 aunque la de Apple era en ese momento de 16 bits). Pero la llegada de Steve Jobs en 1996 cambió las cosas pues traía todo el know-how que había desarrollado en NeXT, motivo principal de la compra de la compañía por parte de Apple. El concepto de los frameworks, el desarrollo visual orientado a objetos, el MVC… todo lo que revolucionó el desarrollo. La API de macOS era muy antigua y Apple lo que hizo fue crear en 1998 un proyecto que diera una capa de traducción en tiempo real que permitiera soportar a las antiguas apps de macOS: Carbon.

Cuando OS X fue presentado al mundo, Carbon y Cocoa iban de la mano. Eran dos APIs (o dos frameworks porque eran un conjunto de APIs) que permitían programar para el sistema. Carbon daba retrocompatibilidad con la antigua API de macOS en sus versiones 8 y 9 y Cocoa era la nueva y más preparada que sacaba partido nativo del núcleo Darwin de OS X.


Apple obligó a los desarrolladores a pasar sus apps de Carbon (la antigua API) a Cocoa. Eso le ha dado una posición de ventaja frente a Windows.


Lo que pasó es que Apple fue obligando a los desarrolladores a pasar poco a poco todo lo hecho en Carbon a Cocoa. Aplicaciones como Photoshop e incluso algunas de la propia Apple seguían en Carbon muchos años después (como el mismísimo Finder). Pero Carbon es una API de 32 bits que finalmente no se convirtió a 64 bits por razones obvias. Y cuando Apple transformó su sistema operativo nativo a 64 bits con OS X Lion (la 10.7) eliminando el soporte de 32 bits al núcleo Darwin, Cocoa sí se transformó a 64 bits pero Carbon no, por lo que quedó deprecada.

Este punto es importante de entender pues es el paso de transformación del sistema operativo que Windows aún no ha podido terminar. OS X Lion lanzado en 2012 supuso el cambio de kernel en la API del sistema, de forma que solo Cocoa estaba soportada y de hecho ahora Carbon ya no se incluye en las nuevas versiones del sistema y sus apps directamente no funcionan.

Y vamos más allá, porque macOS 10.13.4 ya advierte del cambio a 64 bits de todo, incluso las apps, deprecando el uso de Cocoa en 32 bits (o cualquier otra API). macOS 10.13.4 no garantizará el funcionamiento correcto de apps de 32 bits y macOS 10.14 lo eliminará y directamente cualquier app compilada en 32 bits no funcionará (algo que ya se ha hecho con iOS 11).

¿Por qué he explicado todo esto? Porque Apple ha tenido su transición a una nueva API como Cocoa, que nació en 2001 y que ha ido evolucionando y dando soporte a todos los sistemas, pero Windows no. Sigue con el lastre de Win32. Porque Apple ha tenido varias fases en que ha obligado a los desarrolladores a transformar sus desarrollos (e incluso reescribirlos desde cero en algunos casos), pero Microsoft nunca ha obligado a esto en Windows. Y al final el tiempo le ha pasado factura.

El próximo cambio, Polaris

Microsoft ha anunciado que va a crear un nuevo Windows. Un nuevo kernel llamado Polaris, basado en el framework Windows Universal o (WUP, Windows Universal Platform) y que eliminará completamente el soporte de las apps y componentes Win32 en el sistema. Un paso muy necesario porque el lastre de esta API es la responsable que los actuales sistemas basados en UNIX como cualquier distribución Linux o el mismo macOS, tengan un rendimiento general y sostenido en el tiempo, mejor que Windows.

¿Recuerdan aquello que se dice que un Windows bien conservado es aquel que se reinstala cada cierto tiempo desde cero? ¿Recuerdan qué es el registro de Windows? Todo eso viene de la API Win32. Un nuevo kernel de Windows crearía un nuevo sistema operativo mucho más eficiente, que no necesitaría el concepto del registro del sistema (como sucede en macOS o Linux) y que daría nueva vida al sistema operativo, convirtiéndolo además en mucho más seguro de base y eficiente.

El registro de Windows, uno de los lastres de WIn32

Por lo tanto es una gran noticia que Microsoft esté reescribiendo Windows por primera vez en más de 20 años, para crear un núcleo a la altura. ¿Y qué pasará con la infinidad de apps basadas en Win32 que aún existen? Seguirán funcionando sin problema. Porque debajo del núcleo de Windows hay un componente clave: un hipervisor. ¿Qué es eso? Pues un núcleo de virtualización de sistemas. De forma que cuando el nuevo Windows tenga que ejecutar una app Win32, lo hará a través de la virtualización de una máquina Win32, con su propio registro único para esa app. Algo parecido a lo que hoy día es un contenedor Docker.

La app correrá de forma directa en el sistema, sin necesidad de instalación de nada ni modificación de ningún tipo de registro de nada. Simplemente será un contenedor que ejecutará un proceso virtualizado de Win32, aislado del sistema y que no lo “ensuciará” en forma alguna. Seguirán funcionando, pero sin entorpecer al sistema y si se cuelga la app, como es un proceso virtualizado, no afectará al kernel del sistema y bastará cerrar la app para que deje de molestar. Así de simple.

A eso le unimos conceptos tan interesantes como la nueva API de interfaz basada en Fluent Design System, una nueva forma de construir interfaces. Y la API Andromeda que permitiría a Windows funcionar por módulos adaptados a cada tipo de dispositivo, pudiendo construir un sistema operativo por piezas, todo sobre el nuevo núcleo Polaris. Una reinvención en toda regla en un trabajo titánico que tiene Microsoft por delante y muy interesante.

Núcleo Polaris, componentes con Andrómeda e interfaz Fluent Design System. El futuro de Windows.

Ese es el futuro. Un futuro que además pasará porque todas las apps que se instalen en Windows tengan que proceder obligatoriamente de la tienda Windows Store. Algo muy necesario hoy día. Tenemos que olvidarnos de ese concepto que tenemos hoy día de descargar y ejecutar lo que queramos sin control. No. Un sistema operativo ha de cuidarnos y protegernos y el concepto del App Store de iOS llegará a estar presente en todos los sistemas y ámbitos. Solo los últimos irreductibles de Linux tendrá el sistema completamente abierto. Pero los demás, terminaremos por pasar obligatoriamente por un repositorio que nos de unas garantías mínimas de seguridad.

¿Y Apple?

Cocoa durará aún mucho años como API de sistema y al ser un sistema que no lastra al sistema, tiene aún mucho futuro ya que el núcleo Darwin es lo suficientemente robusto. Pero el futuro pasará por la nueva API que se presentará este verano en la WWDC que unificará el desarrollo de todos los sistemas en un solo framework. Swift ya ha andado parte del camino pues ahora en todos los sistemas Apple usamos la misma API de red o de control de hilos del sistema (que son parte del lenguaje). Pero falta el paso de las interfaces.

Puede que en 10 o 15 años Apple quiera llevar a obsolescencia Cocoa y Objective-C, todo sea nativo en Swift y se obligue a los desarrolladores a convertir sus apps a la nueva API que será aquella que de soporte a todos los componentes de cualquiera de los sistemas con núcleo Darwin. Una nueva API que los domine a todos. El primer paso lo veremos este verano. Por lo pronto, Microsoft ha empezado a andar un buen camino y esperamos ansiosos sus resultados. Un saludo y Good Apple Coding.

Etiquetas

Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Artículos relacionados

Close
Close

Bloqueador de publicidad detectado

Apple Coding hace un uso responsable no invasivo de la publicidad. Considere desactivar su bloqueador para nosotros y así nos ayudará a mejorar día a día. Gracias.