Rust veya C# kullanın, C++'ı bırakın

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
velociraptor
Yottabyte4
Yottabyte4
Mesajlar: 46599
Kayıt: 14 Mar 2006, 02:33
cinsiyet: Erkek
Teşekkür etti: 4778 kez
Teşekkür edildi: 4021 kez

Rust veya C# kullanın, C++'ı bırakın

Mesaj gönderen velociraptor »

Resim

Five Eyes kuruluşları programlama dillerinde bellek güvenliği konusunda uyarıyor. Yaygın bellek güvenliği hataları, arabellek taşmaları, başlatılmamış bellek, tür karışıklığı ve serbest kullanım sonrası kullanım koşulları gibi tehlikeli güvenlik açıklarına yol açabilir. Saldırganlar, tüm işletim sistemini tehlikeye atmak, kullanıcıların verilerini çalmak veya çalıştırmak için bu hatalardan yararlanabilir. Savunmasız sistemlerde kötü amaçlı kodlar En önemlisi, bu tür hatalar günümüzde yazılım nakliyesinde en yaygın olanlardır.

Bellek güvenliğiyle ilgili sorunlar, Beş Göz olarak bilinen dünyanın en önemli istihbarat ve siber güvenlik teşkilatları için ciddi bir endişe kaynağı haline geldi.ABD Siber Güvenlik ve Altyapı Güvenlik Ajansı (CISA), NSA, FBI ve FBI tarafından ortaklaşa yayınlanan yeni bir makale Avustralya, Kanada, İngiltere ve Yeni Zelanda'daki diğer güvenlik kurumları, yeni ve etkili bellek güvenliği kodlama standartlarına büyük bir geçiş yapılması çağrısında bulunuyor.

CISA, bu güvenlik açıklarının yazılım sektörü için büyük bir sorun teşkil ettiğini, zira üreticilerin müşterilerin yazılımlarına uygulamak zorunda kalacakları kesintisiz güvenlik güncellemelerini yayınlamaya zorladıklarını belirtiyor. "Tasarım gereği güvenli" olan MSL'ler bellek güvenliği açıklarını ortadan kaldıracak, dolayısıyla yazılım Üreticilerin Rust, C#, Go, Java ve diğer modern kodlama platformlarını hızla benimsemek için C, C++ ve diğer "savunmasız" dillerden uzaklaşması gerekiyor.
Microsoft, bellek güvenliği hatalarının 2006'dan bu yana Windows'ta düzeltilen CVE listesindeki güvenlik açıklarının %70'ini oluşturduğunu kabul etti ve Google, yalnızca 2021'de Chromium projesinde keşfedilen sıfır gün güvenlik açıkları için benzer bir rakam (%67) verdi.
Uygun bir şekilde Bellek Güvenli Yol Haritaları Örneği olarak adlandırılan yeni belge, C-Suite yöneticileri ve teknik uzmanlar arasında bellek güvenliği programlamasını teşvik etmeyi amaçlıyor. Yazılım şirketleri, bellek güvenliği kusurlarını, CISA ve Five'ı ortadan kaldırmak için bellek güvenliği programlamasına (MSL'ler) geçişlerini hızlandırmalıdır. Göz ajansları, müşterileri ve halkı devam eden geçiş hakkında bilgilendirmek için kendi hafıza güvenliği yol haritalarını oluşturduklarını söylüyor.

CISA, bellek güvenliği açıklarının açıklanan yazılım hataları arasında en yaygın olanı olduğunu söylüyor. Bunlar, hem kötü niyetli aktörlerin hem de rakip istihbarat ajanlarının rutin olarak istismar ettiği, iyi bilinen ve yaygın kodlama hatalarından oluşan bir sınıftır.

Rust, yazılım şirketleri arasında popülerlik kazanıyor ve Microsoft, Linux topluluğu ve Google gibi endüstri devleri, devasa kod tabanlarının birçok bölümünü yeni güvenlik odaklı dile dönüştürüyor. CISA ve diğer kurumlar artık her fırsatta "üst düzey yöneticileri" teşvik ediyor. yazılım şirketi, hem yeni hem de mevcut kod tabanları için MSL'leri etkili bir şekilde uygulayacak tasarım ve geliştirme uygulamalarına öncelik vererek müşteriler için riskleri azaltıyor.

Son yıllarda Mark Russinovich gibi teknoloji liderleri C ve C++'dan Rust'a toplu geçiş için baskı yaptı ancak herkes aynı fikirde değil . C++'ı yaratan Bjarne Stroustrup, doğru programlama uygulamalarının "klasik"te tür ve bellek güvenliğini sağlayabileceğini söyledi. Stroustrup ayrıca Rust kodunun bile güvenli olmayan bir şekilde yazılabileceğini kaydetti.

Danimarka doğumlu bilgisayar bilimcisi Bjarne Stroustrup, 1980'li ve 90'lı yıllarda AT&T Bell Laboratuarlarında araştırmacı iken son 25 yılın tartışmasız en etkili programlama dili olan C++'ı tasarladı. Bütün bunlara rağmen C++ tartışmalıdır. Dil, onu kullanan milyonlarca programcı tarafından büyük ölçüde sevilmiyor; bunun nedeni, büyük ölçüde öğrenilmesi ve kullanılmasının oldukça zor olması ve Stroustrup'un tasarımının, ifade özgürlüklerini en üst düzeye çıkarmak adına ciddi programlama hataları yapmalarına izin vermesidir. Stroustrup bugün Texas A&M Üniversitesi'nde bilgisayar bilimi profesörüdür.

Resim

Kaynak:
https://www.techspot.com/news/101102-us ... ition.html
Kullanıcı avatarı
root@localhost
Megabyte4
Megabyte4
Mesajlar: 1648
Kayıt: 31 Ağu 2022, 17:51
cinsiyet: Erkek
Teşekkür etti: 1841 kez
Teşekkür edildi: 1193 kez

Re: Rust veya C# kullanın, C++'ı bırakın

Mesaj gönderen root@localhost »

Bırakalım da istedikleri olsun.

C++ mükemmel bir dildir.

Benim açımdan konu tartışmaya kapalı.

Resim
Kullanıcı avatarı
velociraptor
Yottabyte4
Yottabyte4
Mesajlar: 46599
Kayıt: 14 Mar 2006, 02:33
cinsiyet: Erkek
Teşekkür etti: 4778 kez
Teşekkür edildi: 4021 kez

Re: Rust veya C# kullanın, C++'ı bırakın

Mesaj gönderen velociraptor »

:-)
Kullanıcı avatarı
esatiz
Gigabyte3
Gigabyte3
Mesajlar: 2648
Kayıt: 30 Eki 2020, 11:18
cinsiyet: Erkek
Teşekkür etti: 329 kez
Teşekkür edildi: 270 kez

Re: Rust veya C# kullanın, C++'ı bırakın

Mesaj gönderen esatiz »

Tercih meselesi... Temel bellek yönetimini bilen de bilmeyen de C++ kodlayınca sorunlar ortaya çıkabiliyor

Özellikle Java ya da C#'dan gelenler new kullanıp delete etmeyince sorunlar başlıyor. Çünkü bu dillerde Garbage Collector var ama C++'da yok. Heap(yığın, öbek) memory'den ayırdığımız yerleri o diller otomatik olarak kontrol ediyor, kullanılmıyorsa siliyor.

C++'da yazdığınız kodlarda memory leak var mı yok mu diye kontrol etmek isterseniz şu verdiğim fonksiyonları deneyin. Kodlarınız bu fonksiyonlar arasında bir blokta olsun, bloktan(scope) çıkınca sızıntı varsa hemen listelenir.

Kod: Tümünü seç

#include <Windows.h>

_CrtSetReportMode(_CRT_WARN,   _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_WARN,   _CRTDBG_FILE_STDERR);
_CrtSetReportMode(_CRT_ERROR,  _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_ERROR,  _CRTDBG_FILE_STDERR);
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE); 
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);

{
    // test kodlarınız burada olsun
}

_CrtDumpMemoryLeaks();
mesela o scope'a şunu yazarsanız
int* p = new int();
çıktı şöyle bir şey olacaktır

Kod: Tümünü seç

Detected memory leaks!
Dumping objects ->
{155} normal block at 0x0000000000553D20, 4 bytes long.
 Data: <    > CD CD CD CD
Object dump complete.
düzeltmek için heap'ten ayırdığınız yeri silmeyi unutmayın. Zor değil...
int* p = new int();
delete p;
Cevapla