İşletim sistemleri nasıl çalışır?

İşletim sistemlerinin nasıl çalıştığını merak ediyor musunuz? Evet diyorsanız buyrun makalemize!

İşletim sistemleri nasıl çalışır?

Bilgisayarımızı kullanırken, genellikle sadece kullanmakta olduğumuz yazılımla ilgilenir ve bilgisayarımızdaki her şey gibi, kullandığımız yazılımın da işleyişinden sorumlu olan işletim sistemini pek düşünmeyiz.

Kullandığınız işletim sistemi Windows 7 veya Ubuntu olabilir, fakat adı ne olursa olsun, işletim sisteminin tam olarak ne olduğunu ve ne yaptığını söyleyebilir misiniz?

Diğer tüm yazılımların aksine, işletim sistemi bir bilgisayarın adeta donanımı gibidir ve onu tanımlamamızı sağlayan unsurlardandır. Örneğin, bilgisayarımızın özelliklerini saydığımızda; işlemcisi, ekran kartı ve belleğinin yanında genellikle işletim sistemine de yer veririz.

Çeşitli donanımların derlenmesinden meydana gelen bilgisayarlar; anakart, işlemci, bellek modülleri, ekran kartı, sabit disk, monitör gibi donanım bileşenlerinden ve klavye, fare gibi çeşitli giriş aygıtlarından meydana gelir.

Söz konusu olan masaüstü bilgisayarlar olduğunda, tüm bu bilgisayar bileşenlerinden istediğimiz birini kolaylıkla değiştirebilir ve bilgisayarımızı parça parça yenileyebiliriz. Masaüstü bilgisayarların sahip olduğu bu esneklik, bilgisayarların modüler yapısı kadar, tüm bu değişiklikleri mümkün kılan işletim sistemi sayesinde gerçekleşir.

Başlangıç...

Bir işletim sisteminin nasıl çalıştığını öğrenmeye en başından, bilgisayarımızın açma tuşuna basmamızla birlikte neler olduğunu anlayarak başlayalım.

Bilgisayarımızın açma tuşuna basmamızla birlikte, anakartın üzerindeki ROM yongasında saklanan küçük bir yazılım harekete geçer. BIOS yada EFI olarak bilinen bu yazılım, ilk olarak çevre aygıtlarını ve sistem bileşenlerini saptayan ve tüm bu donanımların dahili yazılımlarını çalıştıran, POST adı verilen rutin işlemleri gerçekleştirir.

BIOS oldukça eski bir sistemdir ve ilk olarak DOS PC'ler döneminde kullanılmıştır. Günümüzde bilgisayarların yetenekleri, DOS işletim sistemine sahip atalarına göre inanılmaz gelişme göstermiştir, ancak kullandığımız BIOS'lar halen 1 MB hafıza yongaları üzerinde çalışan 16 bit programlardır.

EFI ise, BIOS'un halefi olarak tasarlanmıştır ve birçok artıya sahiptir. En temel artıları; 2TB ve üstü disk desteği, daha kısa açılış süresi, 32 veya 64 bit kodlamayı ve donanım sürücülerini desteklemesidir.

POST işleminin son adımıysa, bilgisayardaki diskleri tanımlamak ve yükleme (boot) diski olarak tanımlanan aygıttaki yazılımı başlatmaktır. Bu yazılım bir işletim sistemi olabileceği gibi, herhangi bir yükleme diski de olabilir.

İşletim sistemine geçiş...

POST işlemlerinin son adımı olarak BIOS, belirtilen diskteki ana yükleme kaydını (MBR) bulur ve buradaki verileri sistem belleğine yükleyerek çalıştırır. Çalıştırılan bu kodlar, diskteki aktif birincil bölümü tanımlar ve bölümdeki açılış yükleyicisinin çalıştırılmasını sağlar. Bu yükleyici, Bölüm Açılış Kaydı (Partition Boot Record) adı verilen bölümde bulunur.

Bu ikinci yükleyici dosya sistemlerine erişme yeteneğine sahiptir ve daha fazla dosyayı belleğe yükleyerek işletim sisteminin çalıştırılmasını sağlamakla sorumludur. Bunu yaparken, gerekli dosyaları belleğe yükledikten sonra işletim sisteminin kendi yükleyicisini çalıştırır. İşletim sisteminin açılış görevini devralmasıyla birlikte, işlemci 32 veya 64 bit moda geçirilir ve sistem yüklemesi tamamlanır.

BIOS yerine EFI destekli bir anakarta sahipseniz, açılış adımları büyük ölçüde aynı olsa da küçük ama önemli bir fark ortaya çıkacaktır. Bu da EFI arayüzünün dosya sistemlerine erişebilmesi sayesinde, yükleyicilerden faydalanmak yerine işletim sistemi yükleyicisini doğrudan çalıştırabilmesidir.

İşletim sistemi yüklenmeye başladığında ilk olarak, yöneteceği donanımları ve sistem aygıtlarını başlatır. Bu donanımlar içerisinde; işlemci, bellek, ekran kartı gibi modüler bileşenlerin yanında, anakart üzerindeki dahili bileşenler de bulunur. Bunun yanında, kullanıcı arayüzü ve ağ desteği gibi, işletim sistemi için gerekli birçok yazılım da belleğe yüklenerek çalıştırılır.

İşlemci yönetimi...

İşletim sisteminin yönettiği diğer bir şeyse işlemci zamanlamasıdır. Günümüz bilgisayarları genellikle, birkaç işlemi aynı anda yürütebilen birden fazla işlemci çekirdeğine sahip olsa da yürütülen işlem sayısı, çekirdek sayısından fazladır. Bunun yanında tek çekirdekli işlemciler de halen yaygın olarak kullanılmaktalar.

Sayısız işlemin, aynı anda yürütüldüğü bilgisayarlarımızda karşılaşılan en önemli sıkıntılardan birisi, işlemcilerin aynı anda tek bir işlemi yürütebilmesidir. Bu noktada imdadımıza yetişen işletim sistemi, işlemler arasında hızla geçiş yaparak, yürütülen her bir işleme küçük bir zaman dilimi tanır ve aynı anda birden çok işlemin yürütülebilmesini sağlar.

Yürütülen her bir işlem için, işlemciyi belli bir süre tahsis eden işletim sistemi, işlemin bitmesi veya tanınan işlem süresinin dolması ardından, yürütülen işlemi durdurup kaydederek, sıradaki işlemin yürütülmesi için aynı döngüyü uygular.

Bazı zamanlarda bu döngü yarıda kesilerek, başka bir işleme dönülmesi gerekebilir. Bu gibi durumlarda işleme tanınan süre yarıda kesilerek, öncelikli olan işlem yürütülür. Bu amaçla işletim sistemi, yürütülen işlemleri öncelik sırasına göre de düzenleyerek, sistem işleyişi için kritik öneme sahip işlemlerin, diğer işlemlerden önce tamamlanmasını sağlar.

Bellek yönetimi...

Tüm modern işletim sistemleri, uygulamaların bellek kullanımını yöneten ve sanal bellek desteği sağlayan bellek yönetim hizmetlerine sahiptir.

Farklı programların, birbirlerinin bellek alanlarına müdahale etmesini engellemek amacıyla işletim sistemi, uygulamaların fiziksel belleğe doğrudan ulaşmasını engeller. Bunun yerine, bilgisayarın sahip olduğu fiziksel ve sanal belleği haritalandırır ve programların, bir bellek sanallaştırma yöntemi olan tanımlayıcı tablo aracılığıyla haritalanan belleğe ulaşmasını sağlar.

Bu sayede işletim sistemi, bellek kullanımı açısından önemli bir esneklik kazanır ve çalışan programı etkilemeden, programın bellek kümesini istediği şekilde taşıyabilir. Böylece, kullanılmayan bellek bloğunu, takas dosyasına taşıyarak aktif olmayan programların fiziksel belleği işgal etmesini önler. Bu sayede, sistemin sahip olduğu fiziksel belleği aşan bellek ihtiyaçları da karşılanabilir.

Uygulamaların, sistem belleğine bir tanımlayıcı tablo aracılığıyla erişmesinin işletim sistemine sağladığı avantajların birisi de, farklı kullanıcıların aynı programı birbirinden bağımsız olarak kullanabilmelerini mümkün kılmasıdır. Böylece farklı kullanıcılara ait uygulamalar, birbirinin bellek alanına müdahale edemez ve bu sebeple kaynaklanacak uygulama hataları da engellenir.

Dosya ve Klasörler...

İşletim sistemine ait bir diğer sanallaştırma hizmeti de dosya sistemidir. Bilgisayar sabit diskleri, verilerin bulunduğu konumu mantıksal blok adresleriyle tanımlar. Bu adres ise saklanan verinin sürücünün kaçıncı sektöründe olduğunu belirtir.

Bu adres, sabit disklerin disk kontrolcüsü tarafından fiziksel değerlere (kafa, iz, plaka) çevrilerek veriye ulaşılır. SSD sürücülerdeyse, mantıksal adresler, bellek adreslerine dönüştürülerek aynı yöntem uygulanır.

İşletim sisteminin kullandığı dosya sistemi, tüm bu mantıksal adres yapısını kullanıcılardan ve programlardan gizleyerek disk üzerindeki verileri, hiyerarşik bir klasör-dosya yapısıyla düzenlenmiş gibi gösterir. Bu sebeple, herhangi bir diski kullanmadan önce işletim sisteminin desteklediği uygun bir dosya sistemi ile biçimlendirmek gerekir.

Dosya sisteminin sağladığı bu kolaylık sayesinde programların tek yapması gereken, işletim sistemine belli bir klasörde dosya oluşturması, silmesi veya değiştirmesi gerektiğini belirtmek olur.

Tüm bu kullanıcı dostu adresler ve karmaşık mantıksal adresler arasındaki çevrim işlemlerini işletim sistemi gerçekleştirir. Böylece kullanıcılar ve yazılımlar, disk üzerindeki verilerin fiziksel konumunu düşünmeksizin, sanal olarak yaratılmış hiyerarşik klasör ve dosya yapısı sayesinde verilere kolayca ulaşır.

API'ler...

Dosya sistemi sanallaştırması örneğinde olduğu gibi, işletim sisteminin kullanıcı uygulamalarına sağladığı bir diğer servis de uygulama programlama arayüzleridir (Kısaca: API).

Bunlar, internet tarayıcı veya kelime işlemcisi gibi kullanıcı uygulamalarının, sistem kaynaklarına erişmesine aracı olan ve işletim sistemi tarafından sağlanan yardımcı eklentilerdir. Örneğin, bellek yönetimi, dosya ve klasör yönetimi, ağ yönetimi gibi işlemleri yazılımlar açısından kolaylaştıran API'ler mevcuttur.

API'ler, işletim sistemi üzerinde çalışan tüm uygulamaların sistem kaynaklarına erişebilmeleri için standart bir yol sağlar. Böylece uygulamaların, mevcut donanıma ait bilgilere sahip olması gerekmez ve örneğin ağ erişimi için, bir ses çalmak veya bir şeyi ekranda görüntülemek için sadece API'leri tanıması yeterli olur.

API'lerin uygulamalar ve donanımlar arasındaki bu köprüyü oluşturabilmeleri içinse, donanım sürücülerine ihtiyaç duyulur. Bu sürücüler, tasarlandıkları donanımın fonksiyonlarının nasıl kullanılacağı ve işletim sisteminin API'leri ile nasıl iletişime geçeceği bilgilerini sağlar.

Bir işletim sisteminin temelleri kısaca böyle diyebiliriz. Ancak işletim sistemlerinin var olan tüm donanımlarla uyumlu çalışabilecek şekilde tasarlanmaları, onları tekdüze yazılımlar olmaktan çıkarır.

Atilla Malkoç

Okuyucu Yorumları

Toplam 9 Yorum

Bu yararlı makale için teşekkürler ama kafama takılan bir sru var. Madem EFI BıOS dan daha iyi neden genel olrak EFI kullanılmıyor bırak kullanılmasını ben adını daha yeni duyuyorum (bu biraz da benden kaynaklı olablilir ama neyse):D

Hep merak ederdim işletim sistemleri nasıl çalışıyor diye sayenizde öğrendim bilmeyenler için oldukça yararlı bilgi olmuş teşekkürler chip.

Atilla Malkoç teşekkür ederiz.Yine çok bilgilendirici bir yazı olmuş.
Böyle güzel makalelerinizin devamı dileğiyle elinize sağlık.

dandik linux bukadar mükemmel çalışamazzz

dandik linux bukadar mükemmel çalışamazzz

------------------------------------------------------
Linux diye tabir edilien şey aslından bir isletim sistemi değildir sadece çekirdektir. Ve Birçok linux dagitimi yenilik konusunda daha öndedir

çook çikin hiç yardımcı olmadı:((((

çok uzun ama iyi

Biz aslında yemek yerken sadece tadına, rengine bakıp mideye indiriyoruz, karnımızı doyuruyoruz. Ancak vücudumuz o besinleri proteinlerine, asitlerine, vitaminlerine ayırıp ilgili organlara, kana gönderiyor, vücudumuzun çalışmasını sağlıyor. Bu güzel, bilgilendirici yazıyı okuyunca bu aklıma geldi.

Sen de yorum yaz

 



CHIP'i Takip edin
E-Posta listemize katılın
CHIP Dergi Mobil Cihazınızda

İlginizi çekebilir