Bu wikiHow makalesi sana, C veya C++'ta kodlamayı bilmiyorsan bir işletim sistemini nasıl planlayacağını ve geliştireceğini öğretir. İşletim sistemleri, bilgisayar donanımını yönetir ve uygulamaların çalışması için gereken kaynakları sağlar. Bir işletim sistemini sıfırdan yazmak, bilgisayar bilimine, C veya C++ gibi bir programlama diline, assembly ve kod yönetimi uygulamalarına güçlü bir hâkimiyet gerektirir.

Kısım 1 / 2:
Temel Bilgileri Öğrenmek

  1. 1
    Temel Bilgisayar Bilimleri kurslarına katıl. Web için geliştirmenin aksine, bir işletim sistemi oluşturmak algoritmaların, veri yapılarının, bilgisayar donanımının ve kaynak yönetiminin güçlü bir şekilde anlaşılmasını gerektirir.[1] İnsanlar bunun diplomasını alıyor, bu nedenle çevrim içi bir rehber okuduktan sonra bir işletim sistemi yazmayı bekleme! Harvard'ın Intro to Computer Science (Bilgisayar Bilimlerine Giriş) kursu, ücretsiz olarak EDX aracılığıyla çevrim içi olarak alınabilir.
  2. 2
    C gibi üst düzey bir programlama dili öğren. Bilgisayar bilimi hakkında sağlam bir temel anlayışa sahip olduğunda, bir sonraki adım C ve/veya C++'ta uzmanlaşmaktır. Bilgisayar bilimi hakkında bilgi edinmek gibi, bir dilde uzmanlaşman da zorunludur; sağlam uygulamalar yazamazsan bir işletim sistemini kodlayamazsın.
  3. 3
    Bir assembly dili öğren. Assembly dilleri, farklı işlemcilerle iletişim kurmak için tasarlanmış düşük seviyeli dillerdir. Assembly, farklı işlemci türleri için farklı olduğundan (örneğin, Intel, AMD, VIA ve diğer işlemciler için x86 assembly dili), kodladığın işlemci türünün sürümünü öğrenmen gerekir.
    • Bu açık kaynaklı kitap bütünüyle okunduğunda, sana bir işletim sistemi oluşturmak için yeterince sağlam bir kavrayış sağlayabilir.[2]
    • The Art of Assembly Language (Assembly Dili Sanatı) hem çevrim içi hem de çevrim dışı olarak mevcut olan, assembly hakkında şiddetle tavsiye edilen bir kitaptır.
    • Ayrıca, işletim sisteminin çalışması gereken işlemci türleri hakkında da çok araştırma yapmalısın. İşlemci mimarisine yönelik kılavuzlar, bir Google araması ("Intel Kılavuzları", "ARM kılavuzları" vb.) kullanılarak kolayca bulunabilir.
  4. 4
    Bir işletim sistemi eğitimini tamamla. İşletim sistemi eğitimleri, temel bir işletim sistemi oluşturma sürecinde sana yol gösterecektir. Bu, sürece alışmanı sağlar ve eksik olan herhangi bir parça olup olmadığını anlamana yardımcı olur. Bir veya iki eğitimi tamamladıktan sonra kendi işletim sistemini yaratma yolunda ilerleyeceksin.
    • Bare Bones ilk basit 32 bit çekirdeğini yazmana yardımcı olan bir eğitimdir. Eğitimi tamamladıktan sonraki adım, kendi işletim sistemini yapılandırmak için Meaty Skeleton'u kullanmaktır.
    • Linux from Scratch (Sıfırdan Linux) kendi Linux işletim sistemini oluştururken sana rehberlik eden çevrim içi bir kitaptır.
    • Operating systems from 0 to 1 (0’dan 1’e İşletim Sistemleri) baştan sona çeşitli işletim sistemleri oluşturma hakkında ücretsiz bir kitaptır.
  5. 5
    İşletim sistemi hedeflerini belirle. İşletim sisteminin ne yapmasını istiyorsun? Nasıl görünmeli? Gerçekten tam bir işletim sistemi yazman mı gerekiyor yoksa sadece masaüstün için belirli bir görünüm oluşturmak mı istiyorsun? Bunların hepsi kodlamaya başlamadan önce dikkate alınması gereken şeylerdir.[3]
    • Başka programcılardan oluşan bir ekiple geliştirme yapmayı düşün. Proje üzerinde çalışan bir geliştirici ekibine sahip olmak, geliştirme süresini önemli ölçüde kısaltacaktır.
    • Başkalarının sana yardım etmesini kolaylaştırmak için proje hedeflerini, planlarını ve sorularını herkese açık depona ekle.
    Reklam

Kısım 2 / 2:
İşletim Sistemini Oluşturmak

  1. 1
    Bir geliştirme ortamı seç. Bu, yeni işletim sistemini kodlamak için kullanacağın platformdur. Bu kişisel bir tercih meselesidir ancak çoğu insan ya Windows'u ya da bir UNIX çeşidini kullanır. Windows kullanıyorsan Cygwin veya MinGW gibi bir UNIX ortamı kurmak iyi bir fikirdir. Genellikle kullandığın ortamın aşağıdakileri içerdiğinden emin olmak istersin:
    • GCC (Gnu derleyicisi). Windows kullanıyorsan Cygwin veya MinGW'de yükleyebilirsin.
    • Binutils, nesne dosyalarını işlemek için kullanılan bir araç koleksiyonudur. Bunu da Windows kullanıyorsan Cygwin'e yükleyebilirsin.
    • İyi bir metin editörü. Vim ve emacs genellikle UNIX ortamlarında kullanılır. Windows kullanıcıları Notepad kullanabilir veya çok sekmeli yükseltme için Notepad++'a göz atabilir.
    • Perl ve/veya Python. Dize manipülasyonu için biri veya her ikisi de önerilir.
  2. 2
    Sürüm kontrol sistemini kur. Bir işletim sistemi yazmak, muhtemelen yüzlerce (veya binlerce!) kod satırı oluşturacağın anlamına gelir. Düzeltmeler üzerinde çalışırken bu kafa karıştırıcı olabilir. CVS, Mercurial ve Subversion bakılabilecek seçeneklerdir.
  3. 3
    Bir önyükleyiciye karar ver. Kendininkini oluşturmak istemiyorsan Grand Unified Bootloader (GRUB) gibi mevcut bir tane kullanabilirsin. Bir önyükleyiciyi kodlayacak kadar cesur hissediyorsan OSDev.org'daki Rolling Your Own Bootloader'a (Kendi Önyükleyicini Yapmak) bak.
  4. 4
    Bir çekirdek tasarımı seç. Çekirdek, işletim sisteminin temelidir ve kullanıcı ile bilgisayar donanımı arasında bir arayüz sağlar. Monolitik çekirdekler ve mikro çekirdekler vardır. Monolitik çekirdekler, çekirdekteki tüm hizmetleri uygularken mikro çekirdekler, hizmetleri uygulayan kullanıcı arka plan yordamları ile birleştirilmiş küçük bir çekirdeğe sahiptir. Genel olarak, monolitik çekirdekler daha hızlıdır ancak mikro çekirdekler daha iyi hata izolasyonuna ve güvenilirliğe sahiptir.
  5. 5
    Küçük adımlarla başla. Bellek yönetimi ve çoklu görev gibi şeylere geçmeden önce metin görüntüleme ve kesintiler gibi küçük şeylerle başla. Büyük bir sıçrama yapmak yerine basit bir 16 bit İşletim Sistemi yapmayı da deneyebilirsin.
    • İki hafta içinde tam bir sisteme sahip olmayacaksın. Önyükleme yapan bir işletim sistemi ile başla, ardından havalı şeylere geç.
  6. 6
    Yeni işletim sistemini bir sanal makine ile test et. Her değişiklik yaptığında veya dosyaları geliştirme bilgisayarından test makinene aktarmak zorunda kaldığında bilgisayarını yeniden başlatmak yerine, bir sanal makine uygulaması kullan. VMWare, hem Windows hem de Linux ile çalışan yaygın bir seçenektir, Bochs da öyle. Olası kilitlenmeleri ve diğer hataları kontrol et ve gerektiğinde onar.
  7. 7
    Bir "yayın adayı" yayınla. Bunu, test edilmiş kodunu herkese açık depona yükleyerek yapabilirsin. Bu, insanların işletim sistemini test etmelerine ve karşılaştıkları sorunları geri bildirmelerine olanak tanır.
  8. 8
    Diğer işletim sistemi geliştiricileriyle ağ kur. Reddit'te /r/osdev ve the Software Engineering Stack Exchange dâhil olmak üzere çeşitli forumlarda bir araya gelen işletim sistemi geliştiricilerinden oluşan bir topluluk var. Temel bir işletim sistemi geliştirmeyi anladıysan geliştirme sürecinde ne tür şeylerin ortaya çıktığını görmek için mevcut gönderileri oku.
    Reklam

İpuçları

  • Sisteminin uygulanabilir olmasını istiyorsan güvenlik özelliklerini en büyük önceliğin olarak uyguladığından emin ol.
  • Tüm geliştirme tamamlandıktan sonra, kodu açık kaynak olarak mı yoksa özel olarak mı yayınlamak istediğine karar ver.
  • Bir işletim sisteminin birden çok işlemciyi işleyebilmesi için, Bellek Yöneticinin aynı anda birden çok işlemcinin aynı kaynağa erişmesini önlemek adına "kilitleme" mekanizmalarına sahip olması gerekir. Bunun için kullanılan "kilitler", herhangi bir zamanda yalnızca bir işlemcinin kritik bir kaynağa eriştiğinden ve diğerlerinin hepsinin bekletildiğinden emin olmak için bir programlayıcının varlığını gerektirecektir. Yine de programlayıcı, bir Bellek Yöneticisinin varlığına bağlıdır. Bu, kilitlenmiş bir bağımlılık durumudur. Böyle problemleri çözmenin standart bir yolu yoktur; bir programcı olarak, onun üstesinden gelmek için kendi yolunu bulacak kadar yetenekli olman beklenir.
  • Bir işletim sistemi de kullanıcı dostu olabilir. Bunları tasarımının ayrılmaz bir parçası hâline getirerek kullanıcı dostu özellikler eklediğinden emin ol.
  • OSDev.org forumlarına katılıp bariz sorular sormaya başlama. "Kılavuzu Oku" yanıtları alırsın. Wikipedia'yı ve kullanmak istediğin çeşitli araçların kılavuzlarını okumayı denemelisin.
  • Programlamayı öğrenmeye başlamak için bir işletim sistemi projesi başlatma. İşaretçi manipülasyonu, düşük seviyeli bit işleme, bit kaydırma, satır içi montaj dili vb. dâhil olmak üzere C, C++, Pascal veya başka bir uygun dili zaten bilmiyorsan işletim sistemi geliştirmeye hazır değilsindir.
  • Rastgele G/Ç bağlantı noktalarına rastgele baytlar yazmak gibi tavsiye edilmeyen bir şey yaparsan işletim sistemini çökertirsin ve (teoride) donanımını yakabilirsin.
Reklam

Bununla İlgili wikiHow'lar

Snapchat Puanı Nasıl Hızlı ArttırılırSnapchat Puanı Nasıl Hızlı Arttırılır?
Word'de Boş Bir Sayfa Nasıl Kaldırılır?
Android'de Spotify Çalma Listeni Kimin Takip Ettiği Nasıl GörülürAndroid'de Spotify Çalma Listeni Kimin Takip Ettiği Nasıl Görülür?
Birisinin Numaranı Whatsapp'ına Kaydettiği Nasıl AnlaşılırBirisinin Numaranı Whatsapp'ına Kaydettiği Nasıl Anlaşılır?
Resim Kullanarak Biri Kolayca Nasıl Araştırılır ve BulunurResim Kullanarak Biri Kolayca Nasıl Araştırılır ve Bulunur?
Akıllı Saat Android'le Nasıl EşleştirilirAkıllı Saat Android'le Nasıl Eşleştirilir?
Gizli Arama Nasıl YapılırGizli Arama Nasıl Yapılır?
Android'de Güvenli Mod Nasıl KapatılırAndroid'de Güvenli Mod Nasıl Kapatılır?
Nasıl Hacker OlunurNasıl Hacker Olunur?
Smart TV'ye Uygulama Nasıl EklenirSmart TV'ye Uygulama Nasıl Eklenir?
Hoşlanılan Kişiye Mesaj Nasıl AtılırHoşlanılan Kişiye Mesaj Nasıl Atılır?
Instagram'da Resimlere Müzik Nasıl EklenirInstagram'da Resimlere Müzik Nasıl Eklenir?
Google'da Resimli Arama Nasıl YapılırGoogle'da Resimli Arama Nasıl Yapılır?
Zip Dosyası Nasıl YapılırZip Dosyası Nasıl Yapılır?
Reklam

Bu wikiHow makalesi hakkında

wikiHow Kadrosu
Ortak yazarlar :
Bu makale editörler ve araştırmacılardan oluşan, makalenin doğruluğu ile kapsamlılığını onaylayan, eğitimli bir ekip tarafından ortaklaşa yazılmıştır.

wikiHow’ın İçerik Yönetim Ekibi, yüksek kalite standartlarımızı sağladığından emin olmak için, editör ekibimizden gelen her çalışmayı dikkatli bir şekilde denetler. Bu makale 1.894 defa görüntülenmiştir.
Bu sayfaya 1.894 defa erişilmiş.

Bu makale işine yaradı mı?

Reklam