"Rust yw dyfodol rhaglennu system, C yw'r cydosodwr newydd" - araith gan un o brif beirianwyr Intel

Yn yr Uwchgynhadledd Technoleg Ffynhonnell Agored (OSTS) diweddar Josh Triplett, uwch beiriannydd yn Intel, fod gan ei gwmni ddiddordeb mewn i Rust gyrraedd “cydraddoldeb” â’r iaith C sy’n dal i ddominyddu systemau a datblygiad lefel isel yn y dyfodol agos. Yn ei araith O dan y teitl "Intel a Rust: Dyfodol Rhaglennu Systemau," siaradodd hefyd am hanes rhaglennu systemau, sut y daeth C yn iaith raglennu systemau rhagosodedig, pa nodweddion Rust sy'n rhoi mantais iddo dros C, a sut y gallai'n llwyr disodli C yn y maes rhaglennu hwn.

"Rust yw dyfodol rhaglennu system, C yw'r cydosodwr newydd" - araith gan un o brif beirianwyr Intel

Rhaglennu system yw datblygu a rheoli meddalwedd sy'n gweithredu fel llwyfan ar gyfer creu cymwysiadau cymhwysiad, gan sicrhau bod yr olaf yn rhyngweithio â'r prosesydd, RAM, dyfeisiau mewnbwn / allbwn ac offer rhwydwaith. Mae meddalwedd system yn creu tyniad arbennig ar ffurf rhyngwynebau sy'n helpu i greu meddalwedd cymhwysiad heb ymchwilio i fanylion sut mae'r caledwedd ei hun yn gweithio.

Mae Triplett ei hun yn diffinio rhaglennu systemau fel “unrhyw beth nad yw’n gymhwysiad.” Mae'n cynnwys pethau fel BIOS, firmware, cychwynwyr a chnewyllyn system weithredu, gwahanol fathau o god lefel isel wedi'i fewnosod, a gweithrediadau peiriannau rhithwir. Yn ddiddorol, mae Triplett yn credu bod porwr gwe hefyd yn feddalwedd system, gan fod y porwr wedi dod yn fwy na “rhaglen yn unig” ers talwm, gan ddod yn “lwyfan arunig ar gyfer gwefannau a chymwysiadau gwe.”

Yn y gorffennol, roedd y rhan fwyaf o raglenni system, gan gynnwys BIOS, cychwynwyr a firmware, wedi'u hysgrifennu mewn iaith gydosod. Yn y 1960au, dechreuodd arbrofion i ddarparu cefnogaeth caledwedd ar gyfer ieithoedd lefel uchel, gan arwain at greu ieithoedd fel PL/S, BLISS, BCPL, ac ALGOL 68.

Yna, yn y 1970au, creodd Dennis Ritchie yr iaith raglennu C ar gyfer system weithredu Unix. Wedi'i greu yn iaith raglennu B, nad oedd ganddi gefnogaeth deipio hyd yn oed, roedd C wedi'i llenwi â swyddogaethau lefel uchel pwerus a oedd yn fwyaf addas ar gyfer ysgrifennu systemau gweithredu a gyrwyr. Yn y pen draw, cafodd sawl cydran o UNIX, gan gynnwys ei gnewyllyn, eu hailysgrifennu yn C. Yn dilyn hynny, ysgrifennwyd llawer o raglenni system eraill, gan gynnwys cronfa ddata Oracle, llawer o god ffynhonnell Windows, a system weithredu Linux, yn C.

Mae C wedi cael cefnogaeth aruthrol yn y cyfeiriad hwn. Ond beth yn union wnaeth i ddatblygwyr newid iddo? Cred Triplett, er mwyn ysgogi datblygwyr i newid o un iaith raglennu i'r llall, bod yn rhaid i'r olaf ddarparu nodweddion newydd yn gyntaf heb golli hen nodweddion.

Yn gyntaf, rhaid i'r iaith gynnig nodweddion newydd "rhesymol drawiadol". “Ni allai fod yn well. Mae’n rhaid ei bod yn llawer gwell cyfiawnhau’r ymdrech a’r amser peirianyddol y mae’n ei gymryd i wneud y trawsnewid,” eglura. O gymharu ag iaith y cynulliad, roedd gan C lawer o bethau i'w cynnig. Roedd yn cefnogi ymddygiad math-ddiogel, yn darparu hygludedd a pherfformiad gwell gyda lluniadau lefel uchel, ac yn cynhyrchu cod llawer mwy darllenadwy yn gyffredinol.

Yn ail, mae'n rhaid i'r iaith gefnogi hen nodweddion, sy'n golygu, yn hanes y newid i C, bod yn rhaid i ddatblygwyr fod yn sicr nad oedd yn llai ymarferol nag iaith y cynulliad. Eglura Triplett: “Ni all iaith newydd fod yn well, rhaid iddi fod cystal.” Yn ogystal â bod yn gyflymach a chefnogi unrhyw fath o ddata y gallai iaith gynulliad ei ddefnyddio, roedd gan C hefyd yr hyn a alwodd Triplett yn "deor dianc" - sef, roedd yn cefnogi mewnosod cod iaith y cynulliad ynddo'i hun.

"Rust yw dyfodol rhaglennu system, C yw'r cydosodwr newydd" - araith gan un o brif beirianwyr Intel

Mae Triplett yn credu bod C bellach yn dod yn iaith y cynulliad flynyddoedd lawer yn ôl. “C yw’r cydosodwr newydd,” dywed. Nawr mae datblygwyr yn chwilio am iaith lefel uchel newydd a fydd nid yn unig yn datrys y problemau sydd wedi cronni yn C na ellir eu trwsio mwyach, ond hefyd yn cynnig nodweddion newydd cyffrous. Rhaid i iaith o'r fath fod yn ddigon cymhellol i gael datblygwyr i newid iddi, rhaid iddi fod yn ddiogel, darparu rheolaeth cof awtomatig, a llawer mwy.

“Rhaid i unrhyw iaith sydd eisiau bod yn well na C gynnig llawer mwy na dim ond byffer amddiffyniad gorlif os yw wir eisiau bod yn ddewis arall cymhellol. Mae gan ddatblygwyr ddiddordeb mewn defnyddioldeb a pherfformiad, gan ysgrifennu cod sy'n hunanesboniadol ac sy'n gwneud mwy o waith mewn llai o linellau. Mae angen mynd i'r afael â materion diogelwch hefyd. Mae rhwyddineb defnydd a pherfformiad yn mynd law yn llaw. Po leiaf o god y mae'n rhaid i chi ei ysgrifennu i gyflawni rhywbeth, y lleiaf o gyfle sydd gennych i wneud unrhyw gamgymeriadau, yn ymwneud â diogelwch ai peidio,” esboniodd Triplett.

Cymhariaeth o Rust a C

Yn ôl yn 2006, dechreuodd Graydon Hoare, gweithiwr Mozilla, ysgrifennu Rust fel prosiect personol. Ac yn 2009, dechreuodd Mozilla noddi datblygiad Rust ar gyfer ei anghenion ei hun, a hefyd ehangodd y tîm i ddatblygu'r iaith ymhellach.

Un o'r rhesymau yr oedd gan Mozilla ddiddordeb yn yr iaith newydd yw bod Firefox wedi'i ysgrifennu mewn dros 4 miliwn o linellau o god C ++ a bod ganddo gryn dipyn o wendidau hanfodol. Adeiladwyd Rust gyda diogelwch a chyfoes mewn golwg, gan ei wneud yn ddewis delfrydol ar gyfer ailysgrifennu llawer o gydrannau Firefox fel rhan o'r prosiect Quantum i ailgynllunio pensaernïaeth y porwr yn llwyr. Mae Mozilla hefyd yn defnyddio Rust i ddatblygu Servo, injan rendro HTML a fydd yn y pen draw yn disodli'r injan rendro Firefox cyfredol. Mae llawer o gwmnïau eraill wedi dechrau defnyddio Rust ar gyfer eu prosiectau, gan gynnwys Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu a llawer mwy.

Mae Rust yn datrys un o broblemau pwysicaf yr iaith C. Mae'n cynnig rheolaeth cof awtomatig fel nad oes rhaid i ddatblygwyr ddyrannu â llaw ac yna ei ryddhau ar gyfer pob gwrthrych yn y rhaglen. Yr hyn sy'n gwneud Rust yn wahanol i ieithoedd modern eraill yw nad oes ganddo gasglwr sbwriel sy'n tynnu gwrthrychau nas defnyddiwyd o'r cof yn awtomatig, ac nid oes ganddo'r amgylchedd amser rhedeg sydd ei angen i wneud iddo weithio, fel yr Amgylchedd Runtime Java ar gyfer Java. Yn lle hynny, mae gan Rust y cysyniadau o berchnogaeth, benthyca, cyfeiriadau, ac oes. “Mae gan Rust system ar gyfer datgan galwadau i wrthrych i nodi a yw’r perchennog yn ei ddefnyddio neu dim ond yn ei fenthyg. Os ydych chi'n benthyca gwrthrych yn unig, bydd y casglwr yn cadw golwg ar hyn ac yn sicrhau bod y gwreiddiol yn aros yn ei le cyn belled â'ch bod yn cyfeirio ato. Bydd Rust hefyd yn sicrhau bod y gwrthrych yn cael ei dynnu o'r cof yn syth ar ôl iddo gael ei ddefnyddio, gan fewnosod galwad cyfatebol yn y cod ar amser llunio heb amser ychwanegol, ”meddai Triplett.

Gellir ystyried diffyg amser rhedeg brodorol hefyd yn nodwedd gadarnhaol o Rust. Mae Triplett yn credu bod yr ieithoedd y mae'n rhedeg arnynt yn anodd eu defnyddio fel offer rhaglennu systemau. Fel y mae'n esbonio: "Rhaid cychwyn yr amser rhedeg hwn cyn i chi allu galw unrhyw god, rhaid i chi ddefnyddio'r amser rhedeg hwn i alw swyddogaethau, a gall yr amser rhedeg ei hun redeg cod ychwanegol y tu ôl i'ch cefn ar adegau annisgwyl."

Mae Rust hefyd yn ymdrechu i ddarparu rhaglennu cyfochrog diogel. Mae'r un nodweddion sy'n ei gwneud yn gof yn ddiogel yn cadw golwg ar bethau fel pa edau sy'n berchen ar ba wrthrych a pha wrthrychau y gellir eu trosglwyddo rhwng edafedd ac sydd angen clo.

Mae'r holl nodweddion hyn yn gwneud Rust yn ddigon cymhellol i ddatblygwyr ei ddewis fel offeryn newydd ar gyfer rhaglennu systemau. Fodd bynnag, o ran cyfrifiadura cyfochrog, mae Rust ychydig y tu ôl i C.

Mae Triplett yn bwriadu creu gweithgor arbennig a fydd yn canolbwyntio ar gyflwyno'r nodweddion angenrheidiol i Rust fel y gall fod yn gwbl gyfartal, yn rhagori ac yn disodli C ym maes rhaglennu systemau. YN edefyn ar Reddit, yn ymroddedig i’w araith, dywedodd fod “grŵp Parity FFI/C yn y broses o gael ei greu ac nid yw wedi dechrau gweithio eto,” am y tro mae’n barod i ateb unrhyw gwestiynau, ac yn y dyfodol bydd yn bendant yn cyhoeddi cynlluniau ar unwaith. ar gyfer datblygiad Rust fel rhan o'i fenter ar gyfer pawb sydd â diddordeb.

Gellir tybio y bydd grŵp Parity FFI / C yn canolbwyntio yn gyntaf ar wella cefnogaeth aml-edafu yn Rust, gan gyflwyno cefnogaeth i BFLOAT16, fformat pwynt arnawf sydd wedi ymddangos yn y proseswyr Intel Xeon Scalable newydd, yn ogystal â sefydlogi cynulliad mewnosodiadau cod.



Ffynhonnell: 3dnewyddion.ru

Ychwanegu sylw