Kernel Geliştirme

Merhabalar Kendi Geliştirdiğim Kernel seviyesi yazılım dilim ile kernel yazıyorum fikir verebilecek varmı?

1 Beğeni

Tekerleği yeniden icat etmek bence bu devirde doğru değil. C veya ASM ile yazsanız daha doğru olabilir. Amacınız tam olarak ne. Fikir veremeyiz. Biraz detay verebilir misiniz? Yazılım ve donanım sürücülerini nasıl çalıştırmayı hedefliyorsunuz.

3 Beğeni

fgks

Gömülü sistemlere yönelmek ve bir işletim sistemi çekirdeğinin çalışma mantığını tecrübe ederek öğrenmek istiyorsanız çalışmanız mantıklı.
Ama Linux ve BSD’nin seviyesinde bir iş yapmak istiyorsanız bugünün yapısında tek kişi ile yapılması zor(gerçekten çok zor). Linus Torwalds yapmış ben niye yapmayayım derseniz, şartlar farklı. Nitekim o da bu amaçla yazmamıştı. Yaptığı çalışma kısa sürede çok ama çok fazla destek gördü(sözle “destekliyoruz” demek değil) ve çok iyi seviyelere geldi.
Bu anlamda “ben kendimi geliştirmek için bu çalışmayı yapıyorum ama tutarsa da çok güzel olur” gibi bir düşünce ile yaparsanız zihnen daha rahat olursunuz.
Mikro çekirdek(microkernel) kavramını araştırın. Bu daha yeni nesil bir yaklaşım, mantığı gereği hata durumunu yalıtıyor.
Google’ın kendi sıfırdan mikro çekirdek ile geliştirdiği işletim sistemi Fuşya(Fuchia) henüz yaygınlaşmadı bile.

@eminfedar hocamın değerli görüşlerini de dinlemeni tavsiye ederim. Kendi RISC-V tabanlı Fedar F1 işlemcisini tasarladı.

2 Beğeni

Şu video belki ibret alınabilir . Bence ne olursa olsun başlamak gerek .

1 Beğeni

Merak ederseniz projem açık kaynak kodlu bu linkten ulaşabilirsiniz kernel.w/kernel.w at main · berkingcreator/kernel.w · GitHub :slightly_smiling_face:

1 Beğeni

Aslında amacım tamamen eğlence ve bilgisayarın çekirdek yapısını öğrenmek için başladım. Kendi geliştirdiğim bir dil vardı hem onuda burda denemek istedim. W dili rust ve c karışımı bir dil kendi yorumumda var. Şuan ki hedefim yazdığım çekirdek kodunu 0 ve 1 lere dönüştürecek bir derleyici yazmak olucak. Ardından hafif bir arayüz planlıyorum. Tavsiyeleriniz için çok teşekkür ederim işime çok yarayacak abi :slightly_smiling_face:

1 Beğeni

kernel.w/kernel.w at main · berkingcreator/kernel.w · GitHub :+1::+1:

Aslıında amacım tamamen eğlenci odaklı. Kendi dilimle yazmamda bilgisayar tabanını daha iyi anlamak. Sürücüleri çalıştırma konusuna gelirsek dili tamamen 0 ve 1 lere dönüştüren bir derleyici yapısı üstüne kurdum klavye algılamayı halledebilmiş durumdayım. şuan boot ve terminalden oluşan bir yapıya sahip

1 Beğeni

Rica ederim. Ne demek. Faydam dokunduysa ne mutlu.:blush:
Rabb’im kolaylaştırsın ve bereketlendirsin.:blush:

Bir süre sonra bıkıp ya da yapamayacağına karar verip bırakmazsın umarım.

Bu resim son zamanlarda “kernel yapacağım” diye gelen afacanlardan bıkmaya başladık da o yüzden.

bende bıkmaya başladım öyle afacanlardan. Zaten klasiktir yazılıma atılan az buz c öğrenen kendi kernelimi yazıcam diyor o yönden sizde haklısınız aslında merak ederseniz W dili ile yazdıpım kernelin yeni versionun kodları burada GitHub - berkingcreator/W-Kernel · GitHub

Merhaba Kardeşlerim, Abilerim, Ablalarım. W dili ile yazdığımız kernel yaklaşık 9000 satır civarında proje GNU GPLv3 (General Public License v3) lisansına sahip github üzerinden yayınlanmakta projeme bu linkten erişebilirsiniz: GitHub - berkingcreator/W-Kernel · GitHub

Not: W dili kendi geliştirdiğim rust, c ve kendi yorumumu içeren bir dildir. Çoğunluk rust olduğu için anlayabileceğinizi umuyorum😊

evet bencede ne olursa olsun başlamak gerek videoyu izledim linuxta zaten böyle bir şey üstünde ortaya çıkmış

Merhabalar. Öncelikle alanın tam uzmanı olmasam da düşük seviye programlamada gerçekten fark yaratacak bir konuya değinmek isterim: Enerji ve termal yönetim. Sonuçta yazdığınız kod soyut bir evrende değil, fiziksel olarak ısınan, elektrik direnci olan bir silikon üzerinde çalışıyor. Kernel seviyesinde, donanımın enerji tüketimini düşünen bir standart geliştirmek projeye çok ciddi bir bilimsel derinlik katar. Ayrıca kendi geliştirdiğiniz programlama dilini de çok merak ettim doğrusu. Benim de bu dille ilgili bazı taleplerim ve fikir alışverişlerim olabilir sizden. Ayrıca biz bilgisayarda FEM (Sonlu Elemanlar) analizi yaparken devasa matrislerle uğraşıyoruz. Bilgisayarlar bu büyük matrisleri çözerken ram’i çok verimsiz kullanıyor; veriyi sürekli oradan oraya kopyalayıp duruyor. Yazacağın kernel ve driver mimarisi, bu büyük verileri RAM’de gereksiz yere kopyalamadan, doğrudan işlemciye en kısa yoldan aktarabilse güzel olurdu artık sizin orjinalliğinize kalmış nasıl olacağı. Aryıca yazılım dünyasında mikrokernel modası var ama ben bir makinacı olarak saf performans için monolitik kernel öneririm. DAha doğrusu hangisi daha performanslı olacaksa artık. Linux da zaten monolitik ama aynı zamanda oldukça modüler.

Aslında benimde uzaktan yakından alakam çok bulunmayan bir konu ben daha çok python ve webe odaklıyım verdiğiniz bilgiler için çok teşekkür ederim. kendi geliştirdiğim dile gelicek olursak rust c ve kendi yorumumun karıştırılmış hali. ama rust çoğunlukta (hemde baya) merak ederseniz GitHub - berkingcreator/W-Kernel · GitHub bu adresten bakabilirsiniz. Geminiye felan atarsanız dosya olarak indirip size açıklar. (uzun bir kod çünkü yaklaşık 9000) yapısal olarak tüm her şeyi tek bir şeyde tutmaya karar verdim microkernel yerine.

Hocam selam, kodların bir kısmına göz attım. Alakam yok demişsiniz ama işin matematik ve yapay zeka (tensor vb.) kısmında hedefleriniz var gibi görünüyor ve aslında benim ilgilendiğim taraf da ona benziyor. Aynı hesabı ben yapay zeka algoritması olmadan yapıyorum. Bu konuda uzmanlığınız olması gerekmiyor, sadece mesela fortran gibi julia gibi hesaplama gücü yüksek bir çalışma ortamım olmasını istiyorum. Bu arada fortran ve julia çok yetersiz ve sizin çalışmanız bu yüzden ilgimi çekti. İleride bu sistemin TPU gibi hızlandırıcılara entegre olma durumu var mı? Çünkü benim tek aradığım şey; kendi hesaplama programımı geliştirebileceğim, donanıma en alt seviyeden, aracı olmadan erişebileceğim bir çalışma ortamı bulmak. Senin kernel ileride bana kodumu doğrudan donanıma gömebileceğim bu zemini sağlarsa benim için çok iyi olur. Programlama dilinizin de kullanıcısı olabilirim. Elinize sağlık, kolay gelsin

Aslında işin matematiğini biliyordum daha önce linux tabanlı girişimlerim vardı ama başarısız olunca buraya yöneldim. TPU entegresi olabilir bu projeyi ben ilerletmek istiyorum. İnşallah önümüze bir engel çıkmazsa yaklaşık 3 hafta içinde bu kernelin tabanı kullanılarak arayüzlü bir işletim sistemini bitireceğim.