1

しばらく頭に浮かんだ質問があります。C などの言語は Python よりも高速であるため、オペレーティング システムの作成に使用されていることは承知しています。Python で書かれたオペレーティング システムは非常に遅くなるということをどこかで読んだことがあります。そこで私の質問です。プロセッサの速度が継続的に向上するにつれて、特定の言語の実行速度は、オペレーティング システムの開発における要因ではなくなりますか? 将来、C で書かれたオペレーティング システムとほぼ同じ速度で動作するオペレーティング システムを Python だけで書くことは可能でしょうか? ありがとうございました。

4

2 に答える 2

4

一般的な問題

Python は自己ホスト型ではないため、Python だけでオペレーティング システムを作成することはできません。

gcc などの C コンパイラには、オペレーティング システムの開発 (およびその他の関連タスク) 用に設計された特別な「フリー スタンディング」モードがあり、これらの関数printfは使用できません (アセンブラーを使用して自分で実装する必要があるため)。

Python では、次のような関数printが組み込まれています (そして、単に削除することはできません)。オペレーティング システムがない場合、それらはどのように実装されますか?

最後に、オペレーティング システムに依存する Python のすべての部分を無効にできたとしても、CPU を制御することはできません。ページングや割り込みなどを有効にするには、Python では生成できない特別なアセンブラー命令が必要です。さらに、メモリ内の特定の場所に物を配置する必要があり、Python には生のポインターがありません。

このページには、C 以外の言語を OS 開発に使用する際に役立つ情報がたくさんあります。

スピード

おっしゃる通り、Python は C よりも一定の係数だけ遅いということです。OS 開発以外の多くの分野で、CPU が高速になるにつれて、動的言語がますます一般的になってきていることがわかります。

オペレーティング システムの開発も例外ではありません。そのため、通常は C で記述されるオペレーティング システムの一部を Python が置き換えている実際の例を実際に数多く見つけることができます。

于 2013-05-31T09:14:07.730 に答える
1

いいえ、考えてみてください。速度 X で実行されているプロセッサで Python が C よりも遅い場合、速度 2X で実行されているプロセッサでの Python と C の速度について何が言えますか?

しかし...動的言語でオペレーティング システムを記述できます。そして人々はそうします。インタープリターをブートストラップしたら。しかし、これが主流になることはありません。少なくともすぐには。理由: 主流のオペレーティング システムは、すでに...まあ...主流です。そして、人々は新しいプロセッサーでそのすべての処理能力を使用したいと考えています。そして、基盤を提供するためではありません...ええと...処理のもの。

于 2013-05-31T09:17:00.353 に答える