¿Qué lenguaje de programación se utiliza para crear Windows 10?


Windows 10 es la misma base de código (evolucionada) que la base de código de Windows 8.x, Windows 7, Windows Vista, Windows XP, Windows 2000 y Windows NT, donde cada generación vio una refactorización significativa, y añadió nuevas características sustanciales, mejoró el rendimiento y el soporte de hardware, así como la seguridad, todo ello manteniendo un grado muy alto de compatibilidad con versiones anteriores.

La mayor parte del kernel (ntoskrnl.exe) está escrito en el lenguaje de programación C. Puedes encontrar copias filtradas del Windows Research Kernel incluso en Github[1] y comprobarlo por ti mismo: aunque está bastante anticuado y en gran parte incompleto, este código debería dar ideas significativas.


Vea, por ejemplo, el código fuente que implementa el conocido Registro, un componente del kernel conocido internamente como el gestor de configuración, "Cm", en wrk-v1.2/base/ntos/config.

La mayor parte de lo que se ejecuta en el modo kernel también está escrito en el lenguaje de programación C (la mayoría de los sistemas de archivos, redes, la mayoría de los controladores...) con algo de C++ aquí y allá.

A medida que se asciende en la pila hacia el modo de usuario, y hacia los desarrollos más recientes, se encontrará algo menos de C y algo más de C++.

Como nota al margen, lo que la mayoría de la gente no se da cuenta es el enorme tamaño de Windows: se trata de un proyecto gigantesco de proporciones verdaderamente épicas.

El árbol de fuentes completo con todo el código, el código de prueba y todo lo que en conjunto constituye el "código fuente de Windows" tiene un tamaño de más de medio terabyte, en más de 4 millones de archivos. Puedes pasarte un año (en serio) investigando el árbol de código fuente, más de medio millón de carpetas que contienen el código de cada componente de los productos de estación de trabajo y servidor del sistema operativo y todas sus ediciones, herramientas y kits de desarrollo asociados, y ver lo que hay ahí, leer los nombres de los archivos e intentar averiguar qué hace qué. Se necesitaría una vida (o dos) para leerlo todo.

Abajo hay una captura de pantalla que puede o no representar las estadísticas sobre un alistamiento completo de Windows (código fuente, archivos de prueba, herramientas de construcción, todo)

main-qimg-be4162100bd9e3ed8411bbd6cff8b9e1

En una ocasión, dejé una rama de Git parada durante unas semanas y, cuando volví a ella, estaba detrás por casi 60.000 commits. Creo que se puede argumentar que una sola persona no puede leer todo el código que se añade a Windows cada día, ¡y mucho menos leer lo que se ha escrito durante los últimos treinta años!

Volviendo a nuestro tema, si miras un "DVD" de Windows 10 y consideras qué lenguajes de programación se utilizaron para crear todo lo que hay en ese disco, mi opinión es que el 98% sería C y C++, con C llevándose la mayor parte.

La BCL de .NET y otras librerías y frameworks gestionados que se envían en la caja están normalmente escritos en C#, pero sólo representan pequeñas gotas en un gigantesco mar de código C con unas pocas islas de C++. También provienen de una división diferente y su código no es parte del árbol de fuentes de Windows.

Notas al pie

[1] Mighten/WRK-1.2