what is the biggest wrong with C?
Memory Safety
What Is Memory Safety?
Program executions වෙනකොට වැරදි මතකයකට (invalid memory) ඇතුල් වෙන්න බැ. එහෙම ඇතුල වීම Memory violations විදියට අපි හදුන්වා දෙනවා.
Violations :
- use after free
- null pointer dereference
- using uninitialized memory
- double free
- buffer overflow
මේ Memory violations ,
- programs unexpectedly crash වෙන්න.
- අපේක්ෂිත හැසිරීම (intended behavior) ඇතිවෙන්න exploit කිරීම.
- information leakage ඇතුළු memory ආශිත bugs
- arbitrary code execution
- remote code execution
වලට හේතු වෙනවා.
Microsoftලගේ vulnerabilities වලින් ~70% ඇතිවෙන්නේ memory safety issues නිසා. (මොනවා උනත් දුපත් microsoft පව් නේ ද?)
Why Rust?
Rust කියන්නේ modern systems programming language type-safe හා memory-safe තියෙන්න. Rust වල තියෙන මේ safety guarantees නිසා compile time වලදී thread-safe තියෙනවා කියලා සලකනවා. මේ නිසා Rust පහත දේවල් වලට විශේෂයෙන් හොදයි.
- untrusted input safely processes කිරීමට.
- performance improve කරන්න parallelism පාවිච්චි කරන්න.
- isolated components සමග පවතින (existing) codebase ඒකාබද්ධ (integrating) කරන්න.
Cargo
Rust වල තියෙන ප්රදාන වාසියක් තමයි central package management කියන්නේ. cargo build
වලින් ඔයාට ඕනි කරන dependencies සේරම ටික download කරලා compile ලුත් කරලා ඔයාගේ ඔයාගේ code link කුත් කරලා දෙනවා. ඔව් ටිකක් npm / yarn වගේ හුකම Go ලාගේ go build
වගේ. C/C++ වල නම් dependencies ඔයාට manually download කරල install කරන්න ඕනි නැත්නම් make ලියලා හෙන නැටුමක් නටන්න ඕනි.
Projects
Web browser
Operating systems
Other
- exa
- Microsoft Azure IoT Edge
- OpenDNS
- Tor
- TiKV
- Wargroove
- Xi
- Deno
- Linkerd 2.x
- TerminusDB
- Discord
>> Don't forget to say hello to the search box for further details.