Pregunta

Este es realmente un gran problema y estoy en su mayoría en busca de recursos donde puedo aprender más acerca de lo siguiente.

Sé que el intérprete de Python está escrito en C y produce código de bytes para ser ejecutado en la máquina virtual de Python también escrito en C (¿verdad?). Mi pregunta es ¿sería posible llevar a cabo ambos en pitón en sí? Creo que a dónde voy con esto es la posibilidad (técnica) de escribir algo así como el sistema operativo en el pitón, particularmente SIN estáticamente compilar algo?

Si he entendido bien, pitón no tiene un ensamblador que tendría que ser escrita así en Python. ¿Son estas cosas algo que podría técnicamente (factible?) Puede hacer? ¿O sería el tipado dinámico del pitón plantear algún tipo de problema?

Me sabe un poco acerca de la arquitectura del microprocesador, el montaje y el código máquina, qué aprende recientes EE Grad en la escuela. Pero me pierdo mirar el cuadro completo de lenguajes de alto nivel como Python.

¿Fue útil?

Solución

En primer lugar, tendría que escribir un compilador de Python (no intérprete), en cualquier idioma, preferentemente Python. tendría que ser ejecutado throught el intérprete de la primera ejecución del compilador.

A continuación, se compilará su compilador consigo mismo, lo que lleva a un compilador nativo que no necesita intérprete.

A continuación, puede utilizar el compilador para la compilación de cualquier Python a código nativo.

Este proceso se denomina arranque, y es utilizado por muchos, si no la mayoría, los principales compiladores para muchos idiomas.

Puede leer más sobre este proceso aquí: http://en.wikipedia.org / wiki / Bootstrapping_ (compiladores)

En cuanto a la creación de un sistema operativo, que tendría que aplicar, como mínimo, un intérprete de Python, si se quiere evitar el código compilado. Si se escribe un intérprete de Python como un microkernel, podría escribir el resto del sistema operativo en Python. (Edit: Sólo inadvertidamente descrito Cleese, que Jiaaro menciona:))

Otros consejos

Compilador, no intérprete. Pero lo que buscas es PyPy .

James Tauber también ha construido una prueba de concepto OS en Python llamada Cleese , y recientemente ha comenzado un esfuerzo para que funcione en PyPy (intérprete de Python escrito en Python)

En cuanto a la cuestión implementación del sistema operativo, se necesita un sistema de lenguaje de programación para implementar un sistema operativo. Hacerlo todo en Python puro no será posible a menos que se te ocurra un ensamblador de Python y Python convertido a los binarios ejecutables directamente sin VM sea necesario.

Si quieres código en el montaje y obtener pitón de montar por ti, echar un vistazo a poco pasada de moda y experimental pyasm .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top