ARMageddonについて考える

こんにちは、Habr!私の名前はセルゲイミナエフです。SportmasterのWebサービス管理責任者です。



そして、世界中でApple M1プロセッサがどれほど成功したか、そしてベンチマークを信じることが本当に可能かどうかについて議論している間、私のエンジニアと私は将来についての考えに飛び込みました。



私たちは座って喫煙し、新しい日が始まりましたが、何が起こったのかについての考えは私たちの頭を離れませんでした。いいえ、Intelのクラッシュの可能性については話し合いませんでした。次に、AMDがx86で何をするかについても、Vendekapetsについても考えませんでした。私たちは、Appleの新製品がウェブ開発をどれだけ変えるかを理解しようと試みてきました。



「はるか昔の遠い銀河系」に戻って、さまざまなプロセッサアーキテクチャと、それらが歴史の傍観者に残された理由を思い出してみましょう。



最初は言葉でした。次に、ダブルワード







コンピューターが木と同じくらい大きく、x86が草と同じくらい小さいとき、ほとんどの作業は「大きなコンピューター」で行われ、誰もIBMPCを真剣に受け止めませんでした。しかし、その後、革命が何度も起こりました-80386が登場しました。保護モードが登場し、4GBのメモリをアドレス指定することが可能でした...しかし、これはすべて実際には問題ではありません。価格と普及の問題。ある時点で、x86は、あまり知られていない会社であるMicrosoftのおかげで、自宅で購入できるパーソナルコンピューターの市場を征服し始めました。そして、多数あるところには、便利で、なじみのある、お気に入りの楽器があります。このツールはx86であり、多くのソフトウェアが作成され始め、このソフトウェアはx86自体で作成されました。



はい、大きくて重いDEC Alpha、PowerPC、MIPS、SPARCの市場がありました。 Motorolla / PowerPCに基づくAppleコンピューターは今のところバイパスされています。しかし、最も重要なことは、パーソナルコンピュータレベルで発生しました。x86は使い慣れた広範なツールであり、世代ごとにパフォーマンスが向上し、可用性は他のアーキテクチャよりも高くなりました。これらすべてが、特にx86専用に大量のソフトウェアが普及したという事実につながりました。この良い例は、Windows NT 4.0でのAlpha、MIPS、およびPowerPCアーキテクチャの段階的な廃止です。



徐々に、x86は、PowerPC、MIPS、IA64が以前に支配していたサーバーセグメントに侵入し始めました。時間の経過とともに、アーキテクトはカスタムアーキテクチャを放棄し始め、サーバー市場がx86(すでにamd64)を支配し始め、PowerPCやSPARCなどの巨人が非常にニッチな市場に参入しました。MIPSはルーターに入り、PA-RISCはIA64のために放棄され、IA64はその氷山を見つけました。



しかし、ゲームコンソールがPowerPC / Cellからx86および... ARMに移行したとしても、サーバーセグメントについて何が言えるでしょうか。



勇敢な新しい世界へようこそ。またはあなたは来ませんか...







精神的に2000年半ばに移行:29ドルで、AppleはIBMPowerPCからIntelx86への移行を発表しました。より速く、より高く、より強く。Rosettaトランスレータは、あるアーキテクチャから別のアーキテクチャへの移行を容易にするようです。当時、MacBookでの開発については誰もあまり考えていなかったので、平和な友情をかき立てるガムでした。



AppleがSamsung32ビットRISCARMに最初のiPhoneを発表した2007年に移行します。これはARMにとって画期的な時期です。このアーキテクチャのプロセッサは以前はPDAで使用されていましたが、この形式のデバイスはエンジニアやオタクの特権でした。当時の地下鉄の車を思い出すと、PDAを見る人は少なく、印象的だったとしたら興味をそそられました。今、スマートフォンで誰を驚かせることができますか?モバイルデバイスは完全に私たちの生活に入っています。現在、C / C ++またはアセンブラーの市場は非常に狭いですが、ほとんどすべてのドアがモバイル開発者に開かれています。はい、JavaはAndroid向けに、SwiftはiOS向けに構築されています。しかし、それはすべてARMで実行されます。



ARMには多くの利点があります。最も重要なことは普及率と習慣であるため、技術データにこだわる必要はないと思います。ユーザーと開発の両方の習慣。



一方、ARMはコンソールの世界に侵入しています。NintendoとnVidiaはこのアーキテクチャを使い始めています。



過去は忘れられ、未来は閉じられ、現在は与えられます



それでは、私たちの時代に移りましょう。今年は非常に波乱に富んでいるので、Appleのアーキテクチャの変更はもちろん目立ったと思いますが、少し後で背景のエコーを取得します。



ある時点で、Appleラップトップは単なるファッションの象徴ではなく、実用的なツールになり、さらに最も重要なことに、開発者の通常のツールになりました。候補者からは、「MacBookをくれないか、自分でプログラムする」とよく耳にします。開発者(Web、モバイル)とMacBookは実質的に不可分です。



そしてこの瞬間、最も興味深いことが始まります。それほど大きな市場シェアを持っていないが、慣れ親しんだツールを持ち、さまざまな見積もりによると、Webのコードの90〜95%が作成され、製品のプロセッサアーキテクチャが変更される会社です。 ..。

1985年から1995年のどこかで過去に戻りましょう。 x86の利点は何でしたか:価格の入手可能性、習慣、ソフトウェアの数の増加、およびソフトウェア開発。現在、AppleM1ラップトップはIntelCoreラップトップよりも安価に販売されています。開発者はMacbookに非常に慣れており、ARMバージョンがx86よりも安価な場合は、通常購入されます。そして、彼らはそれを価格のために、そしてそれがテストによるとより速いために、そしてそれがより多くの充電で生きているためにそれを買うでしょう。そして一般的に-これは超新しいMacbookです!







そして、モバイル開発ですべてが多かれ少なかれ明確である場合、その中でほとんど変化はありません。そして、ウェブでは、おそらく、理解できないことが始まります。



新しいMacBookのユーザーは、ARMで実行し、x86のコードを記述します。はい、Rosetta 2がありますが、DockerはまだM1の準備ができていません。しかし、今のところこれですべてです。M1用に最適化されたバージョンがあり、開発者はおそらくARMイメージを使用します。同じJavaが機能するには、特定のプロセッサアーキテクチャ用にコンパイルされたJVMが必要です。そしていつの日か、私たちの最愛の「すべてがローカルで私のために機能します、それはあなたのサーバーで何かです!」があるでしょう。



結論として







期待どおりに何が起こるかはわかりません。おそらくRosetta2は永久に生き続けるでしょう、おそらく彼らは何か他のものを思い付くでしょう、おそらくAppleはM1を放棄するでしょう(あるいはIntel / AMD帝国は反撃するでしょう)。



しかし今のところ、ボックスを検索し、Raspberry Pi 4を見つけて、ARMでDockerのテストを開始しました。同時に、企業レジストリ内のすべてのベースイメージを調べて、ARM用に再構築できるかどうかを確認しました。



VMwareはESXiをARMに移植し始めており、KubernetesはすでにARMバージョンに存在し、AmazonはARMインスタンスを改善しており、インターネットではx86ヘゲモニーが終わりに近づいているとよく書かれています。

これはすべて無駄かもしれませんが、ARMアーキテクチャでサーバーを使用する可能性と便宜性についてはすでに考えています。巻き込まれないように、そして歴史の傍観者にならないように、今それについて考える方が良いです。



All Articles