C++ pe Linux, subiectul este reînviat după 6 ani

 

Linux C++

Utilizarea C++ în Linux a fost propusă din nou

Se pare că introducerea Rust ca al doilea limbaj de programare în Kernel-ul Linux a reprezentat una dintre cele mai importante schimbări pe care le-a avut Linux și nu vorbind în zona caracteristicilor și funcționalităților, dar a marcat un punct de plecare foarte important. despre modul în care Linus Torvalds și echipa de dezvoltare au făcut un pas semnificativ spre modernizarea Linux în bine.

Acest lucru poate fi remarcat, deoarece recent, o discuție începută în urmă cu șase ani a fost reînviată pe listele de corespondență ale nucleului Linux.

Și problema „viabilității adoptării codului C++ modern în nucleul Linux” a fost pusă din nou pe masă , depășind utilizarea tradițională a limbajului C cu fragmente de asamblare și promovarea limbajului Rust. .

Propunerea inițială a fost lansată în 2018, de un inginer Red Hat ca o glumă pentru cunoscuta sărbătoare a păcălelilor de 1 aprilie, în care mulți profită de ocazie pentru a crea glume pentru comunitate și la vremea aceea era așa, de vreme ce se presupune că era lansat un set de 45 de corecții care au inclus utilizarea șablonului, moștenirea clasei și supraîncărcarea funcției C++.

În opinia mea, C++14 este versiunea „minimală” care are suport rezonabil pentru metaprogramare și are cele mai multe fără tipurile din versiunile anterioare (C++11 a avut cele mai multe, dar C++14 completează unele piese cheie lipsă). Cu toate acestea, în opinia mea, C++20 este într-adevăr cel mai mare schimbător de jocuri; Deși versiunile anterioare puteau executa multe hack-uri SFINAE, acestea dădeau și mesaje de eroare absolut inutile.

Facem multă metaprogramare în kernel-ul Linux, implementată folosind trucuri macro deseori oribile. Acestea sunt, de asemenea, practic imposibil de depanat. Să luăm exemplul hack-urilor de tip uaccess.h, dintre care unele le-am proiectat și scris. În C++, diferite modele și declarații case pot fi împărțite în instanțe de șablon separate și, cu puțină ingeniozitate, lucruri precum pointerii spațiului utilizator versus pointerii spațiului utilizatorului din nucleu pot fi, de asemenea, aplicate cu strictețe, precum și pointerii spațiului utilizator deja marcați, față de cele care nu sunt, ca să nu mai vorbim de gestionarea ușoară a cazului tipurilor de spațiu utilizator pe 32 de biți într-un nucleu de 64 de biți și de aplicarea conversiei endian.

Acum, aproape după 6 ani, Hans Peter Anvin, un dezvoltator cheie de kernel Intel și creator de proiecte precum syslinux, klibc și LANANA, a preluat inițiativa de a continua discuția . Potrivit lui Anvin, din 1999, limbajele C și C++ au înregistrat progrese semnificative în dezvoltarea lor, iar limbajul C++ s-a dovedit a fi mai potrivit decât C pentru dezvoltarea nucleului sistemului de operare.

Anvin menționează că funcțiile care anterior necesitau extensii specifice GCC pot fi acum ușor implementate în C++ standard și, în multe cazuri, utilizarea C++ va îmbunătăți infrastructura fără a fi nevoie să se schimbe complet codul.

În plus, se propune utilizarea cel puțin a specificației C++ 14, care include instrumente de metaprogramare, și este încurajată utilizarea specificației C++ 20, care introduce suport pentru concepte care pot reduce incidența erorilor.

Se susține că C++ este mai de preferat Rust , deoarece acesta din urmă diferă semnificativ în sintaxă de limbajul C, este neobișnuit pentru dezvoltatorii actuali de kernel și nu permite rescrierea graduală a codului. În cazul limbajului C++, este posibil să se traducă părți ale codului limbajului C treptat, similar modului în care codul C poate fi compilat ca C++.

În timp ce nucleul Linux este în primul rând cod C cu diferite părți scrise în asamblare și lucru în creștere în jurul suportului Rust în kernel-ul Linux, este încă neclar dacă există suficientă greutate pentru ca acest lucru să fie o realitate, cu privire la posibilitatea de a vedea codul C nucleului Linux. convertit în C++ în viitor.

În sfârșit, dacă sunteți interesat să aflați mai multe despre acesta , puteți consulta detaliile în următorul link.

Comentarii

Postări populare de pe acest blog

BlueOS: Un sistem de operare care folosește Rust și acceptă Linux

Google propune utilizatorilor computerelor mai vechi cu Windows 10 să migreze la ChromeOS Flex — 600 de dispozitive certificate

Tocmai a fost lansat /e/OS 1.17, aducând un val de îmbunătățiri, de la măsuri de confidențialitate îmbunătățite la o interfață de utilizator reproiectată.