"Ang taya mao ang kaugmaon sa pagprograma sa sistema, ang C mao ang bag-ong assembler" - usa ka pakigpulong sa usa sa mga nanguna nga mga inhenyero sa Intel

Sa bag-ohay nga Open Source Technology Summi (OSTS) Josh Triplett, usa ka senior engineer sa Intel, miingon nga ang iyang kompanya interesado sa Rust nga makab-ot ang "pagkaparehas" sa C nga pinulongan nga nagdominar gihapon sa mga sistema ug ubos nga lebel nga pag-uswag sa umaabot nga umaabot. Sa iyang pakigpulong Ubos sa titulo nga "Intel and Rust: The Future of Systems Programming," naghisgot usab siya bahin sa kasaysayan sa mga system programming, kung giunsa ang C nahimo nga default nga sistema sa programming language, unsa nga mga bahin sa Rust ang naghatag niini nga bentaha kaysa C, ug kung giunsa kini hingpit nga mahimo. pulihan ang C sa kini nga natad sa programming.

"Ang taya mao ang kaugmaon sa pagprograma sa sistema, ang C mao ang bag-ong assembler" - usa ka pakigpulong sa usa sa mga nanguna nga mga inhenyero sa Intel

Ang pagprograma sa sistema mao ang pag-uswag ug pagdumala sa software nga nagsilbi nga plataporma alang sa paghimo sa mga aplikasyon sa aplikasyon, pagsiguro nga ang ulahi nakig-uban sa processor, RAM, input / output nga mga aparato ug kagamitan sa network. Ang software sa sistema nagmugna og usa ka espesyal nga abstraction sa porma sa mga interface nga makatabang sa paghimo sa software sa aplikasyon nga wala magsusi sa mga detalye kung giunsa ang hardware mismo nagtrabaho.

Gihubit mismo ni Triplett ang mga sistema sa programming nga "bisan unsang butang nga dili aplikasyon." Naglakip kini sa mga butang sama sa BIOS, firmware, mga bootloader ug mga kernel sa operating system, lain-laing mga matang sa naka-embed nga ubos nga lebel nga code, ug mga pagpatuman sa virtual machine. Makapainteres, si Triplett nagtuo nga ang web browser kay system software usab, tungod kay ang browser dugay na nga nahimong labaw pa sa "usa ka programa lang", nahimong usa ka standalone nga "platform para sa mga website ug web applications."

Kaniadto, kadaghanan sa mga programa sa sistema, lakip ang BIOS, mga bootloader ug firmware, gisulat sa sinultian nga asembliya. Sa dekada 1960, ang mga eksperimento nagsugod sa paghatag og suporta sa hardware alang sa taas nga lebel nga mga pinulongan, nga mitultol sa pagmugna sa mga pinulongan sama sa PL/S, BLISS, BCPL, ug ALGOL 68.

Dayon, sa 1970s, gibuhat ni Dennis Ritchie ang C programming language para sa Unix operating system. Gihimo sa B programming language, nga wala gani suporta sa pag-type, ang C napuno sa gamhanan nga taas nga lebel nga mga gimbuhaton nga labing haum sa pagsulat sa mga operating system ug mga drayber. Daghang mga sangkap sa UNIX, lakip ang kernel niini, sa kadugayan gisulat pag-usab sa C. Pagkahuman, daghang uban pang mga programa sa sistema, lakip ang database sa Oracle, kadaghanan sa source code sa Windows, ug ang operating system sa Linux, gisulat usab sa C.

Nakadawat og dakong suporta si C niini nga direksyon. Apan unsa gyud ang nakapahimo sa mga developer nga mobalhin niini? Nagtuo si Triplett nga aron madasig ang mga developer sa pagbalhin gikan sa usa ka programming language ngadto sa lain, ang naulahi kinahanglan una nga maghatag bag-ong mga bahin nga dili mawala ang mga daan nga bahin.

Una, ang lengguwahe kinahanglang maghatag ug "makataronganong impresibo" nga mga bag-ong bahin. “Dili siya mahimong mas maayo pa. Kinahanglan nga labi ka maayo nga hatagan katarungan ang paningkamot ug oras sa pag-inhenyero nga gikinahanglan aron mahimo ang pagbalhin, ”gipasabut niya. Kung itandi sa pinulongang asembliya, ang C adunay daghang mga butang nga ikatanyag. Gisuportahan niini ang medyo luwas nga pamatasan nga tipo, naghatag mas maayo nga pagkadala ug pasundayag nga adunay taas nga lebel nga mga konstruksyon, ug nakamugna og labi ka mabasa nga code sa kinatibuk-an.

Ikaduha, ang pinulongan kinahanglan nga maghatag suporta alang sa daan nga mga bahin, nga nagpasabot nga sa kasaysayan sa transisyon ngadto sa C, ang mga developers kinahanglan nga sigurado nga kini mao ang dili kaayo functional kay sa assembly pinulongan. Si Triplett nagpatin-aw: "Ang usa ka bag-ong pinulongan dili lang mahimong mas maayo, kini kinahanglan usab nga ingon ka maayo." Agi og dugang sa pagka mas paspas ug pagsuporta sa bisan unsang tipo sa datos nga magamit sa pinulongan sa asembliya, ang C usab adunay gitawag nga Triplett nga usa ka "escape hatch"—nga mao, gisuportahan niini ang pagsal-ot sa code sa pinulongan sa asembliya sulod sa iyang kaugalingon.

"Ang taya mao ang kaugmaon sa pagprograma sa sistema, ang C mao ang bag-ong assembler" - usa ka pakigpulong sa usa sa mga nanguna nga mga inhenyero sa Intel

Nagtuo si Triplett nga nahimong C karon ang sinultian sa asembliya daghang tuig na ang milabay. "C mao ang bag-ong assembler," siya mipahayag. Karon ang mga developers nangita alang sa usa ka bag-o nga high-level nga pinulongan nga dili lamang makasulbad sa mga problema nga natipon sa C nga dili na matul-id, apan nagtanyag usab makapahinam nga bag-ong mga bahin. Ang ingon nga usa ka lengguwahe kinahanglan nga adunay igo nga pagpugos aron mabalhin ang mga developer niini, kinahanglan nga luwas, maghatag awtomatiko nga pagdumala sa memorya, ug daghan pa.

“Bisan unsang pinulongan nga gustong mahimong mas maayo kay sa C kinahanglang magtanyag ug labaw pa kay sa buffer overflow nga panalipod kon gusto gayod nga mahimong mapugsanon nga alternatibo. Interesado ang mga developers sa usability ug performance, pagsulat sa code nga nagpatin-aw sa kaugalingon ug mas daghan ang trabaho sa mas gamay nga linya. Ang mga isyu sa seguridad kinahanglan usab nga sulbaron. Ang kasayon ​​sa paggamit ug ang pasundayag nag-uban. Ang gamay nga code nga kinahanglan nimong isulat aron makab-ot ang usa ka butang, labi ka gamay nga higayon nga makahimo ka bisan unsang mga sayup, may kalabotan sa seguridad o wala, ”gipasabut ni Triplett.

Pagtandi sa Rust ug C

Balik sa 2006, si Graydon Hoare, usa ka empleyado sa Mozilla, nagsugod sa pagsulat sa Rust isip usa ka personal nga proyekto. Ug sa 2009, gisugdan sa Mozilla ang pag-sponsor sa pagpalambo sa Rust alang sa kaugalingon nga mga panginahanglanon, ug gipalapdan usab ang team aron mapalambo pa ang pinulongan.

Usa sa mga rason nga ang Mozilla interesado sa bag-ong pinulongan mao nga ang Firefox gisulat sa sobra sa 4 ka milyon nga linya sa C++ code ug adunay pipila ka mga kritikal nga kahuyangan. Gitukod ang Rust nga adunay seguridad ug panagsama sa hunahuna, nga naghimo niini nga usa ka sulundon nga kapilian alang sa pagsulat pag-usab sa daghang mga sangkap sa Firefox isip bahin sa proyekto sa Quantum aron hingpit nga idisenyo pag-usab ang arkitektura sa browser. Gigamit usab sa Mozilla ang Rust aron mapalambo ang Servo, usa ka HTML rendering engine nga sa katapusan mopuli sa kasamtangan nga Firefox rendering engine. Daghang ubang mga kompanya ang nagsugod sa paggamit sa Rust alang sa ilang mga proyekto, lakip ang Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu ug daghan pa.

Gisulbad sa Rust ang usa sa labing hinungdanon nga mga problema sa pinulongang C. Nagtanyag kini og awtomatik nga pagdumala sa panumduman aron ang mga developer dili kinahanglan nga mano-mano nga maggahin ug dayon libre kini alang sa matag butang sa aplikasyon. Ang nakapalahi sa Rust gikan sa ubang modernong mga pinulongan mao nga wala kini usa ka tigkolekta sa basura nga awtomatik nga nagtangtang sa wala magamit nga mga butang gikan sa panumduman, ni kini adunay runtime nga palibot nga gikinahanglan aron kini molihok, sama sa Java Runtime Environment para sa Java. Hinuon, ang Rust adunay mga konsepto sa pagpanag-iya, paghulam, mga pakisayran, ug tibuok kinabuhi. "Ang Rust adunay sistema sa pagdeklara sa mga tawag sa usa ka butang aron ipakita kung gigamit ba kini sa tag-iya o gihulam lang kini. Kung manghulam ka lang ug usa ka butang, ang compiler magsubay niini ug masiguro nga ang orihinal magpabilin sa lugar basta imong hisgotan kini. Siguruhon usab sa Rust nga ang butang makuha gikan sa memorya sa diha nga ang paggamit niini makompleto, nga magsulud sa usa ka katugbang nga tawag sa code sa oras sa pag-compile nga wala’y dugang nga oras, ”ingon ni Triplett.

Ang kakulang sa usa ka lumad nga runtime mahimo usab nga isipon nga usa ka positibo nga bahin sa Rust. Nagtuo si Triplett nga ang mga pinulongan nga gigamit niini lisud gamiton isip mga himan sa pagprograma sa sistema. Sama sa iyang gipatin-aw: "Kinahanglan nimo nga sugdan kini nga runtime sa dili ka pa makatawag sa bisan unsang code, kinahanglan nimo nga gamiton kini nga runtime sa pagtawag sa mga function, ug ang runtime mismo mahimong modagan og dugang nga code sa imong likod sa wala damha nga mga panahon."

Ang Rust naningkamot usab sa paghatag ug luwas nga parallel programming. Ang parehas nga mga bahin nga naghimo niini nga luwas sa panumduman nagsubay sa mga butang sama sa kung unsang hilo ang tag-iya kung unsang butang ug kung unsang mga butang ang mahimong ipasa taliwala sa mga hilo ug nga kinahanglan usa ka kandado.

Ang tanan nga kini nga mga bahin naghimo sa Rust nga igo nga makapadani alang sa mga developer nga pilion kini ingon usa ka bag-ong himan alang sa pagprograma sa mga sistema. Bisan pa, sa mga termino sa parallel computing, ang Rust gamay ra sa luyo sa C.

Gitinguha ni Triplett nga maghimo usa ka espesyal nga grupo sa pagtrabaho nga magpunting sa pagpaila sa kinahanglan nga mga bahin sa Rust aron kini hingpit nga managsama, malabwan ug mapulihan ang C sa natad sa programming system. SA thread sa Reddit, nga gipahinungod sa iyang pakigpulong, siya miingon nga "ang FFI/C Parity nga grupo anaa sa proseso sa paglalang ug wala pa magsugod sa pagtrabaho," sa pagkakaron andam na siya sa pagtubag sa bisan unsa nga mga pangutana, ug sa umaabot siguradong iyang imantala ang diha-diha nga mga plano. alang sa pagpalambo sa Rust isip kabahin sa iyang inisyatiba alang sa tanang interesadong partido.

Mahimong isipon nga ang grupo sa FFI/C Parity una sa tanan mag-focus sa pagpalambo sa multi-threading nga suporta sa Rust, pagpaila sa suporta alang sa BFLOAT16, usa ka floating point format nga nagpakita sa bag-ong Intel Xeon Scalable processors, ingon man usab sa pagpalig-on sa asembliya. mga pagsal-ot sa code.



Source: 3dnews.ru

Idugang sa usa ka comment