Greg Croa-Hartman og Case Cooks mening om promovering af Rust i Linux-kernen.

Greg Kroah-Hartman, der er ansvarlig for vedligeholdelsen af den stabile version af Linux-kernen, har udtalt sig til fordel for udviklingen af nye komponenter i kernen på Rust-sprog. Som den person, der har været i kontakt med alle oplysninger om fejl og sårbarheder i Linux-kernen i de seneste 15 år, hævder han, at de fleste fejl i kernen skyldes uovervejede egenskaber ved C-sproget (corner case), som helt udelukkes i kode skrevet på Rust.

Ved at bruge Rust vil problemer som hukommelsestilgang efter frigivelse, delvis bufferoverløb, forkert frigivelse af ressourcer ved fejlbehandling og glemte tjek af returfejlkoder kunne blive fortid, hvilket vil give vedligeholdere mulighed for at fokusere på reelle fejl som tilstande med kapløb og logikproblemer, i stedet for at blive distraheret af småting under gennemgang.

Den eksisterende ældre kode på C-sprog vil forblive, men for ny kode og nye drivere vil integrationen af Rust markant kunne forbedre kvaliteten. Implementeringen af Rust vil også muliggøre en bedre strukturering af de interne API'er i kernen, så risikoen for fejl i brugen af det interne API næsten bliver elimineret — der er blevet ophobet for mange komplekse og forvirrende API'er i kernen, hvilket skaber en stor byrde for vedligeholderne i deres arbejde med at sikre, at disse API'er bliver brugt korrekt. I takt med udviklingen af Rust-bindings får vedligeholdere mulighed for at genoverveje og rengøre API'erne, hvilket vil være til gavn for alle, inklusive dem, der bruger C-sprog.

Greg betragter ikke Rust som en "sølvkugle", der kan løse alle problemer i kernen, men dette sprog vil bestemt hjælpe i mange situationer. Støtten til Rust vil også imødekomme behovet hos driverudviklere, som håber på et værktøj, der kan gøre det muligt at skrive kode til deres udstyr og udelukke mange typer fejl. Når det kommer til blanding af flere sprog, ser Greg ikke dette som et stort problem; ifølge ham har kerneludviklere tidligere håndteret mere komplekse opgaver, og der er ingen grund til at afvise at bringe nye gode ideer ind i kernen, der kan sikre projektets succes i de næste 20+ år.

Til diskussionen deltager også Kees Cook, tidligere hovedsystemadministrator for kernel.org og leder af Ubuntu Security Team. Kees præciserede, at det ikke handler om at omskrive eksisterende kode i kernen, men om at muliggøre brugen af Rust til at skabe nye drivere og subsystemer. Anvendelsen af Rust til ny kode vil ikke kun reducere antallet af fejl i hukommelsen, men også forkorte udviklingstiden. Udviklingshastigheden stiger på grund af reducerede omkostninger til fejlfinding og de strenge garantier, som sproget tilbyder, hvilket muliggør tidlig fejlidentifikation under kodningsprocessen, endnu før produktet testes.

Effektiviteten af taktikken med at anvende Rust for at forbedre kvaliteten af ny kode er allerede blevet demonstreret af Google på Android-platformen. Det er vist, at den primære kilde til sikkerhedsproblemer er ny kode, og at fokus bør være på at forbedre dens kvalitet. For gammel kode er der en eksponentiel afhængighed af sikkerhed fra tiden (for eksempel har 5-årig kode i gennemsnit 3,4 gange lavere sårbarhedstæthet end ny kode).

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster