Yeni bir sistem: Redox

Katılım
13 Haz 2018
Konular
1,096
Mesajlar
5,097
Puanları
2,599
Daha fazla  
Yaş
39
Adım
Öznur
Cinsiyet
Kadın
Cihaz
iPhone 11
1638582432962.png

; güvenlik, kararlılık ve yüksek performansa odaklanan dilinde yazılmış UNIX-benzeri mikrokernel bir işletim sistemidir. Redox güvenli, son kullanıcıya uygun ve özgür olmayı amaçlamaktadır.

Redox; MINIX, Linux ve BSD'den esinlenilerek yazılmıştır. Yapısal olarak GNU ve BSD'ye benzerdir fakat Redox'u onlardan ayıran şey Rust gibi bellek güvenliğine sahip bir dille yazılmış olmasıdır.

Redox altında dağıtılan açık kaynak ve özgür bir projedir.

Neden yeni bir işletim sistemi?

Dışarıda birçok işletim sistemi varken neden onlara katkıda bulunmak yerine yeni bir işletim sistemi yapıyorsunuz?

Redox topluluğu, mevcut projelerin yetersiz kaldığına ve hedeflerimize sıfırdan inşa edilmiş yeni bir projeyle en iyi şekilde hizmet verdiğine inanıyor.

Mevcut 3 projeyi ele alalım. (UNIX-like olarak)
Linux

Linux çekirdeği dünyanın çoğu yerinde kullanılıyor. Yüksek performanslı sunuculardan, küçük gömülü cihazlara kadar... Gerçekten de çoğu Redox geliştiricisi/topluluk üyesi Linux'u ana iş istasyonları olarak kullanmaktadır. Ancak Linux, işletim sistemi geliştirmede yeni inovasyon için ideal bir platform değildir.
  • Sonsuza kadar kalan eski parçalar: Eski sistem çağrıları sonsuza kadar kalır, uzun süredir satın alınamaz donanım sürücüleri çekirdekte zorunlu parçalar olarak kalır. Devre dışı bırakılabilirken, bunları çekirdek alanında çalıştırmak gereksizdir ve sistem çökmeleri, güvenlik sorunları ve beklenmeyen hataların kaynağı olabilir.​
  • Büyük kod tabanı: Katkıda bulunmak için, sadece çekirdekte yaklaşık 25 milyon kod satırına uyacak bir yer bulmanız gerekir. Bunun nedeni Linux'un yekpare mimarisidir.​
  • İzin vermeyen lisans: Linux, GPL2 kapsamında lisanslanır ve çekirdeğin içindeki diğer özgür yazılım lisanslarının kullanılmasını önler.​
  • Bellek güvenliği eksikliği: Linux zaman boyunca bellek güvenliği ile ilgili çok sayıda sorun yaşadı. C iyi bir dildir, ancak böyle bir güvenlik açısından kritik sistem için C'nin güvenli bir şekilde kullanılması zordur.​

BSD

BSD'ye daha yakın bir felsefeye sahip olduğumuz doğrudur. BSD topluluğu son 20 yılda birçok yeniliğe öncülük etti. Hapishane ve ZFS gibi şeyler daha güvenilir sistemler sağladılar ve diğer işletim sistemleri hala yetişiyor.

Bununla birlikte, BSD de ihtiyaçlarımızı karşılamıyor:
  • Hala yekpare bir çekirdeği var. Bu, tek bir geri zekalı sürücüsünün çökebileceği, askıda kalabileceği veya en kötü durumda sistemde hasara neden olabileceği anlamına gelir.​
  • Çekirdekte C kullanımı, bellek güvenliği sorunlarına sahip kod yazmayı olası kılar.​

Yeni bir sisteme duyulan ihtiyaç

Doğruyu söylemek gerekirse, bir şeyleri kendimiz yeniden tasarlamayı/yazmayı seviyoruz. MINIX 3 kaynak kodunda değişiklik yapmak istediğimiz çok sayıda yer var, o kadar çok ki belki de Rust'ta yeniden yazmak en mantıklı olanı.

Bir programın tüm bölümlenmiş dosya sistemi denetleyebileceği URL'lere dayalı farklı modeli

Sürücülere dosya sistemleri gibi arayüz ve özellikler sağlamak için arayüze sahip farklı sürücü modeli network: audio:

TFS uygulaması devam eden farklı dosya sistemi

Çoğunlukla Rust ile yazılmış kullanıcı alanı

, yeni bir GUI

Neden Rust?

Bir işletim sistemi neden Rust'ta yazılır ki? Neden Rust'ı kullanıyorsunuz?

Rust'ın çok büyük avantajları vardır, çünkü işletim sistemleri için güvenlik önemlidir. Aslında çok fazla.

İşletim sistemleri bilişimin bu kadar entegre bir parçası olduğundan, çok güvenlik açısından kritik bir bileşendir.

Örneğin: Linux, BSD, Glibc, Bash, X vb. Rust, bellek güvenliğini statik olarak zorlayarak bunu doğru yapar.

Tasarım önemlidir, ancak uygulama da önemlidir. Rust, bu beklenmeyen bellek güvenli olmayan koşullardan (güvenlik açısından kritik hataların önemli bir kaynağıdır) kaçınmaya çalışır. Tasarım çok şeffaf bir sorun kaynağıdır.

Çekirdek/kullanıcı alanı ayrımının temel tasarımı, bu noktada Unix benzeri sistemlere oldukça benzer. Fikir kabaca aynıdır: çekirdek ve kullanıcı alanını, belleği ve diğer kritik kaynakları yöneten çekirdek tarafından sıkı bir zorlama yoluyla ayırırsınız.

Ancak, bir avantajımız var: zorunluluk olan bellek ve tip güvenliği. Bu Rust'ın güçlü tarafıdır - derleme esnasında çok sayıda "beklenmeyen hata" (örneğin tanımlanmamış davranış) ortadan kaldırılır.

Rust kullanmanın sonunda daha güvenli bir işletim sistemi üreteceğini umuyoruz.

Mikro çekirdek yapısının sağladığı avantajlar nelerdir?

Mikro çekirdek yapısının oldukça fazla avantajı vardır, bunlardan birkaçı şunlardır:
Modülerlik ve özelleştirilebilirlik:

Yekpare çekirdekler yekparedir. Mikrokerneller kadar ince taneli kontrole izin vermezler. Bunun nedeni, birçok temel bileşenin çekirdekte "sabit kodlanmış" olması ve böylece çekirdeğin kendisinde (örneğin, aygıt sürücüleri) değişiklik gerektirmesidir.

Mikrokerneller doğası gereği çok modülerdir. Modülleri çalışma zamanında, karakter aralığına dokunmadan değiştirebilir, yeniden yükleyebilir, değiştirebilir, değiştirebilir ve kaldırabilirsiniz.

Modern yekpare çekirdekler, çekirdek modüllerini kullanarak bu sorunu çözmeye çalışır, ancak yine de sistemin yeniden başlatılmasını gerektirir.

Güvenlik:

Mikrokerneller şüphesiz monolitik çekirdeklerden daha güvenlidir. Mikrokernellerin minimalite ilkesi, tüm bileşenlerin yalnızca gerekli işlevselliği sağlamak için kesinlikle gereken ayrıcalıklara sahip olması gereken en az ayrıcalık ilkesinin doğrudan bir sonucudur.

Yekpare çekirdeklerdeki güvenlik açısından kritik birçok hata, herhangi bir koruma biçimi olmadan çekirdek modunda sınırsız çalışan hizmetlerden ve sürücülerden kaynaklanır.

Başka bir deyişle: yekpare çekirdeklerde, sürücüler ring 0'da çalışırken kısıtlama olmadan her şeyi yapabilirler.

Daha az çökme:

Mikrokerneller ile karşılaştırıldığında, Monolitik çekirdekler çökmeye daha müsaitlerdir. Monolitik çekirdekte yanlış hamle yapan bir sürücü tüm sistemi çökertebilirken, bir Mikrokernel ile sistemin herhangi bir çarpışmayı güvenli bir şekilde ele alabilmesini sağlayan endişeler arasında bir ayrım vardır.

Linux'ta genellikle sürücülerin kötü işaretçileri yüzünden Dereferencing hataları görüyoruz, bu da "Kernel Panic" denilen olaya neden oluyor.

S.S.S

Redox'un desteklediği mimariler nelerdir?

Cevap: x86_64 ve ARM (Beta aşamasında)

Redox'un cihazlara driver desteği ne durumda?

Cevap: Redox şimdilik şunları destekler; Tüm x86_64 CPU'lar, VBE destekli grafik kartları (son on yıldaki tüm Nvidia, Intel ve AMD kartlarda bu vardır), AHCI diskleri, E1000 veya RTL8168 ağ kartları, Intel HDA ses denetleyicileri ve PS/2 öykünmeli fare ve klavye.

Redox'un dosya sistemi, kabuğu ve ekran sunucusu nelerdir? (Bir UNIX sistemin temel parçaları)

Cevap: Dosya sistemi olarak , kabuk olarak , ekran sunucusu olarak ise kullandık.

--------------------------------------------------------------------------------

Redox adlı UNIX-like yepyeni bir işletim sistemini kısaca özetledim. Buradaki yazıların çoğu ve 'un orijinal sitesindeki açıklamaların çevrilip düzenlenmiş halidir.​
 
Geri
Üst