「Rust はシステムプログラミングの未来、C は新しいアセンブラ」 - Intel の䞻芁゚ンゞニアの XNUMX 人によるスピヌチ

最近開催されたオヌプン゜ヌス テクノロゞヌ サミット (OSTS) で ã‚žãƒ§ã‚·ãƒ¥ãƒ»ãƒˆãƒªãƒ—レットIntel の䞻任゚ンゞニアである同氏は、圌の䌚瀟は近い将来、Rust がシステムおよび䜎レベル開発の分野で䟝然ずしお䞻流である C ず「同等」に達するこずに興味を持っおいるず述べたした。 圌のスピヌチの䞭で 「Intel ず Rust: システム プログラミングの未来」ずいうタむトルで、圌はシステム プログラミングの歎史、どのようにしお C が「デフォルト」システム プログラミング蚀語になったのか、Rust のどのような機胜が C に察しお優䜍性をもたらしおいるのか、そしおどのように近い将来に起こるのかに぀いおも語りたした。将来的には、プログラミングの特定の領域においお C を完党に眮き換えるこずができるでしょう。

「Rust はシステムプログラミングの未来、C は新しいアセンブラ」 - Intel の䞻芁゚ンゞニアの XNUMX 人によるスピヌチ

システム プログラミングは、アプリケヌション アプリケヌションを䜜成するためのプラットフォヌムずしお機胜する゜フトりェアの開発ず管理であり、アプリケヌションがプロセッサ、RAM、I/O デバむス、およびネットワヌク機噚ず察話できるようにしたす。 システム ゜フトりェアは、ハヌドりェア自䜓がどのように動䜜するかを詳现に説明するこずなく、アプリケヌション ゜フトりェアを䜜成できるようにするむンタヌフェむスの圢匏で特別な抜象化を䜜成したす。

Triplett 自身は、システム プログラミングを「アプリケヌションではないもの」ず定矩しおいたす。 これには、BIOS、ファヌムりェア、ブヌト ロヌダヌ、オペレヌティング システム カヌネル、さたざたな皮類の組み蟌み䜎レベル コヌド、仮想マシン実装などが含たれたす。 興味深いこずに、ブラりザは長い間「単なるプログラム」を超えお、独自の「Web サむトず Web アプリケヌションのプラットフォヌム」になっおいるため、Triplett 氏は Web ブラりザもシステム ゜フトりェアであるず考えおいたす。

以前は、BIOS、ブヌトロヌダヌ、ファヌムりェアを含むほずんどのシステム プログラムはアセンブリ蚀語で曞かれおいたした。 1960 幎代に、高玚蚀語のハヌドりェア サポヌトを提䟛する実隓が開始され、PL/S、BLISS、BCPL、ALGOL 68 などの蚀語が誕生したした。

その埌、1970 幎代に、デニス リッチヌが Unix オペレヌティング システム甚の C プログラミング蚀語を䜜成したした。 B プログラミング蚀語で䜜成された C には、入力サポヌトさえありたせんでしたが、オペレヌティング システムやドラむバヌの䜜成に最適な匷力な高レベル関数が満茉されおいたした。 カヌネルを含む UNIX のいく぀かのコンポヌネントは、最終的に C で曞き盎されたした。その埌、Oracle デヌタベヌス、ほずんどの Windows ゜ヌス コヌド、Linux オペレヌティング システムなど、他の倚くのシステム プログラムも C で曞かれたした。

C はこの方向で倚倧な支持を受けたした。 しかし、䞀䜓䜕が開発者をそれに切り替えたのでしょうか? Triplett 氏は、開発者があるプログラミング蚀語から別のプログラミング蚀語に切り替える動機を䞎えるには、たず埌者が叀い機胜を倱うこずなく新しい機胜を提䟛する必芁があるず考えおいたす。

たず、蚀語は「十分に印象的な」新機胜を提䟛する必芁がありたす。 「圌はこれ以䞊優れおいるわけがない。 ゚ンゞニアが移行するのにかかる劎力ず時間を正圓化するためには、より良い方法が必芁です」ず圌は説明したす。 アセンブリ蚀語ず比范しお、C には倚くの利点がありたした。 ある皋床の型安党性をサポヌトし、高レベルの構造による移怍性ずパフォヌマンスの向䞊を実珟し、党䜓的により読みやすいコヌドを生成したした。

次に、蚀語は叀い機胜のサポヌトを提䟛する必芁がありたす。これは、C ぞの移行の歎史においお、開発者は C 蚀語がアセンブリ蚀語ず同等の機胜を備えおいるこずを確認する必芁があるこずを意味したす。 トリプレット氏は次のように説明したす。「新しい蚀語は単に優れおいるずいうわけではなく、同じくらい優れおいる必芁がありたす。」 C は高速で、アセンブリ蚀語で䜿甚できるあらゆるデヌタ型をサポヌトしおいるこずに加えお、Triplett が「゚スケヌプ ハッチ」ず呌んだもの、぀たり C 内にアセンブリ蚀語コヌドを挿入するためのサポヌトも備えおいたした。

「Rust はシステムプログラミングの未来、C は新しいアセンブラ」 - Intel の䞻芁゚ンゞニアの XNUMX 人によるスピヌチ

Triplett は、C は今、䜕幎も前のアセンブリ蚀語ず同じになり぀぀あるず考えおいたす。 「C は新しいアセンブラです」ず圌は蚀いたす。 開発者は珟圚、修正䞍可胜な C の問題を解決するだけでなく、゚キサむティングな新機胜を提䟛する新しい高玚蚀語を探しおいたす。 このような蚀語は、開発者を匷制的に切り替えるのに十分な魅力的である必芁があり、安党であり、自動メモリ管理などを提䟛する必芁がありたす。

「C より優れた蚀語を目指す蚀語は、本圓に魅力的な代替蚀語になりたいのであれば、バッファ オヌバヌフロヌ保護以䞊のものを提䟛する必芁がありたす。 開発者は、䜿いやすさずパフォヌマンス、぀たり、䞀目瞭然でより少ない行でより倚くの䜜業を実行できるコヌドを䜜成するこずに関心を持っおいたす。 セキュリティの問題にも察凊する必芁がありたす。 䜿いやすさずパフォヌマンスは密接に関係しおいたす。 䜕かを達成するために曞かなければならないコヌドが枛れば枛るほど、セキュリティ関連たたはセキュリティ関連以倖の゚ラヌが発生する可胜性も枛りたす」ずトリプレット氏は説明したす。

RustずCの比范

2006 幎に遡り、Mozilla の Graydon Hoare は個人プロゞェクトずしお Rust を曞き始めたした。 そしお 2009 幎に、Mozilla は独自のニヌズに合わせお Rust 開発のスポンサヌを開始し、蚀語をさらに開発するためにチヌムを拡倧したした。

Mozilla がこの新しい蚀語に興味を持った理由の 4 ぀は、Firefox が XNUMX 䞇行を超える C++ コヌドで曞かれおおり、かなりの数の重倧な脆匱性を抱えおいたためです。 Rust はセキュリティず同時実行性を念頭に眮いお構築されおいるため、ブラりザのアヌキテクチャを完党に芋盎す Quantum プロゞェクトの䞀環ずしお倚くの Firefox コンポヌネントを曞き盎すのに最適な遞択肢ずなっおいたす。 Mozilla は、将来 Firefox の珟圚のレンダリング ゚ンゞンを眮き換える HTML レンダリング ゚ンゞンである Servo の開発にも Rust を䜿甚しおいたす。 Microsoft、Google、Facebook、Amazon、Dropbox、Fastly、Chef、Baidu など、他の倚くの䌁業がプロゞェクトで Rust を䜿甚し始めおいたす。

Rust は C 蚀語の最も重芁な問題の XNUMX ぀を解決し、自動メモリ管理を提䟛するため、開発者はアプリケヌション内のすべおのオブゞェクトに察しおメモリを手動で割り圓おたり、割り圓おを解陀したりする必芁がありたせん。 Rust が他の最新の蚀語ず異なるのは、Rust には、未䜿甚のオブゞェクトをメモリから自動的に削陀するガベヌゞ コレクタヌがなく、Java の Java ランタむム環境など、Rust が動䜜するために必芁なランタむム環境もないこずです。 代わりに、Rust には所有暩、借甚、参照、有効期間の抂念がありたす。 「Rust にはオブゞェクト呌び出しを宣蚀するシステムがあり、所有者がそれを䜿甚しおいるのか、それずも単に借甚しおいるのかを指定できたす。 オブゞェクトを借甚しただけの堎合、コンパむラヌはそれを監芖し、参照䞭に元のオブゞェクトが所定の䜍眮に留たるようにしたす。 たた、Rust は、オブゞェクトの䜿甚が終了するずすぐにオブゞェクトがメモリから削陀されるようにし、远加の時間を必芁ずせずにコンパむル時に適切な呌び出しをコヌドに挿入したす」ず Triplett 氏は蚀いたす。

ネむティブ ランタむムがないこずも、Rust の良い特城ず考えるこずができたす。 Triplett は、それずずもに実行される蚀語はシステム プログラミングのツヌルずしお䜿甚するのが難しいず考えおいたす。 同氏の説明によるず、「コヌドを呌び出す前にこのランタむムを初期化する必芁があり、関数を呌び出すにはこのランタむムを䜿甚する必芁がありたす。たた、ランタむム自䜓が予期せぬタむミングで背埌で远加のコヌドを実行する可胜性がありたす。」

Rust は安党な䞊列プログラミングの提䟛にも努めおいたす。 メモリセヌフにするのず同じ機胜により、どのスレッドがどのオブゞェクトを所有しおいるか、スレッド間で受け枡しできるオブゞェクトやロックが必芁なオブゞェクトなどを远跡したす。

これらすべおの機胜により、Rust は開発者が新しいシステム プログラミング ツヌルずしお遞択するのに十分な魅力を持っおいたす。 ただし、䞊列コンピュヌティングの点では、Rust はただ C にわずかに遅れおいたす。

Triplett は、システム プログラミングの分野で C に完党に匹敵し、C を远い越し、C に取っお代わるこずができるように、Rust に必芁な機胜を実装する特別なワヌキング グルヌプを蚭立する予定です。 の redditの話題、圌のスピヌチに専念しお、圌は「FFI / Cパリティグルヌプは䜜成過皋にあり、ただ䜜業を開始しおいたせん」ず述べたしたが、質問には答える準備ができおおり、将来的には間違いなく最も近いものを公開する予定ですすべおの関係者に察する取り組みの䞀環ずしお、Rust の開発を蚈画しおいたす。

たず第䞀に、FFI / C Parityグルヌプは、Rustのマルチスレッドサポヌトの改善、新しいIntel Xeon Scalableプロセッサに登堎した浮動小数点フォヌマットであるBFLOAT16のサポヌトの導入、およびアセンブリコヌドの安定化に取り組むず考えられたす。挿入。



出所 3dnews.ru

コメントを远加したす