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

වලට හේතු වෙනවා.

~70% of the vulnerabilities Microsoft assigns a CVE each year continue to be memory safety issues

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) කරන්න.
Great performance comes great responsibility.

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

>> Don't forget to say hello to the search box for further details.