¿Es posible hacer un sistema operativo minimalista usando Python?
Realmente no quiero entrar en el código de bajo nivel como el ensamblado, por lo que quiero utilizar un simple
Idioma como Perl o Python. ¿Pero cómo?¿Es posible crear un sistema operativo usando Python?
Respuesta
Desafortunadamente Python está clasificado como very high level programming language. No se puede usar, por ejemplo, para acceder directamente al hardware y realizar una manipulación de la estructura de datos de bajo nivel. Depender completamente de algo para abstraer el hardware de él, y ese es el Kernel. Sin embargo, es técnicamente posible crear un sistema operativo centrado en Python, es decir; solo tienen las cosas de muy bajo nivel escritas en C y en ensamblaje, y tienen la mayor parte del resto del sistema operativo escrito en Python.
This article analiza con más detalle qué idiomas son adecuados para escribir núcleos de sistema operativo.
Buen artículo. La mejor cita es: _En muchos otros idiomas además de C, se requiere una buena cantidad de ensamblado y desarrollo de C para proporcionar el entorno de tiempo de ejecución adecuado que respalde las abstracciones del lenguaje. – C2H5OH
Le sugiero que encuentre un buen libro de texto sobre el diseño del sistema operativo, y estudie eso. Estoy bastante seguro de que no encontrarás ese libro con el código fuente de Python; C es más probable. (Puede encontrar un libro de texto antiguo que use Pascal en lugar de C, pero en realidad no es tan diferente.)
Una vez que haya estudiado el diseño de sistemas operativos lo suficiente como para poder escribir un sistema operativo, sabrá lo suficiente como para tener tus propias opiniones sobre qué idiomas serían adecuados.
He portado el intérprete de Python para que se ejecute en mi sistema operativo como un programa de espacio de usuario, fue el primer programa, y hasta ahora el único, que porté; a partir de esta experiencia, diría que sería posible escribir muchas de las funcionalidades del sistema operativo en Python; incluso puede incrustar Python en el kernel con un soporte de características mínimo.
Sin embargo, debe escribir el ensamblaje y C para las interrupciones, la administración de memoria de bajo nivel y demás. En mi caso, construí un Python 2.5.2 especialmente modificado contra la biblioteca C Newlib; en un caso mínimo, solo necesita proporcionar administración de memoria de pila para la biblioteca de Newlib, y puede hacer que Python se ejecute encima de ella.
Como tal, el intérprete de Python no contiene su propia implementación de montón, y depende de la biblioteca C, por lo que no puede ejecutarlo directamente, sino mucho más del núcleo del sistema operativo como se escribe convencionalmente. también podría escribirse en Python.
El caso especial, por supuesto, son los microkernels, donde gran parte de la funcionalidad está en el espacio de usuario como servicios; estos se pueden implementar de forma más natural en cualquier lenguaje de programación preferido, incluido Python.
Sin duda puede ejecutar Python sin un sistema operativo, como se muestra en el The Intel BIOS Implementation Test Suite (BITS) Project. El scripting guide explica:
" ... incluye las API de Python para acceder a diversas funcionalidades de bajo nivel de la plataforma de hardware, incluyendo ACPI, la CPU y registros de chipset, PCI y PCI Express Puede escribir scripts para explorar y probar. funcionalidad de la plataforma, utilizando toda la potencia de Python en el anillo 0 de 32 bits, sin un sistema operativo en el camino ... "
Ahora, BITS es una plataforma de pruebas BIOS específica para hardware Intel, y no pretende ejecutar una costumbre Sistema operativo basado en Python, pero eso no significa que no puedas intentarlo ...
- 1. ¿Es posible hacer un sistema operativo usando Java?
- 2. ¿Es posible escribir un sistema operativo para un teléfono móvil?
- 3. ¿Cómo comprobar si el sistema operativo es Vista en Python?
- 4. ¿Cómo puedo cambiar las unidades usando el sistema operativo python?
- 5. ¿qué es un sistema operativo sin tics?
- 6. ¿OSX es un sistema operativo POSIX?
- 7. Desarrollo de un sistema operativo
- 8. Identificando si el sistema operativo es (abierto) SUSE en Python?
- 9. Detectar el sistema operativo
- 10. ¿Es posible probar si el navegador/sistema operativo de un usuario admite un tipo determinado de enlace usando javascript?
- 11. malloc en un sistema integrado sin un sistema operativo
- 12. ¿Es posible ejecutar el ensamblaje x86 en un sistema operativo x64?
- 13. ¿Es posible crear objetos anónimos en Python?
- 14. ¿Cómo puedo encontrar el sistema operativo actual en Python?
- 15. ¿Qué es lo que realmente hace un sistema operativo?
- 16. ¿es posible crear un instalador multilenguaje usando WIX?
- 17. Sistema operativo de espacio aislado
- 18. Recursos para desarrollar un sistema operativo
- 19. ¿Cómo detectar el idioma predeterminado del sistema operativo en python?
- 20. ¿Es posible acelerar Python IO?
- 21. Actualizar sistema operativo Android programáticamente
- 22. En QEMU, ¿es posible interceptar paquetes enviados/recibidos por el sistema operativo invitado de Linux?
- 23. Python: ¿En qué sistema operativo me estoy ejecutando?
- 24. Python: sistema operativo Lista independiente de dispositivos de almacenamiento disponibles
- 25. sistema operativo y aplicaciones WPF
- 26. Detectar sistema operativo en Clojure
- 27. Rubyzip vs compresión de sistema operativo nativo
- 28. ¿Es posible crear bases de datos programáticamente usando DBX?
- 29. Cómo determinar el sistema operativo
- 30. ¿Cómo obtengo el nombre del sistema operativo de manera amigable usando Python 2.5?
¿Qué esperas conseguir? – NPE
https: // launchpad.net/pycorn – pyfunc
No sin el ensamblaje o sin C en alguna parte_, incluso pycorn tiene ensamblado para el código de arranque. Manejadores de interrupciones, del mismo modo. –