C++ Linux sistemoje, tema atgaivinama po 6 metų

Linux C++

Vėl buvo pasiūlyta Linux naudoti C++

Atrodo, kad Rusto kaip antrosios kalbos įvedimas programavimas Linux branduolyje buvo vienas iš svarbiausių pakeitimų kad Linux turėjo, ir nekalbant apie funkcijas ir funkcijas, tačiau tai buvo labai svarbus atspirties taškas, kaip Linus Torvalds ir kūrėjų komanda žengė reikšmingą žingsnį link geresnio Linux modernizavimo.

Tai galima pastebėti, nes neseniai Linux branduolio adresų sąrašuose atgijo diskusija kuris buvo pradėtas prieš šešerius metus, juokais pristatęs 1 metų balandžio 2018 d.

Ir vėl buvo padėta ant stalo. „Galimybė priimti šiuolaikinį C++ kodą Linux branduolyje“, neapsiribojant tradiciniu C kalbos vartojimu su asemblerio fragmentais ir Rust kalbos propagavimu.

Pirminis pasiūlymas buvo pateiktas 2018 m. Red Hat inžinieriaus kaip pokštas gerai žinomai Balandžio 45-osios šventei, kurioje daugelis naudojasi proga išdaigai bendruomenei, o tuo metu taip ir buvo, nes tariamai buvo išleistas XNUMX pataisų rinkinys, kuriame buvo naudojami šablonai, klasės paveldėjimas ir C++ funkcijų perkrovimas.

Mano nuomone, C++14 yra „minimali“ versija, turinti pagrįstą metaprogramavimo palaikymą ir daugiausiai be ankstesnių versijų tipų (C++11 turėjo daugiausia, tačiau C++14 užpildo kai kuriuos pagrindinius trūkstamus elementus). Tačiau, mano nuomone, C++20 tikrai yra didžiausias žaidimo keitiklis; Nors ankstesnės versijos galėjo atlikti daugybę SFINAE įsilaužimų, jos taip pat davė visiškai nenaudingus klaidų pranešimus.

„Linux“ branduolyje atliekame daug metaprogramavimo, įdiegtų naudojant dažnai tikrai siaubingus makrokomandos triukus. Jų taip pat praktiškai neįmanoma derinti. Paimkime uaccess.h tipo įsilaužimų pavyzdį, kai kuriuos iš jų sukūriau ir parašiau. C++ programoje skirtingi atvejai ir atvejo teiginiai gali būti suskirstyti į atskirus šablonų egzempliorius, o pasitelkus šiek tiek išradingumo taip pat galima griežtai taikyti tokius dalykus kaip vartotojo erdvės rodyklės ir branduolio vartotojo erdvės rodyklės, taip pat jau pažymėtos vartotojo erdvės rodyklės, palyginti su tomis, kurios nėra. jau nekalbant apie paprastą 32 bitų vartotojo erdvės tipų atvejį 64 bitų branduolyje ir endian konvertavimo taikymą.

Dabar beveik po 6 metų Hansas Peteris Anvinas, pagrindinis „Intel“ branduolio kūrėjas ir projektų, tokių kaip syslinux, klibc ir LANANA, kūrėjas, ėmėsi iniciatyvos tęsti diskusiją. Pasak Anvin, nuo 1999 m. C ir C++ kalbų kūrimo pažanga buvo reikšminga, o C++ kalba pasirodė esanti tinkamesnė už C operacinės sistemos branduolio kūrimui.

Anvin mini tas funkcijas, kurioms anksčiau reikėjo konkrečių plėtinių iš GCC, dabar gali būti lengvai įdiegtas standartine C++, ir daugeliu atvejų C++ naudojimas pagerins infrastruktūrą nereikės visiškai keisti kodo.

Be to, Siūloma naudoti bent C++ 14 specifikaciją, kuri apima metaprogramavimo įrankius, ir skatinama naudoti C++ 20 specifikaciją, kuri įveda palaikymą koncepcijoms, kurios gali sumažinti klaidų dažnį.

Teigiama, kad C++ yra geresnis nei Rust, kadangi pastaroji sintaksė labai skiriasi nuo C kalbos, dabartiniams branduolio kūrėjams yra neįprasta ir neleidžia laipsniškai perrašyti kodo. C++ kalbos atveju C kalbos kodo dalis galima versti palaipsniui, panašiai kaip C kodas gali būti sudarytas kaip C++.

Nors Linux branduolys visų pirma yra C kodas su įvairiomis dalimis, parašytomis montuojant ir didėjant darbui, susijusiam su Rust palaikymu Linux branduolyje, vis dar neaišku, ar yra pakankamai svarbos, kad tai būtų realybė, atsižvelgiant į galimybę pamatyti Linux branduolio C kodą. ateityje konvertuoti į C++.

pagaliau jei esi domina sužinoti daugiau apie tai, išsamią informaciją galite patikrinti sekanti nuoroda.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.