BMS-301 Kabuk Programlama Güz 2015 (1. Sunu) (Yrd. Doç. Dr. Deniz Dal)
İşletim Sistemi Nedir, Neye Yarar ?
İşletim Sistemi (System Software) Nedir ? İşletim Sistemi, kullanıcı ve programlar (application software) ile bilgisayar donanımı arasında iletişimi sağlayan bir bilgisayar programıdır.
İşletim Sistemi Ne Yapar ? Kullanıcının Müzik dinlemek Ofis belgeleri hazırlamak Oyun oynamak v.s. gibi birçok isteğini makine diline çevirip donanımı kullanarak cevaplar.
İşletim Sistemi İşletim sistemi olmadan bilgisayarın bir işlev gerçekleştirebilmesi mümkün değildir. Bir bilgisayara birden fazla işletim sistemi yüklenebilir. Bir bilgisayarda aynı anda iki işletim sistemi çalıştırmak mümkün değildir.
İşletim Sistemi İşletim sistemlerinin İsimleri Yapıları İçerikleri Hedef kitleleri birbirinden çok farklı da olsa bazı ortak özellikleri vardır. Bu özellikler işletim sisteminin performans ve kullanılabilirlik yeteneklerini büyük ölçüde belirler.
Çoklu Kullanıcı (MultiUser) Bu özelliğe sahip olan işletim sistemleri birden çok kullanıcının aynı anda bir işletim sistemi üzerinde aynı veya birbirinden farklı programları sorunsuz bir şekilde çalıştırmasına olanak sağlar. WinNT-2000-xp unix linux ms-dos,win95,98
Çoklu Görev (MultiTasking) Bu özelliğe sahip işletim sistemlerinde kullanıcı aynı anda birbirinden farklı programları kullanabilir. Bir taraftan müzik dinlerken diğer taraftan bir editör ile program yazmak gibi. Aslında işlemciler bir anda sadece bir işlem yürütebilseler de günümüz işlemcileri çok hızlı olarak bu süreçler arasında gidip gelerek kullanıcıya sanki bütün süreçlerin aynı anda çalıştığı hissini verirler. ms-dos geri kalanı unix basedler
Çoklu İşlemci (MultiProcessing) Bu özelliğe sahip işletim sistemleri bilgisayarda birden fazla işlemci bulunması durumunda bu işlemcileri de kullanabilme özelliğine sahiptir. (Dual core, quad core ve sonra ?)
İşletim Sistemleri Günümüzde başlıca işletim sistemleri Unix tabanlı Windows tabanlı olarak 2 gruba indirgenebilir.
UNIX Tabanlı İşletim Sistemleri Bütün Linux Dağıtımları HP-Unix Free-BSD Sun Solaris, SunOS BeOS MacOS ...
Microsoft Tabanlı İşletim Sistemleri MS-DOS (Microsoft Disk Operating System) Windows 3.x Serisi Windows 9X (Windows 95,Windows 98,Windows Millenium Edition) Windows NT Serisi Windows 2000 Windows 2003 Server Windows XP Windows Vista Windows 7 Windows 8
UNIX Nedir ? UNIX=Uniplexed Information and Computing System UNIX, 1968'de General Electric, AT&T ve MIT'nin geliştirdiği MULTICS isimli işletim sistemini taban alarak 1969 yılında Dennis Ritchie ve Ken Thompson'ın UNICS isimli bir işletim sistemi çekirdeğini yazması ile başlamıştır. İlk zamanlarda Assembler ile yazılan çekirdek daha sonra C programlama dili kullanılarak yazılmıştır. Yüksek Düzey bir programlama dili kullanılarak yazılması ve platformdan bağımsız çalışabilme özelliğinden dolayı bir anda çok ilgi çekmiştir. UNIX, 70'li yillarin ortalarinda büyük bilgisayarlar üzerinde çok kullanicili bir isletim sistemi olarak gelistirilmistir. Dayandigi isletim sistemi olan MULTICS (Multiplexed Information Computing System), 1968 yilinda General Electric, AT&T ve MIT in katilimi ile tasarlanmistir. Daha sonra bu isletim sisteminin beklentileri karsilamadigi anlasilinca 1969 yilinda Ken Thompson ve Dennis Ritchie öncülügünde C dili kullanilarak UNICS olarak adlandirilan bu isletim sisteminin çekirdek yazilimi olusturulmustur. Islemci mimarisine bagli Assembler dili ile yazilan ve sadece belirli bilgisayarlar için geçerli olan isletim sisteminden, üzerindeki platforma çok bagli olmayan ve yüksek düzey bir dille yazilan isletim sistemine yönelme olmus ve büyük bir asama kaydedilmistir. Bu isletim sistemi UNIX ismini almis ve zaman içerisinde yayilarak birçok türevi ortaya çikmistir. UNIX ismi UNIX Research Laboratories Inc. sirketinin tescilli markasi oldugundan dolayi birçok sirket, ayni temele dayanan isletim sistemleri için degisik isimler kullanmislardir. Örnek olarak Hewlett-Packard HP-UX, IBM AIX, Sun Solaris verilebilir. Bunlarin hepsi de ücretlidir.
UNIX İşletim Sistemi UNIX işletim sistemleri şirket sunucularında, üniversitelerde ve araştırma enstitülerinde stabilitesi ve güvenilirliği yüzünden yaygınca kullanılmaktadır.
Unix İşletim Sistemi UNIX işletim sistemlerinin parayla satılan ticari ve ücretsiz olan versiyonları vardır. Birçok firma UNIX kısaltması patentli olduğundan kendi UNIX işletim sistemlerini hazırlamışlardır. Hewlett-Packard; HP-UNIX IBM; AIX Sun Microsystems; Sun Solaris ...
Linux’un Tarihçesi 1991 yılında Helsinki üniversitesinde Linus Torvalds isimli bir öğrenci Minix (akademik cevrelerde popüler olan ve kullanılan bir UNIX türevi) işletim sistemindeki hataları kapatacak bir işletim sistemi yazmaya başladı. 5 Ekim 1991 tarihinde Linux 0.02 sürümü ortaya çıktı. Linux, Finli bir ö renci olan Linus Torvalds taraf1ndan deney seti olarak geli_tirimine ba_lanm1_ bir UNIX türevidir. Torvalds, tek disketlik aç1l1_-uyumlu bir sistem ile Intel i386 uyumlu ki_isel bilgisayar1n1 ba_latmay1 deniyordu. Bu çal1_mas1n1 ba_ar1l1 bir biçimde sonuçland1r1nca, akademik çevrelerde popüler bir UNIX türevi olan MINIX sisteminden daha iyi bir sistem yaz1p yazamayaca 1 konusunda kendisini s1namaya karar verdi. Olu_turdu u ilk taslaklar1 1991 y1l1nda Internet üzerindeki muhtelif haber gruplar1na göndererek, sistemin geli_tirimi için destek istedi. Bekledi inin çok üzerinde destek gören projeye LINUX ad1 verildi ve Internet üzerinde her geçen gün artan say1da geli_tiricinin deste i ile bugün art1k her gazete ve dergide hakk1nda yaz1lar görmeye ba_lad1 1m1z sistem durumuna ula_t1.
Linux’un Tarihçesi Linus comp.os.minix haber grubunda yazdığı işletim sistemi ile ilgili bir proje ortaya sundu. Açık kaynak kodlu işletim sistemi geliştirme fikri çok büyük ilgi gördü.
Linux’un Gelişimi Linux, kendine özgü avantajları ile bir anda UNIX ve Windows tabanlı işletim sistemleri kullanan şirketlerin gözdesi olmaya başladı. Bir taraftan da UNIX öğrenmek isteyen kullanıcılar için iyi ve ücretsiz bir araç haline geldi.
Neden Linux Kullanmalıyım? Ücretsiz bir yazılım ya da ; Office XP =325 $ x 20=6500 $ Windows XP professional =140 $ x 20=2800 $ Windows 2003 Server =625 $ x 1=625 $ Toplam lisans ücreti = 9925 $ ~ 10000 $ !!!
Neden Linux Kullanmalıyım? Düşük donanım gereksinimleri Yapacağınız işin yüküne göre değişse de günümüzde hala 486 serisi bir işlemci ve 8 Mb ram'e sahip bir bilgisayar X-Window ortamı kullanmadığınız sürece linux sürümlerini çalıştırabilir. X-Window ortamı istenildiğinde kullanılabildiği için bazı görsel ihtiyaçlar hariç zorunlu değildir.
Neden Linux Kullanmalıyım? Stabilite (Kararlılık) UNIX tabanlı olması Çok yüksek uptime (aralıksız çalışma) değerleri Dünya üzerinde sunucuların yaklaşık %50'sinde kullanılması Mavi ekran kullanmaması :)
Neden Linux Kullanmalıyım? Hız Web, Ftp, DNS, E-posta, Proxy, Haber sunucuları gibi performansın önemli olduğu sunucularda Linux kullanmak donanımın elverdiği ölçüde hıza sahip olmamızı sağlar.
Neden Linux Kullanmalıyım? Güvenlik Güvenlik açıklarının hızla kapatılması Açık kaynak kodlu olduğu için virüs tehlikesinin daha az olması Beta sürümlerinin dünyada büyük bir topluluk tarafından deneme testlerinin yapılması
Neden Linux Kullanmalıyım? Destek Ücretsiz lisansa sahip yazılımların zayıf tarafı olarak öne sürülür. RedHat, OpenSUSE ve birçok dağıtım ücret karşılığında maille, telefonda veya yerinde 7x24'e varan şekillerde teknik destek sağlamaktadırlar. Eğer ücretsiz destek istiyorsanız www.google.com, milyonlarca e-posta listesi, forum emrinize amade...
Niçin Herkes Linux Kullanmıyor? Microsoft Tekeli ve Pazarlama stratejileri İlk kişisel bilgisayarların windows için optimize edilmiş olması ve windows işletim sistemi ile dağıtılmış olması X-Window ortamının son 10 seneye kadar çok kullanıcı dostu olmaması Microsoft'un kullanıcı düzeyinde şu anda yüksek ama azalan pazar payı
Linux Dağıtımları (Distributions) Linux aslında işletim sisteminin çekirdeğine (kernel) verilen isimdir. Aynı çekirdeğin üzerine farklı uygulamalar eklenerek veya belli görevler için çeşitli optimizasyonlar yapılarak farklı yapılarda ve özelliklerde dağıtımlar ortaya çıkarılmıştır.
Linux Dağıtımları (Distributions) Değişik amaçlı ve değişik platformlarda çalışan 300 civarı Linux dağıtımı bulunmaktadır. Başlıcaları Redhat (Fedora) Pardus Open SUSE Ubuntu Debian Mandrake ...
Açılış (Boot) İşlemleri Bilgisayarın açılışı sırasında bilgisayarın çeşitli komponentleri ve işletim sistemi belli bir sırayla çalışarak sistemin kararlı (stabil) ve sorunsuz bir şekilde açılıp kullanıma hazır hale gelmesini sağlar.
BIOS LILO (Linux Loader) Çekirdek init Login
BIOS (Basic Input Output System) BIOS bilgisayarda salt okunur bir yonga (chip) olan ROM (Read Only Memory)'da saklanan minik bir işletim sistemidir. Görevi açılışın ilk aşamasında devreye girip donanım kontrolü yapmak, üzerindeki konfigürasyona göre sistemi boot edebilecek bir medya bulup sistemin açılışını sağlamaktır.
LILO (Linux Loader) İşletim Sistemleri disklerin MBR (Master Boot Record) denilen kısımlarındaki bilgiler kullanılarak açılırlar. Eğer MBR doğru bilgileri içermiyorsa işletim sistemi diskte olsa dahi açılmaz. LILO açılış yöneticisi birden fazla işletim sistemi bulunan sistemlerde açılışı düzenlemek için kullanılır.
Çekirdek (Kernel) BIOS işini bitirdikten sonra Çekirdek açılış işlemlerini yönetmeye başlar. Her açılışta sistemdeki donanımları denetler. Çekirdek bu işlemleri tamamladıktan sonra init programını çalıştırır.
init init programı başladıktan sonra çekirdek bir yönetici ve servis sağlayıcı olarak çalışmaya başlar. init programı bir dizi işlemi tamamlamaya çalışarak sistemin kararlı (stabil) bir şekilde açılmasını sağlamaya çalışır.
init Ana Süreçleri Dosya sistemlerinin kontrolü yapılır, Ağla ilgili ayarlar aktive edilir, Geçici dosyalar silinebilir, Önceden ayarlanmış servisleri açacak olan kabuk betiklerini (shell script) çalıştırır.
init Ana Süreçleri init programı açılış seviyesine göre /etc/init.d/ altında bulunan rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, rc6.d ve rcS.d dizinleri altında yer alan açılış ya da kapanış betiklerini (script) çalıştırarak sistemin belirtilen seviyede açılmasına olanak sağlar. rc?.d dizinleri altında yer alan betiklerin isimleri S veya K harfleriyle başlar: S: Başlat (start) K: Durdur (stop) anlamına gelmektedir. Betik isimlerinde yer alan numara ise betiğin hangi sırada çalıştırılacağını belirtir.
Kullanıcı Girişi (Login) işlemi init programı işini bitirdiğinde aşağıdaki gibi bir kullanıcı girişi ekranıyla karşılaşırsınız. login: <kullanıcı adı> Buraya gireceğiniz kullanıcı adının daha önce sistemde tanımlı olması gerekmektedir. Kullanıcı adları genellikle soyisim yada isim soyisim ve isimlerin birleştirilmesiyle oluşturulur.
Kullanıcı Girişi (Login) İşlemi Kullanıcı adınızı girip Enter tuşuna bastığınızda şifre (password) istemi ile karşılaşırsınız. login: ddal Password: Şifrenizin kaç haneli olduğunun dışarıdan görünmemesi için şifrenizi açık veya başka bir simge şeklinde ekranda göremezsiniz ancak şifrenizi yazıp enter tuşuna bastığınızda şifreniz sistem tarafından değerlendirilecektir.
Kullanıcı Girişi (Login) İşlemi Sistem şifrenizi kendi kullanıcı veritabanındaki şifreyle karşılaştıracak eğer birebir eşlerse size sisteme giriş izni verecektir. Sisteme girerken ilk olarak göreceğiniz şey eğer ayarlanmışsa Message of The Day (MOTD Günün Mesajı) olacaktır. (/etc/motd) login:ddal Password: !!!! Enjoy your parallel programming experience !!!
Kabuk (Shell) MOTD'nin ardından komut satırına yani kabuğa düşersiniz. Komut satırındaki işaretlerin farklı anlamları vardır. root :~# ya da ddal:~$ $ : Bu işaret sizin sıradan kullanıcı olduğunuzu belirtir. # : root kullanıcısı olduğunuzu belirtir. ~ : Kullanıcının ev dizininde bulunduğunuzu belirtir.
Komut Kabuk üzerinde genel komut kullanımı aşağıdaki gibidir: komut -seçenek(ler) argüman(lar) Komut: Sistemin ne yapacağını söyler. Seçenekler (Options): Komutun işleyiş şeklini değiştirmeye yarar. Eksi (-) işareti ile başlar. Argümanlar (Arguments): Komutun üzerinde işlem yapacağı nesnedir. Örneğin dosya, proses, kullanıcı,...
Komut Seçenekleri -h --help Komutla ilgili yardımcı bilgi verir. Kısa ya da uzun yazılışları olabilir: Kısa yazılış: Tek tire (-) tek harf Uzun yazılış: Çift tire (--) sözcük Çoğu komutta bulunan bazı seçenekler: -h --help Komutla ilgili yardımcı bilgi verir. -v --verbose İşlemin aşamalarını ayrıntılı gösterir. -q --quite Hiçbir mesaj çıkartma. -V --version Komutun sürüm numarasını gösterir.
Komut Örnek komutlar ve komutların argümanlar ile kullanımları: $ date (komut) $ cal 12 2000 (komut ve iki argüman) $ ls -l (komut ve bir seçenek) $ ls -laR (komut ve çok seçenek) $ ls -l -a -R (komut ve çok seçenek) $ ls –la /etc (komut, iki seçenek ve bir argüman)