"Rust ass d'Zukunft vun der Systemprogramméierung, C ass den neien Assembler" - eng Ried vun engem vun de féierende Ingenieuren vun Intel

Um rezenten Open Source Technology Summi (OSTS) Josh Triplett, e Senior Ingenieur bei Intel, sot, datt seng Firma interesséiert ass fir Rust "Paritéit" mat der C Sprooch z'erreechen, déi nach ëmmer Systemer a Low-Level Entwécklung an der nächster Zukunft dominéiert. A senger Ried Ënnert dem Titel "Intel and Rust: The Future of Systems Programming," huet hien och iwwer d'Geschicht vu Systemprogramméierung geschwat, wéi C d'Standardsystemprogramméierungssprooch gouf, wéi eng Feature vu Rust et e Virdeel iwwer C ginn, a wéi et komplett kéint ginn. ersetzen C an dësem Beräich vun der Programméierung.

"Rust ass d'Zukunft vun der Systemprogramméierung, C ass den neien Assembler" - eng Ried vun engem vun de féierende Ingenieuren vun Intel

Systemprogramméierung ass d'Entwécklung an d'Gestioun vu Software déi als Plattform déngt fir Uwendungsapplikatiounen ze kreéieren, fir datt déi lescht interagéiert mam Prozessor, RAM, Input / Output Geräter an Netzwierkausrüstung. Systemsoftware erstellt eng speziell Abstraktioun a Form vun Schnëttplazen, déi hëllefen d'Applikatiounssoftware ze kreéieren ouni an d'Detailer ze verdéiwen wéi d'Hardware selwer funktionnéiert.

Triplett selwer definéiert Systemprogramméiere als "alles wat keng Applikatioun ass." Et enthält Saachen wéi BIOS, Firmware, Bootloader a Betribssystemkären, verschidden Aarte vun embedded Low-Level Code, a virtuelle Maschinnimplementatiounen. Interessanterweis mengt Triplett datt e Webbrowser och Systemsoftware ass, well de Browser viru laanger Zäit méi wéi "nëmmen e Programm" ginn ass, eng standalone "Plattform fir Websäiten a Webapplikatiounen" ze ginn.

An der Vergaangenheet sinn déi meescht Systemprogrammer, dorënner BIOS, Bootloader a Firmware, a Versammlungssprooch geschriwwe ginn. An den 1960er hunn d'Experimenter ugefaang Hardware-Ënnerstëtzung fir High-Level Sproochen ze bidden, wat zu der Schafung vu Sprooche gefouert huet wéi PL/S, BLISS, BCPL, an ALGOL 68.

Dann, an den 1970er Joren, huet den Dennis Ritchie d'C Programmiersprache fir den Unix Betribssystem erstallt. Erstellt an der B Programméierungssprooch, déi net emol Tippunterstëtzung huet, C gouf mat mächtege High-Level Funktiounen gefëllt, déi am Beschten passend waren fir Betribssystemer a Chauffeuren ze schreiwen. Verschidde Komponente vun UNIX, dorënner säi Kernel, goufe schliisslech am C nei geschriwwen. Duerno goufen och vill aner Systemprogrammer, dorënner d'Oracle-Datebank, vill vum Windows-Quellcode an de Linux Betribssystem an C geschriwwen.

C huet enorm Ënnerstëtzung an dëser Richtung kritt. Awer wat genee huet d'Entwéckler dorop wiesselen? Triplett mengt datt fir d'Entwéckler ze motivéieren fir vun enger Programméierungssprooch op eng aner ze wiesselen, muss déi lescht fir d'éischt nei Features ubidden ouni al Features ze verléieren.

Als éischt muss d'Sprooch "raisonnabel beandrockend" nei Features ubidden. "Hie kéint net besser sinn. Et muss däitlech besser sinn fir den Effort an d'Ingenieurszäit ze justifiéieren, déi et brauch fir den Iwwergang ze maachen", erkläert hien. Am Verglach mat der Versammlungssprooch hat C vill Saachen ze bidden. Et ënnerstëtzt e bëssen Typ-sécher Verhalen, bitt besser Portabilitéit a Leeschtung mat héije Konstruktiounen, a generéiert vill méi liesbar Code allgemeng.

Zweetens muss d'Sprooch Ënnerstëtzung fir al Funktiounen ubidden, dat heescht datt an der Geschicht vum Iwwergank op C d'Entwéckler musse sécher sinn datt et net manner funktionell ass wéi d'Versammlungssprooch. Triplett erkläert: "Eng nei Sprooch kann net nëmme besser sinn, se muss och esou gutt sinn." Zousätzlech fir méi séier ze sinn an all Datentyp z'ënnerstëtzen déi d'Assemblée Sprooch ka benotzen, hat C och wat Triplett en "Escape hatch" genannt huet - nämlech ënnerstëtzt d'Assemblée Sproochcode a sech selwer asetzen.

"Rust ass d'Zukunft vun der Systemprogramméierung, C ass den neien Assembler" - eng Ried vun engem vun de féierende Ingenieuren vun Intel

Triplett mengt datt C elo gëtt wat d'Versammlungssprooch viru ville Joeren war. "C ass den neien Assembler," erkläert hien. Elo sinn d'Entwéckler op der Sich no enger neier High-Level Sprooch, déi net nëmmen d'Problemer léisen, déi am C accumuléiert sinn, déi net méi kënne fixéiert ginn, awer och spannend nei Features ubidden. Sou eng Sprooch muss zwéngend genuch sinn fir d'Entwéckler dozou ze wiesselen, muss sécher sinn, automatesch Erënnerungsmanagement ubidden, a vill méi.

"All Sprooch déi besser wëll wéi C muss vill méi bidden wéi just Puffer Iwwerschwemmungsschutz, wann se wierklech eng zwéngend Alternativ wëll sinn. Entwéckler sinn interesséiert Benotzerfrëndlechkeet an Leeschtung, Code schreiwen, datt selbstverständlech ass a mécht méi Aarbecht a manner Linnen. Sécherheetsprobleemer mussen och ugeschwat ginn. Einfach ze benotzen an Leeschtung ginn Hand an Hand. Wat Dir manner Code musst schreiwen fir eppes z'erreechen, wat Dir manner Méiglechkeet hutt fir Feeler ze maachen, Sécherheetsbezunn oder net ", erkläert Triplett.

Verglach vu Rust a C

Zréck am Joer 2006 huet de Graydon Hoare, e Mozilla Mataarbechter, ugefaang Rust als e perséinleche Projet ze schreiwen. An 2009 huet Mozilla ugefaang d'Entwécklung vu Rust fir seng eegen Bedierfnesser ze sponseren, an och d'Team ausgebaut fir d'Sprooch weider z'entwéckelen.

Ee vun de Grënn firwat Mozilla un déi nei Sprooch interesséiert war ass datt Firefox an iwwer 4 Millioune Zeilen C++ Code geschriwwe gouf an e puer kritesch Schwachstelle hat. Rust gouf mat Sécherheet a Concurrency am Kapp gebaut, sou datt et eng ideal Wiel mécht fir vill vu Firefox Komponenten als Deel vum Quanteprojet ëmzeschreiwen fir d'Architektur vum Browser komplett nei ze designen. Mozilla benotzt och Rust fir Servo z'entwéckelen, en HTML Rendering-Motor deen schlussendlech den aktuellen Firefox Rendering-Motor ersetzt. Vill aner Firmen hunn ugefaang Rust fir hir Projeten ze benotzen, dorënner Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu a vill méi.

Rust léist ee vun de wichtegste Problemer vun der C Sprooch. Et bitt automatesch Erënnerung Gestioun sou Entwéckler mussen net manuell allokéieren an dann fräi et fir all Objet an der Applikatioun. Wat Rust ënnerscheet vun anere modernen Sproochen ass datt et keen Gerempels huet, deen automatesch onbenotzt Objeten aus der Erënnerung läscht, an och net d'Runtime-Ëmfeld, déi néideg ass fir et ze schaffen, wéi d'Java Runtime Environment fir Java. Amplaz huet Rust d'Konzepter vu Besëtz, Prêten, Referenzen a Liewensdauer. "Rust huet e System fir Uruff un en Objet z'erklären fir unzeweisen ob de Besëtzer et benotzt oder just léint. Wann Dir einfach en Objet léint, wäert de Compiler dëst verfollegen a suergen datt d'Original op der Plaz bleift soulaang wéi Dir et referéiert. Rust wäert och suergen datt den Objet aus der Erënnerung geläscht gëtt soubal seng Notzung fäerdeg ass, en entspriechend Uruff an de Code an der Zesummesetzungszäit ouni zousätzlech Zäit asetzen ", seet Triplett.

De Mangel vun enger gebierteg Runtime kann och als positiv Feature vu Rust ugesi ginn. Triplett mengt datt d'Sproochen op déi se leeft schwéier sinn als Systemprogramméierungsinstrumenter ze benotzen. Wéi hien erkläert: "Dir musst dës Runtime initialiséieren ier Dir e Code ruffe kënnt, Dir musst dës Runtime benotze fir Funktiounen ze ruffen, an d'Runtime selwer kann zousätzlech Code hannert Ärem Réck op onerwaarten Zäiten lafen."

Rust bestrieft och eng sécher parallel programméiere ze bidden. Déi selwescht Features, déi d'Erënnerung sécher maachen, verfollegen Saachen wéi wéi ee Fuedem deen Objet besëtzt a wéi eng Objete kënnen tëscht de Fuedem passéiert ginn an déi e Spär brauchen.

All dës Funktiounen maachen Rust zwéngend genuch fir Entwéckler et als neit Tool fir Systemprogramméiere ze wielen. Wéi och ëmmer, wat de Parallel Computing ugeet, ass Rust nach ëmmer e bëssen hannert C.

Triplett wëlles e speziellen Aarbechtsgrupp ze kreéieren deen sech fokusséiert op d'Aféierung vun den néidege Fonctiounen an de Rust sou datt et C am Feld vun der Systemprogramméierung voll gläich kann iwwerwannen an ersetzen. IN thread op Reddit, fir seng Ried gewidmet, sot hien datt "de FFI / C Parity Group am Prozess vun der Schafung ass an huet nach net ugefaang ze schaffen", fir elo ass hien prett fir all Froen ze beäntweren, an an Zukunft wäert hien definitiv direkt Pläng verëffentlechen fir d'Entwécklung vu Rust als Deel vu senger Initiativ fir all interesséiert Parteien.

Et kann ugeholl ginn datt d'FFI / C Parity-Grupp fir d'éischt op d'Verbesserung vun der Multi-Threading-Ënnerstëtzung am Rust konzentréieren, d'Ënnerstëtzung fir BFLOAT16 aféieren, e Floating Point-Format deen an den neien Intel Xeon Scalable Prozessoren opgetaucht ass, souwéi d'Versammlung stabiliséieren. Code Insertiounen.



Source: 3dnews.ru

Setzt e Commentaire