2012-06-05 42 views
15

¿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?

+0

¿Qué esperas conseguir? – NPE

+2

https: // launchpad.net/pycorn – pyfunc

+2

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. –

Respuesta

24

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.

+4

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

1

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.

3

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.

6

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 ...

Cuestiones relacionadas