X



Google&MS「バグの70%はC/C++。Rustにする」

0001仕様書無しさん
垢版 |
2021/05/02(日) 17:14:48.90
グーグルやMSが「Rust」言語でOS開発、背景に国家による諜報活動の影


 1970年代初めにUNIXの開発にC言語が採用されて以来、OS開発はCやその後継であるC++の独壇場だった。グーグルはこれまでもAndroidの開発にJavaやKotlinを採用していたが、カーネルやデバイスドライバーなどOSの下位レイヤーの開発にはC/C++しか使ってこなかった。RustはC/C++と同様に下位レイヤーの開発に使用する。

 グーグルは数千万行にも及ぶ既存のC/C++のコードを書き換えるのは不可能としており、新規のコードの開発にのみRustを適用する方針だ。それでもOS開発の常識が数十年ぶりに変わるのだけは間違いない。

 RustはWebブラウザー「Firefox」を開発する米Mozilla Foundation(モジラ財団)が開発を主導するプログラミング言語だ。開発が始まったのは2006年で、安定版であるバージョン1がリリースされたのも2015年のことだ。まだ新しいプログラミング言語をグーグルやマイクロソフトがOS開発に採用する理由は、OSのセキュリティー強化にある。

 Rustは、プログラムに必要なメモリーの確保や解放に関連するバグが生じない「メモリー安全」が保証されたプログラミング言語である。それに対してこれまでのOS開発に使われてきたC/C++は「大規模な開発においてメモリー安全なコードを記述することがほぼ不可能」(マイクロソフトのブログ「We need a safer systems programming language」より)なのだという。

脆弱性の70%がメモリー管理バグに起因

 グーグルによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するという。同様にマイクロソフトも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。

https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
0586仕様書無しさん
垢版 |
2023/05/14(日) 21:56:13.21
>>578 >>585
記事を読めば分かるように
深刻なセキュリティ脆弱性バグのうち70%がC/C++のメモリ管理に起因する
と、MicrosoftとGoogleが共に同じ調査結果を出している話
Rustに変更するとその70%はゼロにできるため現在Rustへ変更しつつある
0588仕様書無しさん
垢版 |
2023/05/14(日) 22:56:30.40
>>587
そんなことが可能ならばとっくにやってる
しかしC++の言語仕様では無理
そして自動チェックを実現したのがRust
0589仕様書無しさん
垢版 |
2023/05/15(月) 00:09:05.43
つーかメモリ云々抜きでも、ぶっちゃけごちゃごちゃすぎてもう嫌じゃない?C++
モジュールやらなんやらわりとドラスティックに改善しようとはしてるけど
そういうの入れても結局過去の遺産と混ざって余計ぐちゃぐちゃになるし
そもそもC++11すら未だ相当数がロクに扱えないのに、C++20以降なんか追従できるわけがない

文字列はUTF-8の奴しかなく曖昧さがない、標準でMaybeとEitherが搭載されてる
モジュールもある、パターンマッチもある、半端な例外は無い、不幸を呼ぶ継承も無い
パッケージ管理システムもある、変数は標準でImmutable、Moveも明瞭、自動テストもメモ書き並の気軽さでかけるって
C++書いててクソだと思うものはRustはほぼカバーしてるし
0590仕様書無しさん
垢版 |
2023/05/15(月) 00:45:13.89
生まれたてのRustのほうがもっと見た目ごちゃごちゃなのどういうことだ
0591仕様書無しさん
垢版 |
2023/05/15(月) 01:37:51.66
>>589
後発言語だから有利なのは当たり前だが
Rustは各言語の最新を上手く洗練して採り入れてるな

>>590
Rustでごちゃごちゃは感じない
正確に言うと
把握理解する前はごちゃごちゃに感じる部分もあるが
把握理解していくと意味や必要性が見えてきて
ごちゃごちゃしているわけではないことがわかってくる
0592仕様書無しさん
垢版 |
2023/05/15(月) 07:00:48.29
C++20は待望の機能が豊富にあって
もう17に戻ろうとは思わないぞ
0593仕様書無しさん
垢版 |
2023/05/15(月) 07:26:24.76
C++20でも問題が解決されず絶望してIT大手各社が共同でRust Foundationを設立してRustへと舵を切った
0595仕様書無しさん
垢版 |
2023/05/15(月) 08:45:15.01
- されず
+ できず

無能はすぐ道具のせいにする
無能に迎合する理不尽なルールが増えていくと
やる気なくして辞めていったり
無能に仲間入りする人が出てくる
いわゆる腐ったミカンてやつだ
0596仕様書無しさん
垢版 |
2023/05/15(月) 09:01:47.42
>>594
どの言語でも同じだろ
そのまま使うかコピーして別物として書き換わってもいいようにするかで分かれる
0597仕様書無しさん
垢版 |
2023/05/15(月) 09:16:36.81
そもそも文字列がイミュータブルな言語がほとんどやが
C++とRustが例外的なだけで
0598仕様書無しさん
垢版 |
2023/05/15(月) 09:23:05.50
>>593
じゃあ早くC++/CXみたいなやつ出してまともにGUI開発させてくれませんかMSさん?
0599仕様書無しさん
垢版 |
2023/05/15(月) 09:28:04.46
Rust ちゃんの文字列ルーティーンを
可愛らしい動画にすればバズるはず
0600仕様書無しさん
垢版 |
2023/05/15(月) 09:32:16.98
業務アプリですらもう100%Webクライアントなのに、デスクトップクライアントはもう未来が無いし
本気でやるなら膨大なコストが掛かるわりに投資する価値がない
どうしてもレガシーな開発したいなら、Win32SDKもGTKも使えるからそれでいいだろ
0601仕様書無しさん
垢版 |
2023/05/15(月) 09:51:51.34
>>598
GUIデスクトップ作るならば
Web技術(HTML)を使うTauriがオススメ
・マルチプラットフォームで使える
・Webアプリ化も容易
・アプリ本体部分はRustで記述
・アプリGUI部分はJavaScriptかWebAssembly(by Rust)で記述
といった感じでRustのみ使用も可
今さらWindows上だけで動く時代遅れなものを作る必要ないよね
0602仕様書無しさん
垢版 |
2023/05/15(月) 10:02:02.01
Rustはいま使えるソリューションなんだから、今ある問題を確認してくれないと困る
ゲームなんかはまだSDKベースだろ
0603仕様書無しさん
垢版 |
2023/05/15(月) 10:04:20.87
Teamsのモッダ~ンなゲロ重UIをなんとかできない体たらくのまま
デスクトップアプリを勝手にレガシー認定しないでください
0604仕様書無しさん
垢版 |
2023/05/15(月) 12:25:28.41
Teamsが重いとか、どうせ未だにSandyBridgeでメモリ4GBみたいなレガシーな環境だろう
0605仕様書無しさん
垢版 |
2023/05/15(月) 13:10:15.51
そこはそんなレガシー低スペ環境でも動く小メモリRust製GUIの宣伝をしろよ
0606仕様書無しさん
垢版 |
2023/05/15(月) 13:29:29.20
それならeguiがシンプルでいいね
WindowsでもLinuxでもどの環境でも動いて
このサンプルページのようにWasmつまりブラウザ上でも動く
(Tauriと異なりHTMLなどWeb技術は関係ない)
https://www.egui.rs/
純Rust製
0608仕様書無しさん
垢版 |
2023/05/15(月) 17:10:41.85
Chromiumベースのアプリがまともに動かない、化石みたいな低スペックPC向けの
Windows用デスクトップGUI開発をネイティブでやるぐらいニッチな案件だと
MFCやらのレガシー資産豊富なC++しかないだろうな

逆に言うと、この手のCOBOL新規開発並みの案件持ちださんとC++を選ぶ理由もないんだが
0609仕様書無しさん
垢版 |
2023/05/17(水) 21:38:48.05
>>579
と、バカが申しております
0610仕様書無しさん
垢版 |
2023/05/18(木) 11:19:29.90
>>579
C++のスマポを経て
Rustは標準で自動的に安全なメモリ自動解放を実現したから大丈夫
0612仕様書無しさん
垢版 |
2023/05/18(木) 22:39:28.94
>>611
と馬鹿が申しております
0614仕様書無しさん
垢版 |
2023/05/19(金) 12:09:10.57
5chでくだまいてる時点でお察しだね
そんな暇人でも5chでイキれるんだからc++て素晴らしい言語ですねw
0615仕様書無しさん
垢版 |
2023/05/19(金) 15:28:34.17
ChatGPTに書かせればバグはなくなるから結局C/C++に戻るだろ
0616仕様書無しさん
垢版 |
2023/05/19(金) 16:41:43.26
そんな夢物語の話するなら最初からバイナリ
吐かせれば良い
0617仕様書無しさん
垢版 |
2023/05/19(金) 21:23:42.06
だよな。AIがどれだけ複雑なシステムも確実にノーバグで出せるのなら
いちいち人間ごとき向けのプログラム言語を間に挟む意味がない
0619仕様書無しさん
垢版 |
2023/05/29(月) 22:07:21.76
なんかポリコレがらみの内紛でコアチームが揉めてるらしいじゃん
将来性黄色信号か?
0621仕様書無しさん
垢版 |
2023/05/30(火) 05:25:57.82
ま、内紛が本格化したら、フォークするだけだろ
MSが育ててくれるかもしれん ぐぐるとAppleは、DartとSwift持ってるし
0622仕様書無しさん
垢版 |
2023/05/30(火) 05:51:03.82
MicrosoftとGoogleとAmazonなどIT大手各社が共同でRust Foundationを設立したためRustは盤石な体制となっている
0623仕様書無しさん
垢版 |
2023/05/30(火) 08:36:13.59
Visual R++ができるかもね
でも現代なら、それもアリかなって
0624116
垢版 |
2023/06/06(火) 05:34:09.38
J++の二の舞
0627仕様書無しさん
垢版 |
2023/06/06(火) 10:31:26.80
>>626
Rustで作ればバグはなくなる
0628仕様書無しさん
垢版 |
2023/06/07(水) 09:58:03.06
>>591
crates.io はごちゃごちゃ感しかない
0629仕様書無しさん
垢版 |
2023/06/07(水) 10:29:13.21
>>69
そうさ100%勇気~
0630仕様書無しさん
垢版 |
2023/06/07(水) 20:10:30.51
>>590-591
RUSTも将来ごちゃごちゃになる運命
0631仕様書無しさん
垢版 |
2023/06/07(水) 20:23:57.10
>>601
ほんそれ
0634仕様書無しさん
垢版 |
2023/06/08(木) 16:06:06.49
>>633
なんで? ホモっぽいから?
0635仕様書無しさん
垢版 |
2023/06/08(木) 18:17:39.36
>>601
えっ
Tauri は糞だろ
0636仕様書無しさん
垢版 |
2023/06/08(木) 21:16:48.25
>>635
その分野ではTauriがベスト
>>601に書かれているメリットを上回るものが他にない
0637仕様書無しさん
垢版 |
2023/06/09(金) 20:08:22.98
これもRustにすれば解決するんだろうか

マイナンバー開発者が不具合の原因を暴露。「個人番号ではなく住所氏名で照合するプログラムを書いた」 [971283288]
ttps://hayabusa9.5ch.net/test/read.cgi/news/1686308209/
0638仕様書無しさん
垢版 |
2023/06/09(金) 22:59:31.95
>>637
え?
本気で言ってるの?
ちょっとこのスレ読み直したほうがいいんじゃない?
0639仕様書無しさん
垢版 |
2023/06/10(土) 06:58:28.73
信者なら、「Rustの安全性に依れば、そういうところにも資源を集中できる」って言うだろうけど、
それはもう推しってやつだな
0640仕様書無しさん
垢版 |
2023/06/10(土) 07:24:44.91
>>637
Rustはデータ競合をコンパイルエラーとし排除できる初のプログラミング言語なので
データ競合により引き起こされてきたバグなどは解決する
しかしその問題がデータ競合によるものかどうかは知らない
0641仕様書無しさん
垢版 |
2023/06/10(土) 10:55:17.51
全ての不具合をコンパイラが検出してくれると思ってんだよな
アルゴリズム起因のバグやユーザーの入力間違い防止なんかは検出できるわけないのに
0642仕様書無しさん
垢版 |
2023/06/10(土) 11:20:15.78
一応Tauriよりは軽量そうかつ、いきなり開発放棄にならなそうなGUIツールキットとしてはGTKがあるけど
Tauriと比べてシェアどうなんだろうね
0643仕様書無しさん
垢版 |
2023/06/10(土) 12:12:07.09
>>641
そんな思い込みをしてる人はいない

C/C++ではコンパイルが通ってしまう、
メモリ管理のバグや、
エラー(や例外)の対応忘れや、
異常値(NULLや-1など)の対応忘れや、
データ競合のバグなどを、
Rustではコンパイラがエラーで指摘してくれるため、
開発効率と品質が向上する
0644仕様書無しさん
垢版 |
2023/06/10(土) 12:34:13.61
頭がAIなら、これぐらいAIで静的解析してれば防げたって本気で言い出すやつもいるだろうが
Rustだと少しでも知ってればいないだろうな
0645仕様書無しさん
垢版 |
2023/06/10(土) 12:41:01.37
ド素人はどうしても抜けが出がちなソース書くからな
0646仕様書無しさん
垢版 |
2023/06/10(土) 18:37:28.02
>>637
はい
0647仕様書無しさん
垢版 |
2023/06/10(土) 22:13:22.01
確か特定につながるから氏名住所使わなきゃだめとか
そういう話がなかったっけ
0648仕様書無しさん
垢版 |
2023/06/10(土) 22:15:23.79
一方のシステムでは個人番号管理してないんだろう
危ないし
おまいらゲタゲタ笑ってたらじゃあ全部個人番号でって話になるぞ
0649仕様書無しさん
垢版 |
2023/07/18(火) 03:02:57.09
Meta、Rustの採用を加速--高性能バックエンドサービスで
https://japan.zdnet.com/article/35191156/

Metaは、Rustのバージョン1.0が登場した翌年となる2016年からRustを使用してきている。
Rustは、ブロックチェーンによるステーブルコインの実装を目指していた
「Diem」プロジェクト(旧称「Libra」)の主要記述言語として採用されていたほか、
ソースコード管理サーバー「Mononoke」の記述言語として、
そしてMetaの「ブロックチェーン向けの新たなセキュアプログラミング言語」であるMoveの基礎ともなっている。

C++よりもRustを重視するという選択は、Metaにとって大きな決断だった。
というのも、Facebookのバックエンドで動作する大半のコードはC++で記述されており、
それ自体は明らかな選択であったためだ。
Metaによると、Mononokeが成功したと見なされたことで、Rustの導入は勢いを増し、
PythonやJavaScriptのバックグラウンドを有するエンジニアらの興味を引くようになったという。
0651仕様書無しさん
垢版 |
2023/07/20(木) 12:24:01.17
各社とも実践投入はわりと始まったばっかりだぞ
0652仕様書無しさん
垢版 |
2023/08/16(水) 20:16:27.50
Cloudflare、NGINXに代えて自社開発のRust製HTTPプロキシ「Pingora」をグローバルCDNに採用。性能向上しつつCPUとメモリ消費を3分の1に
https://www.publickey1.jp/blog/22/cloudflarenginxrusthttppingoracdncpu31.html

CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、
同社自身がRust製のHTTPプロキシである「Pingora」を開発し利用していることを明らかにしました。

Pingoraはすでに同社のCDNに採用され、毎日1兆回以上のリクエストを処理し、
性能向上や数多くの新機能の提供を実現しつつ、従来と比較してCPUとメモリリソースの消費はいずれも3分の1程度に収まっているとのこと。

CloudflareはNGINXの性能上の課題について、各リクエストが1つのワーカーで処理が行われる仕組みが特定のCPUコアに負荷を偏らせること、
接続の再利用性が低いことなどが、性能低下を引き起こしていると指摘。

Pingoraは現時点でコードなどは公開されていませんが、いずれオープンソース化の計画についても明らかにするとCloudflareは説明しています。
0654仕様書無しさん
垢版 |
2023/09/09(土) 11:08:12.24
rust, github見ても開発放棄されてるコードばっかなんだが。
0655仕様書無しさん
垢版 |
2023/09/12(火) 18:49:58.22
>>652
Web方面もRust製になっていってるんだな
0656仕様書無しさん
垢版 |
2023/09/16(土) 09:20:50.87
Rustでゲームエンジンはよ
0657仕様書無しさん
垢版 |
2023/09/16(土) 16:08:07.82
AndroidとiOSのアプリがrustだけで書けるようになればいいなぁ
0659仕様書無しさん
垢版 |
2023/09/17(日) 19:17:29.80
ラスティストって呼ぶらしいけど本当ですか?
0660仕様書無しさん
垢版 |
2023/09/18(月) 09:04:10.72
TauriはもうAndroid版とiOS版のプレビューがあるんだな
モバイルでのこういうのは、だいたいネイティブ処理に他言語呼び出しがいるって理由で毎回流行らないがさて
0661仕様書無しさん
垢版 |
2023/09/24(日) 12:23:49.28
0788デフォルトの名無しさん
2022/06/21(火) 08:59:28.38ID:vO+TReRM
俺はフロントエンドやらないからこのスレでTauriの話をしないでくれ
0662仕様書無しさん
垢版 |
2023/09/28(木) 19:51:20.37
>>623
C#.NET並みにFormが簡単に書けて
WPFみたいにインタラクティブに扱えて
なんならDirectXも簡単に呼べるなら有り
0663仕様書無しさん
垢版 |
2023/09/30(土) 22:21:26.46
ラスト使いたい
0664仕様書無しさん
垢版 |
2023/11/08(水) 20:59:39.48
サブモジュールの定義って古いmod.rsのほうが
ディレクトリにファイル全部押し込めて新しいやつよりよっぽど気分よくない?
0665仕様書無しさん
垢版 |
2023/11/13(月) 21:32:49.30
C++も最新ならスマポ使えるし言うほどじゃなくね
0666仕様書無しさん
垢版 |
2023/11/14(火) 20:36:32.11
C++11の機能をちゃんと使える奴なんて、2023年でもC++の開発者の半分にも満たない上澄みだけだろ
歴史そのものがC++の弱点で、それはどうやっても消えない
0667仕様書無しさん
垢版 |
2023/11/24(金) 01:57:39.09
>>665
C++のスマポは機能が弱すぎてできないことが多すぎる
例えばヒープ領域しか指せないから
(L1キャッシュ効果と領域確保解放コスト無しで高速な)スタック領域の活用がスマポではできない
0670仕様書無しさん
垢版 |
2024/02/14(水) 16:53:14.34
C#が楽すぎてC/C++はやらなくなったな
Rustもやってみるか
0673仕様書無しさん
垢版 |
2024/03/09(土) 19:59:57.80
コンパイラに怒られて解決に時間とられたりするけどRustおもろいね
0674仕様書無しさん
垢版 |
2024/03/11(月) 00:11:15.44
上に怒られる前にコンパイラに怒られて良かったじゃねーか
0675仕様書無しさん
垢版 |
2024/03/29(金) 13:55:18.13
ベルト伸ばしきった状態で止めとく奴でも少し痩せていた?ジャニでやろうよ
ケニーGがまた一般人ぶん殴って捕まってた
消化試合10勝15敗だから一ヵ月分くらいは試合しとるおっさんは株も上手いしファンも獲得できるかもしれないあたりこの国終わってるんだわ
0676仕様書無しさん
垢版 |
2024/03/29(金) 14:34:29.12
俺は配信ドラマ
0680仕様書無しさん
垢版 |
2024/04/30(火) 22:34:17.97
米ホワイトハウス、開発者にRustなどメモリの安全性考慮した言語への移行促す
https://news.mynavi.jp/techplus/article/20240227-2893479/

脆弱性の特徴を持ち普及率が高い言語として、CおよびC++を挙げている。
このような脆弱性を軽減するために、「はじめからメモリ安全なプログラミング言語」の使用を推奨している。
レポートでは、その具体例としてCおよびC++を「Rust」へ移行することを促している。
0683 警備員[Lv.1][新芽]
垢版 |
2024/05/04(土) 09:26:17.54
グロじゃないけど関係ないコラ?

あとまたどんぐり枯れたのでkari
枯れすぎだろ。。
レスを投稿する


ニューススポーツなんでも実況