A lo largo de la larga historia de los sistemas operativos, la tendencia se ha movido lentamente de los enfoques más directos al código de máquina a niveles cada vez más altos de abstracción, pero parece que esa tendencia simplemente se detuvo.
C se convirtió en el lenguaje de programación de sistemas estándar en los años 70, y esta tradición se mantiene hasta nuestros días. Los sistemas operativos más populares hoy en día todavía están escritos en C, con algunos ensamblajes para algunas rutinas de hardware de nivel inferior y, en algunos casos, C ++ para algunas capas superiores. Los lenguajes de programación de nivel superior se hicieron más comunes en el país de los usuarios (por ejemplo, ahora hay una explosión de aplicaciones ejecutándose en la parte superior de la pila del navegador), pero los componentes del sistema operativo inferior siguen siendo muy conservadores.
Teóricamente, un sistema operativo puede escribirse en cualquier lenguaje de programación, incluso un lenguaje de secuencias de comandos podría generar un cargador de arranque de código de máquina para arrancar su intérprete y luego ejecutar la funcionalidad del núcleo de nivel superior como secuencias de comandos. Uno puede encontrar muchos proyectos experimentales de kernel / OS escritos en cualquier lenguaje principal: Haskell, Java, C #, Modula-3, Ada, D, Nim, Rust, incluso Python. Pero solo porque puedes hacer algo no significa que debas hacerlo .
- Quiero contratar a un desarrollador de aplicaciones. ¿Podríamos contratar a un buen desarrollador que desarrolle iOS y Android? ¿O los desarrolladores se especializan en cualquiera de ellos?
- ¿Hay alguna restricción de Apple para cambiar una aplicación paga de iOS a una aplicación gratuita con una suscripción en la aplicación?
- Cómo agregar 10,000 monedas para Dream League Soccer
- ¿Cuáles son algunas de las mejores aplicaciones iOS sin conexión?
- ¿Cuáles son las mejores aplicaciones meteorológicas para Mac OS X e iOS, de pago o gratuitas?
Ninguno de estos ha llegado muy lejos todavía, tal vez porque el enfoque C existente para la programación es simplemente lo suficientemente bueno: es la lengua franca a la que están acostumbrados todos los programadores de sistemas. El uso de los mismos núcleos en plataformas móviles e integradas / IoT significa que exprimir cada bit de eficiencia de ejecución sigue siendo muy importante. El rendimiento y el impulso continúan superando los beneficios de seguridad y productividad del desarrollador que los lenguajes de nivel superior podrían aportar.
Rust es probablemente el contendiente más fuerte para desafiar los actuales ecosistemas de kernel basados en C, pero esta transición probablemente tomaría muchos años, si no décadas …