Jadual Kandungan
Abaikan C dan C++, beralih ke Rust, hanya untuk keselamatan memori
Rumah Peranti teknologi AI Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah 'dipilih sendiri' untuk keselamatan ingatan

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah 'dipilih sendiri' untuk keselamatan ingatan

Mar 01, 2024 pm 10:16 PM
ai Model overflow

Baru-baru ini, Pejabat Pengarah Siber Negara (ONCD) Rumah Putih menyatakan perkara penting dalam laporan 19 halaman: pembangun harus menggunakan bahasa pengaturcaraan yang selamat memori, seperti bahasa Rust. Laporan itu menunjukkan bahawa memilih bahasa pengaturcaraan yang selamat memori adalah cara utama untuk memastikan perisian dibangunkan dengan cara yang selamat mengikut reka bentuk.

ONCD juga menegaskan bahawa cadangan dalam laporan itu dibangunkan dengan kerjasama syarikat teknologi, akademia dan institusi lain, dan mendapat sokongan daripada beberapa syarikat teknologi terkenal, termasuk HP, Accenture dan Palantir.

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Alamat laporan: https://www.whitehouse.gov/wp-content/uploads/2024/02/Final-ONCD-Technical-Report.pdf

Sebenarnya, ini bukan rasmi Amerika Syarikat Buat pertama kalinya, organisasi menyeru untuk berpindah dari C dan C++.

Pada Disember tahun lalu, Agensi Keselamatan dan Infrastruktur Siber A.S. (CISA), bersama-sama dengan agensi lain, mengeluarkan "Panduan Pelan Keselamatan Memori", menunjukkan C dan C++ sebagai bahasa pengaturcaraan yang tidak selamat memori, menekankan pembangunan perisian Vendor harus menggunakan bahasa pengaturcaraan selamat ingatan lain seperti Rust dan Java. Tujuan panduan ini adalah untuk meningkatkan kesedaran tentang isu keselamatan memori dalam pembangunan perisian dan menggalakkan penggunaan bahasa pengaturcaraan yang lebih dipercayai untuk mengurangkan potensi kelemahan keselamatan. CISA secara khusus menekankan kepentingan menggunakan bahasa pengaturcaraan yang selamat memori kerana ini membantu mengurangkan risiko serangan berniat jahat dan kebocoran data. Langkah ini juga untuk menggalakkan pembangunan industri pembangunan perisian ke arah yang lebih selamat dan boleh dipercayai,

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Sumber: https://www.cisa.gov/sites/default/files/2023-12/ The-Case -for-Memory-Safe-Roadmaps-508c.pdf

Abaikan C dan C++, beralih ke Rust, hanya untuk keselamatan memori

Adalah penting untuk menekankan penggunaan bahasa pengaturcaraan yang selamat memori, kerana keselamatan ingatan boleh menghalang kejadian seperti penimbalan Masalah seperti limpahan kawasan dan penunjuk berjuntai boleh membawa kepada pepijat dan kelemahan. Oleh itu, adalah penting untuk memahami konsep keselamatan ingatan.

Seberapa bahayakah ketidakamanan ingatan? Pada 2019, jurutera keselamatan Microsoft melaporkan bahawa kira-kira 70% isu keselamatan berpunca daripada isu keselamatan ingatan. Pada tahun 2020, Google melaporkan data serupa untuk pepijat yang ditemui dalam penyemak imbas Chromium.

Untuk bahasa pengaturcaraan, kedua-dua C dan C++ membenarkan aritmetik penunjuk arbitrari menggunakan alamat ingatan terus dan tanpa semakan sempadan. Laporan itu menunjukkan bahawa pakar telah mendapati bahawa beberapa bahasa pengaturcaraan, yang diwakili oleh C dan C++, kedua-duanya kekurangan ciri berkaitan keselamatan memori dan sangat meresap dalam beberapa sistem kritikal. Oleh itu, C dan C++ dianggap sebagai bahasa pengaturcaraan "tidak selamat".

Sepadan dengan C dan C++, Rust dianggap sebagai contoh klasik bahasa pengaturcaraan yang selamat memori. Rust ialah bahasa pengaturcaraan sistem yang memfokuskan pada keselamatan, terutamanya keselamatan serentak. Ia menyokong bahasa berbilang paradigma seperti paradigma pengaturcaraan fungsional, penting dan generik, dan rangka kerja pembelajaran mendalam seperti TensorFlow juga menggunakannya sebagai bahasa front-end yang sangat baik.

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Dalam Laporan Tinjauan Pembangun 2021 bagi tapak web soal jawab pengaturcara Stack Overflow, bahasa Rust menjadi bahasa pengaturcaraan paling popular dalam kalangan pembangun. Salah satu sebab Rust popular dalam dunia pengaturcaraan sistem ialah ia boleh membantu menghapuskan kelemahan keselamatan berkaitan memori.

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Ciri keselamatan ingatan Rust telah lama disahkan oleh industri. Pada April 2021, Google mengumumkan bahawa Android akan menambah sokongan untuk bahasa Rust. Sebabnya ialah pepijat keselamatan ingatan dalam C dan C++ merupakan sumber ralat yang paling sukar untuk diselesaikan Google telah melaburkan banyak usaha dan sumber untuk mengesan, membetulkan dan mengurangkan pepijat tersebut, serta menghalang sejumlah besar pepijat daripada memasukinya dengan berkesan. versi Android.

Walau bagaimanapun, di sebalik usaha ini, pepijat keselamatan memori kekal sebagai punca utama isu kestabilan, menyumbang kira-kira 70% daripada kelemahan keselamatan kritikal Android dari semasa ke semasa. Oleh itu, Google menambah pilihan ke-3, Rust, untuk pembangun sistem pengendalian.

Dan Grossman, profesor sains komputer di University of Washington, berkata bahawa semua orang telah mengetahui tentang bahaya C dan C++ selama beberapa dekad, dan kini akhirnya adalah masa yang baik untuk mempromosikan bahasa pengaturcaraan yang selamat memori, lagipun, di sana. adalah alternatif yang praktikal dan matang.

Beliau juga percaya bahawa menyingkirkan C dan C++ tidak boleh dicapai dalam sekelip mata, terutamanya dalam sistem terbenam. Walau bagaimanapun, proses ini dijangka akan mempercepatkan apabila bahasa pengaturcaraan lain seperti Rust semakin digunakan secara meluas dalam perisian sistem.

Untuk sikap rasmi terhadap C dan C++, lebih ramai orang nampaknya tidak membelinya.

Sesetengah orang berpendapat bahawa C++ moden adalah selamat memori dan semua sistem pengendalian menggunakan C atau C++ untuk pengaturcaraan. Sesetengah orang juga percaya bahawa walaupun C++ tidak selamat untuk memori, C++ moden mempunyai lebih banyak "pengadang" dan kos rendah atau bahkan percuma.

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Bagi Rust, yang telah "dipilih sendiri" untuk keselamatan ingatan, sesetengah orang merasakan tahap sokongannya tidak begitu tinggi dan ia tidak layak untuk disepadukan ke dalam sistem kerajaan. . bahasa pengaturcaraan selamat memori. JavaScript

Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah dipilih sendiri untuk keselamatan ingatan

Ruby

Python

Delphi/Object Pascal
  • Ada
  • Sejauh manakah popular bahasa pengaturcaraan di atas? Indeks populariti bahasa pengaturcaraan TIOBE pada Februari 2024 menunjukkan bahawa dari segi pengaturcaraan, Python berada pada kedudukan pertama, C# berada pada kedudukan kelima, Java berada pada kedudukan keempat, JavaScript berada pada kedudukan keenam, Go berada pada kedudukan kelapan dan Delphi/Object Pascal berada pada kedudukan ke-16, Rust berada pada kedudukan ke-18, dan Ruby hampir tidak menduduki tempat ke-20.
  • Seperti yang anda lihat, kebanyakan bahasa yang dipilih oleh NSA adalah dalam 20 teratas, hanya Ada sahaja yang tidak ada, tetapi hanya ada 5 dalam sepuluh teratas.
  • Sumber: https://www.tiobe.com/tiobe-index/
  • Laporan itu juga memerlukan pengukuran keselamatan perisian yang lebih baik. ONCD percaya: Metrik yang lebih baik membolehkan penyedia teknologi merancang, meramal dan mengurangkan kelemahan yang lebih baik sebelum ia menjadi masalah.
  • Laporan itu juga mengkaji misi Apollo 13, yang NASA klasifikasikan sebagai "kegagalan yang berjaya." Misi itu sendiri mengalami kegagalan besar, dan ketiga-tiga angkasawan itu membuat pembaikan sementara dan mengurangkan beberapa masalah untuk pulang dengan selamat. Laporan itu menyatakan: Kod keselamatan memori adalah sangat penting untuk program angkasa lepas. Penjelajahan angkasa lepas manusia harus menggunakan bahasa yang selamat memori, bahasa yang sedekat mungkin dengan inti untuk mengelakkan kemalangan pada masa hadapan.
  • Apabila semakin banyak dunia menjadi digital, pengekodan yang lebih baik menjadi semakin penting dan kod yang buruk boleh digunakan dengan niat jahat.
  • Rust Language
Bahasa Rust ialah bahasa pengaturcaraan yang disusun untuk kegunaan umum yang diketuai oleh Mozilla. Kriteria reka bentuk ialah "keselamatan, keselarasan dan kepraktisan" dan menyokong gaya pengaturcaraan berfungsi, serentak, prosedur dan berorientasikan objek.

Kelebihan bahasa Rust yang paling menonjol ialah ia boleh memberikan jaminan keselamatan memori tanpa kehilangan prestasi tambahan. Dalam proses pembangunan bahasa pengaturcaraan peringkat sistem tradisional (C/C++), ranap atau pepijat yang disebabkan oleh pelbagai ralat memori sering berlaku, seperti penunjuk nol, penunjuk liar, kebocoran memori, memori di luar sempadan, segfault, perlumbaan data, dan lelaran Kegagalan peranti, dsb.

Masalah ingatan ialah bahaya tersembunyi utama yang menjejaskan kestabilan dan keselamatan program, dan merupakan faktor utama yang mempengaruhi kecekapan pembangunan. Dua gergasi teknologi utama Google dan Microsoft telah menyatakan bahawa 70% daripada isu keselamatan program dalam produk penting mereka adalah disebabkan oleh isu ingatan, dan kedua-dua syarikat gergasi sedang mempertimbangkan untuk menggunakan bahasa Rust untuk menyelesaikan isu keselamatan memori.

Selain itu, Rust juga mempunyai keupayaan merentas platform yang sangat baik, menyokong kompilasi silang, dan juga mesra kepada persekitaran terbenam.

Walau bagaimanapun, bahasa Rust juga mempunyai beberapa kelemahan yang rumit.

Pertama sekali, kerana Rust mempunyai beberapa sintaks khas, agak sukar untuk pemula untuk bermula, seperti "seumur hidup". Sebagai perbandingan, bahasa seperti Python dan Java lebih mudah dan mudah dipelajari. Tetapi jika anda sudah mengetahui bahasa C++, mempelajari bahasa Rust adalah lebih mudah kerana ia meminjam banyak sintaks C++.

Kedua, penyemakan pengkompil bahasa Rust sangat ketat, dan kebanyakan proses pembangunan dibelanjakan untuk menyelesaikan masalah kompilasi. Walau bagaimanapun, setelah kompilasi diluluskan, pembangun tidak perlu bimbang tentang keselamatan memori, kebocoran memori dan sakit kepala lain, dan hanya perlu menumpukan pada logik perniagaan.

Atas ialah kandungan terperinci Rumah Putih mengeluarkan dokumen yang menyeru pemaju untuk meninggalkan C dan C++: Rust telah 'dipilih sendiri' untuk keselamatan ingatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menambah lajur baru dalam SQL Cara menambah lajur baru dalam SQL Apr 09, 2025 pm 02:09 PM

Tambah lajur baru ke jadual yang sedia ada dalam SQL dengan menggunakan pernyataan Alter Table. Langkah -langkah khusus termasuk: Menentukan nama jadual dan maklumat lajur, menulis pernyataan Alter Jadual, dan melaksanakan pernyataan. Sebagai contoh, tambahkan lajur e -mel ke Jadual Pelanggan (Varchar (50)): Alter Jadual Pelanggan Tambah Varchar E -mel (50);

Apakah sintaks untuk menambah lajur dalam SQL Apakah sintaks untuk menambah lajur dalam SQL Apr 09, 2025 pm 02:51 PM

Sintaks untuk menambah lajur dalam sql adalah alter table table_name tambah column_name data_type [not null] [default default_value]; Di mana table_name adalah nama jadual, column_name adalah nama lajur baru, data_type adalah jenis data, tidak null menentukan sama ada nilai null dibenarkan, dan lalai default_value menentukan nilai lalai.

Jadual Jelas SQL: Petua Pengoptimuman Prestasi Jadual Jelas SQL: Petua Pengoptimuman Prestasi Apr 09, 2025 pm 02:54 PM

Petua untuk Meningkatkan Prestasi Pembersihan Jadual SQL: Gunakan jadual Truncate dan bukannya memadam, membebaskan ruang dan menetapkan semula lajur Identiti. Lumpuhkan kekangan utama asing untuk mengelakkan penghapusan cascading. Gunakan operasi enkapsulasi transaksi untuk memastikan konsistensi data. Batch memadam data besar dan hadkan bilangan baris melalui had. Membina semula indeks selepas membersihkan untuk meningkatkan kecekapan pertanyaan.

Cara menetapkan nilai lalai semasa menambahkan lajur dalam sql Cara menetapkan nilai lalai semasa menambahkan lajur dalam sql Apr 09, 2025 pm 02:45 PM

Tetapkan nilai lalai untuk lajur yang baru ditambahkan, gunakan pernyataan ALTER Jadual: Tentukan Menambah Lajur dan Tetapkan Nilai Lalai: Alter Table Table_Name Tambah Column_Name Data_Type Default Default_Value; Gunakan klausa kekangan untuk menentukan nilai lalai: alter table Table_name Tambah lajur Column_name data_type kekangan default_constraint default_value;

Gunakan penyataan padam untuk membersihkan jadual SQL Gunakan penyataan padam untuk membersihkan jadual SQL Apr 09, 2025 pm 03:00 PM

Ya, pernyataan padam boleh digunakan untuk membersihkan jadual SQL, langkah -langkahnya adalah seperti berikut: Gunakan pernyataan padam: padam dari meja_name; Ganti Table_name dengan nama jadual untuk dibersihkan.

Bagaimana untuk menangani pemecahan memori Redis? Bagaimana untuk menangani pemecahan memori Redis? Apr 10, 2025 pm 02:24 PM

Pemecahan ingatan redis merujuk kepada kewujudan kawasan bebas kecil dalam ingatan yang diperuntukkan yang tidak dapat ditugaskan semula. Strategi mengatasi termasuk: Mulakan semula Redis: Kosongkan memori sepenuhnya, tetapi perkhidmatan mengganggu. Mengoptimumkan struktur data: Gunakan struktur yang lebih sesuai untuk Redis untuk mengurangkan bilangan peruntukan dan siaran memori. Laraskan parameter konfigurasi: Gunakan dasar untuk menghapuskan pasangan nilai kunci yang paling kurang baru-baru ini. Gunakan mekanisme kegigihan: sandarkan data secara teratur dan mulakan semula redis untuk membersihkan serpihan. Pantau penggunaan memori: Cari masalah tepat pada masanya dan ambil langkah.

phpmyadmin mencipta jadual data phpmyadmin mencipta jadual data Apr 10, 2025 pm 11:00 PM

Untuk membuat jadual data menggunakan phpmyadmin, langkah -langkah berikut adalah penting: Sambungkan ke pangkalan data dan klik tab baru. Namakan jadual dan pilih enjin penyimpanan (disyorkan innoDB). Tambah butiran lajur dengan mengklik butang Tambah Lajur, termasuk nama lajur, jenis data, sama ada untuk membenarkan nilai null, dan sifat lain. Pilih satu atau lebih lajur sebagai kunci utama. Klik butang Simpan untuk membuat jadual dan lajur.

Pantau titisan redis dengan perkhidmatan pengeksport redis Pantau titisan redis dengan perkhidmatan pengeksport redis Apr 10, 2025 pm 01:36 PM

Pemantauan yang berkesan terhadap pangkalan data REDIS adalah penting untuk mengekalkan prestasi yang optimum, mengenal pasti kemungkinan kesesakan, dan memastikan kebolehpercayaan sistem keseluruhan. Perkhidmatan Pengeksport Redis adalah utiliti yang kuat yang direka untuk memantau pangkalan data REDIS menggunakan Prometheus. Tutorial ini akan membimbing anda melalui persediaan lengkap dan konfigurasi perkhidmatan pengeksport REDIS, memastikan anda membina penyelesaian pemantauan dengan lancar. Dengan mengkaji tutorial ini, anda akan mencapai tetapan pemantauan operasi sepenuhnya

See all articles