Linus Torvalds, C++'ı Linux Çekirdeğine eklemeyi düşünebilir mi?

Linustorvalds

Linus Benedict Torvalds, Linux çekirdeğinin gelişimini başlatması ve geliştirmesiyle tanınan bir yazılım mühendisidir.

birkaç hafta önceBir teklifle ilgili haberleri burada blogda paylaşıyoruz yaşanabilirliği ile ilgili olarak uzun yıllar sonra yeniden canlandırılan Linux çekirdeğinde C++ kodunun benimsenmesi, 2018 yılında şaka amaçlı başlatılan bir teklif.

La teklif yeniden sunuldu Çekirdek posta listelerinde, ancak ciddi bir şekilde Hans Peter Anvin, Önemli bir Intel çekirdek geliştiricisi ve geliştiricisi, C++'ın Linux'ta üçüncü programlama dili olarak dahil edilmesinin fizibilitesini gündeme getirdi.

Linux C++
İlgili makale:
Linux'ta C++ konusu 6 yıl sonra yeniden canlanıyor

tanıtımıyla Linux'ta Rust, birçok geliştirici ve topluluğun bir kısmı harika bir yol gördü Linux'ta önde, artı aynı zamanda Diğer programlama dillerini uygulamak için çeşitli "fikirler" ortaya çıktı, C++'ı uygulama teklifi bir kez daha birçok Çekirdek geliştiricisi arasında bir tartışma başlattı ve hatta Linus Torvalds bir kez daha mümkün olan en pasif ve anlaşılır şekilde Linux'un neden C++ için hazırlanmadığını açıklıyor (alaycı).

Rust'un Linux'ta bir an bile kabul edilmediğini unutmamalıyız.Linux'taki Rust projesi (Linux için Rust), çekirdeğin ana dalına kabul edilmeden önce bizzat Linus Torvalds tarafından bir dizi revizyona tabi tutulduğundan ve Linux'un babasının yumuşak bir şey olmadığını belirtmekte fayda var. Revizyon yaparken ve önerilen değişiklikler hakkında yorum yaparken.

Makaleyi geliştirmeden önce şunu belirtmeliyim ki, makalenin tüm içeriği internette okuduğum bilgi ve haberlerin yorumlanmasıyla oluşturulmuş kişisel bir görüş olup, bu nedenle okuyucu olarak sizin yorumunuzdan farklı olabilir. var ve burada yorumlarda paylaşmak isterseniz memnuniyetle okumaya zaman ayıracağım.

Şimdi C++'ın üçüncü programlama dili olarak teklif edilmesi durumunda, iddia edilen davada, ve "tabii ki" diyorum Uygulamanın benzer bir dizi incelemeden geçmesi gerekirRust için olduğundan daha katı olmasa da. Ve bundan bahsetmenin gerçeği, C++ ve Linus'un küçük ama zaten çok eski bir geçmişe sahip olmasıdır.

Bahsedilmesinin nedeni C++'ın üçüncü bir Linux dili olması durumu "Sözde" bunun nedeni Linux'un babası Linus Torvalds'ın C++'a olumlu bakmamış olması ve olmayacak olmasıdır., çünkü her fırsatta birden fazla kez C++'ın "berbat bir dil" olduğundan bahsetmişti.

BahsedilerekC++ kullanımının dikkate alındığı bazı anlar Linux'ta ve Linus Torvalds yalnızca anlaşmazlığını ifade etmekle kalmadı, ancak neden "Linux için bir seçenek olmadığını" belirtmek için C++'a karşı "kesin bir nefret" var, en sonunculardan biri incelemeler sırasındaydı Rust uygulamasının bir Google gönderisiyle ilgili bir tartışma sırasında, C++'ın dahil edilmesinden bir öneri olarak bahsedildi:

"Bunun çözümü basit: Rust yerine C++ kullanın"

Hangisine Linus Torvalds gülmeden edemedi ve yanıtı şu oldu:

"YÜKSEK SESLE GÜLMEK". «C++, C'nin hiçbir problemini çözmez ve sadece işleri daha da kötüleştirir, gerçekten çöp bir dildir.

C'yi sevmeyen insanlar, size gerçekten değerli şeyler sunan bir dili tercih edin. Memory-safe ve "that" dilleri gibi C'nin bazı tuzaklarından kaçınabilir veya dahili GC "çöp toplama" desteğine sahip diller bellek yönetimini kolaylaştırabilir. "C++ tüm yanlış sorunları çözüyor ve 'çekirdeği C++'da yeniden yazın' diyen herkes bunu bile bilmeyecek kadar cahildir."

Linus Torvalds her zaman C++'ı "atık" ve "işe yaramaz" olarak değerlendirdi Çünkü “C++, C dilinin sorununu hiçbir şekilde çözemez, yalnızca işleri daha da kötüleştirir.” Torvald'lar C dilini sevmeyenlerin gerçekten değer katabilecek bir dil arayabileceğine inanıyorum. Örneğin hafıza açısından güvenli olan ve C'nin neden olduğu gizli tehlikeleri (Rust gibi) önleyebilen diller.

C++ ile karşılaştırıldığında, Linus neden C'nin standart tercihi olduğunu belirtti:

Linus, "İnsanlar C'nin yol açtığı tehlikelerden bahsederken, aynı zamanda C'nin neden bu kadar güçlü olduğunun bir kısmından da bahsediyorlar: 'Tüm bu düşük seviyeli şeyleri verimli bir şekilde uygulamanıza olanak tanıyor'' dedi. Ayrıca, GC çoğu durumda programlamayı basitleştirmek için iyi olsa da, genellikle düşük seviyeli sistem programlamada yapılabilecek bir şey değildir.

Aslında e-posta listelerinde bundan bahsediliyor 1992'de bir noktada C++'ın Linux'ta kullanılmasına yönelik bir girişimde bulunuldu. (Linux'un doğuşundan aşağı yukarı bir yıl sonra), ancak bu yalnızca bir "girişim" olarak kaldı, çünkü Torvalds Bu girişimden bahsedin:

Bu korkunç. İnanın bana: C++ ile çekirdek kodu yazmak KESİNLİKLE aptalca bir fikir.

Gerçek şu ki C++ derleyicileri güvenilmezdir. 1992'de durum daha da kötüydü ama bazı temel gerçekler değişmedi:

– C++'daki tüm istisna işleme olayı temelde bozuk. Çekirdekler için "özellikle" kırılmıştır.
– Bellek tahsisi gibi şeyleri arkasına saklamayı seven herhangi bir derleyici veya dil, bir çekirdek için kesinlikle iyi bir seçim değildir.
– nesne yönelimli kodu (dosya sistemleri vb. için kullanışlıdır) C dilinde “C++ çöpü olmadan” yazabilirsiniz.

Bu ve buna benzer birçok yorum göz önüne alındığında, Linus Torvalds'ın neden C++'ı berbat bir dil olarak gördüğünü biraz anlayabiliriz.tarafından kullanılan dili eleştirmenin yanı sıra, «düşük kaliteli programcılar, onunla tam ve mutlak çöp üretmenin çok çok daha kolay olduğu noktaya.» Ve bu Görünüşe göre C++ bir noktada Torvalds'ın ağzında acı bir tat bırakmıştı., çünkü eleştirilerinizde C++'ı denemeye çalışıyorum gibi görünüyor Bir e-postada bahsettiğim:

"C++ gerçekten kötü tasarım tercihlerine yol açıyor. Her zaman STL ve Boost gibi "güzel" dil kitaplığı özelliklerini ve programlamanıza "yardımcı olabilecek" diğer eksiksiz ve mutlak çöpleri kullanmaya başlarsınız, ancak şunlara neden olursunuz:

işe yaramadıklarında sonsuz miktarda acı (ve bana STL ve özellikle Boost'un istikrarlı ve taşınabilir olduğunu söyleyen herkes o kadar saçmalıklarla dolu ki komik bile değil)
"İki yıl sonra bazı soyutlamaların çok verimli olmadığını fark ettiğiniz verimsiz soyut programlama modelleri, ancak artık kodunuzun tamamı etrafındaki tüm güzel nesne modellerine bağlıdır ve uygulamanızı yeniden yazmadan bunu düzeltemezsiniz."

Dolayısıyla, yayının başlığına dönecek olursak ve Linus Torvalds'ın C++'a karşı beslediği nefretin buzdağının görünen kısmını biraz anlamışken, fazla araştırmaya gerek yok çünkü Torvalds'a göre Linux'un başka bir dile ihtiyacı yok çünkü C yeterli ve bu süre boyunca C, işine uygun dildi, öyleydi ve öyle kalacak ve Linus, sevmediği programlama dillerine, özellikle de C++'a saldırmaya devam edecek.

Ve C++'ın dikkate alınmamasının birçok nedeninden biri Linux için, istisnalara izin vermesidirRust C'yi sevmezken çekirdek programlamada buna izin verilemez Yakalanmayan bir istisna, işletim sistemini devre dışı bırakabilir ve çekirdeğin arızalanacağını bile düşünmemelisiniz.

Y Torvalds'ın C++'ı düşünmeye geldiği göz önüne alındığında "varsayılan" olarak linux üzerinde, bu bir faydadan daha fazlası olabilir üçüncü veya daha fazla programlama dilinin dahil edilmesi, sorun haline gelirçünkü örneğin uygulanmasıyla Rust'ta şu anda bazı sorunlar ortaya çıkmaya başlıyorhakkında bir yayında daha önce bahsettiğimiz gibi Rust'un Linux'taki mevcut durumu.

Linux'ta Rust sürücüleri
İlgili makale:
Linux'ta Rust: gelişmeler, zorluklar ve mevcut durum

Makalede bahsettiğimiz güncel zorluklar arasında bunlardan biri de «kod için daha fazla incelemeci işe alın geliştirilmektedir" ayrıca GCC tabanlı Rust derleyicisinin ilerlemesi yavaşladı, fazlaÇekirdeğin büyük bölümlerini Rust'ta yeniden yazma şansları çok az kısa vadede ve hatta çok düşük ihtimalle bunu her türlü hataya ve özellikle uyumluluk sorununa yol açmadan yapabilirler.

Bu sorunlar ise bunlar Rust'a yansıyor bunları C++ veya başka bir dilde ekliyoruz Linux'a eklenebilen, Çekirdek gelişimi büyük ölçüde etkilenecektir ve bununla başlangıçta her iki ayda bir sürüm alamayacağız, bunun yerine daha uzun sürümler arasındaki geliştirmeler olacak, daha fazla geliştiriciye, daha fazla gözden geçirene ihtiyaç duyulacak ve tüm bunlar daha fazla çabaya dönüşecek.

Kuşkusuz, C++'ın üçüncü programlama dili olarak tanıtılması yaklaşımı düşünülmekten çok uzaktır ve daha önce de belirttiğimiz gibi, bunun önündeki en büyük engellerden biri de Linus Torvalds'ın kendisidir.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.