( BaT | 2021. 04. 17., szo – 17:44 )

És de: keress rá az LLVM stack probe-ingra és a stack overflow problémára.

Olvasd el újra az eredeti mondatot, aminek csak a második felét idézted be. A bináris létre sem jön, mert a fordító elszáll hibával, egy nem létező binárist pedig nem lehet futtatni, így nem is okozhat hibát.

Kettős mérce. A kódok auditálásával és tesztelésével a C kódok bajait is meg lehet fogni. De azt nem, mert csak.

A lényeg a mennyiségen van. A világ összes C vagy Rust kódja vajon hány nagyságrenddel több, mint egy Rust vagy C fordító kódja?

Perpetuum mobile á la Rust? A hibás validáló automatizmus automatikusan validálja önnönmaga működését?

Nem az automatizmus validálja önmaga működését, hanem annak a használata. Pl. ha van egy unit tesztem ami 100x sikeresen lefutott de 101x alkalommal hibára futott, akkor vagy a kódban történt olyan változtatás, vagy a tesztben van olyan hiba, ami miatt a teszt elhasalt. De ha kiderül, hogy a tesztben van a hiba, akkor nyilván a tesztet kell javítani, nem a kódot. Ezáltal a teszt még jobb lesz, még megbízhatóbban talál meg hibákat a tesztelt kódban.

Az a bizonyos automatizmus sem véd meg mindentől, ld. feljebb a memóriakezelési zríket.

Nem is kell megvédenie mindentől. Az is előrelépés, ha csak a gyakori hibáktól véd meg.

Elég szomorú, ha egy tárgyat hibáztatunk azért, mert a markolata nem passzol a felhasználó kezébe, vagy mert a felhasználó nem rögzítette a fejet.

Ha a markolat csúszós anyagból készült, vagy nem megfelelő a textúrája, az bizony az eszköz, illetve a gyártó hibája. A fej rögzítése szintén nem a felhasználó dolga, hanem a gyártóé.

Egyfelől nem csak utasszállító repülőgépek vannak. Ha már mindenáron erőltetjük a repülős analógiát, akkor ez kb. az lenne, hogy tiltsuk be a sárkányrepülőket és a légcsavarosakat, csak az utasszállítók repülhessenek, mert abban van a pilótákat felülbíráló automatika.

Ha egy hobbi pilóta kisgépe lezuhan, az legfeljebb neki és a családjának, barátainak fáj. Ha egy utasszállító lezuhan, az még érint pár száz embert, akik azért fizettek, hogy biztonságosan eljussanak A-ból B-be. Egy baleset csökkenti az utazóközönség bizalmát, ezáltal az utazási kedvét, arról már nem is beszélve, hogy jelentős anyagi kárral jár. Ezért a légitársaságok érdeke, hogy a légiközlekedést minél biztonságosabbá tegyék, különben a megszűnés fenyegeti őket.

Ugyanígy ha egy hobbiprogramozó kódjában van egy memóriakorrupciós hiba, az kis számú felhasználót fog érinteni és kis kárt fog okozni. Viszont ha a Linux kernelben van memóriakorrupciós hiba, az egyrészt komoly károkat okozhat rendszerek feltörése által, másrészt magas költsége lehet a hiba elhárításának. Ezért a Linux kernelre építő cégek (kb. a világ összes cége) érdeke, hogy a Linux kernelben kevés legyen a memóriakorrupciós hiba.

Legyen csak a nagy cégeké az ég.

Erre most is van példa, ellenőrzött légtérbe nem repülhet be akárki. De ez nem zárja ki, hogy mások is repülhessenek.

Ugyanígy ha a Linux kernelben lesz lehetőség Rustban programozni, az nem fogja kizárni, hogy továbbra is C-ben programozz.