Google&MS「バグの70%はC/C++。Rustにする」 (808レス)
Google&MS「バグの70%はC/C++。Rustにする」 http://medaka.5ch.net/test/read.cgi/prog/1619943288/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: 仕様書無しさん [] 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/ http://medaka.5ch.net/test/read.cgi/prog/1619943288/1
745: 仕様書無しさん [sage] 2025/04/01(火) 19:53:14.80 そこは張り合うとこじゃない C++派だが、C++もへたくそがこねくったソースからは、スパゲッティみたいなバイナリが吐かれるからな それはおなじ http://medaka.5ch.net/test/read.cgi/prog/1619943288/745
746: 仕様書無しさん [sage] 2025/04/01(火) 20:55:45.53 前から言われていることだが 所有権の確認などツールを使えばいいのではないか http://medaka.5ch.net/test/read.cgi/prog/1619943288/746
747: 仕様書無しさん [sage] 2025/04/01(火) 21:48:35.58 現実世界にそんなツールが無いことを除けば素晴らしいアイデアだね http://medaka.5ch.net/test/read.cgi/prog/1619943288/747
748: 仕様書無しさん [sage] 2025/04/01(火) 22:12:09.65 メモリ安全を確保するツールなど山のようにあるはずだ http://medaka.5ch.net/test/read.cgi/prog/1619943288/748
749: 仕様書無しさん [sage] 2025/04/01(火) 22:16:43.77 なんかなんとなくRustに置き換わっていっているが Rustにして成果が出たというようなレポートを見ない http://medaka.5ch.net/test/read.cgi/prog/1619943288/749
750: 仕様書無しさん [] 2025/04/01(火) 22:26:14.14 >>748 そんなツールは無い 世界中で長年色々な試みが行われてきたが C/C++の言語仕様が悪いと結論が出ている そのためIT各社がRustへと舵を切った http://medaka.5ch.net/test/read.cgi/prog/1619943288/750
751: 仕様書無しさん [] 2025/04/01(火) 23:58:47.77 >>746 >>748 おすすめのツールおせーて http://medaka.5ch.net/test/read.cgi/prog/1619943288/751
752: 仕様書無しさん [sage] 2025/04/02(水) 00:03:25.13 ちょっとぐぐったらいっぱいでてくる Valgrindが一番いっぱいでてきた http://medaka.5ch.net/test/read.cgi/prog/1619943288/752
753: 仕様書無しさん [] 2025/04/02(水) 00:11:43.68 >>752 > 最もよく利用されている標準のツールはMemcheckである。Memcheckはほぼすべての命令に特別な計測用のコードを挿入し、「正当性」(初期化が行われるまでは、割り当て済みでないメモリはすべて無効であるか、未定義である)があり、「アドレス可能」(メモリアドレスが割り当て済みで、解放されていないメモリブロックを指している)であるかという情報が、それぞれVビットおよびAビットに格納されているかを追跡する。 ……… > こうした機能への代償として性能が低下する。Memcheckの元で動作するプログラムはValgrindなしで動作する場合と比べて5倍から20倍遅く、より多くのメモリを使用する(メモリ確保ごとにかなりのメモリを追加で消費する)。 うーん… Rust使ったほうがよくない?😅 http://medaka.5ch.net/test/read.cgi/prog/1619943288/753
754: 仕様書無しさん [sage] 2025/04/02(水) 00:15:20.37 そりゃあ実行時に検出するよりはコンパイル時に弾くほうがいいだろうな http://medaka.5ch.net/test/read.cgi/prog/1619943288/754
755: 仕様書無しさん [] 2025/04/02(水) 00:20:04.12 監視・検出処理を挿入してランタイムにメモリリークチェックします vs メモリリークのおそれがあるコードをコンパイルエラーで弾きます ファイッ http://medaka.5ch.net/test/read.cgi/prog/1619943288/755
756: 仕様書無しさん [sage] 2025/04/02(水) 00:23:13.63 偉そうに理想論ぶちあげてるくせに、そういうツールの実務での利用経験すらねえのかよ http://medaka.5ch.net/test/read.cgi/prog/1619943288/756
757: 仕様書無しさん [sage] 2025/04/02(水) 00:55:54.33 静的解析機能もついてたはずだ http://medaka.5ch.net/test/read.cgi/prog/1619943288/757
758: 仕様書無しさん [sage] 2025/04/02(水) 11:27:45.02 あっちを立てればこっちが立たずみたいなことが結構あってあんまり意味ないのよねその手のツール… http://medaka.5ch.net/test/read.cgi/prog/1619943288/758
759: 仕様書無しさん [] 2025/04/02(水) 11:57:42.97 コンパイルが通ればメモリ安全性だけでなくデータ競合すらないことが保証されるRustへIT各社移行中 http://medaka.5ch.net/test/read.cgi/prog/1619943288/759
760: 仕様書無しさん [sage] 2025/04/02(水) 13:48:30.58 データ競合のバグなんて生涯でまだあったことないんだが http://medaka.5ch.net/test/read.cgi/prog/1619943288/760
761: 仕様書無しさん [] 2025/04/02(水) 15:07:15.41 >>760 CPUマルチコアを生かすプログラミングしたことすらない初心者か? http://medaka.5ch.net/test/read.cgi/prog/1619943288/761
762: 仕様書無しさん [sage] 2025/04/02(水) 16:26:13.82 ないな http://medaka.5ch.net/test/read.cgi/prog/1619943288/762
763: 仕様書無しさん [sage] 2025/04/02(水) 18:40:41.58 いままでC言語でなにして遊んでたんだ http://medaka.5ch.net/test/read.cgi/prog/1619943288/763
764: 仕様書無しさん [sage] 2025/04/02(水) 19:03:24.93 スレッド関係ないときまで余計なこと考えんといかんじゃないか http://medaka.5ch.net/test/read.cgi/prog/1619943288/764
765: 仕様書無しさん [sage] 2025/04/02(水) 19:18:24.34 可読性ゼロのC++テンプレートメタ地獄よりはマシですわw http://medaka.5ch.net/test/read.cgi/prog/1619943288/765
766: 仕様書無しさん [sage] 2025/04/03(木) 17:20:51.77 ライブラリ作成は数学の得意そうな人とかに任せますわw > テンプレメタ地獄 Rustだったら安全と投資家も認めた はよその知見C++に来い まったく同じにやればいいんだ http://medaka.5ch.net/test/read.cgi/prog/1619943288/766
767: 仕様書無しさん [] 2025/04/03(木) 17:44:13.76 >>766 C/C++の言語仕様があまりにも酷いためRustのような安全性を導入できないことが判明している 解決策としてはC/C++とは互換性がない制約と拡張を行なうしか手がない 特にC/C++の未定義動作は全て無くす必要があり根本的に別の言語となってしまう そのため今後の進む道は『C/C++改造版』ではなくRustが選ばれた http://medaka.5ch.net/test/read.cgi/prog/1619943288/767
768: 仕様書無しさん [sage] 2025/04/03(木) 17:58:53.38 Rustもマクロあるんよね http://medaka.5ch.net/test/read.cgi/prog/1619943288/768
769: 仕様書無しさん [sage] 2025/04/03(木) 18:42:29.26 Rustのマクロは強力すぎる分、意識高い系に触らせると C++のテンプレートメタパズルよりもっと酷いものがシステムに持ち込まれると思う http://medaka.5ch.net/test/read.cgi/prog/1619943288/769
770: 仕様書無しさん [] 2025/04/03(木) 19:05:38.26 マクロは関係ない ジェネリック関数を記述する時に Rustは関数そのままに型名をジェネリックパラメーターに置き換えるだけでよい C/C++はテンプレートを使わないと書けない http://medaka.5ch.net/test/read.cgi/prog/1619943288/770
771: 仕様書無しさん [sage] 2025/04/03(木) 21:41:18.71 C/C++はすごいよ コンピューターのかなり低いところまで好きなようにいじれてしまう 人間には過ぎたシロモノだったんだ http://medaka.5ch.net/test/read.cgi/prog/1619943288/771
772: 仕様書無しさん [] 2025/04/03(木) 22:10:46.74 >>771 このスレでそんなアホなこと言うか? Cで出来ることは全てRustでも出来る RustはCと同様にインラインアセンブラ機能まであるため万能 http://medaka.5ch.net/test/read.cgi/prog/1619943288/772
773: 仕様書無しさん [sage] 2025/04/04(金) 12:20:25.82 いまやインラインアセンブラがあるだけでは優位とはいえんな インラインアセンブラが、unsafe なしで書けてこそRust http://medaka.5ch.net/test/read.cgi/prog/1619943288/773
774: 仕様書無しさん [sage] 2025/04/04(金) 12:21:13.68 >>767 > C/C++の言語仕様があまりにも酷いためRustのような安全性を導入できないことが判明している ソースplz http://medaka.5ch.net/test/read.cgi/prog/1619943288/774
775: 仕様書無しさん [] 2025/04/05(土) 11:39:00.54 >>765 上層のクラス含め何でもテンプレートで書く独りよがりいるけど止めて欲しいよな あくまで型違いで共用するコードの冗長を減らす目的に限定 なおかつ他者は使い方だけ把握して、コード内を見ず使えるように実装すべきだな http://medaka.5ch.net/test/read.cgi/prog/1619943288/775
776: 仕様書無しさん [] 2025/04/05(土) 11:45:59.22 Rustはなあ、人を用意できんだろ?特に日本じゃ c++だってstlテンプレラムダmoveとかは見ずに使えて デザインパターンで設計できてc++17くらいまでさえOKな人はなかなか捕まらない http://medaka.5ch.net/test/read.cgi/prog/1619943288/776
777: 仕様書無しさん [] 2025/04/05(土) 11:47:58.22 >>776 俺を呼べ😎 http://medaka.5ch.net/test/read.cgi/prog/1619943288/777
778: 仕様書無しさん [] 2025/04/05(土) 11:51:21.93 >>777 ここの人は当然リーダーをやるべきでしょう それでrustかc++23か、とにかくやりたい言語で人を集めないと http://medaka.5ch.net/test/read.cgi/prog/1619943288/778
779: 仕様書無しさん [sage] 2025/04/05(土) 12:48:19.91 C++ジジイばっかり集まるぞ http://medaka.5ch.net/test/read.cgi/prog/1619943288/779
780: 仕様書無しさん [sage] 2025/04/05(土) 17:52:49.17 実際自称C++出来る人って、9割ぐらいは未だにC++11未満の知識しかないんじゃない? ある程度いける口はRustに行っちゃってそうだし http://medaka.5ch.net/test/read.cgi/prog/1619943288/780
781: 仕様書無しさん [sage] 2025/04/06(日) 07:25:07.81 23になってなんか文法劇的に変わったのある? http://medaka.5ch.net/test/read.cgi/prog/1619943288/781
782: 仕様書無しさん [sage] 2025/04/07(月) 10:18:19.76 全然昔からあるが、ラムダぜんぜん使いこなせない http://medaka.5ch.net/test/read.cgi/prog/1619943288/782
783: 仕様書無しさん [sage] 2025/04/07(月) 12:22:38.93 ラムダ式は設計書に書くメソッド一覧にどう書けばいいのやら http://medaka.5ch.net/test/read.cgi/prog/1619943288/783
784: 仕様書無しさん [sage] 2025/04/07(月) 12:50:32.64 新規関数追加申請書にちゃんと印鑑を押して提出してから書かないとダメだぞ http://medaka.5ch.net/test/read.cgi/prog/1619943288/784
785: 仕様書無しさん [sage] 2025/04/07(月) 15:13:54.43 関数名が分からないw http://medaka.5ch.net/test/read.cgi/prog/1619943288/785
786: 仕様書無しさん [] 2025/04/07(月) 22:02:35.14 >>782 はじめつらかったけど、気がついたら当たり前みたいに使うようになった http://medaka.5ch.net/test/read.cgi/prog/1619943288/786
787: 仕様書無しさん [sage] 2025/04/07(月) 23:07:41.17 キャプチャとか http://medaka.5ch.net/test/read.cgi/prog/1619943288/787
788: 仕様書無しさん [sage] 2025/04/08(火) 19:03:23.16 C++のアルゴリズムって、JavaのStreamやRustのIteratorに比べてなんか直感的じゃなくて使いにくいよな http://medaka.5ch.net/test/read.cgi/prog/1619943288/788
789: 仕様書無しさん [] 2025/04/09(水) 22:12:44.13 Rustを蛇蝎のごとく嫌ってる人間が相当数いるよな http://medaka.5ch.net/test/read.cgi/prog/1619943288/789
790: 仕様書無しさん [sage] 2025/04/10(木) 09:42:32.42 一部のRust教徒キライ 俺の かあちゃんであるC++を侮辱するんだ Rustに恨みはない それどころか、知見を学ばないとって当然思ってる 仕事でつかえっていわれたらつかうよ なんとかなるはず http://medaka.5ch.net/test/read.cgi/prog/1619943288/790
791: 仕様書無しさん [sage] 2025/04/10(木) 13:10:50.44 まともにC++使える人間なら、実際Rustは使えると思う 最近は流行ってるせいか、人生でスクリプトしか触ってないようなイケイケのWeb屋も手を出してるみたいだけど そいつらのほうが苦しむだろうな http://medaka.5ch.net/test/read.cgi/prog/1619943288/791
792: 仕様書無しさん [sage] 2025/04/10(木) 21:42:17.70 文字列ひとつ戻り値で返すのに七転八倒 http://medaka.5ch.net/test/read.cgi/prog/1619943288/792
793: 仕様書無しさん [] 2025/04/10(木) 21:45:40.29 >>792 Rustをつかえば安全で簡単だよ http://medaka.5ch.net/test/read.cgi/prog/1619943288/793
794: 仕様書無しさん [sage] 2025/04/11(金) 08:14:23.71 >>790 お前のかあちゃんは立派だったけどそろそろ年金生活の歳だからな http://medaka.5ch.net/test/read.cgi/prog/1619943288/794
795: 仕様書無しさん [sage] 2025/04/12(土) 09:20:48.96 まだごりごり畑耕してるぞw 最近は孫の面倒見て大忙し http://medaka.5ch.net/test/read.cgi/prog/1619943288/795
796: 仕様書無しさん [sage] 2025/04/20(日) 02:49:30.03 rustはあまりaiは学習していない印象 http://medaka.5ch.net/test/read.cgi/prog/1619943288/796
797: 仕様書無しさん [] 2025/04/20(日) 17:55:34.76 Rustのようにスレッドセーフが保証される型があってAtomic型を使えばマルチスレッドでもロックフリーで高速にすることも可能な言語 PythonのようにGIL(グローバルインタプリタロック)があってマルチスレッドでも十分に性能が出ない言語 プロと素人くらいの差があって驚いた http://medaka.5ch.net/test/read.cgi/prog/1619943288/797
798: 仕様書無しさん [sage] 2025/04/21(月) 09:46:23.22 こりん星から来たまんこりんです http://medaka.5ch.net/test/read.cgi/prog/1619943288/798
799: 仕様書無しさん [sage] 2025/05/02(金) 18:14:57.48 https://www.c-nexco.co.jp/corporate/pressroom/2025_crisis-management_etc/pdf/2025_crisis-management_etc05.pdf Rust使ってたら避けれたの? http://medaka.5ch.net/test/read.cgi/prog/1619943288/799
800: 仕様書無しさん [sage] 2025/05/02(金) 19:45:27.57 >>799 まあ 大量のレコードを移動する事無く再利用してたけど、書き込むサイズを間違えて後ろのデータに上書きしちゃった、てへ って事だから Rustだとしても回避出来ないかな http://medaka.5ch.net/test/read.cgi/prog/1619943288/800
801: 仕様書無しさん [] 2025/05/02(金) 20:36:56.61 >>799 別領域へ書き込んでるから、Rustなら必ず回避できていて、今回の問題は避けられた Rustは領域を最終的にスライスで抽象化し、それは内部的には始点アドレスと長さのペアになる そしてRustでその領域を超えた書き込みは絶対に起きず、安全が保証される http://medaka.5ch.net/test/read.cgi/prog/1619943288/801
802: 仕様書無しさん [sage] 2025/05/02(金) 21:17:59.45 ストレージ容量の不足かと思ってたけど意図しないアドレスへのデータ書き込みが原因だったのか http://medaka.5ch.net/test/read.cgi/prog/1619943288/802
803: 仕様書無しさん [sage] 2025/05/02(金) 21:41:41.57 障害時の対応いろいろ考えてて大変だなと思った バグみたいな障害起こったらどうせだめなんだから止めたらいいじゃんって思うんだが http://medaka.5ch.net/test/read.cgi/prog/1619943288/803
804: 仕様書無しさん [] 2025/05/02(金) 22:17:09.39 Rustはスライスが始点だけでなくサイズも伴ってペアで管理されるため、こういった問題も防げるね。 http://medaka.5ch.net/test/read.cgi/prog/1619943288/804
805: 仕様書無しさん [sage] 2025/05/02(金) 23:10:04.72 後ろのレコードにはみ出して上書いちゃうって どんな作りしたらそうなるんだよ http://medaka.5ch.net/test/read.cgi/prog/1619943288/805
806: 仕様書無しさん [sage] 2025/05/04(日) 12:25:28.51 生ポインタの操作とかやらない言語だとわけわかんないだろうけど そのわけわかんないのをボンクラだけじゃなく、世界最高峰レベルでもC/C++だと普通にやっちゃうのが現実なんだ http://medaka.5ch.net/test/read.cgi/prog/1619943288/806
807: 仕様書無しさん [sage] 2025/05/05(月) 00:31:46.02 領域破壊は原因ではなく設計ミスの結果に見える 記事からは そもそも削除機能がなかったように読める テストで検出できなかったのも変だ スケジュールの都合とかでどっかで抜け落ちて忘れてたんだろうが こんなことでは国に危ないことは何もさせられないではないか http://medaka.5ch.net/test/read.cgi/prog/1619943288/807
808: 仕様書無しさん [sage] 2025/05/05(月) 00:35:46.73 でも最低限チェックしてれば壊れずにすんだのか http://medaka.5ch.net/test/read.cgi/prog/1619943288/808
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.315s*