"Karat mangrupikeun masa depan pemrograman sistem, C mangrupikeun assembler énggal" - pidato ku salah sahiji insinyur utama Intel

Dina Open Source Technology Summi (OSTS) panganyarna. Josh Triplett, Insinyur senior di Intel, ceuk parusahaan na kabetot dina Rust ngahontal "parity" kalawan basa C anu masih mendominasi sistem jeung ngembangkeun-tingkat low dina mangsa nu bakal datang. Dina biantarana Dina judulna "Intel sareng Rust: Masa Depan Pemrograman Sistem," anjeunna ogé nyarioskeun ngeunaan sajarah pemrograman sistem, kumaha C janten basa pemrograman sistem standar, fitur naon Rust masihan kauntungan tina C, sareng kumaha éta tiasa lengkep. ngaganti C dina widang programming ieu.

"Karat mangrupikeun masa depan pemrograman sistem, C mangrupikeun assembler énggal" - pidato ku salah sahiji insinyur utama Intel

Programming sistem nyaéta ngembangkeun sareng ngokolakeun parangkat lunak anu janten platform pikeun nyiptakeun aplikasi aplikasi, mastikeun yén anu terakhir berinteraksi sareng prosesor, RAM, alat input / output sareng alat jaringan. Software sistem nyiptakeun abstraksi husus dina bentuk interfaces nu mantuan nyieun software aplikasi tanpa delving kana detil kumaha hardware sorangan jalan.

Triplett nyalira netepkeun pemrograman sistem salaku "naon waé anu sanés aplikasi." Éta kalebet hal-hal sapertos BIOS, firmware, bootloader sareng kernel sistem operasi, sababaraha jinis kode tingkat rendah anu dipasang, sareng palaksanaan mesin virtual. Narikna, Triplett percaya yén browser wéb ogé mangrupikeun parangkat lunak sistem, sabab browser parantos lami janten langkung ti "ngan ukur program", janten "platform pikeun situs wéb sareng aplikasi wéb" mandiri.

Baheula, kalolobaan program sistem, kalebet BIOS, boot loader sareng firmware, ditulis dina basa rakitan. Dina taun 1960-an, ékspérimén mimiti nyadiakeun pangrojong hardware pikeun basa tingkat luhur, ngarah kana kreasi basa saperti PL/S, BLISS, BCPL, jeung ALGOL 68.

Saterusna, dina taun 1970-an, Dennis Ritchie nyiptakeun basa pamrograman C pikeun sistem operasi Unix. Dijieun dina basa pamrograman B, anu henteu ngagaduhan dukungan ngetik, C ngeusi fungsi tingkat tinggi anu kuat anu paling cocog pikeun nyerat sistem operasi sareng supir. Sababaraha komponén UNIX, kaasup kernel na, ahirna ditulis deui dina C. Saterusna, loba program sistem lianna, kaasup database Oracle, loba kodeu sumber Windows, jeung sistem operasi Linux Ubuntu, ogé ditulis dina C.

C parantos nampi dukungan anu luar biasa dina arah ieu. Tapi naon persisna anu ngajantenkeun pamekar ngalih ka éta? Triplett percaya yén pikeun memotivasi pamekar pikeun ngalih tina hiji basa pamrograman ka anu sanés, anu terakhir kedah nyayogikeun fitur énggal tanpa kaleungitan fitur anu lami.

Kahiji, basa kudu nawiskeun "munasabah impressive" fitur anyar. "Anjeunna henteu tiasa langkung saé. Éta kedah langkung saé pikeun menerkeun usaha sareng waktos rékayasa anu diperyogikeun pikeun transisi, ”saurna. Dibandingkeun sareng basa rakitan, C ngagaduhan seueur hal anu ditawarkeun. Éta ngadukung kabiasaan anu rada aman, nyayogikeun portabilitas sareng kinerja anu langkung saé kalayan konstruksi tingkat luhur, sareng ngahasilkeun kode anu langkung gampang dibaca sacara umum.

Bréh, basa kudu nyadiakeun rojongan pikeun fitur heubeul, nu hartina dina sajarah transisi ka C, pamekar kedah pastikeun yén éta teu kirang fungsi ti basa assembly. Triplett ngécéskeun: "Basa anyar henteu ngan ukur langkung saé, tapi ogé kedah saé." Salian gancang sareng ngadukung jinis data naon waé anu tiasa dianggo ku basa rakitan, C ogé ngagaduhan anu disebut Triplett salaku "escape hatch" - nyaéta, éta ngadukung ngalebetkeun kode basa rakitan dina dirina.

"Karat mangrupikeun masa depan pemrograman sistem, C mangrupikeun assembler énggal" - pidato ku salah sahiji insinyur utama Intel

Triplett percaya yén C ayeuna jadi naon basa assembly sababaraha taun ka tukang. "C nyaéta assembler anyar," anjeunna nyatakeun. Ayeuna pamekar milarian basa tingkat luhur anyar anu henteu ngan ukur ngabéréskeun masalah anu akumulasi dina C anu henteu tiasa dibenerkeun deui, tapi ogé nawiskeun fitur anyar anu pikaresepeun. Basa sapertos kitu kedah cukup kuat pikeun ngajantenkeun pamekar ngalih ka dinya, kedah aman, nyayogikeun manajemén mémori otomatis, sareng seueur deui.

"Basa naon waé anu hoyong langkung saé tibatan C kedah nawiskeun langkung seueur tibatan panyangga panyalindungan overflow upami éta leres-leres hoyong janten alternatif anu pikaresepeun. Pamekar museurkeun usability jeung kinerja, nulis kode anu timer explanatory tur ngalakukeun leuwih gawé dina garis pangsaeutikna. Masalah kaamanan ogé kedah diurus. Gampang dianggo sareng kinerja sajalan. Kurang kode anu anjeun kedah nyerat pikeun ngahontal hiji hal, langkung sakedik kasempetan anjeun kedah ngalakukeun kasalahan, aya hubunganana sareng kaamanan atanapi henteu, ”jelas Triplett.

Babandingan Rust sareng C

Deui dina 2006, Graydon Hoare, hiji pagawe Mozilla, mimiti nulis Rust salaku proyék pribadi. Sarta dina 2009, Mozilla mimiti sponsor ngembangkeun Rust pikeun kaperluan sorangan, sarta ogé dimekarkeun tim pikeun salajengna ngamekarkeun basa.

Salah sahiji alesan Mozilla kabetot dina basa anyar éta Firefox ditulis dina leuwih 4 juta garis kode C ++ sarta miboga rada sababaraha kerentanan kritis. Rust diwangun ku kaamanan sareng konkurensi dina pikiran, janten pilihan idéal pikeun nulis ulang seueur komponén Firefox salaku bagian tina proyék Quantum pikeun ngadesain ulang arsitektur browser sacara lengkep. Mozilla ogé ngagunakeun Rust pikeun ngembangkeun Servo, mesin rendering HTML anu antukna bakal ngagentos mesin rendering Firefox ayeuna. Seueur perusahaan sanés anu mimiti nganggo Rust pikeun proyék-proyékna, kalebet Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu sareng seueur deui.

Karat ngarengsekeun salah sahiji masalah anu paling penting dina basa C. Ieu nawiskeun manajemén mémori otomatis ku kituna pamekar henteu kedah ngalokasikeun sacara manual teras ngabebaskeunana pikeun unggal obyék dina aplikasi. Anu ngajadikeun Rust béda ti basa-basa modéren anu sanés nyaéta yén éta henteu gaduh pamulung sampah anu otomatis ngahapus obyék anu henteu dianggo tina mémori, sareng henteu gaduh lingkungan runtime anu diperyogikeun pikeun damel, sapertos Java Runtime Environment for Java. Gantina, Rust boga konsep kapamilikan, injeuman, rujukan, sarta hirupna. "Karat gaduh sistem pikeun nyatakeun telepon ka hiji obyék pikeun nunjukkeun naha pamilik nganggo éta atanapi ngan ukur nginjeum. Upami anjeun ngan saukur nginjeum hiji obyék, kompiler bakal ngalacak ieu sareng mastikeun yén aslina tetep di tempat salami anjeun ngarujuk. Karat ogé bakal mastikeun yén obyék dicabut tina mémori pas pamakeanna réngsé, nyelapkeun telepon anu saluyu kana kode dina waktos kompilasi tanpa waktos tambahan, ”saur Triplett.

Kurangna runtime asli ogé tiasa dianggap fitur positif tina Rust. Triplett percaya yén basa anu dijalankeun éta hésé dianggo salaku alat pamrograman sistem. Salaku anjeunna ngécéskeun: "Anjeun kudu initialize runtime ieu saencan Anjeun bisa nelepon kode nu mana wae nu, Anjeun kudu make runtime ieu nelepon fungsi, sarta runtime sorangan bisa ngajalankeun kode tambahan tukangeun anjeun dina kali kaduga."

Rust ogé narékahan pikeun nyayogikeun program paralel anu aman. Fitur anu sami anu ngajantenkeun mémori aman ngalacak hal-hal sapertos benang anu gaduh obyék sareng objék mana anu tiasa dialihkeun antara benang sareng anu peryogi konci.

Sadaya fitur ieu ngajantenkeun Rust cekap pikeun pamekar pikeun milih éta salaku alat énggal pikeun program sistem. Tapi, dina hal komputasi paralel, Rust masih rada di tukangeun C.

Triplett intends a nyieun grup kerja husus anu bakal difokuskeun ngawanohkeun fitur diperlukeun kana Rust meh bisa pinuh sarua, ngaleuwihan sarta ngaganti C dina widang programming sistem. DI thread on Reddit, dedicated ka biantarana, manéhna ngomong yén "grup FFI / C Parity aya dina prosés kreasi sarta teu acan dimimitian gawé," pikeun ayeuna anjeunna siap ngajawab patarosan naon, sarta dina mangsa nu bakal datang anjeunna pasti bakal nyebarkeun rencana saharita. pikeun ngembangkeun Rust salaku bagian tina inisiatif na pikeun sakabéh pihak kabetot.

Bisa nganggap yén grup FFI / C Parity mimitina bakal difokuskeun ngaronjatkeun rojongan multi-threading di Rust, ngawanohkeun rojongan pikeun BFLOAT16, format floating point nu geus mucunghul dina prosesor Intel Xeon Scalable anyar, kitu ogé stabilisasi assembly. sisipan kode.



sumber: 3dnews.ru

Tambahkeun komentar