Bilgisayarlarımızı kullanırken genelde işletim sistemi açıldıktan sonraki kısımlarıyla yani üzerinde kurduğumuz yazılımlarla ilgileniriz. Peki hiç düşündünüz mü bir işletim sistemi nasıl çalışır? Ben bilgisayarın düğmesin bastığım anda arkaplanda neler olup bitiyor? Şimdi bunu biraz konuşalım.
İşletim sistemi, bilgisayar donanımlarının denetimi ve yönetiminden, temel sistem işlemleri ve uygulama yazılımlarını çalıştımaktan sorumlu olan sistem yazılımıdır. Genel tabirle kullanıcının donanıma hükmetmesini sağlayan bir araçtır. Şematik olarak göstermek gerekirse;
Bir işletim sistemi, bir Linux Dağıtımı da olabilir Windows veya MacOS de olabilir, hepsi -başarılı olsun veya olmasın- tek bir amaca hizmet etmektedir. Bilgisayar kaynağını(hdd, ram, işlemci gücü) olabildiğince adaletli bir şekilde kullanıcı, işletim sistemi ve uygulama arasında paylaştırmak (System Management), giriş ve çıkış aygıtlarını en verimli şekilde yönetmek için çalışır (IO Management). İşletim sisteminin ‘beyni’ ise çekirdektir (kernel). Diğer programların tamamı bu çekirdek tarafından işletilir.
Bilgisayarın açma tuşuna basıldığında anakart üzerindeki ROM içerisinde saklanan BIOS çalışır ve çevre aygıtlarının kontrol edilmesini sağlar. Bu denetleme yapıldıktan sonra bilgisayar üzerindeki işletim sistemi kontrolü yapılır. İşletim sistemi için ise belirtilen diskteki Master Boot Record (MBR) kaydını bulur ve buradaki bilgileri sistem belleğine yükler. Bu işlemlerden sonra BIOS kapanır ve bilgisayarı işletim sistemine devreder.
1960 - 1970’li yıllarda her bilgisayar için özel olarak makine dilinde (assembly) geliştirilmiş işletim sistemleri vardı. 1969 yılında Bell Laboratuvarlarında geliştirilmeye başlanan UNIX işletim sisteminin ise sadece küçük bir kısmı assemly dilinde yazılmış diğer kısımları ise aynı yılarda geliştirilen ve daha yüksek seviyeli bir dil olan C dilinde yazılmıştır. Bu sayede farklı donanımlar için işletim sisteminin taşınmasını kolaylaşmıştır. UNIX için geliştirilen bir uygulama, sadece yeniden derleme yapılarak farklı sistem mimarileri üzerinde sorunsuz çalışabilmektedir.
Çok görevli
Aynı anda birden fazla işle yapabilme yeteneğine denir. (Eğer birden fazla CPU varsa)
Çok kullanıcılı
Birden fazla kullanıcı aynı anda, aynı sistemden faydalanabilir.
Zaman paylaşımı (Time sharing)
Her işlemin bir öncelik sıralaması vardır. Yapılan işlemlere CPU tarafından ayrılacak olan zaman bu öncelik sıralamasına göre belirlenir.
Taşınabilir
Farklı donanımlar üzerinde uyumluluk sağlaması demektir. Bu sayede donanım bağımlılığı azaltılması hedeflenmiştir.
Yüksek performanslı
Görsellikten çok sadeliğin tercih edildiği UNIX de pek çok uygulama bu sayede daha performanslı çalışmaktadır.
1991 de Linux Torvalds yalnızca eğitiminde kullanmak için UNIX benzeri olan MINIX lisansı almaya çalıştı fakat başarılı olamadı. Olay ise tam olarak burada başladı. Madem lisans alamıyorum kendi işletim sistemimi yazarım diyen Linus Torvalds 1991 Nisan ayında işletim sistemi çekirdeğini oluşturmaya başladı. 25 Ağustos 1991’de, comp.os.minix adresli MINIX haber grubuna gönderdiği yazıda yeni bir işletim sistemi geliştirmekte olduğunu ve ilgilenen herkesin yardımını beklediğini yazdı. Daha sonra 17 Eylül 1991’de Linux’un ilk sürümü olan 0.01’i İnternet’te yayınladı. Kısa bir süre sonra, 5 EKim 1991’de temel özellikleriyle beraber ilk resmi Linux sürümü olan 0.02’yi yayınladı. İlk defa i386 mimarisi için geliştirilmiştir ve UNIX benzeri (UNIX ile kod ortaklığı yoktur.) bir işletim sistemi çekirdeğidir. GNU Genel Kamu Lisansı (GPL) ile dağıtılmaktadır. Yalnızca işletim sistemi çekirdeği olan Linux, onu kullanılabilir kılan diğer özgür yazılım ürünleri ile daha anlamlı ve kullanılabilir bir işletim sistemi haline gelmektedir. Bu durumu aşağıdaki şemayla daha anlaşılabilir hale getirebiliriz sanırım.
Linus Torvalds’ın comp.os.minix’e gönderdiği mailin bir kopyasını da aşağıda bulabilirsiniz.
From: [email protected] (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <[email protected] Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40),and things seem to work.This implies that I'll get something practical within a few months, andI'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus ([email protected]) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(
Bana göre en önemli özelliği bir kurum veya bireye bağlı değil, kamu malı olmasıdır. Yani GPL ile lisanslanmıştır. Sistemin kaynak kodu dileyen herkesin incelemesine ve değiştirmesine açıktır. Bu sayede işletim sistemi üzerindeki hatalar kolaylıkla giderilebilmekte, yeni özellikler eklenip çıkarılabilmekte, kullanıma göre özelleştirilebilmektedir. Arzu eden herkes Linux kaynak kodunu buradaki adresten çekebilir, inceleyebilir, değiştirebilir ve değiştirilmiş halini dağıtabilir. Birçok farklı mimari üzerinde desteği vardır. Diğer UNIX’ler üzerinde çalışan uygulamaların tümü kolaylıkla Linux üzerinde de çalışabilmektedir. Ölçeklenebilirlik, yani 2MB belleğe sahip bir bilgisayarda çalışabileceği gibi 64 bit mimaride 240 çekirdekli işlemci, 6TB bellekli bir bilgisayar sistemi üzerinde de çalışabilmektedir (3 Haziran 2015).
Temel Linux çekirdeği ile sunulan yazılımlar bütününe Linux Dağıtımı denir. Dağıtımlar, Linux çekirdeğinin ayarlarında değişiklikler yapmak, çekirdek için kendi tercihleri olan özgün yamaları uygulamak, çeşitli ve farklı özgür yazılımları dağıtım paketi içine koymak gibi yollar ile farklılaşabilir.
- Çekirdek ayarları
- Çekirdek yamaları
- Uygulama yazılımları seti
- Paketteki diğer ticari uygulamalar
- Farklı dil desteği ile birbirinden farklılaşmaktadır.
https://tr.wikipedia.org/wiki/Linux
Profelis Eğitim Materyalleri
Yazımı beğendiniz mi? Yorum yapın.