Java ハードウェアについて誰も言及していないことに驚いています。より高いレベルのプロセッサを作成することで、ハードウェアの進化をさらに進めるためのインスピレーションになるはずです。
「 Pycorn 」と呼ばれる別のプロジェクトを見つけました。
Python バイトコード プロセッサがあれば、100% Python で高速なオペレーティング システムを作成できます。プロセッサは、CPython バイトコード全体、または Python 言語と互換性のあるもの (ただし C モジュールは除く) を実装できます。プロセッサは、参照カウント、クラス、およびオブジェクトを処理する必要があります。Python が現在ソフトウェアで必要とするすべての複雑なデータ構造操作は、純粋にハードウェアで行う必要があります。スタックを破壊することは不可能であるため、そのようなプロセッサを構築する主な動機として私が見ているポインターの概念はありません。
すべてがオブジェクトになります!カーネル自体はメモリ オブジェクトのメソッドを呼び出しますが、ハードウェアが割り当てとガベージ コレクションをとにかく処理するため、あまり触る必要はありません。割り込みハンドラは、python メソッドに設定するだけです。MSR、キャッシュ、デバッグ レジスタ、および I/O ポートはオブジェクトです。
FPGA での Python の実装に関する興味深い議論がここにあります。
別の注意として、(Python 以外のプロセッサ上の Python O/S に関連して) インライン アセンブリを Pythonic にすることはできないと主張する人々に対して、抽象化からアセンブリを出力するのは非常に簡単です。例:
asm = MetaASM()
asm.r1 = 1234
asm.r2 = r1 + 5
asm.io.out(r1)
パフォーマンスが必要な場合はアーキテクチャ固有のアセンブリに切り替えるか、必要に応じてアーキテクチャ固有の操作/レジスタに切り替えることができます。
asm = ASM("IA-32")
asm.xor(asm.eax, asm.eax)
asm.cr0 = asm.eax
asm.invtlb
asm.fs.0x00123456 = asm.eax
asm.al = 123
asm.dword.ptr.eax = 1234 # mov dword ptr [eax], 1234
asm.push(asm.eax)
CorePyは、このトピックに関心を持っています。