37

Pythonを使用して最小限のオペレーティングシステムを作成することは可能ですか?
アセンブリのような低レベルのコードには入りたくないので、
PerlやPythonのような単純な言語を使用したいと思います。しかし、どのように?

4

4 に答える 4

52

残念ながら、Python は非常に高度なプログラミング言語に分類されます。たとえば、ハードウェアに直接アクセスして低レベルのデータ構造操作を実行するために使用することはできません。ハードウェアを抽象化する何かに完全に依存しており、それがカーネルです。ただし、Python を中心としたオペレーティング システムを作成することは技術的に可能です。非常に低レベルのものだけが C とアセンブリで書かれており、残りのオペレーティング システムのほとんどは Python で書かれています。

この記事では、オペレーティング システムのカーネルを作成するのに適した言語について詳しく説明します。

于 2012-06-05T21:02:42.927 に答える
22

The Intel BIOS Implementation Test Suite (BITS) Projectで示されているように、OS なしで Python を確実に実行できます。スクリプト ガイドでは、次のように説明されています。

「...には、ACPI、CPU およびチップセット レジスタ、PCI、PCI Express など、ハードウェア プラットフォームのさまざまな低レベル機能にアクセスするための Python API が含まれています。スクリプトを記述して、Python の全機能を使用して、プラットフォームの機能を調査およびテストできます。 32 ビットのリング 0 で、邪魔にならない OS はありません..」

現在、BITS は Intel ハードウェアに固有の BIOS テスト プラットフォームであり、カスタムの Python ベースの OS を実行することを意図したものではありませんが、試せないわけではありません...

于 2015-04-15T16:40:50.367 に答える
15

私は Python インタープリターを移植して、自分のオペレーティング システムでユーザー空間プログラムとして実行できるようにしました。移植したのはこれが最初であり、これまでのところ唯一のプログラムでした。この経験から、オペレーティング システムの多くの機能を Python で記述することは確かに可能であると言えます。確かに、最小限の機能サポートで Python をカーネルに埋め込むことさえできます。

ただし、割り込み、低レベルのメモリ管理などのために、アセンブリと C を記述する必要があります。私の場合、Newlib C ライブラリに対して特別に変更された Python 2.5.2 をビルドしました。最小限のケースでは、Newlib ライブラリにヒープ メモリ管理を提供するだけでよく、その上で Python を実行できます。

そのため、Python インタープリターには独自のヒープ実装が含まれておらず、C ライブラリに依存しているため、すぐにベア メタルで実行することはできませんが、従来どおりに記述されているオペレーティング システム カーネルのはるかに多くを実行することもできます。 Python で書かれています。

もちろん、特殊なケースはマイクロカーネルです。ここでは、機能の多くがサービスとしてユーザー空間にあります。これらは、Python を含む任意のプログラミング言語でより自然に実装できます。

于 2014-06-22T09:46:13.620 に答える
11

オペレーティング システムの設計に関する優れた教科書を見つけて、それを勉強することをお勧めします。Python のソース コードが記載されたこのような本はおそらくないでしょう。Cの可能性が高いです。(C の代わりに Pascal を使用する古い教科書を見つけるかもしれませんが、実際にはそれほど違いはありません。)

オペレーティング システムを実際に記述できるようにオペレーティング システムの設計を十分に学習すると、適切な言語について自分の意見を持つことができるようになります。

于 2012-06-05T21:34:05.607 に答える