Kendi İşletim Sistemlerinizi (OS) Programlama

Bilgilendirme: Desteğiniz sitenin çalışmaya devam etmesine yardımcı oluyor! Bu sayfada önerdiğimiz hizmetlerden bazıları için bir başvuru ücreti alıyoruz.


İşletim sistemi (OS) geliştirmesinden daha zorlayıcı herhangi bir geliştirme alanı yoktur. “Programlamanın büyük zirvesidir”.

Çok az programcı bir işletim sistemi kurmaya çalışır ve bu girişimde bulunanların çoğu asla çalışan bir sistem üretmez.

Ancak, bitiş çizgisine kadar ilerlerseniz ve fonksiyonel bir işletim sistemi üretirseniz, seçkin bir üst düzey programcı grubuna katılmış olacaksınız..

İşletim Sistemi nedir?

En eski bilgisayarlarda işletim sistemi yoktu.

Bu ilk sistemlerde çalışan her program, bilgisayarı çalıştırmak, bağlı donanımlarla iletişim kurmak ve programın gerçekte gerçekleştirmeyi amaçladığı hesaplamayı gerçekleştirmek için gerekli tüm kodları içermelidir. Bu durum basit programların bile karmaşık olduğu anlamına geliyordu.

Bilgisayar sistemleri çeşitlendikçe ve daha karmaşık ve güçlü hale geldikçe, hem işletim sistemi hem de kullanışlı bir uygulama olarak işlev gören programlar yazmak giderek daha pratik hale geldi..

Buna karşılık, bireysel ana bilgisayar sahipleri program yazmayı ve çalıştırmayı kolaylaştıran sistem yazılımı geliştirmeye başladılar ve işletim sistemleri doğdu.

İşletim sistemi (OS), bilgisayar donanımını ve sistem kaynaklarını yöneten ve uygulamaların çalışması için gereken araçları sağlayan bir yazılımdır. İşletim sistemlerinin doğuşu, bilgisayar işletiminin tüm kapsamını kontrol etmek için artık programların yazılması gerekmediği anlamına geliyordu.

Bunun yerine, bilgisayar uygulamaları ve yazıcılar ve delikli kağıt kartı okuyucular gibi bağlı çevre birimleri hakkında endişelenirken, bilgisayar uygulamaları işletim sistemi tarafından çalıştırılmak üzere yazılabilir..

İşletim Sistemlerinin Kısa Tarihi

İlk işletim sistemi, General Motors tarafından 1956 yılında tek bir IBM ana bilgisayarını çalıştırmak için oluşturuldu. Diğer IBM anabilgisayar sahipleri bunu izledi ve kendi işletim sistemlerini oluşturdu.

Tahmin edebileceğiniz gibi, en eski işletim sistemleri bir bilgisayardan diğerine çılgınca değişiyordu ve program yazmayı kolaylaştırırken, programların tam bir yeniden yazma olmadan birden fazla ana bilgisayarda kullanılmasına izin vermediler.

1960’larda IBM, işletim sistemi geliştirme görevini üstlenen ilk bilgisayar üreticisi oldu ve işletim sistemlerini bilgisayarlarıyla dağıtmaya başladı.

Ancak, IBM bu süre zarfında işletim sistemleri oluşturan tek tedarikçi değildi. Control Data Corporation, Computer Sciences Corporation, Burroughs Corporation, GE, Digital Equipment Corporation ve Xerox, 1960’larda da ana bilgisayar işletim sistemlerini piyasaya sürdü.

1960’ların sonunda, Unix işletim sisteminin ilk sürümü geliştirildi. C ile yazılmış ve ilk yıllarında serbestçe kullanılabilen Unix, yeni sistemlere kolayca taşındı ve hızla geniş kabul gördü.

Apple OS X ve tüm Linux lezzetleri de dahil olmak üzere birçok modern işletim sistemi köklerini Unix’e kadar takip ediyor.

Microsoft Windows, bir işletim sisteminin kişisel bilgisayarlarını çalıştırması için IBM’den gelen bir isteğe yanıt olarak geliştirilmiştir.

Microsoft tarafından oluşturulan ilk işletim sistemi Windows olarak adlandırılmamış, MS-DOS olarak adlandırılmış ve 1981 yılında Seattle Computer Products’tan 86-DOS işletim sistemi satın alınarak ve IBM’in gereksinimlerini karşılayacak şekilde değiştirilerek inşa edilmiştir..

Windows adı ilk olarak 1985’te grafik kullanıcı arabirimi oluşturulduğunda ve MS-DOS ile eşleştirildiğinde kullanıldı.

Apple OS X, Microsoft Windows ve çeşitli Linux formları (Android dahil) artık modern işletim sistemi pazarının büyük çoğunluğunu yönetiyor.

İşletim Sisteminin Parçaları

İşletim sistemleri iki ana bölümden oluşur:

  • Çekirdek;
  • Sistem programları.

çekirdek işletim sisteminin kalbidir. Bilgisayar başlatıldığında yüklenen ilk programdır, bilgisayar kaynaklarını yönetir ve sistem programlarından ve uygulamalarından gelen istekleri işler.

Sistem programları çekirdeğin üstüne koşmak. Yararlı işler yapmak için kullanılmazlar, bunun yerine çekirdeği kullanıcı uygulamalarına ve çevre aygıtlarına bağlamak için gerekli programlardır. Aygıt sürücüleri, dosya sistemleri, ağ programları ve disk birleştiricileri gibi sistem yardımcı programlarının tümü sistem programlarına örnektir.

Uygulama programları işletim sisteminin bir parçası değildir ve yararlı işler yapmak için kullanılan programlardır. Kelime işlemci uygulamaları, tarayıcılar ve medya oynatıcı yaygın uygulama programlarıdır. Uygulama programları çekirdek tarafından yönetilir ve etkinleştirilir ve bilgisayar çevre aygıtlarına ve donanımına erişmek için sistem programlarını kullanır.

Ne bilmek istiyorsun

İşletim sistemi geliştirmeye başlamadan önce bilmeniz gerekenler çok uzun. İşletim sistemi geliştirmeye başlamadan önce ustalaşmanız gereken en önemli üç şey:

  • Temel bilgisayar bilimleri bilgisi;
  • Bilgisayar programlama teorisi ve en iyi uygulamalar;
  • Düşük seviye ve yüksek seviye programlama dilleri.

Bilgisayar Bilimi Öğrenin

İşletim sistemi geliştirme web geliştirme gibi değildir. İçine atlayabileceğiniz ve ilerledikçe öğrenebileceğiniz bir şey değil. Diğer konulara geçmeden önce bilgisayar biliminde sağlam bir temel geliştirmelisiniz.

Başlamanız için bazı kaynaklar:

Coursera: Bilgisayar Bilimi 101 bilgisayar programlama ve bilgisayar bilimi alanında yepyeni iseniz ilk almanız gereken derstir.

Kemerinizin altında biraz bilgi ve deneyiminiz varsa, bu kursu edX seçenekleri Udacity lehine atlayın. Ancak, bu alanda yepyeni iseniz, bu ders bilgisayar bilimi ve programlama konularını tanıtmak için daha önce deneyimsiz bir yaklaşım gerektirir.

Udacity: Bilgisayar Bilimine Giriş bilgisayar bilimi öğretiminde web geliştirme yaklaşımını benimser. Bir işletim sistemi oluşturma olasılığı için doğrudan geçerli olmasa da, bu yararlı bilgiler sunan ve bilgisayar programlamanın temelleri hakkında iyi bir genel bakış sağlayan sağlam bir derstir..

edX: Bilgisayar Bilimine Giriş bu listedeki en eksiksiz ve derinlemesine bilgisayar bilimi dersidir. Bu ücretsiz, kendi hızınızda kurs Harvard Üniversitesi tarafından tasarlandı ve derste sunulan içeriği Harvard Üniversitesi kampüsünde sunulan aynı adla yansıtıyor.

Bu geniş kapsamlı derste algoritmalar, veri yapıları, kaynak yönetimi, yazılım mühendisliği hakkında bilgi edinecek ve C, PHP ve JavaScript gibi programlama dillerine göz atacaksınız..

Bilgisayar Programlamayı Öğrenin

Kemerinizin altında sağlam bir bilgisayar bilimi kavraması ve programlama dilleri ile sınırlı deneyim ile bir sonraki adım, büyük ölçekli bir programlama projesinin nasıl ele alınacağını öğrenmektir..

Udacity: Yazılım Geliştirme Süreci daha önce hiç büyük ölçekli, zorlayıcı bir programlama projesi üstlenmediyse herkesin alması gereken mükemmel bir derstir. Bu derste Git gibi iş akışı ve yönetim araç ve tekniklerini ve entegre geliştirme ortamının nasıl kurulacağını öğreneceksiniz..

Programlama Dillerini Öğrenin

Bir işletim sistemi geliştirmek için en az iki programlama dili konusunda uzmanlaşmanız gerekir:

  • Düşük seviyeli montaj dili;
  • Üst düzey bir programlama dili.

Montaj dilleri bir CPU ile doğrudan iletişim kurmak için kullanılır. Her bir CPU tipi bir makine dili konuşur ve her bir CPU tipi için sadece bir karşılık gelen montaj dili vardır. En yaygın bilgisayar mimarisi x86’dır, orijinal olarak Intel tarafından geliştirilmiştir ve şimdi AMD, VIA ve diğerleri de dahil olmak üzere çok çeşitli bilgisayar çipi üreticileri tarafından kullanılmaktadır. Bu kılavuzda, sizi x86 montaj dilini öğrenme yönünde göstereceğiz.

Üst düzey programlama dilleri birden çok bilgisayar mimarisiyle çalışır. C, işletim sistemleri yazmak için en sık kullanılan ve önerilen programlama dilidir. Bu nedenle, OS geliştirmek için C öğrenmeyi ve kullanmayı tavsiye edeceğiz. Ancak, C ++ ve Python gibi diğer diller de kullanılabilir.

x86 Montaj Dili

x86 Montaj Kılavuzu montaj dilini öğrenmeye başlamak için harika bir yerdir. Bu kısa belge, x86 montaj diline kısa bir genel bakış sunar ve bir sonraki aşamaya geçeceğiniz daha gelişmiş kaynaklar için zemin hazırlar.

Sıfırdan Programlama Hazırlayan: Jonathan Bartlett, montaj dili ortamının tanımlayıcı kitaplarından biridir. Bu kitap, montaj dilini bilgisayar bilimi ve programlamayı öğrenmek için kullanır. Bu kaynak İnternet Arşivinden de edinilebilir.

Meclis Dili Sanatı Randy Hyde, montaj dili eğitimi dünyasında bir başka ikonik metindir. Aslen Hyde’ın Cal Poly ve UC Riverside’daki programlama kursları için özel olarak yazılan metin, 1990’ların ortalarında bir HTML e-kitabı olarak yayınlandı ve bu alanda tanımlayıcı bir çalışma olarak kabul edildi. Metin ayrıca Yale FLINT Group tarafından bir dizi PDF dosyası olarak da barındırılıyor.

X86 montaj dilini öğrenmek için geleneksel bir ders kitabı kullanmak istiyorsanız, en sık kullanılan ve şiddetle tavsiye edilen metinlerden ikisi şunlardır:

  • Montaj Dili Adım Adım: Linux ile Programlama Jeff Duntemann;
  • Modern X86 Montaj Dili Programlama Daniel Kusswurm.

C

Öğrenebileceğiniz birçok üst düzey programlama dili ve bunları öğrenmek için kullanabileceğiniz birçok farklı kaynak vardır. Tavsiyemiz ve en çok OS geliştirme topluluğu tarafından yankılanan tavsiye, C öğrenmektir ve sizi yetkili bir C programcısına dönüştürecek birkaç mükemmel kaynak bulduk.

Bunu tamamlayarak C programlama diline hızlı bir genel bakış edinin C Eğitimi. Bu kaynak sizi bir uzmana dönüştürmeyecek, ancak size dil hakkında iyi bir temel anlayış kazandıracak ve sizi daha zorlu konular ve kaynaklarla başa çıkmaya hazırlayacaktır..

C’yi Zor Yolda Öğrenin birçok uygulama alıştırması içeren ücretsiz bir HTML e-kitabıdır. Bu metin sizi C programlama diline kadar götürür ve işe koyarsanız, zaman ayırır ve tüm egzersizleri tamamlarsanız, zaman zaman yetkili bir C programcısı olma yolunda ilerlersiniz. bu öğreticiyi tamamla.

Geleneksel bir ders kitabı, üzerinde çalışmanız daha muhtemel bir şeyse, bu iki metin, C programlama dilinde uzmanlaşmak için en popüler olanlardan biridir..

  • Kernighan ve Ritchie’nin C Programlama Dili;
  • C Perry ve Miller tarafından Mutlak Başlangıç ​​Kılavuzu Programlama.

İşletim Sistemi Geliştirme Eğiticileri

Bilgisayar bilimi ve programlamanın temel kavramlarını güçlü bir şekilde kavradığınızda ve montaj dilini ve C’yi öğrendikten sonra, bir sonraki adım, basit bir işletim sistemi geliştirme sürecinin tamamını sıfırdan yürüten bir veya iki işletim sistemi geliştirme öğreticisini tamamlamaktır. Bunu yapan üç mükemmel kaynak bulduk.

Sıfırdan Linux size tam bir Linux işletim sistemi kurma sürecinde yol gösterecektir. Tamamen bu öğretici tam teşekküllü bir işletim sistemi üretmez, ancak size tam bir işletim sistemi oluşturmak için sağlam bir kod tabanı verecektir. Temel işletim sisteminizi kullanışlı bir yazılım parçası haline getirmek için Scratch’tan Linux’un ötesinde, Scratch’tan Otomatik Linux, Scratch’tan Cross Linux veya Scratch’tan Sertleştirilmiş Linux gibi gelişmiş öğreticilerle başa çıkın.

İşletim sistemi geliştirme hakkında küçük kitap Erik Helin ve Adam Renberg, yazarların tamamladığı ileri düzey bilgisayar bilimi dersinin bir parçası olarak, Stockholm’deki Kraliyet Teknoloji Enstitüsü olarak öğrenciler geliştirildi. Bu ders, bir programlama ortamı oluşturarak, çoklu görev için programlamada doruğa ulaşarak ve sistem belleğini yönetme ve yol boyunca dosya sistemleri geliştirme gibi konulara vurarak bir x86 işletim sistemi geliştirme sürecini tamamlar..

İşletim Sistemi Geliştirme Serisi Broken Thorn Entertainment, baştan aşağı bir işletim sistemi oluşturma sürecinde size yol gösteren 25 öğretici bir seridir. Yeni başlayanlar dikkat: Bu seri, bir IDE’de yolunuzu zaten bildiğinizi ve yetkili bir C ve montaj dili programcısı olduğunuzu varsayar..

İşletim sistemi geliştirme disiplini hakkında bilgi edinmek için kullanabileceğiniz birçok metin vardır. En çok önerilen üç tanesi:

  • Tanenbaum ve Bos’un Modern İşletim Sistemleri;
  • Maurice Bach’ın UNIX İşletim Sisteminin Tasarımı;
  • Silberschatz, Galvin ve Gagne İşletim Sistemi Kavramları.

İşletim Sistemi Geliştirme Toplulukları

Bir OS geliştiricisi olma yolculuğuna çıktıkça, öğrenmek ve bağlı kalmak için diğer işletim sistemi geliştiricilerini bulabileceğiniz birkaç yer vardır:

  • OSDev.org, OS geliştirme hakkında çok fazla bilgiye sahip bir wiki’nin yanı sıra benzer düşünen programcılarla tanışabileceğiniz ve geri bildirim alabileceğiniz bir forumdur..
  • Reddit’teki OS Geliştirme Kanalı, işletim sistemi geliştirme hakkında bilgi edinebileceğiniz ve işletim sistemi geliştirme görevi biraz zorlaştığında bir avantaj anının tadını çıkarabileceğiniz harika bir topluluktur..
  • StackExchange’ten Bilgisayar Bilimi, Programcılar ve StackOverflow, kendi başınıza anlayamayacağınız bir sorunla karşılaştığınızda diğer programcılara teknik sorular sorabileceğiniz yerlerdir.

özet

İşletim sistemi geliştirmeyi öğrenmek, üstlenebileceğiniz en zorlu programlama görevlerinden biridir. Ancak, çalışan bir işletim sistemi kurma çabanızda başarılı olmanız, sizi yetkili bir programcı olarak ve dünyanın geri kalanının çalışan bir bilgisayar olarak tanınmasını sağlamak için işlemcilerin, donanımın ve bilgisayar programlarının birlikte nasıl çalıştığını derinlemesine anlayan bir kişi olarak işaretleyecektir..

Sonraki adımlar – Bir web barındırıcısı mı arıyorsunuz? Web barındırma kılavuzumuza bakın & önerilen ev sahiplerimiz.

Ayrıca programlama dilleri hakkındaki diğer kılavuzlarımıza bakın.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map