İşletim sistemi yazmak için kaynak önerisi

EFEprokingo

Decapat
Katılım
5 Mayıs 2021
Mesajlar
42
Daha fazla  
Cinsiyet
Erkek
Geçen abimle konuşuyordum dedi sen OS yapamazsın bende dedim yaparım(kolay bir şey sanıyorum). Windows üzerinden yapacağım. yardım edecek hiçbir kaynak bulamadım araştırıyorum hep Linux üzerinden. Nasıl yapacağım nasıl edeceğim bir türlü yapmam lazım, arayüzü çok kalabalık olmayacak, yardım edebilir misiniz?
 
Debian özelleştirmen hayatından daha az güzel zaman harcamanı sağlar.

 
"
Türkçe kaynak bulmak imkansıza yakın. Caydırmak istemem sizi yolunuzdan ama ha deyince yapılacak bir iş değil. Bilgisayar üzerinde yapılan en zor iş olarak geçmekte işletim sistemi yazmak.

Bilginiz olması gereken konulardan sadece bazıları:
  • C, C++, Assembly veya Rust.
  • Dosya sistemleri.
  • İşlemci hakkında bilgiler, kesmeler, işlemcinin belleği nasıl yönettiği... Yazsam roman olur cinsinden. Hatta şöyle söyleyeyim, klavyede yazılan bir karakter bile işlemcinin kesme moduna girmesini sağlıyor.
  • Ağlar, sonuçta sürücülere TCP/IP desteğini sizin yazdığınız kernel sağlayacak. Sürücüler de bu kernel'e sistem çağrıları aracılığı ile ulaşacak. (Değineceğim.) Çünkü sürücüler ile işletim sistemleri, işlemcinin farklı katmanlarında çalışmaktadırlar.
  • Sürücüleri kendiniz yazmalısınız. En basit işletim sistemi için bile VGA Text Mode ile ekrana görüntü vermek için bir sürücü yazmalısınız.
  • Bu işletim sisteminin GUI kütüphanelerini kernel'e de yazabilirsiniz, veya UNIX tarzı bir işletim sistemi yazacaksanız işiniz daha kolay, X11 kullanabilirsiniz.
  • Tabii ki saf X11 kendi başına yetmeyecektir. Qt ile (tabii işletim sisteminizde çalışırsa) veya X11'in sağladığı kütüphaneler ile bir masaüstü ortamı veya pencere yöneticisi yazabilirsiniz, kolaya kaçacaksanız da KDE gibi masaüstü ortamlarını veya sadece Openbox gibi bir pencere yöneticisini tercih etmelisiniz.
  • UNIX demişken, eğer UNIX benzeri bir şeyler ortaya koyacaksanız, UNIX'in yaptıklarına benzer şeyleri implemente etmelisiniz. Örneğin UNIX'in parent-child uygulama ilişkisi gibi.
  • Bu uygulama ilişkisine de değinmişken, bu uygulama ilişkisini sağlamak için sistem çağrılarınız olmalı. fork(), exec() gibi. Linux'taki sistem çağrılarını görmek için uçbirim'e "man syscalls" yazmanız yeterli.
  • Sıfırdan çekirdek yazacaksınız, ama çekirdeğinizin C gibi bir dile desteği olmayacak, kabul edilemez. "libc" diye tabir edilen C kütüphanesini işletim sisteminizin kernelinin sistem çağrılarına göre baştan yazmalısınız. Kernel'in sistem çağrıları UNIX çağrılarıyla birebir eşitse, daha az yorucu bir iş olacaktır.
  • Kendi işletim sisteminize geliştirici çekmeniz lazım, bunun için de geliştirici araçları gerekli. Kernel için geliştirme yapılabilsin istiyorsanız, Herhangi bir C derleyicisini sisteminize port etmeniz gerekli. GCC'yi port edebilirsiniz.
  • UNIX felsefesine uygun olarak bir tane kabuk (shell) gerekli. Ya kendiniz yazabilirsiniz, ya da Bash gibi, Zsh gibi kabukları sisteminize port edebilirsiniz.
  • Şu anki UNIX benzeri veya UNIX tabanlı sistemlerde "pseudoterminal" yapısı kullanılıyor, yani terminal emüle edilmekte. Terminal emülatörü gerekiyor.
  • Bellek yönetimi. Bir işletim sistemi için olmazsa olmaz.
Daha da fazlası var. Fakat daha da uzatıp bu listeyi Topkapı Sarayı ihtiyaç listesi gibi bir hale getirmeye gerek yok bence.
"
 
Debian özelleştirmen hayatından daha az güzel zaman harcamanı sağlar.


Maalesef Linux özelleştirmem bu iddiada yasak😔
 
Daha da fazlası var. Fakat daha da uzatıp bu listeyi Topkapı Sarayı ihtiyaç listesi gibi bir hale getirmeye gerek yok bence.
Bence de.

Geçen abimle konuşuyordum dedi sen OS yapamazsın bende dedim yaparım(kolay bir şey sanıyorum). Windows üzerinden yapacağım. yardım edecek hiçbir kaynak bulamadım araştırıyorum hep Linux üzerinden. Nasıl yapacağım nasıl edeceğim bir türlü yapmam lazım, arayüzü çok kalabalık olmayacak, yardım edebilir misiniz?
Eğer çok bir şeye dahil olmak istiyorsan. Development

Maalesef Linux özelleştirmem bu iddiada yasak😔
Ee, ne yapacaksın? Hello world yazdırsan kafi mi? 2 gününü alır.
 
Geçen abimle konuşuyordum dedi sen OS yapamazsın bende dedim yaparım(kolay bir şey sanıyorum). Windows üzerinden yapacağım. yardım edecek hiçbir kaynak bulamadım araştırıyorum hep Linux üzerinden. Nasıl yapacağım nasıl edeceğim bir türlü yapmam lazım, arayüzü çok kalabalık olmayacak, yardım edebilir misiniz?

Hocam haklı çıkmak için yapacaksanız gerek yok cidden uğraşmaya. Hayat kısa gerek yok cidden.
 
O zaman ben Linux üzerinden devam edeceğim yabancı kaynak buldum fakat Windows bulamamıştım birkaç gün sonra Linux kuracağım.
 
O zaman ben Linux üzerinden devam edeceğim yabancı kaynak buldum fakat Windows bulamamıştım birkaç gün sonra Linux kuracağım.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Hocam haklı çıkmak için yapacaksanız gerek yok cidden uğraşmaya. Hayat kısa gerek yok cidden.

Amacım haklı çıkmak değil fakat ben zaten merak edip böyle bir şeye girecektim fakat hiç Windows kaynağı bulamamıştım yani uzun zamandan beri merak ettiğim bir şey.



Denendi onaylandı yapmıyor.
 

Geri
Yukarı