Rumah  >  Artikel  >  Peranti teknologi  >  Gantikan C++! 36,000 baris kod Rust menulis semula kernel Windows Bahasa ini pertama kali digunakan untuk membaiki lif

Gantikan C++! 36,000 baris kod Rust menulis semula kernel Windows Bahasa ini pertama kali digunakan untuk membaiki lif

王林
王林ke hadapan
2023-05-30 21:31:041559semak imbas

Menggantikan C++, Rust benar-benar akan menulis semula segala-galanya!

Selepas digemari oleh pengeluar utama seperti Linux, Google dan Amazon Cloud, berita letupan terkini -

Microsoft telah menulis semula kernel Windows dengan 36,000 baris kod Rust .

Dan perkembangannya agak pantas Berita spoiler untuk bulan April, selepas dua minggu, versi pratonton dalaman Windows 11 telah digunakan.

Microsoft Cloud Azure CTO dengan teruja menjerit di Twitter:

Jika anda menyertai Windows 11 Insider Preview, anda akan mengalami kernel Windows yang disokong oleh Rust buat kali pertama!

Gantikan C++! 36,000 baris kod Rust menulis semula kernel Windows Bahasa ini pertama kali digunakan untuk membaiki lif

Inti yang ditulis semula terutamanya termasuk projek DWriteCore dan Win32 GDI, dan telah lulus semua ujian but Windows.

Antaranya, Win32 GDI telah ditulis pada akhir 1980-an dan awal 1990-an, dan merupakan kod lama dengan lebih daripada 30 tahun pengalaman bekerja.

Sebab mengapa ia kini digantikan dengan Rust adalah mudah dan kasar:

Bahasa Rust mempunyai keselamatan memori yang sangat tinggi Ternyata terdapat sejumlah besar subrutin yang tidak selamat dalam kernel Ia juga hilang selepas ditulis semula. Pada masa yang sama, bahasa Rust lebih ringkas dan cekap.

Maklumat awam juga menunjukkan bahawa dari masa ke masa, penggunaan Rust oleh kernel Windows akan diperluaskan dengan ketara.

Bukan sahaja ia digemari oleh pengeluar utama, Rust juga telah menjadi "bahasa pengaturcaraan paling popular" dalam tinjauan pembangun Stack Overflow selama bertahun-tahun berturut-turut. Baru-baru ini, sudo dan su, alat asas sistem Unix, juga telah ditulis semula dalam Rust.

Tetapi apa yang agak mengejutkan ialah Rust pada asalnya dicipta untuk membaiki lif? ? ?

Selepas mendaki 21 tingkat dengan marah, dia memutuskan untuk mengembangkan bahasa baharu

Asal usul segala-galanya terletak pada satu hari pada tahun 2006, seorang lelaki bernama Graydon Hoare(Graydon Hoare) Lif di bangunan pangsapuri tempat saya tinggal rosak lagi.

Untuk kali ke-2, dia bertungkus-lumus merangkak ke rumahnya di tingkat 21 sambil mengutuk. Dia tidak dapat memahami mengapa sistem lif itu runtuh dengan mudah? Ia tidak sepatutnya!

Sebagai pengekod di sebuah kilang besar, Saudara Graydon merasakan perkara ini tidak dapat diselesaikan.

Dia berumur 29 tahun ketika itu dan bekerja sambilan di pelayar web sumber terbuka Mozilla (syarikat di sebalik Firefox) . Sebagai orang dalam industri, dia tahu bahawa kebanyakan kegagalan lif disebabkan oleh bahasa pengaturcaraan yang dengan mudah memperkenalkan ralat memori secara tidak sengaja, menyebabkan ranap perisian.

Pada masa itu, perisian lif sering ditulis dalam bahasa C atau C++.

Kelebihan mereka ialah ia padat dan pantas, tetapi masalahnya ialah ia sangat mudah untuk menyebabkan ralat memori, membawa kepada ranap sistem dan juga isu keselamatan.

Jadi dia tidak melakukan apa-apa untuk berhenti menaiki tangga, Abang Graydon hanya memutuskan untuk menghasilkan bahasa pengaturcaraan baharu.

Matlamatnya ialah bahasa yang kurang terdedah kepada ralat ingatan, sebaik-baiknya lebih pendek dan lebih pantas.

Jadi, lahirlah bahasa Rust.

Dan nama Rust juga sangat menarik.

Karat mempunyai nama yang sama dengan kulat, nama Cinanya ialah karat tumbuhan Graydon mengulas bahawa ia "terlalu direka untuk kelangsungan hidup."

Struktur biologi kulat jenis ini diedarkan sepenuhnya, tanpa satu pun titik kegagalan di angkasa, yang bermaksud bahawa mengalih keluar mana-mana bahagian sahaja tidak akan menjejaskan kemandiriannya, dan ia sangat teguh.

Sepanjang kitaran hayatnya, kulat Rust mempunyai sejumlah 5 bentuk hidup, 3 daripadanya boleh mundur semula ke bentuk sebelumnya, iaitu hampir sama seperti rama-rama boleh berubah menjadi ulat dan tumbuh semula.

Selain itu, kulat Rust boleh menjadi parasit pada berbilang perumah, yang mencerminkan penekanan bahasa Rust pada kesalingoperasian antara bahasa.

Gantikan C++! 36,000 baris kod Rust menulis semula kernel Windows Bahasa ini pertama kali digunakan untuk membaiki lif

△ Tumbuhan Berkarat (Maaf bagi mereka yang cryptophobic!)

Selepas beberapa tahun pembangunan solo, pada tahun 2009, Rust telah diperoleh oleh Mozilla Supported oleh institut penyelidikan syarikat itu diumumkan pada tahun 2010.

Semasa proses pembangunan, Rust telah menubuhkan komuniti yang sangat aktif Mana-mana pembangun boleh melaporkan pepijat secara langsung kepada projek ini atau menyumbang secara langsung kod sumber.

Pada Mei 2015, Rust versi 1.0 telah dikeluarkan secara rasmi.

Hanya setahun, Rust telah menarik ramai peminat. Sejak 2016, ia telah dinilai sebagai "bahasa pengaturcaraan paling popular" oleh tinjauan pembangun Stack Overflow selama 7 tahun berturut-turut. Kelebihan yang bergantung padanya untuk terus mendahului senarai ialah: pertama, kelajuan larian yang pantas, kedua, penggunaan memori yang tinggi dan ketiga, pencegahan segfault.

Ringkasnya, ia adalah alat berkuasa yang boleh menggantikan C/C++ di beberapa bahagian.

Jadi terdapat pepatah yang beredar dalam dunia kod yang membandingkan Rust dengan parkour Anda boleh melakukan gerakan berisiko tinggi, tetapi tidak mudah untuk menyakiti diri sendiri.

Sebagai perbandingan, C++ boleh dilihat seperti bermain dengan gergaji berapi.

Dan dengan membangunkan Rust, Brother Graydon juga menjadi terkenal.

Pada tahun-tahun berikutnya, dia turut mengambil bahagian dalam pembangunan Swift.

Ini juga cerita yang menarik. Berbanding menjadi ketua pasukan, saya nampaknya lebih suka melakukan pembangunan barisan hadapan.

Dia pernah berkata sebagai jawapan kepada "Mengapa meninggalkan pasukan Rust" bahawa kehidupan emosi peribadinya mengalami tamparan hebat (perceraian) sekitar tahun 2013, yang mengakibatkan dia tidak mempunyai banyak tenaga untuk bertanggungjawab terhadap pasukan Rust. Kemudian, dia masih presiden Mozilla. Saya bekerja pada beberapa projek yang rendah dan tidak tergesa-gesa untuk dilancarkan, dan kemudian saya meninggalkan kerja saya.

Sehingga awal 2016, dia menerima panggilan daripada pasukan Apple, mengatakan bahawa mereka sedang mencari pengaturcara untuk membantu membangunkan Swift "Ia adalah jawatan bukan kepimpinan, dan saya lebih sukakannya."

Menjadi kesayangan pengeluar utama dengan bergantung pada keselamatan

Tetapi di sini, kisah lagenda Rust hanya separuh diceritakan.

Dengan niat asal "keselamatan tinggi", ia telah menjadi semakin popular di kalangan pengeluar besar sejak beberapa tahun kebelakangan ini.

Bukan sahaja Windows, tetapi juga sistem arus perdana seperti Linux dan Android telah menerima Rust. Hubungan antara Amazon Cloud, Microsoft, Google dan Rust sentiasa baik.

Sebab utama untuk ini mungkin C/C++ benar-benar tidak pandai dalam keselamatan ingatan.

Sebagai contoh, Microsoft sangat berminat dengan Rust beberapa tahun lalu, dan mereka mengenal pasti ia sebagai alat untuk menghapuskan kelemahan keselamatan memori sebelum penghantaran produk.

Pada 2019, Microsoft mengakui bahawa 70% daripada kelemahan yang didedahkan oleh CVE dalam produknya adalah disebabkan oleh kelemahan keselamatan memori yang disebabkan oleh penggunaan C/C++.

Rantai alat Rust memfokuskan pada mendedahkan potensi kelemahan dalam kod, yang secara idealnya mengurangkan kemungkinan kod diserang.

Di sisi lain, Rust juga telah diperkenalkan ke dalam kernel Linux.

Tahun lalu, pada Sidang Kemuncak Sumber Terbuka 2022 yang dihoskan oleh Yayasan Linux, Encik Linus tiba-tiba mengumumkan bahawa Rust mungkin disertakan dalam versi seterusnya!

Ini bermakna PR rasmi untuk Rust untuk Linux akan digabungkan ke dalam barisan utama kernel Linux.

(Rust untuk Linux ialah organisasi yang memerlukan gabungan Linux dan Rust)

Anda tahu, tampung sokongan Rust sahaja telah dikeluarkan kepada versi ketujuh .

Apabila penonton mendengar berita itu, mereka serta-merta bertepuk tangan, sehinggakan Linus mengambil sedikit masa untuk menenangkan semua orang.

Beberapa bulan kemudian, Linux versi 6.1 telah dikeluarkan, dan kernel menambah sokongan untuk Rust, menjadi bahasa rasmi kedua selain C.

Google sebenarnya telah mengambil tindakan lebih awal.

Apabila Android 12 dikeluarkan pada 2021, sokongan untuk Rust akan diumumkan. Sejak itu, mereka telah mengembangkan penggunaan Rust dalam projek sumber terbuka Android.

Walau bagaimanapun, pendekatan Google bukan untuk menggantikan C/C++ dengan segera dengan Rust, tetapi untuk menulis kod baharu dalam Rust.

Daripada data rasmi, kita dapat melihat bahawa C dan C++ masih mendominasi, dan bahagian Rust semakin meningkat secara beransur-ansur.

Gantikan C++! 36,000 baris kod Rust menulis semula kernel Windows Bahasa ini pertama kali digunakan untuk membaiki lif

Sehingga akhir tahun lepas, Google menyatakan bahawa tiada kelemahan keselamatan ditemui di bahagian Android yang ditulis dalam Rust.

Hasil ini sangat penting kerana ini bermakna Rust berkesan boleh menghalang kerentanan yang paling biasa dalam Android-iaitu, kerentanan keselamatan memori. Data 22 tahun Google menunjukkan bahawa kelemahan keselamatan memori menyumbang kepada bahagian yang sangat tinggi bagi semua jenis kelemahan.

Gantikan C++! 36,000 baris kod Rust menulis semula kernel Windows Bahasa ini pertama kali digunakan untuk membaiki lif

Dalam banyak komponen yang ditulis dalam C/C++ (seperti Bluetooth, NFC, dll.), akan terdapat kelemahan dalam setiap seribu baris kod . Berdasarkan nisbah ini, Karat mungkin telah menghalang beratus-ratus kelemahan.

Dan berdasarkan kelebihan konkurensinya yang tinggi, menggunakan Rust dalam Android boleh mengimbangi lagi keselamatan dan kependaman sistem Secara umumnya, beberapa langkah keselamatan akan menyebabkan bahasa pengaturcaraan menjadi perlahan.

Sebagai contoh, menggunakan timbunan UWB baharu, anda boleh menyimpan beberapa megabait memori dan mengelakkan beberapa kelewatan IPC dengan menjalankan proses sedia ada.

Amazon Cloud juga sangat menyukai Rust, kerana ia juga sangat bagus dalam menjimatkan tenaga.

Kajian telah menguji 27 bahasa pengaturcaraan dan mendapati bahawa C dan Rust adalah 50% lebih cekap daripada Java dan 98% lebih cekap daripada Python dari segi penggunaan tenaga.

Tetapi masalah C telah disebut berkali-kali, dan terdapat banyak kelemahan keselamatan memori, jadi berdasarkan ini, Rust menang lagi.

Gantikan C++! 36,000 baris kod Rust menulis semula kernel Windows Bahasa ini pertama kali digunakan untuk membaiki lif

Malah, pengeluar utama bukan sahaja menggemari Rust, malah menyayanginya.

Pada tahun 2020, Mozilla, syarikat di belakang Rust, mengumumkan pemberhentian berskala besar, pasukan Rust telah diberhentikan, dan nasib Rust jatuh ke dalam ketidakpastian yang besar.

Untuk mengelakkan kebimbangan tersembunyi ini, pengeluar utama seperti Amazon, Microsoft, Google dan Huawei bersama-sama melancarkan asas bukan untung Rust. Beriltizam untuk melabur kira-kira AS$1 juta dalam bajet dalam masa dua tahun untuk menyokong penyelenggaraan projek Rust.

Dalam industri, perbuatan Rust tidak terkira banyaknya.

Baru-baru ini, dua utiliti teras seperti Unix sudo dan su sedang ditulis semula dalam Rust sebelum ini, GitHub menukar enjin cariannya untuk berasaskan Rust, perkhidmatan Go, juga ditulis semula dalam Rust...

Walau bagaimanapun, Rust juga mempunyai kekurangan Contohnya, ia lebih sukar untuk dipelajari kemudian, dan kelajuan pembangunan jauh lebih perlahan daripada Go dan Java semasa anda mula-mula.

Jadi Rust mendapat pujian yang tinggi, tetapi "kadar jualan"nya masih agak sederhana, malah ia mungkin dilabelkan sebagai "bahasa yang tidak popular".

Terutama di China, pengambilan Rust boleh digambarkan sebagai "sedikit yang menyedihkan".

Sesetengah netizen mempunyai sikap pesimis:

Gantikan C++! 36,000 baris kod Rust menulis semula kernel Windows Bahasa ini pertama kali digunakan untuk membaiki lif

Atas sebab ini, Rust juga terus mengoptimumkan dirinya.

Menurut pelan hala tuju Rust 2024 yang dikeluarkan olehnya, pasukan rasmi akan meningkatkan usahanya dalam menurunkan ambang pembelajaran dan mengukuhkan hubungan ekologi.

Jadi, adalah wajar menantikan bagaimana Rust akan berkembang pada masa hadapan~

Atas ialah kandungan terperinci Gantikan C++! 36,000 baris kod Rust menulis semula kernel Windows Bahasa ini pertama kali digunakan untuk membaiki lif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam