me sorprende que nadie ha mencionado el hardware de Java. Debería ser una inspiración para nosotros fomentar la evolución del hardware mediante la creación de un procesador de nivel aún más alto.
Hay otro proyecto que acabo de encontrar llamado "Pycorn".
Si hubiera un procesador de bytecode de Python, sería factible hacer un sistema operativo rápido en 100% Python. El procesador podría implementar todo el bytecode CPython, o cualquier cosa que sea compatible con el lenguaje Python (¡pero no con los módulos C!). El procesador tendría que manejar conteo de referencias, clases y objetos. El hashing nativo para dicts sería muy útil, todas las manipulaciones complejas de estructura de datos que Python actualmente necesita en el software deberían hacerse exclusivamente en hardware. No habría ningún concepto de punteros, que veo como una motivación principal para construir tal procesador, ya que sería imposible destruir la pila.
¡Todo sería objeto! El kernel mismo llamaría métodos al objeto de memoria, aunque no necesitaría tocarlo mucho ya que el hardware manejará la asignación y la recolección de basura de todos modos. Los manejadores de interrupciones simplemente pueden establecerse en métodos de pitón. MSR, cachés, registros de depuración y puertos de E/S son objetos.
Hay una discusión interesante sobre la implementación de Python en un FPGA here.
En otra nota, (perteneciente a un Python O/S en un procesador que no es Python) a las personas que afirman que no se puede hacer ensamblado en línea Pythonic, es bastante simple simplemente emitir ensamblaje desde una abstracción, ej:
asm = MetaASM()
asm.r1 = 1234
asm.r2 = r1 + 5
asm.io.out(r1)
usted podría cambiar de reunión específica para las necesidades de rendimiento de la arquitectura o arquitectura específica operaciones/registros cuando sea necesario:
asm = ASM("IA-32")
asm.xor(asm.eax, asm.eax)
asm.cr0 = asm.eax
asm.invtlb
asm.fs.0x0= asm.eax
asm.al = 123
asm.dword.ptr.eax = 1234 # mov dword ptr [eax], 1234
asm.push(asm.eax)
CorePy llega a los intereses sobre este tema.
El SO del dispositivo de firewall que menciona es monowall (http://m0n0.ch/wall/) del cual pfSense es un descendiente. – SingleNegationElimination
¿Por qué no constructivo? La pregunta está bien definida y puede ser respondida definitivamente. –
@Mechanicalsnail Levanté un indicador de moderador personalizado para que se vuelva a abrir. – cybermonkey