La velocidad no fue el único problema con la escritura de Linux en Python (o cualquier otra cosa). Disponibilidad e idoneidad son las áreas problemáticas.
Disponibilidad: cuando Linus comenzó a crear Linux, Python no era lo suficientemente estable como para hacer mucho. Linus anunció Linux en agosto de 1991 (Grupos de Google). Y según A Brief Timeline of Python, el primer lanzamiento público de python fue en febrero de 1991. Esta versión ni siquiera era beta. La primera versión beta salió en algún momento en 1992. Así que Python no estaba disponible para Linus cuando comenzó.
Idoneidad 1: Por supuesto, incluso si fuera lo suficientemente estable, Python no habría sido adecuado para el trabajo. Python es un lenguaje de script. Los lenguajes de secuencias de comandos son más adecuados para “soluciones rápidas (¿y sucias?”) O cuando la solución es más importante que el desarrollo. Más importante aún, dado que Python se interpreta, cualquier sistema operativo escrito en él no sería realmente un sistema operativo (el programa de nivel superior en el sistema) sino más bien una aplicación / máquina virtual. Por lo tanto, un ‘SO’ escrito en Python sería similar a Android (ver el apartado 1). Un núcleo real que aloja una VM para interpretar Python
Idoneidad 2: en segundo lugar, las partes más bajas del sistema operativo deben estar escritas en un lenguaje que proporcione acceso al hardware a un nivel más fino del que Python está diseñado / destinado. El ejemplo más obvio es que python no admite punteros. Eso sería un factor decisivo para la codificación del sistema operativo.
- ¿Qué pasaría si no hubiera compresores en los refrigeradores?
- ¿Qué pasaría si 10 mil millones de personas saltaran al mismo tiempo?
- ¿Qué pasaría si lloviera ácido mortal que disuelve el metal?
- Si DuckDuckGo no almacena la información de búsqueda de los usuarios, ¿cómo predice y ordena las búsquedas?
- ¿Qué pasaría si alguien sentara a Donald Trump y le presentara hechos que refutan sus declaraciones?
La respuesta basada en el escenario hipotético sigue:
Específico a la pregunta, el trabajo del kernel es no estar en el camino del usuario. Cualquier recurso que utilice el núcleo (CPU, memoria) es idealmente un desperdicio de recursos. Por eso tiene que ser rápido y compacto.
Entonces, si el núcleo era lento (porque estaba escrito en python), no habría sido un gran problema hasta que Linux fuera lo suficientemente grande / bueno como para ser ejecutado en sistemas de producción y no solo por aficionados. Entonces Linus (y otros que contribuyeron al núcleo) habrían hecho una gran cantidad de optimización. Primero habrían optimizado el código del núcleo mismo. Pero la optimización tiene sus límites. Entonces habrían tomado la optimización de Python (lenguaje y el intérprete). Pero, de nuevo, la optimización tiene sus límites. Así que puedo imaginar dos escenarios ortogonales aquí.
Caso 1: Linux se volvería a escribir en otro idioma.
La gente pasaría unos meses (¿años?) Reescribiendo el núcleo en el nuevo idioma. El tiempo real empleado dependerá del tamaño del núcleo, por supuesto. Eso habría dejado espacio abierto para que otro núcleo gane cuota de mercado sobre Linux y ahora tendríamos dos o más núcleos no tan buenos en el mercado.
Caso 2: Python se volvería a implementar .
Si el grupo de Linux decidiera seguir con Python, tendrían que renovar todo el lenguaje. (El mejor de los casos) se sentarían con / (el peor de los casos) divididos del grupo Python y volverían a implementar una gran cantidad de python. Incluso podrían diseñar un compilador para python. Entonces habría compilado el código de Python en el núcleo e interpretado el código de Python en el país de usuario. Python probablemente habría sido el lenguaje de scripting de shell predeterminado en este nuevo kernel de Linux y la gente de Python podría pedirnos que lo llamemos Python / Linux (Aparte 2) y no solo Linux: P.
Aparte 1
Android está construido en un kernel de Linux con una VM basada en Java en la parte superior. Por lo tanto, el Kernel se modifica (para optimizar el consumo de energía frente al rendimiento) del kernel de Linux, mientras que el país de usuario es de Android.
Aparte 2
GNU GCC y otras herramientas de GNU juegan un papel muy importante en el desarrollo de Linux. Sin GCC, Linux hubiera sido muy difícil comenzar. Linus parcheó el GCC para minx para hacer un compilador cruzado para Linux. Mejoraron estos parches hasta que las personas de GNU comenzaron a hacer GCC oficial para Linux. Es por eso que algunas personas insisten en que Linux debería llamarse GNU / Linux.
grupos de Google