BareMetal
Geliştirici(ler) | Return Infinity |
---|---|
Son kararlı sürümü | 1.0.0 (13 Kasım 2017[1]) | )
Kaynak türü | Açık-kaynak |
Lisans | BSD Lisansı[2] |
Çekirdek türü | Exokernel, SASOS |
Platform desteği | x86-64 |
Programlama dili | Assembly |
Kullanıcı alanı | Bilinmiyor |
Kullanıcı arayüzü | Komut satırı |
Web sitesi | returninfinity.com |
Pazarlama hedefi | HPCler, HTC, Bulut bilişim |
Dil sayısı | İngilizce |
BareMetal, Return Infinity tarafından oluşturulan exokernel tabanlı tek adres alanlı işletim sistemidir.
"Just enough operating system" (JeOS - "Yeterince işletim sistemi") yaklaşımıyla[3] minimum ayak izi[4][5] ile yüksek performanslı bilgi işlem elde etmek için Assembly dilinde yazılmıştır. İşletim sistemi, hafif çekirdek (LWK - lightweight kernel) olarak tasarlanması nedeniyle öncelikle bulut bilişim veya HPCler için sanallaştırılmış ortamlarını hedeflemektedir. Bir unikernel olarak kullanılabilir.
Assembly ile yazılmış başka bir işletim sistemi olan MikeOS'tan[2] esinlenilmiştir ve C veya C++ ile yazılmamış veya Unix benzeri çekirdeklere dayanmayan yeni bir işletim sistemi örneğidir.[6]
Genel bakış
Donanım gereksinimleri
- AMD/Intel tabanlı 64-bit bilgisayar
- Memory: 4 MB (her ek çekirdek için 2 MB ilave)
- Hard Disk: 32 MB[7]
BareMetal üzerinde çoklu görev modern işletim sistemleri için alışılmadık bir durumdur. BareMetal, tüm CPU çekirdeklerinin yokladığı dahili bir çalışma kuyruğu kullanır. İş kuyruğuna eklenen bir görev, sistemdeki herhangi bir CPU çekirdeği tarafından işlenir ve tamamlanana kadar yürütülür, bu da bağlam değiştirme ek yüküne neden olmaz.[8]
Programlama
Belgelenmiş bir API mevcuttur[9] ancak, felsefesine uygun olarak, işletim sistemi sistem çağrıları için giriş noktalarını zorlamaz (örneğin: çağrı kapıları veya diğer güvenlik mekanizmaları yoktur).
BareMetal işletim sistemi, en son kodu almak, gerekli değişiklikleri yapmak ve ardından Newlib C standart kütüphanesini[10] kullanarak C kodunu derlemek için bir derleme komut dosyasına (build script) sahiptir.[11]
Ring 0'da çalışmak için çoğunlukla eksiksiz bir C++11 Standart Kütüphanesi tasarlanmış ve geliştirilmiştir.[12] Bu kütüphanenin temel amacı, kütüphane düzeyinde, dikkatlice tasarlanmış sınıfların yardımıyla klasik işletim sistemlerinde kullanılan donanım bellek korumasına bir alternatif sağlamaktır.[13]
Kasım 2014'te programlara, BareMetal işletim sistemi için Rust programları yazma becerisini gösteren bir Rust programı gösterimi eklenmiştir.[14]
Ağ
TCP/IP yığını
Bir TCP/IP yığını, 1 numaralı özellik isteğiydi.[15] Ekim 2014'te lwIP'in C dilinde yazılmış bir portu duyuruldu.[16]
minIP,[17] ANSI C'de basit bir statik web sayfası sunmak için yeterli işlevleri sağlayabilen minimalist bir IP yığını, gelecekte planlanan bir x86-64 assembly yeniden yazımına hazırlık olarak temelleri öğrenmek için bir kavram kanıtı olarak geliştirilmektedir.
Kaynakça
- ^ Seyler, Ian. "kernel.asm". BareMetal OS GitHub repository. Erişim tarihi: 24 Mayıs 2017.
- ^ a b Voorsanger, Conrad (2 Haziran 2011). "Interview With Baremetal OS' Ian Seyler". OSNews. Erişim tarihi: 26 Mayıs 2014.
- ^ Seyler, Ian. "Return Infinity (home page), The BareMetal advantage". Return Infinity. Erişim tarihi: 2 Şubat 2015.
- ^ Adams, David (14 Temmuz 2010). "BareMetal OS". OSNews. Erişim tarihi: 26 Mayıs 2014.
- ^ Benchoff, Brian (27 Mayıs 2011). "64-bit OS written entirely in assembly". Hack A Day. Erişim tarihi: 26 Mayıs 2014.
- ^ Smith, Jesse (19 Temmuz 2010). "DistroWatch Weekly, Issue 363". DistroWatch. Erişim tarihi: 26 Mayıs 2014.
- ^ "BareMetal OS Requirements". Return Infinity (archived copy at Wayback Machine). 6 Eylül 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Eylül 2014.
- ^ "BareMetal OS Queue". Erişim tarihi: 28 Nisan 2015.
- ^ Seyler, Ian. "API documentation". BareMetal OS GitHub repository. Erişim tarihi: 26 Haziran 2015.
- ^ Seyler, Ian (17 Ocak 2014). "Newlib build script". BeareMetal OS Google Group. Erişim tarihi: 2 Şubat 2015.
- ^ Seyler, Ian. "newlib.sh". Build scripts for BareMetal OS and its related utilities, GitHub repository. Erişim tarihi: 2 Şubat 2015.
- ^ Lodyagin, Sergei (17 Kasım 2013). "Bare C++ library". BeareMetal OS Google Group. Erişim tarihi: 2 Şubat 2015.
- ^ Lodyagin, Sergei. "The Bare C++ library". The Bare C++ library GitHub repository. Erişim tarihi: 2 Şubat 2015.
- ^ Seyler, Ian. "Add Rust example". BareMetal OS GitHub repository (legacy version). Erişim tarihi: 18 Mart 2018.
- ^ Seyler, Ian (22 Ağustos 2013). "TCP/IP". BeareMetal OS Google Group. Erişim tarihi: 2 Şubat 2015.
- ^ Seyler, Ian (31 Ekim 2014). "BareMetal and lwIP". BeareMetal OS Google Group. Erişim tarihi: 2 Şubat 2015.
- ^ Seyler, Ian. "minIP - A minimalist IP stack written in ANSI C". BareMetal OS GitHub repository. Erişim tarihi: 24 Mayıs 2017.
Dış başlantılar
- GitHub'da BareMetal
- BareMetal OS Google Group discussion forum
İşletim sistemi ile ilgili bu madde taslak seviyesindedir. Madde içeriğini genişleterek Vikipedi'ye katkı sağlayabilirsiniz. |