Professional Documents
Culture Documents
BTP201 01
BTP201 01
BTP201 01
KULLANICI ARAYÜZLERİ
SİSTEM ÇAĞRILARI
DONANIM
BTP201 İşletim Sistemleri
●
İşletim sisteminde kullanıcı arayüzleri: KOMUT SATIRI
– Kullanıcı ile sistem arasında etkileşim sağlar.
– İşletim sisteminin parçası olabilir.
– Sistem yazılımı olabilir.
– Farklı uygulamaları vardır: ksh, csh, sh, bash, fish, zsh...
– Bazı işlevler doğrudan yorumlayıcının parçasıdır.
– Tasarımı ve uygulaması işlevlerine göre değişir.
BTP201 İşletim Sistemleri
●
İşletim sisteminde kullanıcı arayüzleri: Grafik Arayüzler
– Grafik arayüz;
○
İcat eden XEROX PARC
○
Pencere yöneticisi (window manager (fluxbox, openbox, twm vb)
○
Masaüstü ortamı (KDE, GNOME, Lumina, LXDE, LXQt, vb)
○
Tümleşik masaüstü ortamı (Mac OS:Aqua, Windows:Windows)
– Teknik olarak bir metin terminalidir.
BTP201 İşletim Sistemleri
●
İşletim sisteminde sistem çağrıları
– Application Programming Interface – API
– İki program arasında iletişim kurulabilmesini sağlayan bir arayüzdür.
– Sistem çağrısı: komut ve parametrelerden oluşur.
○
Doğrudan CPU/register atanır.
○
Dolaylı olarak bellek üzerinden erişilir.
– C/C++ bazen de Assembly ile yazılır.
– Win32 API, POSIX API, JAVA API – JVM
BTP201 İşletim Sistemleri
●
İşletim sisteminde sistem çağrıları
– Sistem çağrıları numaralandırılmıştır.
○
Tablo olarak bulunur.
– Sistem çağrısına istek yapıldığında;
○
Durum bilgisi ve ilgili parametreler döndürülür.
– Çağrıda bulunan açısından;
○
Ayrıntılar önemli değildir.
○
API hangi komutları ve değerleri kabul ettiği önemlidir.
○
Derleme anında ilgili dosyalar (statik veya dinamik derlenir) bağlanır.
BTP201 İşletim Sistemleri
Uygulama Yazılımı
USER SPACE
Sistem Çağrıları Arayüzü
KERNEL SPACE
İ
N
Sistem
D
Çağrısı
E
X
BTP201 İşletim Sistemleri
●
Sistem çağrılarına parametre aktarımı
– Sadece sistem çağrısının index numarası tek başına yeterli değildir.
○
İşletim sistemine göre çağrının uygulama şekli değişir.
– Yaygın olarak üç uygulama şekli vardır:
(1)Parametreler doğrudan CPU/Register aktarılır.
(2)Blok modeli: Parametreler bellekte bir alanda/tabloda saklanır. İlgili
adres CPU/Register aktarılır. (Linux ve Solaris)
(3)Parametreler program tarafından yığıta aktarılır (PUSH). Kernel yığıttan
parametreleri alır. (POP)
BTP201 İşletim Sistemleri
●
Çeşitli sistem çağrıları: Süreçler
– Süreç oluştur, sonlandır
– Normal olarak sonlandır, hata nedeni ile sonlandır
– Yükle, çalıştır
– Belirli bir süre bekle, sinyali bekle, olayı bekle
– Bellek ayır, bellek ata, belleği geri al
– Hata nedeni ile bellek dökümü yap
– Hata ayıklama
– Kilitleme
BTP201 İşletim Sistemleri
●
Çeşitli sistem çağrıları: Dosya yönetimi
– Dosya oluştur, dosya sil
– Dosya aç, dosya kapat
– Dosya oku, dosya yaz, yeniden konumlandır
– Dosya özelliklerini tanımla/değiştir, dosya özelliklerini oku
BTP201 İşletim Sistemleri
●
Çeşitli sistem çağrıları: Aygıt yönetimi
– Aygıtı al, aygıtı bırak
– Oku, yaz, konumlandır
– Aygıt özelliklerini tanımla/değiştir, aygıt özelliklerini oku
– Mantıksal olarak aygıtları ayır/mantıksal olarak aygıtları bağla
BTP201 İşletim Sistemleri
●
Çeşitli sistem çağrıları: Süreçler arasında iletişim yönetimi
– İletişim kur, iletişimi sonlandır.
– İletişim mesajlaşarak gerçekleşirse;
○
mesajları al, mesajları gönder
– Paylaşılan bellek adresleri ile gerçekleşirse;
○
Bellek alanlarına erişim sağla ve sonlandır.
– Aygıt durum bilgisini izle, ilet
– Uzak aygıtları bağla, ayır
BTP201 İşletim Sistemleri
●
Çeşitli sistem çağrıları: Bilgi yönetimi
– Zaman bilgisi oku, zaman bilgisini ayarla
– Sistem verisini oku, sistem verisini ayarla
– Süreçlere, aygıtlara ve dosyalara ait özellikleri oku/düzenle
BTP201 İşletim Sistemleri
●
Çeşitli sistem çağrıları: Koruma ve güvenlik
– Kaynak paylaşımını kontrol et, düzenle
– Yetkileri düzenle
– Erişim izinlerini düzenle
BTP201 İşletim Sistemleri
●
Çeşitli sistem çağrıları: Windows ve UNIX
– Süreç Kontrol:
○
CreateProcess() fork()
○
Exitprocess() exit()
○
WaitForSingleObject() wait()
– Dosya Yönetimi
○
CreateFile() open()
○
ReadFile() read()
○
WriteFile() write()
○
CloseHandle() close()
BTP201 İşletim Sistemleri
●
Çeşitli sistem çağrıları: Windows ve UNIX
– Aygıt Yönetimi:
○
SetConsoleMode() ioctl()
○
ReadConsole() read()
○
WriteConsole() write()
– Bilgi Yönetimi:
○
GetCurrentProcessID() getpid()
○
SetTimer() alarm()
○
Sleep() sleep()
BTP201 İşletim Sistemleri
●
Çeşitli sistem çağrıları: Windows ve UNIX
– İletişim:
○
CreatePipe() pipe()
○
CreateFileMapping() shm.open()
○
MapViewOfFile() mmap()
– Koruma ve Güvenlik:
○
SetFileSecurity() chmod()
○
InitialSecurityDecriptor() umask()
○
SetSecurityDescriptorGroup() chown()
BTP201 İşletim Sistemleri
●
Örnekler: Ardunino
– Tek görev çalışır.
– İşletim sistemi yoktur.
– Programlar USB üzerinden belleğe yüklenir.
– Tek bir bellek alanı vardır.
– Boot loader programı yükler.
– Program sonlandığında komut satırına döner.
BTP201 İşletim Sistemleri
●
Örnekler: FreeBSD
– UNIX türevidir.
– Çoklu görevli işletim sistemidir.
– Kullanıcı giriş yaptığında, kullanıcıya ait $SHELL yüklenir.
– $SHELL fork() ile süreçleri yaratır.
○
Program exec() ile çalıştırılır.
○
$SHELL program sona erene kadar bekler ve komutları almaya
hazırdır.
– Program hatasız sonlandığında sıfır, hatalı sonlanırsa bir sayı döndürür.
BTP201 İşletim Sistemleri
●
İşletim Sistemi Hizmetleri/Servisleri
– Sistem yazılımları programların çalışması için gerekli ortamı sunar.
○
Dosya yönetimi
○
İşleme ait durumun bilgisini sunmak/saklamak/düzenlemek
○
Programlama dili desteği
○
Programın yüklenmesi ve çalıştırılması
○
İletişim hizmetleri
○
Arka planda çalışan bazı yazılımlar
○
Bazı uygulamalar
– Çoğu kullanıcı için işletim sistemi sistem yazılımlarından ibarettir.
BTP201 İşletim Sistemleri
●
İşletim Sistemi Hizmetleri/Servisleri
– Yazılım geliştirme ortamını ve araçlarını sunar.
○
Sistem çağrıları için arayüzler
○
Daha karmaşık uygulamalar olabilirler
– Dosya yönetimi
○
Dosya oluştur, aç, oku, yaz, sil
– Sistemin durumu bilgisi edinilir.
○
Zaman, boş bellek miktarı, disk alanı, kullanıcı sayısı, kayıtlar, hata
ayıklama
○
Bazı işletim sistemlerinde registry/yazmaç bu işlevi yerine getirir.
BTP201 İşletim Sistemleri
●
İşletim Sistemi Hizmetleri/Servisleri
– Dosyalar üzerinde yapılan işlemler.
○
Dosya içeriğini düzenleme, dosya içeriğinde düzenleme yapmak vb.
– Programlama dilleri desteği
○
Derleyiciler, hata ayıklayıcılar, kütüphaneler, yorumlayıcılar
– Programların yüklenmesi ve çalıştırılması
– İletişim hizmetleri
○
Süreçler arası
○
Kullanıcılar arası
○
Sistemler arası
BTP201 İşletim Sistemleri
●
İşletim Sistemi Hizmetleri/Servisleri
– Arka plan hizmetleri
○
Açılışta çalıştırılan programlar
○
Açılıştan kapatılana kadar çalışan programlar
– Bağlayıcı (Linker)
– Yükleyici (Loader)
– Modern genel maksat işletim sistemleri bağlayıcı yerine dinamik
kütüphaneler kullanır. (Windows DLL)
– Nesne ve çalıştırılabilir dosyalar standart formatlardadır. İşletim sistemi
kolaylıkla çalıştırabilir.
BTP201 İşletim Sistemleri
●
İşletim Sistemi Hizmetleri/Servisleri
– Bağlayıcı (Linker)
○
Kaynak kod
○
Derleyici -> makine dili -> nesne dosyası
○
Bağlayıcı <-Kütüphane ve diğer dosyalar
○
Çalıştırılabilen dosya
○
Yükleyici <- çalıştırılabilen dosya + kütüphane ve diğerleri
○
Bellekte hazır durumda
BTP201 İşletim Sistemleri
●
Uygulamalar neden işletim sistemine özeldir?
– İşletim sistemine özel dosya formatları
– Uygulama çok sayıdaki işletim sisteminde çalışabilir.
○
Sanal makine
○
Yorumlayıcı
○
Standart dil, kaynak kod farklı işletim sistemlerinde derlenebilir.
– ABI – Application Binary Interface, API’nin mimari olarak eşdeğidir.
BTP201 İşletim Sistemleri
●
İşletim sisteminin tasarımı ve uygulanması
– İşletim sisteminin tekil bir tanımı yapılamıyor.
– İşletim sistemlerinin mimarisi de farklıdır.
– Amaçlar ve gereksinimleri tanımlayarak başlanır.
– Donanım veya sistem özellikleri belirleyicidir.
– Kullanıcının beklentileri ve sistemin beklentileri
○
Öğrenmesi kolay, kullanımı kolay, az kaynak tüketsin...
○
Tasarım basit olmalı, uygulanabilir olmalı, hatasız olmalı, yeni işlevler
kolaylıkla eklenebilmesi, güvenilir olmalı, etkin olmalı...
– İşletim sistemi tasarımı YAZILIM MÜHENDİSLİĞİNİN bir çalışma alanıdır.
BTP201 İşletim Sistemleri
●
İşletim sisteminin tasarımı ve uygulanması
– Politika ve mekanizma birbirinden ayrılmalıdır.
– Politika: Ne yapmak gerekiyor?
– Mekanizma: Nasıl yapmak gerekiyor?
– Ayrım yapılması tercihlere göre işleyişin düzenlenmesini sağlar.
– Ayrılmaz ise başınız belada demektir!
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– İlk işletim sistemleri: Assembly
– İzleyenler sistem programlama dilleri: Algol, PL/1
– Günümüzde C/C++
– Gerçekte ise karma durum:
○
En düşük ve hızlı olması gereken kısımlar Assembly
○
Asıl kısım C
○
Sistem yazılımları C/C++, PERL, PYTHON ve SHELL SCRIPTS
– Yüksek seviyeli diller ile yazılabilir ama aktarılması ZORDUR! (Yavaştır)
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– Genel amaçlı işletim sistemleri büyük ve karmaşıktır.
– Çeşitli uygulama örnekleri
○
En basit MSDOS
○
Daha gelişmiş karmaşık: UNIX
○
Katmanlı yapı – soyutlama
○
Mikro kernel – MACH
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– UNIX ilk örnekleri;
○
Donanımın sınırlamaları nedeni ile işlevleri sınırlıdır.
○
İki parçalıdır:
●
Sistem yazılımları
●
Kernel
●
İşleyiş için gerekli olan tüm bileşenler tek bir yazılım olarak
tasarlanmış ve uygulanmıştır.
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– UNIX kernel tasarımı için örnek olmuştur.
○
Monolitik kernel
●
Hızlı
●
Tam donanım desteği
●
Değişiklik yapılması zor
○
Sonra;
●
Monolitik kernel ve modüler kernel bileşenleri
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– Katmanlı yapı
○
İşlevler farklı katmanlarda yer alır.
○
En alt katman donanıma en yakın olanıdır.
○
Üst katmanlarda farklı işlevler paylaşılır.
○
Teorik olarak en alttan hatalar ayıklanmaya başlarsa en üst katman
ulaşıldığında hatasız olacaktır.(!)
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– Microkernel
○
Monolitik kernel tersidir.
○
Kernel sadece sahip olması gereken işlevlerden oluşur.
○
Geri kalan her şey kullanıcı yazılımı olarak tasarlanır.
○
İletişim mesajlaşama ile gerçekleşir
○
Aktarılabilirlik yüksektir.
○
ÇOOOOK YAAAAAVVVVVAAAAAŞŞŞTTTIIIIIIIRRRR!
○
Hata ayıklamak zordur!
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– Modüler Kernel
○
Monolitik kernel yapısı korunur.
○
Nesne yönelimli programlama paradigması uygulanır.
○
Asıl çekirdeğe modül eklenebilir, çıkarılabilir.
○
İletişim arayüzler üzerinden gerçekleşir.
○
Linux, Solaris, FreeBSD, Illimunos, OpenIndiana...
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– Güncel işletim sistemleri;
○
Melez bir yaklaşımı benimsemiştir.
○
Windows monolitik kernel sahip olmakla birlikte farklı “kişilikler” için
mikrokernel de kullanır.
○
Apple, MacOS ile melez bir yapı ve katmanlı yapıyı birlikte kullanır.
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– İşletim sistemi farklı donanımlar üzerinde çalışmak için tasarlanır ve
geliştirilir.
– Hazır olarak satın alabilirsiniz.
– Kendiniz yazarsınız/inşa edersiniz.
○
Hazır örnekleri esas alabilirsiniz.
○
Kendiniz değişiklikler yaparak inşa edebilirsiniz.
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– FreeBSD (işletim sistemi ve userland utilities):
○
“/usr/src/sys/”
○
GENERIC
○
make buildworld && make buildkernel && make installkernel
○
reboot
○
make installkernel
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– Linux (sadece kernel)
○
https://www.linux.org
○
make menuconfig
○
make
○
make_modules
○
make modules_install
○
make install
BTP201 İşletim Sistemleri
●
İşletim sisteminin inşası ve çalıştırılması
– EEPROM veya ROM
– BIOS/EFI/UEFI
– Disk üzerindeki boot sektörü okunur
– Boot loader, bootstrapping çalıştırılır
– İşletim sisteminin ilk yüklenecek olan bölümü belleğe aktarılır.
– İşletim sistemi ilk yapılandırmayı BIOS/UEFI alır.
– İşletim sistemi yüklenir
– Diğer yazılımlar yüklenir/çalıştırılır
BTP201 İşletim Sistemleri
●
İşletim sistemlerinde hata ayıklama
– Hataları bulmak ve gidermektir.
– Performans ayarlaması da denir
– İşletim sistemleri kayıt dosyalarında önemli ip uçları bulunabilir.
– Uygulama çökerse – core dump
– İşletim sistemi çökerse – crash dump
– Profil hazırlama – Instruction Pointer düzenli olarak izlenir ve işleyişe
ilişkin bir profil çıkarılır.
BTP201 İşletim Sistemleri
●
İşletim sistemlerinde hata ayıklama