2 Linux‟un Tarihsel gelişimi Unix, 1969 yılında, Ken Thompson ve Dennis Ritchie tarafından Bell Laboratuvarları'nda geliştirilmiş, çok kullanıcılı, çok görevli yapıyı destekleyen bir bilgisayar işletim sistemidir. Özellikle kararlı yapısı ve çok kullanıcılı, çok görevli yapısıyla çok işlemcili sunucularda adeta standart haline gelmiştir. Birinci sürümü assembler ile yazılmış olan Unix, Dennis Ritche‟in yaptığı çalışmalar ile C diline aktarılmıştır. Çeşitli donanımlara bu sayede uyum sağlayabilir hale getirilmiştir. BTEP205 - İşletim Sistemleri 1 3 Linux‟un Tarihsel gelişimi Linux, Unix‟e fikirsel ve teknik anlamda atıfta bulunarak geliştirilmiş, açık kaynak kodlu, özgür ve ücretsiz bir işletim sistemi çekirdeğidir. Çekirdeğin kaynak kodları Genel Kamu Lisansı (GPL) çerçevesinde özgürce dağıtılabilir, değiştirilebilir ve kullanılabilir. BTEP205 - İşletim Sistemleri 4 Linux‟un Tarihsel gelişimi Minix işletim sistemi, kullanıcıların kendi kişisel bilgisayarlarında Unix‟in çalışma sistemini öğrenmelerini amaçlamaktadır. 62.000 satır C koduyla yazılmıştır ve bu kaynaktan yola çıkılarak, eski bilgisayarları verimli olarak kullanmak için bu işletim sistemi üzerine geliştirmeler yapılarak kararlı sürümler oluşturulmuştur. Torvalds, Linux çekirdeğini Minix üzerinde geliştirmeye başlamıştır. Minix için yazılmış uygulamalar Linux için de kullanılabilmektedir. BTEP205 - İşletim Sistemleri 2 5 Linux‟un Tarihsel gelişimi Linux‟un kalbi olan kernel (çekirdek) Unix‟in bir türevidir ve başta Linus Torvalds olmak üzere dünyanın dört bir yanındaki yüzlerce programcı tarafından ortak geliştirilmiştir. Linux ismi ilk olarak Linus Torvalds tarafından yazılan ve 5 Ekim 1991 Linux 0.02 etiketiyle duyurusu yapılan, Linux çekirdeğinden gelmektedir. Linus Torvalds, halen çekirdek geliştirme ekibindedir. Linus Torvalds BTEP205 - İşletim Sistemleri 6 Linux‟un Tarihsel gelişimi Çok geniş bir donanım desteğine sahip olan Linux çekirdeği, netbook, dizüstü bilgisayar, sunucu bilgisayarlar, iş istasyonu, akıllı telefon, masaüstü bilgisayarlar, gömülü cihazlar gibi hemen her platformda tam bir uyum içerisinde çalışabilmektedir. Linux sunucu işletim sistemlerinde kullanım oranı bakımından ilk sırada tercih edilmekte ve dünyanın 10 hızlı süper bilgisayarında da kullanılmaktadır. BTEP205 - İşletim Sistemleri 3 7 Linux Temel Kavramlar Kernel (çekirdek), tüm işlemlerden sorumlu yönetim kademesidir ve sistemin düzgün çalışmasını sağlar. Bilgisayar kaynaklarını düzenler, bellek denetimi yapar, kullanıcıların görevlerinin sırayla yapılmasını sağlar ve yan birimlerin (CD-ROM, disket sürücü vb.) çalışmasından sorumludur. BTEP205 - İşletim Sistemleri 8 Linux Temel Kavramlar Shell (kabuk), Unix ve benzeri sistemlerde sistem yönetimini sağlayan komutlar ve bu komutları işlemeye yarayan kontrol mekanizmalarının bulunduğu programlama şeklidir. Kernel ile kullanıcının iletişim kurmasını sağlar. Girilen komutları bilgisayara, sonuçları kullanıcıya iletir. BTEP205 - İşletim Sistemleri 4 9 Linux Temel Kavramlar Linux, Genel Kamu Lisansına göre (GPL) açık kaynak kodlu olduğundan kullanıcılar yazılımın içinde ne olduğunu bilir. Açık kaynaklı olması çekirdek yapı üzerine uygulama geliştirmeyi kolaylaştırmaktadır. Hataların keşfedilmesi ve düzeltilmesi oldukça kısa zaman alır. Kullanıcı beğenmediği kısımları değiştirmekte ve eklentiler yapmakta özgürdür. Bu lisansa göre, Linux üzerinden yazılım geliştirmek isteyen şirketler ürünlerini açık kaynak kodlu yapmak zorunda değildir. BTEP205 - İşletim Sistemleri 10 Genel Kullanım Alanları Kişisel bilgisayarlarda, internet sunucularında, tablet bilgisayarlarda, iş istasyonları ve ağ elemanı bilgisayarlarda Linux sıklıkla kullanılmaktadır. Linux çekirdeği günümüzde bilgisayarların ötesinde hayatın birçok alanında daha kullanılmaktadır. Kullanım alanlarına mobil telefonlar, televizyonlar, oyun konsolları, eğitim simülatörleri, otomobiller ve hatta uçaklar örnek olarak gösterilebilir. BTEP205 - İşletim Sistemleri 5 11 Linux İşletim Sistemi Linux işletim sisteminin açık kaynak kodlu, güvenilir, ücretsiz, yüksek performanslı olması ve birden çok kullanıcıyı desteklemesi avantajları olarak sayılabilir. Henüz tam olarak tüm ihtiyaçlara cevap verememesi (özellikle oyunlar), bazı ticari yazılımların Linux üzerinde fazla gelişme yapmaması ve yeterince tanıtımının yapılmaması Linux işletim sisteminin dezavantajlarıdır. BTEP205 - İşletim Sistemleri 12 Linux İşletim Sistemi Linux, Internet‟e bağlanabilmesi için TCP/IP desteği ile gelmektedir. Bunun yanında NetBEUI (Netbios Extended user interface), Samba (Windows makinelerinin birbiriyle konuşmak için kullandıkları protokol) ve Appletalk (Macintosh makinelerinin birbiriyle konuşmak için kullandıkları protokol) gibi protokoller de desteklenmektedir. BTEP205 - İşletim Sistemleri 6 13 Linux İşletim Sistemi Linux, tasarım aşamasından bu yana, birden çok kullanıcıyı desteklemek amacıyla yazılmış ve buna göre programlanmıştır. Dünya üzerinde aynı anda binlerce kullanıcının bağlandığı, Internet erişiminde bulunduğu, web sayfalarını taradığı, grafik ekranında çalıştığı ve program derlediği makineler vardır. Birden çok kullanıcı tarafından aynı kaynaklar paylaşıldığı için zamandan ve paradan tasarruf edilir. BTEP205 - İşletim Sistemleri 14 Linux İşletim Sistemi Linux birden çok görevin aynı anda yapılmasına olanak veren çok işlemli bir sistemdir. Klavyede basılan tuş ile ilgili işlemler ve makineye uzaktan bağlanan başka bir kullanıcının işlemleri birbirinden bağımsız olarak çalıştırılır. Örneğin, aynı anda arka planda bir web sayfasını sunan program çalışırken, bu durum grafik ara birimi altında bir kelime işlem programını çalıştırmayı veya gelen mesajları okumayı engellemeyecektir. BTEP205 - İşletim Sistemleri 7 15 Linux İşletim Sistemi Sürüm numarası 2.0 ile başlayan Linux çekirdekleri birden çok işlemciyi destekleyebilmektedir. Çekirdek, açılışta sistemde kaç tane işlemci olduğunu bulur ve kendisini buna göre ayarlar. Linux ile 16 işlemciye kadar sistemler doğrudan desteklenebilir. Günümüzde pek çok sistemde iki ve dört işlemciye sahip makinelerde Linux üstün performansla çalışmaktadır. BTEP205 - İşletim Sistemleri 16 Linux İşletim Sistemi Linux işletim sistemi, diğer işletim sistemleri için yazılan programları çalıştırabilmek için bazı özel programlar kullanmaktadır. Dosemu yardımıyla DOS penceresi açıp bu pencere içinde DOS tabanlı programları çalıştırılabilir. Wabi, Windows emülasyonu yapabilen ancak halen bazı eksiklikleri bulunan bir programdır. WINE (Wine Is Not an Emulator), kişisel bilgisayarların Windows programlarını çalıştırmasını sağlayan bir uygulama katmanıdır. BTEP205 - İşletim Sistemleri 8 17 Linux İşletim Sistemi Linux işletim sisteminde programların sorunsuz çalışabilmesi için güvenlik mekanizmaları bulunur. Çalışan programlar arasında bir koruma vardır. Bu koruma yardımıyla bir program özel şartlar olmadıkça diğer programların çalışmasını engelleyemez. Benzer şekilde herhangi bir kullanıcı istediği gibi bir program yazıp sistemin kapanmasını veya çalışamaz hale gelmesini sağlayamaz. Kullanıcıların dosya ve dizinleri, basit bir koruma mekanizması kullanılarak diğer kullanıcıların görmesini engelleyecek şekilde saklanabilir. Böylece önemli ve gizlenmesi gereken verilerin korunması sağlanır. BTEP205 - İşletim Sistemleri 18 Linux Dağıtımları Linux çekirdeği açık kaynak kodlu olduğu için, birçok farklı grup tarafından alınıp geliştirilmektedir. Bu yüzden Linux işletim sisteminin birçok dağıtımı bulunmaktadır. Bunlardan en bilinenleri: Ubuntu Fedora Pardus OpenSUSE Redhat Mandriva Slackware BTEP205 - İşletim Sistemleri 9 19 Linux Dosya Sistemleri Disk üzerindeki dosyaların düzenlenmesini ve bir işletim sisteminde dosyaların izlerinin bulunmasını sağlayan yapıya dosya sistemi (File System) denir. Linux dosya sisteminde en çok kullanılan dosya sistemleri: Ext2 Ext3 Ext4 Swap BTEP205 - İşletim Sistemleri 20 Linux Dizin Yapısı Linux işletim sistemi temel dizin yapısı aşağıda görünmektedir. Tüm dizinler kök dizinin altında bulunur. BTEP205 - İşletim Sistemleri 10 21 Kök Dizin (/) Microsoft işletim sistemlerindeki dizin yapısında birbirinden bağımsız kök dizinler (root) bulunur. Örneğin C dizini hard diskin ilk bölümünü gösterirken D dizini 2. bölümü gösterir. Ayrıca disket, CD-ROM ve USB için de ayrı ayrı kök dizini bulunur. Ancak Linux işletim sisteminde hiyerarşik bir klasör yapısı vardır. Bu hiyerarşik yapıda en üst dizin kök dizini (root) olarak bilinir ve „/‟ ile gösterilir. BTEP205 - İşletim Sistemleri 22 Kök Dizin (/) İşletim sisteminin çalışabilmesi için gerekli olan temel dosyalar kök dizinin altında bulunur. Tüm dosya sistemleri, programlar hatta sonradan eklenen disk bölümleri (partition) bile kök dizininin alt dizinlerinde yer alır. Her ne kadar programlar kök dizinine koyulabilse de genellikle alt dizinler tercih edilir. Kök dizini önyükleme sırasında hafızaya yüklenen ilk bölümdür. BTEP205 - İşletim Sistemleri 11 23 /boot Dizini Açılış sırasında ilk olarak yüklenmesi gereken dosya ve dizinlerin bulunduğu dizindir. Linux çekirdeği (kernel) bu dizinin altında bulunur. BTEP205 - İşletim Sistemleri 24 /bin Dizini İşletim sisteminin çalışması için gerekli olan programların bulunduğu yerdir. Kabuk programları (ör: sh), dosya düzenleme programları (ör: cat, echo, ls, cp) ve işlem programları (ör: kill) bu dizinin altında bulunur. BTEP205 - İşletim Sistemleri 12 25 /sbin Dizini Linux‟ta normal kullanıcının kullanacağı komutlarla, sistem yöneticisinin kullanabileceği komutlar ayrılmıştır. Sistem yöneticilerinin kullanabileceği komutların tutulduğu dizin /sbin dizinidir. BTEP205 - İşletim Sistemleri 26 /lib Dizini Programlar tarafından paylaşılan kütüphane dosyalarının (library files) ve sistem başlatılırken kullanılan kernel modüllerinin saklandığı yerdir. Linux‟ta kütüphane dosyalarının uzantısı .so‟dur. Bu dosyalar Windows‟ta ise .dll uzantısına sahiptir. BTEP205 - İşletim Sistemleri 13 27 /usr Dizini Bütün komutların, kütüphanelerin, kullanma kılavuzlarının, oyunların ve sistemin normal işleyişi için gerekli olan dosyaların bulunduğu dizindir. Linux sisteminde bir uygulama yüklenecekse, genelde, ön tanımlı olarak buraya yüklenir. Alt dizinlerini incelemek gerekirse: bin: Neredeyse tüm komut dosyalarının tutulduğu yerdir. sbin: Linux çekirdeğinin kaynak kodunun tutulduğu yerdir. lib: C/C++ dili için gerekli kütüphanelerin bulunduğu dizindir. share: Birçok uygulamanın yapılandırma ve grafik dosyaları burada bulunur. local: Yerel olarak yüklenen programlar ve dosyalar burada bulunur. BTEP205 - İşletim Sistemleri 28 /etc Dizini Bu dizinde çalıştırılabilir dosyalar yerine, birçok programın ve sistemin yapılandırma dosyaları ve dizinleri saklanır. Sisteme dair konfigürasyon dosyaları da burada bulunur. Örneğin DNS problemlerini çözmek için /etc/resolv.conf dosyası açılıp içerisine yeni DNS adresleri eklenebilir. BTEP205 - İşletim Sistemleri 14 29 /tmp Dizini Geçici dosyaların saklanması için kullanılan dizindir. Sistem başlatıldıktan sonra bu görevi “/var/tmp” dosyası üstlenir. Bir program yüklenirken, sadece yükleme süresince kullanılan ve daha sonra lazım olmayacak dosyalar burada saklanır. Bu dizinin içerisindeki dosyalar genellikle işletim sistemi açılışında silinir. BTEP205 - İşletim Sistemleri 30 /var Dizini Programların değişken sistem dosyalarını tutan bölümdür. Yazıcıya gönderilen sayfalar (/var/spool), sistem hatalarının ve mesajlarının saklandığı kayıt sayfaları (/var/log) ve çalışan işlemlerle ilgili bilgilerin (/var/run) bulunduğu dosyalar örnek olarak verilebilir. BTEP205 - İşletim Sistemleri 15 31 /home (Kişisel) Dizini Belirli bir kullanıcının kişisel dosyalarının (masaüstü ayarları, program şifreleri, İnternet tarayıcısında sık kullanılan sayfalar) saklandığı yerdir. „~‟ işareti ile ifade edilir. Ev dizininin içeriği sadece dizin sahibinin ulaşımına açıktır. Diğer kullanıcılar yönetici olmadıkları sürece buraya erişemezler. Sistem verileri ile kişisel bilgilerin ayrılması sonucu, herhangi bir çökme olması durumunda dosyaların kurtarılması ve yedeklenmesi açısından bu dizinin önemi büyüktür. BTEP205 - İşletim Sistemleri 32 /home (Kişisel) Dizini Kişisel dosyalara virüs veya trojan bulaşması durumunda, dosyaların göreceği zarar bu kullanıcının hesabındaki dosyalarla sınırlı olacaktır. Her kullanıcının kişisel dizini kendi kullanıcı adını taşır. Örneğin, /home/murat veya /home/mehmet. Linux‟deki /home dizini Windows‟taki Documents (My Documents)‟e benzemektedir. BTEP205 - İşletim Sistemleri 16 33 /dev Dizini Girdi/çıktı dosyaları (I/O files) ve bilgisayarın donanım aygıtlarıyla iletişim kurulabilmesi için gereken tüm dosyalar bu dizinde tutulur. Linux‟te donanım aygıtları dahil her şey bir dosyadır. USB girişleri, seri ve paralel portlar, diskler, CD-ROM aygıtları dosyalar ile ifade edilir. Tüm aygıtlar /dev klasörü altında tutulan dosyalardan ibarettir. Linux'taki aygıtlar ikiye ayrılır: karakter aygıtı ve blok aygıtı. Başlıca karakter aygıtları fare, klavye; blok aygıtları ise disket, CD-ROM ve sabit disktir. BTEP205 - İşletim Sistemleri 34 /mnt Dizini Bu dizin, geçici olarak herhangi bir dosya sistemine ulaşmak için oluşturabilecek bağlama noktalarını içeren dizindir. Üzerinde bir dosya sistemi olan bir disk birimi veya parçası okuma veya yazma amacıyla bilgisayara takıldığında, bu birim için /mount dizini altında dosyalar oluşturulacaktır. Örneğin flash diskler, CD-ROM ve disketler ön tanımlı olarak /mount dizini altına bağlanmaktadır. BTEP205 - İşletim Sistemleri 17 35 BTEP205 - İşletim Sistemleri 18