Go Dili İle İşletim Sistemi Kodlanabiliyor Mu?

Go Dili internet sistemlerinde sıkça kullanılıyor diye biliyorum.Ancak birisi go ile işletim sistemi kodlayabilirsiniz dedi.Doğru mu?

Isletim sistemi kodlamaktan ne kast ettigine bagli.

Python ile isletim sistemi kodlayabiliyor muyuz? Veya C ile?

Ek olarak şunu eklemek istiyorum
Ruby ve Lisp ile C’deki gibi işletim sistemi yazabilirmiyiz ve başarılı olurmu ?

Ben de sunu merak ediyorum, niye bu sikca sorulan bir soru?

Haftada bir birileri X dilinde isletim sistemi yazilip yazilamayacagini soruyor. Nedendir?

3 Beğeni

@aib çünkü öğrendiğimiz bilgiler ile ne yapabileceğimizi merak ediyoruz.
Öğrendiğimiz proglamlama dilinin limitleri öğrenmek ve eğer başka bir dil öğrenmek niyetindeysek hangi dili seçeceğimizi belirliyoruz

Anladim.

Fakat 1) isletim sistemleri tek bir dil ile yazilmiyor.

2​) C ile yazilan kisimlari pek bir dil bilgisi gerektirmiyor.

Yani soru biraz soyle: Afrika’daki temiz su sorununun cozumunu aciklayan metin Turkce dilinde yazilabilir mi?

3​) Amac isletim sistemi yazmaksa ogreneceginiz bir sonraki dil C olmali. Degilse isletim sistemi yazilabilmesi karari etkilememeli. Cunku isletim sistemi diger yazilabilecek her seyden ayri bir yerde duruyor.

4 Beğeni

İşletim sistemi gibi bilgisayarda her işlemin çalışmasını sağlayan bir programı üstün görüyoruz

Tahmin ettim.

Fakat baska programlari calistirmaya yarayan kismi isletim sisteminin cok ufak bir parcasi.

Ironik olarak, bir dilin bu parcalari yazmaya elverisli olmasi o dilin baska isler icin ne kadar kullanissiz oldugunu gosteriyor. (En son ne zaman C ile yazilmis bir program gordunuz?)

Bu arada dil ogrenmekte bir sey yok. Isletim sistemi yazmayi planlamaya baslayabilen herhangi birinin herhangi imperatif bir dili birkac gunde ogrenebilmesi lazim.

4 Beğeni

Diller araç değil aracıdır. Herhangi yazılacak bir kodun algoritması elinizde ise hangi dil ile yazılacağı çok zor
değil.

Ayrıca işletim sisteminin tam olarak ne olduğunu bilen bir insanın şu dille yazılabilir mi diye sorması doğru değil.

Aslında bütün mesele alternatif
İnsanlar C ’ nin alternatiflerini arıyor
wxPython alternatifi tkinter

Sistem programlama seviyesinde Rust.

Ama Rust’ta sistem programlayabilen insan C’de de yapabilir zaten, gozu kapali.

Peki Python,Java,JavaScript,Ruby alernatif olabiliyormu

No, one cannot write an operation system in python . In very simple terms, operating system is a software that manages the hardware resources of the computer. Hence, it needs to run directly on top of the hardware without anything in between, this is called running bare metal.

Donanımı yönetirken herhangi bir şeye bağlı olmaması gerektiğinden bahsediyor.

C gibi programlama dilleri derlendikten sonra çalışabilmesi için bilgisayar olması yeterli.

Size tavsiyem interpreter ve compiler arasındaki farkı tam olarak anlamanızı öneririm.

Aslında konuyu tam olarak anlamanız için şuradaki tartışma kısmını okumanızı isterim.

“Hayir” cevabina kesinlikle karsi cikamamakla beraber “evet” diyecegim:

Python bir sozdizimi. Bir isletim sisteminin bootloader, HAL, VMM, scheduler kisimlarini yazan/yazabilen bir insan icin bir bu veya benzer parcalari Python sozdizimiyle yazabilecek altyapiyi kurmak zor degil.

Son derece gereksiz bir caba olmasi ve tartistigimiz sorunun bu parcalarin ne olduklari bilgisiyle bile ortadan kalkmasi ayri tabi.

1 Beğeni

C dilinde OS yazarken hiçbir standart kütüphaneyi kullanamıyoruz değil mi?

Standart kutuphaneler derken bir tane olan standart kutuphane arayuzunun muhtelif fonksiyonlarindan (/sabitlerinden/turlerinden etc.) mi bahsediyoruz, yoksa bir suru olan standart kutuphane implementasyonlarindan mi? (glibc, msvcrt, vs.)

Mevcut dizinde olmasa bile içe aktarabildigin butun modüller.

C’de modul kavrami yok. #include direktifiyle icerikleri compilation unit’e aktarilan standart header’lar var, dosya olmak veya bir dizinde durmak zorunda degiller.

Yani onlar işletim sisteminin bulunmadığı bir ortamda yoklar.

Varlar, C dili standart kutuphanenin varligini garanti ediyor.

Calismayabilirler ama. Neyin calisip calismayacagi da implementasyon detaylarina bagli, spesifiklere inmeden cevaplamak zor.

Ama memset inline _asm fonksiyonuna cozulen makrodur, NULL da ((void*)0)'dir muhtemelen ve calismamalari icin bir sebep yok.