*
*
*
*
*
*
*

   
  Türkiye'nin En Büyük SiteSi
  Linux'u tanıyalım
 
1. LINUX NEDİR ? 1.1 Linux Tarihçe Linux, UNIX benzeri, serbestçe dağıtılabilen , çok kullanıcılı, çok görevli ve güçlü bir işletim sistemidir. Linux'un kalbi olan kernel (çekirdek), başta Linus Torvalds olmak üzere dünyanın dört bir yanındaki yüzlerce programcı tarafından ortak geliştirilmiştir. Linux sadece Intel değil, Sparc, Alpha, Macintosh platformlarında da çalışabilir. Çok az donanım ihtiyacı olduğu için evinizde Linux'u rahatlıkla kurabilir ve kullanabilirsiniz. Linux işletim sisteminin her aşaması açık olarak internet üzerinde yayınlanmakta, dünyanın dört bir yanında kullanıcılar tarafından test edilmekte, hataları ve eksiklikleri tespit edilerek düzeltilmekte ve geliştirilmektedir. Bu açıklık Linux’un en büyük avantajlarından biridir. Linux, Andy Tannenbaum tarafından geliştirilmiş olan Minix işletim sistemine dayanmaktadır. Linux Torvalds boş zamanlarında Minix’den daha iyi bir Minix işletim sistemi yaratmak düşüncesiyle 1991 Ağustos sonlarında ilk çalışan Linux çekirdeğini oluşturdu. 5 Ekim 1991 tarihinde 0.02 sürümü Linux ilk defa tanıtıldı. Linux, comp.os.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 yazmıştı. İşletim sisteminin çekirdeği için verilen numaralar kısa sürede bir standart kazandı. a.x.y şeklinde belirtilen çekirdek türevlerinde y bulunulan seviyeyi, x gelişim aşamasını göstermektedir. Tek sayılı x’ler geliştirme aşamalarını çift sayılı x’ler ise güvenilir Linux çekirdeklerini göstermektedir. a ise değişik Linux sürümlerini belirtir. Bu yazının hazırlandığı Ağustos 1997 içerisinde en son güvenilir (kararlı) Linux çekirdeği 2.0.30, en son gelişim aşamasındaki çekirdek ise 2.1.47’dir. 1.2 Linux’un Desteklediği Donanımlar Linux'un donanımdan sonuna kadar faydalanması neticesinde son derece düşük donanım maliyeti vardır. Desteklediği kartlar piyasada her an bulunabilir cinstendir. En düşük donanım ihtiyacı 386 SX/16 işlemci ve 4Mb RAMEn az 150 Mb boş disk bölümü ve bir takas bölümü. Kullanılabilir donanım ihtiyacı; Bir Pentium işlemci 32Mb RAM, 1.5 GB boş sabit disk alanı ve bir takas alanı; iyi bir grafik ekran görüntüsü alabilmek için en az 1 ya da 2Mb bellekli ekran kartı, fare (PS/2, Microsoft, Mouseman). CPU (MİB - Merkezi İşlem Birimi) 386 ve üzeri Intel uyumlu tüm işlemciler (386, 486, Pentium, PentiumII, Pentium Pro, Celeron ve türevleri) ile değişik üreticilerin dağıttığı Intel uyumlu işlemcilerde (AMD, Cyrix) Linux sorunsuz olarak çalışabilir. Amiga'larda kullanılan Motorola işlemcilerde de (68020, 68030, 68040 ve 68060) Linux çalışabiliyor. Bunların yanında daha gelişmiş sayılan DEC Alpha, SPARC, StrongARM, MIPS, HP PA-RISC ve PowerPC (Macintosh'larda kullanılan) işlemcilerde de Linux kurulmuştur. Mimari ISA, EISA, VESA ve MCA (IBM PS/2'lerde kullanılan Micro Channel Architecture) mimarilerindeki anakartlar desteklenir. Yerel veri yollarından VLB ve PCI da Linux ile sorun çıkartmadan çalışacaklardır. Bellek 4 GB'a kadar RAM desteklenmektedir. Sabit disk EIDE ve IDE diskler ile MFM ve RLL'e sahip 8 ve 16 bitlik sabit disk denetleyicileri Linux tarafından desteklenir. Benzer şekilde SCSI denetleyicisi desteklenen (Advansys, Adaptec AHA 1542, 1522, 1740, 27xx ve 29xx gibi) tüm SCSI sabit disk ve CD-ROM'larla Linux altında çalışabilirsiniz. CD-ROM aygıtlarından Matsushita/Panasonic, Mitsumu, Sony, Soundblaster, Toshiba ve ATAPI gibi türler de desteklenenler arasındadır. Ekran Metin ekranlarda SVGA, VGA, EGA, CGA veya Hercules kartlar ile X Window grafik ekranı altında S3, ATI Mach8/32/64, Trident, ET3000/4000, Paradise, Cirrus Logic gibi kartlar desteklenir. Ağ kartları Onlarca tip ethernet kartı desteklenir ve halen bu liste gittikçe artmaktadır. 3COM, WaveLAN, Western Digital, D-Link, Intel, DEC, HP, AMD, Zenith firmalarının ürettiği kartların çok büyük bir çoğunluğu tanınabilir. Genellikle en sık kullanılan ethernet kartları NE2000 ve 3COM uyumlulardır. 16450 ve 16550 UART tabanlı seri kartlar ve tüm asenkron modemler Linux altında çalışır. Internal (makinanın içine takılan) veya external (makinanın dışında duran) modemler ile Linux yardımıyla Internet'e bağlanabilirsiniz. Winmodem'leri Linux ile birlikte kullanamazsınız. ISA modemler Linux ile sorunsuzca çalışır. Ses Kartları Linux, SoundBlaster, ProAudio Spectrum, Gravis Ultrasound, AWE 32/64, Sound Blaster Live gibi en son çıkmış ses kartlarını destekler. Yazıcılar Linux'un yazıcı desteği nispeten kısıtlıdır. Windows uyumlu olduğu söylenen birtakım yazıcılar Linux altında çalışmazlar. Aslında temel bir kural olarak şunu belirtebiliriz ki paralel veya seri porta takılan her yazıcı ve çizici, sürücüsü olduğu sürece Linux tarafından desteklenir. Hatta bir yerel ağ üzerinden bu yazıcılar birden çok makinaya paylaştırılabilir. Fare Linux, Microsoft, Mousesystems ve Logitech serial mouse, ATI XL, Logitech ve Microsoft busmouse ile PS/2 mouse desteklenir. Linux, başta IBM-PC uyumlu kişisel bilgisayarlar olmak üzere Apple, Atari ve Amiga gibi 68000 tabanlı bilgisayarlar üzerinde, Sun Sparc işlemcili iş istasyonları, Alpha işlemcili kişisel bilgisayarlar, MIPS, PowerPC, HP PA-RISC ve ARM mimarilerinde çalışmaktadır. IBM uyumlu kişisel bilgisayarlar üzerinde 80386 ve üzeri değişik üreticilerin işlemcileri ile sorunsuz olarak çalışmaktadır. 80286 ve 8086 işlemcili bilgisayarlar için sınırlı kabiliyette Linux uygulamaları mevcuttur. PCI, VESA, ISA, ve MCA mimarilerinde her türlü anakartı desteklemektedir. Teorik olarak 4 Gbyte’a kadar RAM desteklenmektedir. AT uyumlu diskler (IDE, EIDE ve 16 bitlik MFM, RLL veya ESDI) desteklenmektedir. Kontrol kartına uyumlu destek bulunduğu sürece SCSI diskler ve diğer cihazlar desteklenmektedir. IDE-ATABI CD-ROM sürücüleri, ve bazı özel CD-ROM kontrol kartları desteklenmektedir. Metin ekranlarda CGA, EGA, VGA, Hercules veya uyumlu kartlar desteklenmektedir. X Window ortamında genel VGA ve SVGA uyumlu kartlar ve S3, ET4000, 8514/A, ATI MACH8, ATI MACH32 gibi birçok görüntü kartı desteklenmektedir. Birçok 10 ve 100 Mbit ethernet kartı, ISDN, ATM, FDDI, SLIP, CSLIP, PPP desteği verilmektedir. Başta SoundBlaster, Gravis Ultrasonud olmak üzere birçok ses kartı desteklenmektedir. 1.3 LINUX’un Desteklemediği Donanımlar Birtakım donanım firmaları sadece windpws tabanlı ve uyumlu donanım parçaları üretmeleri ve yazılım firmalarının da bu işletim sistemini destekleyen sürücüleri çıkartamaması nedeniyle Linux altında bazı çalışmayan ürünler bulunmaktadır.bunlar: Tüm HP Deskjet 820xx serisi ve sadece windows uyumlu yazıcılar. Multiwave Innovation CommWave V.34 modem US Robotics WinModem serisi ve tüm HCF modemler US Robotics Sğortster Voice/Fax modem (X’ model 1785 internal PnP) Boca modem (model M3361) Boca Research 28.8 dahili modem (model MV34AI) Zoltrix 33.6 Win HSP Voice/Speaker Phone modem Motorola ModemSURFR dahili 56K Compaq 192 PCMCIA modem/serial kartı New Media Winsurfer PCMCIA mode/serial kartı Sharp JX-9210 yazıcısı 1.4 LINUX’un En Önemli Özellikleri Linux’un en önemli özelliklerini açıklayabilmek için Linux’un temel parçalarını ve bunların özelliklerini verelim. Çekirdek Linux’un çekirdeği bir bakıma sistemin beyni sayılabilir. Aslında çekirdeğin adı Linux’tur. Bütün versiyonları aynı çekirdeği kullanır. Değişenler dosya ve dizin yapısı, dağıtıma giren belgeler, paketler, dağıtımın fiyatı ve dağıtımın hedeflediği kullanıcılardır. Çekirdek, sistemin düzgün çalışmasından, bilgisayar kaynaklarının düzenlenmesinden, kullanıcıların görevlerinin sırasıyla yapılmasından, bellek denetiminden, yan birimlerin (CD-ROM, teyp, disket sürücü vb.) çalışmasından ve benzeri işlemlerden sorumludur. Programlar, çekirdek içindeki “system call”lar (sistem çağrıları) yardımıyla birbiriyle haberleşirler. Çekirdeği oluşturan sistem çağrılarından kullanıcılarda yararlanabilir. Böylece bir CD, ethernet kartı ya da disk üzerindeki bir dosyaya erişim mümkün olur. Linux’ta sistemin temel yönetimi çekirdek tarafından yapılır. Birden Çok Kullanıcı Linux, birden çok kullanıcıyı desteklemek için yazılmış ve ona göre programlanmıştır. Birden çok kullanıcı tarafından aynı kaynaklar paylaşıldığı için zamandan ve paradan tasarruf edilir. Birden Çok Görevin Aynı Anda Yapılması Linux, birden çok görevin aynı anda yapılmasına olanak veren bir sistemdir. Siz bir klavyaeye bastığınız zaman yapılan işlem ile makineye uzaktan bağlanan bir başka kullanıcının işlemleri birbirinden bağımsız çalışır. Aynı anda arka planda örneğin bir web sayfasını sunan programlar olabilir, ya da bir başkası ftp isteğinde bulunabilir. Diyebiliriz ki Linux çokgörevli bir işletim sistemidir. Kararlılık Linux, 1.0 sürümünün Internet sitelerine konulduğu 14 Mart 1994 yılından beri beta denemelrini geçmiş ve kararlı bir yapıya bürünmüştür. Çekirdekte halan hatalar vardır ve üzerine yeni kodlar eklendikçe bu hataların yenilerinin gelmesi kaçınılmazdır. Ancak Linux açık bir şekilde geliştiğinden sürekli bir kontrol altındadır. Çekirdeğin iki farklı sürümüde internette dağıtılır. Örnek olarak 1.2.13 kararlı bir çekirdek sürümüdür. 1.3.56 ise halen üzerinde geliştirme yapılıyor ve test ediliyor anlamına gelir. Çekirdek sürümünün ortasındaki rakam tek ise bu çekirdek deneyseldir. Hala test aşamalarından geçmekte ve üzerinde sürekli yeni kod yazılıyor demektir. Çift olması durumu ise bu çekirdeğin kullanılabilir ve çok büyük ihtimalle kararlı olduğu anlamına gelecektir. Linux’un kararlı bir işletim sistemi olmasının en büyük kanıtı, Internet üzerindekullanıldığı alanların genişliği ve bu konudaki yönetici memnuyetleridir. Çok İşlemci Desteği SMP (symmetric multi processor - simetrik çok işlemci) desteği Linux’ta Intel ve SPARC platformlarında mevcuttur. Sürüm numarası 2.0 ile başlayan çekirdekler açılırken sistemde kaç tane işlemci olduğunu bulur ve buna göre kendini ayarlar. Linux ile 16 işlemciye kadar olan sistemler doğrudan desteklenebilir. Linux ve Ağ Teknolojileri Linux üç değişik şekilde ağa bağlanabilir: broadcast (örneğin ethernet), Token Ring (örneğin FDDI) veya noktadan noktaya (örneğin modemle PTT) bağlantı. Linux, doğrudan doğruya internete bağlanabilmesi için TCP/IP desteği ile gelir. TCP/IP nin yanında NetBEUI, Samba (windows makinelerinin birbiriyle konuşmak için kullandıkları protokol), Appletalk (Macintosh makinelerin kullandığı protokol) gibi protokoller de desteklenir. Daha za kullanılan ama Linux’un desteklediği protokoller arasında Ipv6, AX.25, X.25, IPX ve Netrom bulunur. Linux, geniş bir ağ desteği ve protokol ailesi ile birlikte gelmektedir. Güvenlik Meanizması Linux, 386 ve üstü işlemcilerde korumalı kipte çalışır. Ç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. Çok kullanıcılı bir sistem için bu çok önemlidir. Benzer şekilde herhangi bir kullanıcı istediği gibi bir program yazıp sistemin kapanmasını veya çalışamaz hale gelmesine neden olamaz. Kullanıcıların dosya ve dizinleri basit bir koruma mekanizması kullanılarak diğer kullanıcıların görmesini engelleyecek şekilde saklanabilir. Linux, geniş güvenlik mekanizması içerir. Linux ve çekirdek bunların yanında aşağıdaki özelliklere de sahiptir: Birden fazla programın çalışması halinde bellekte bu programların sadece bir tanesi tutulur. Böylece bellekten tasarruf sağlanır. Çalıştırılabilir bir program, belleğin tamamından büyük olabilir. Bu durumda programın sadece o an kullanılan bölümleri belleğe alınır ve çalıştırılır. Böylece bellek kısıtlaması programın çalışmasına engel teşkil etmez. Disk alanı yadımıyla belleğin yetmediği durumlarda fazla veri diske yazılır. Bu bölüme takas alanı (swap space) denir. Her biri en çok 2Gb tutan 16 tane takas alanı açılabilir. Paylaşılan kütüphaneler dinamik veya statik olabilir. Yani bir kütüphane aynı anda birden çok program tarafından yüklenebilir (dinamik), veya bir programın içine gömülebilir (statik). Linux’un çekirdeği büyük oranda POSIX , System V ve BSD standartlarıyla uyumludur. Pek çok klavye tipini destekler. Aynı anda birden çok sanal ekranı destekler. Konsolda oturuken birden fazla (en çok 64) giriş yapabilirsiniz. Minix, Xenix, FAT, VFAT, FAT^’, HPFS (OS/2’nin kullandığı dosya sistemi), HFS (macintosh’un kullandığı dosya sistemi) gibi dosya sistemleri desteklenir. Kendisine ait olan en hızlı ext2 dosya sistemi 4TB’a kadar bilgiyi adresleyebilir ve 255 karaktere kadar dosya isimlerini gösterebilir. Joilet ve ISO9660 standartlarında yazılan CD-ROM’ları okuyabilir. 1.5 Linux’un Genel Kullanım Amaçları Linux işletim sistemi özel kullanım başta olmak üzere birçok alanda yaygın olarak kullanılmaktadır. 1.5.1 Kişisel Kullanım Linux evinde veya işinde UNIX işletim sistemi altında çalışmak isteyenler için ideal bir platformdur. Linux altında yer alan uygulamalar giderek sıradan bir kullanıcı için bile bu işletim sisteminin ilgili çekici hale getirmektir. Gelişimleri henüz tamamlanmamış olmasına rağmen, herhangi bir kişisel bilgisayardan beklenebilecek yazı editörleri, hesap cetvelleri, çizim yazılımları, veri tabanları birçok ihtiyaca cevap verecek düzeye gelmiştir. 1.5.2 Internet Sunucusu Linux doğrudan TCP/IP desteğiyle gelmektedir. Bu yönüyle TCP/IP temelli bilgisayar ağlarında hem istemci hem de sunucu olarak yaygın kullanım bulmuştur. Üzerinde hali hazırda bulunana servislerin çeşitliliği, yeni çıkan servislere hızlı ayak uydurması, kolay konfigüre edilebilmesi ve özellikle de düşük maliyeti sebebiyle yaygın olarak internet servislerinin verilmesi amacıyla kullanılmaktadır. Zamanla verdiği ağ servisleri başka protokollere destek verecek şekilde genişletilmiştir. Şu anda Linux; WWW sunucu, DNS sunucu, NFS sunucu, NIS sunucu, X Window sunucu, BOOTP sunucu, SMTP sunucu, FTP sunucu, LIST sunucu, NEWS sunucu gibi yaygın TCP/IP servislerinin yanı sıra NOVELL sunucu, SAMBA sunucu (Windows 3.1, Windows 95; Windows NT ve WfW için disk ve yazıcı servisi), APPLE TALK sunucu (MacOS kullanan APPLE makineler için disk ve yazıcı servisi) verebilmektedir. 1.5.3 Ağ Elemanı Linux, yazılım desteği ile birçok ağ elemanının yerine geçebilecek bir alternatif olarak kullanılabilmektedir. Birden fazla ağın birbirine bağlanması amacı ile bir yönlendirici (router) olarak da kullanılabilmektedir. Özellikle farklı protokoller arası bir geçiş elemanı olarak yaygın şekilde Linux’den yararlanılmaktadır. Ayrıca yönlendirici olarak kullanıldığında kolaylıkla güvenlik amacıyla firewall (alev duvarı) olarak konfigüre edilebilmektedir. Ayrıca bir ağ üzerinde bulunan iki segmanın trafiğini birbirinden ayıran bir köprü (bridge) olarak hizmet verebilmektedir. Birçok kurumda bir veya daha çok modemin bağlanması amacıyla bir terminal sunucu olarak Linux kullanılmaktadır. 1.5.4 Internet Haberleşmesi Linux ile modem yardımıyla bağlandığınız sağlayıcının size sunduğu olanakların tamamını Linux ile kullanabilirsiniz. Linux kolay yapılandırılabilen, yeni çıkan servislere hızlı ayak uyduran, ucuz ve güvenli bir işletim sistemi olduğundan, yaygın olarak internet haberleşmesinde kullanım bulmuştur. Linux’ta çalışan Apache web sunucusu, dünya üzerindeki web servislerinin %57’sinde kullanılıyor. Tüm web sunucularının %10’unun Linux üzerinde çalıştığı tahmin ediliyor. 1.5.5 Yazılım Geliştirme Linux geniş yazılım arşivi ve kütüphanesi ile birlikte sunuluyor. C, c++, Java, Ada, Fortran, Pascal, Lips, Scheme, Tcl/Tk başta olmak üzere hemen her programlama dilinin yorumlayıcı ve derleyicisini bulabilirsiniz. derleyicilerin yanı sıra daha kolay yazılım geliştirmeye olanak kılan hata ayıklayıcılar (debuggers), otomatik yapılandırma yazılımları (configure) ve programın performansını denetleyen paketler (gprof) bulunur. Gcc C derleyicisinin 100’den fazla seçeneyi var ve programcıya rahat bir programlama ortamı sunar. Grafik tabanlı Tcl/Tk programlama dili; menüleri, pencereleri kolyca yaratmanızı sağlıyor. C tabanlı Xforms, Qt ve Gtk kütüphaneleri X Window altında hızlı grafik programlama için kullanılabilir. KDE Qt ile, X-ISP Xforms ile, GNOME pencere denetleyicisi ise Gtk kütüphanesi ile yazılmıştır. Unıx/Linux makineler için geliştirilen yazılımlar genellikle çalıştırılabilir halde dağıtılmaz, kaynak kodları ile birlikte verilir. Bumları internetten indirdikten sonra açmalı ve uygun derleyicilerle derlemelisiniz. 1.6 LINUX’un Yazılım Özellikleri 1.6.1 Temel Komutlar Daha önce UNIX tabanlı bir işletim sisteminde çalışanlar için Linux, öğrenilmesi çok kolay bir sistem olacaktır. Standart bir UNIX sisteminde yer alan hemen hemen tüm komutlar, Linux’a taşınmıştır. Onlarca çeşit kabuğun yanı sıra, sed, awk gibi programcının işini kolaylaştıran diller, ls, less, finger gibi temel her türlü komut, Linux’ta vardır. Ağ ve İnternet uygulamaları için elm ve pine (Pine Is Not Elm :-) yanında metin editörleri olarak vi, vim (vi’ın daha gelişmiş sürümü), pico ve joe sayılabilir. Editörlerden, bizde fazla bilinmeyen Emacs da Linux altında denemeye değer programlardandır. Kelime işlem programlarından troff, groff (GNU troff) ve daha modern metim işleme yazılımlarından TeX ve LaTeX sayılabilir. Bazı program isimlerinin (GNU-tar, GNU-bash gibi) başında görebileceğiniz GNU (GNU is not UNIX), Linux için de yazılım ve programlar üreten bir kuruluştur. GNU, lisansını ve yazarını korumak koşuluyla programları kaynak koduyla birlikte Linux kullanıcılarına dağıtır. GNU bash ve tcsh, Linux altında en çok rağbet edilen iki kabuk ismidir. Diğer kabuklar arasınde zsh, ash, ksh ve csh sayılabilir. 1.6.2 Uygulama Programları Doğru seçilmiş bir donanım üzerine kurulan bir Linux makinesi, hemen her tür çoklu ortam (multimedia) uygulamalarını rahatlıkla çalıştırabilir. En az pentium tabanlı, 32 Mbyte RAM ve 2 GB sabit diske sahip makine yardımıyla ticari olarak satılan çoklu ortam uygulamaları kullanılabilir. Linux, hemen her türlü ses kartını desteklediğinden ses dosyalarının, workman ve cdplayer gibi programlar yardımıyla kolayca çalınması mümkün olur. MIDI editörleri ve bir sentezleyici ile kendi müzik stüdyonuzu kurabilirsiniz. Mühendislik yazılımları arasında gnuplot (grafiksel veri analiz yazılımı), xspread ve xfractint (fraktal yaratma programı) sayılabilir. Ayrıca Doom, Quake, Abuse, Xtetris, FreeCiv, Imaze vb. onlarca oyun Linux’da oynanabilir. 1.6.3 Grafik Arabirimi (X Window Arabirimi) Linux işletim sistemi altında X Window sistemiyle Windows altındaki gibi grafik arabirimiyle birlikte çalışabilinir. Windows ile uğraşan herkes X Window’a geçebilir. X ile ekranda aynı anda birden fazla pencere açılabilir (20 kadar pencere denetleyicisi vardır), fare yardımıyla birden fazla uygulama aynı anda kontrol edilebilir. Pek çok uygulamanın (özellikle internet tabanlı) X üzerinde çalışan sürümleri vardır. Bu sayede metin tabanlı ekrana (vt100) dönmeden her işinizi X yardımıyla tamamlayabilme şansınız olur. Bu sayede Linux bir iş istasyonu görünümüne ve kullanışlılığına sahip olacaktır. X pencere denetleyici (Window Manager-wm) kullanıcı ile X arasında bekler ve klavyeyle fareden emirleri ekranda yerine getirir. Bu emirler, pencerelerin açılması, kapatılması ve yerlerinin değiştirilmesi gibi komutlardır. Sıkça kullanılan pencere denetleyicileri fvwm, twm ve olwm’dir. 1.7 Linux ve Diğer İşletim Sistemleri Linux işletim sistemi, diğer sistemler ile birlikte aynı sabit diski paylaşabilir. UNIX’i öğrenmek için kesinlikle en kolay ve ucuz olan yol olan Linux, diğer işletim sistemlerine karşı her zaman güçlü bir alternatif olmaktadır. İnternet servis sağlayıcılarının büyük çoğunluğu Linux kullanmakta, internet bağlantılarını, e-posta ve haber grubu alışverişini Linux sayesinde yapmaktadır. Genelde kişisel bilgisayar satın alındığında üzerinde MS-DOS veya türevi bir işletim sistemi yüklenmiş olur. Fakat MS-DOS arabirimi programlanırken ileriyi düşünmeyen programcılar, bu işletim sistemine Linux’te olan bazı hayati özellikleri kazandıramamışlardır. MS-DOS, çok kullanıcılı bir sistem değildir ve aynı birden çok işi yapamaz. Fakat Linux bu özelliklere sahiptir. Tüm bu olumsuzluklara rağmen yine de MS-DOS kullanılmak isteniyorsa; ücretsiz dağıtılan MS-DOS ve Windows emülatörü yardımıyla MS-DOS altında çalışan programların hemen hepsi Linux’la da çalışabilir. WinWord 2.0, sysinfo, Civilization ve Qbasic Linux altında sorunsuz çalışan MS-DOS/Windows programlarından birkaçıdır. Profesyonel bir yatırım sayılabilecek Windows NT’nin çok görevlilik ve hafızayı mükemmel kullanma gibi özellikleri vardır. Buna karşılık fiyatı oldukça yüksektir ve çalışmak için gayet yüksek standartlı bir makine ister. IBM firmasının geliştirdiği OS/2 de NT2ye benzer şekilde çok görevli işletim sistemi olup fiyat/performans oranı açısından makul sayılabilecek bir işletim sistemi olarak göze çarpar. İnternet’in kendisi UNIX tabanlı olduğu için Linux bu alanda yukarıda adı geçen sistemlerden daha avantajlı bir duruma gelir. Dağıtımı tek firma ile sabit olmadığı için değiştirme aşamasında dünyanın dört bir yanından katkı ve destek gelir. UNIX’e belirli bir standart getirilmesi için yapılan çalışmalara uyan Linux, POSIX standardı destekler. Mandrake, RedHat, Caldera gibi çeşitli Linux sürümleri de piyasada satılmakta, çok zengin bir doküman ve arşiv kaynağı ile kullanıcılara sunulmaktadır. 8086 tabanlı işlemciler üzerinde kurulabilen ve İnternet üzerinde bedava dağıtılan diğer işletim sistemlerinden birisi FreeBSD’dir. FreeBSD, bir grup programcı tarafından BSD standardını 8086 bilgisayarlara taşımak üzere geliştirilmiştir ve Linux ile büyük benzerlikleri bulunur. 1.8 Linux Avantaj ve Dezavantajları Pek çok insan, “Neden Linux?” diye sorabilir. Belki de cevap önce kullanıcının kendini tanıması ile bulunabilir. Değişik yerlerde Linux kullanılması ve bunun sonuçları hakkında gözlemlediklerimizin ışığı altında çok kabaca: Eğer, Bilgisayarla ilişkiniz belirli paket programlara dayanıyorsa, bilgisayar kullanmak için bilgisayar konusunda bilgi sahibi olmanız gerektiğine inanmıyorsanız, bilgisayar ile uğraşmak hoşunuza gitmiyorsa, sorunlarınızı kendi başınıza çözmeyi denemekten hoşlanmıyorsanız, bir sorun çıktığında para vererek de olsa bu sorununuzu birisi aracılığı ile çözmek istiyorsanız Linux kesinlikle size göre değil. Ama eğer, Bilgisayarla ilgilenmekten hoşlanıyorsanız, bilgisayarda çıkan problemlerle uğraşmak hoşunuza gidiyorsa, diğer işletim sistemlerinin sizi sıktığına ve sınırladığına inanıyorsanız, donanımınızdan daha çok performans istiyorsanız, UNIX işletim sistemi ile çalışmayı seviyorsanız Linux size göre olabilir. 1.8.1 Avantajları UNIX işletim sistemine sahip bir bilgisayar kullanmak istiyorsanız ve bu işletim sisteminde platforma bağımlı bir yazılım kullanmıyorsanız, Linux ideal bir çözümdür. Linux ücretsizdir. Sadece işletim sisteminin maliyeti açısından değil, verdiği performans için ihtiyaç duyduğu donanım açısından da çok ucuzdur. Üstüne üstlük çok kullanılan ve bol yedek parçası bulunan bir platform altında çalıştığı için belirli bir Linux sisteminin performansını artırmak için yapılması gereken yatırım başka bir UNIX iş istasyonunu aynı oranda geliştirmek için gereken yatırıma göre çok düşüktür. Herhangi bir Sun bilgisayarın hafızasını iki katına çıkarmak için harcanacak para ile bir Linux-PC’nin hafızasını iki katına çıkarmak için harcanması gereken parayı kıyaslamayı deneyin. Fakat şirketler bazında Linux’un bedava bir işletim sistemi olması genelde gözardı edilir. Bir Linux makine bu sayede sadece işletim sistemi açısından değil donanım olarak da ucuza gelmektedir. Linux hızla gelişmektedir. Bu gelişimin en büyük yararı, eksikliklerin kullanıcıların talepleri ve çabaları sonucunda hızla giderilmesidir. Linux diğer tüm işletim sistemlerine belirli bir donanım için daha hızlı destek verebilmektedir. Linux çok değişik donanımlar ve servisler için özel olarak hazırlanır. İşletim sisteminin temelini oluşturan çekirdek kullanıcı tarafından da derlenebildiği için, bu derleme sırasında sadece kullanım amacına yönelik alt programlarla donatılır. Bu genel olarak daha sistemin performansını artırmaktır. (Örnek olarak SCSI donanımınız yoksa çekirdeğinizde SCSI ile ilgili alt programlara yer vermezsiniz) 1.8.2 Dezavantajları Linux’un serbestçe dağıtılıyor olması bir çok kişinin bu işletim sistemine güvenmemesine yol açmıştır. “Ciddi olsa, bedava olmazdı !” kanısı oldukça yaygındır. Linux’un sürekli değişiyor olması en büyük dezavantajlarından biridir. Henüz tüm ihtiyaçlara cevap vermemesi, gelişimin bazı aşamalarında topyekün değişiklik yapılması, gelişimi takip etmek için bazen sürekli yenileme yapılması birçok kullanıcının bu işletim sistemine güvenmemesine yol açmaktadır. Diğer işletim sistemlerinde olan teknik destek, dağıtım ve dökümantasyon alanlarında eksiklikleri vardır. Bu konudaki eksikleri gidermek için çeşitli gönüllü kuruluşlar, kullanıcı grupları oluşmuştur. Zamanla Linux teknik desteği ticari bir konu olarak ortaya çıkmıştır. Şu anda tüm dünyada Linux çözümleri konusunda teknik destek veren danışmanlar bulunmaktadır. Bu kişiler ve kutumlar hakkında ayrıntılı bilgiyi Consultants-HOWTO dökümanında bulabilirsiniz. Linux işletim sistemini geliştirenlerin ticari kaygılar gütmemeleri bazı ticari yazılımların Linux üzerinde gelişmemesine sebep olmuştur. Linux üzerinde belirli konularda diğer işletim sistemlerinden aşağı kalmayan yazılımlar bulunmasına rağmen, belirli bazı konularda çok zayıf kalmıştır. Linux üzerinde yer alan çözümlerin hepsi, basit kullanıcıların rahatça kullanabileceği düzeyde değildir. Bazı çözümler kullanıcıların belirli bir yazılım ve işletim sistemi bilgisine sahip olmalarını gerektirmektedir. 2. LINUX KURULUMU VE BAŞLANGIÇ Linux hakkında ilk önemli dökümanlar yazıldığında, Linux çalıştırabilecek bilgisayarların özellikleri önemliydi. Linux 32 bitlik bir işletim sistemi olduğundan en az 80386SX işlemcilerle çalışmaktadır. 8086 ve 80286 işlemcili IBM-PC uyumlu kişisel bilgisayarlar Linux tarafından desteklenmemektedir. Hafıza olarak en az 4 Mbyte RAM ( yoğun işlemler için 12 veya 16) tavsiye edilmektedir. Teknik olarak 2 Mbyte ile de çalışması gerekir. Pratik olarak bugün piyasada bulunan hemen hemen her IBM-PC uyumlu kişisel bilgisayarda Linux çalışabilmektedir. 8 Mbyte RAM’a sahip herhangi bir 486 üzerinde hemen hemen her türlü uygulama rahatlıkla çalıştırılabilmektedir. Tabii ki daha fazla RAM ve daha hızlı işlemciler sistemin genel olarak daha hızlı çalışmasını sağlayacaktır. Linux tarafından desteklenen donanımlar her geçen gün değişiyor. Bilgisayarınızda bulunan herhangi bir donanımın desteklenip desteklenmediğini Hardware-HOWTO dosyasından öğrenebilirsiniz. Yine de daha önce yazılanları kısaca tekrar edersek, Kişisel bilgisayarlarda INTEL, AMD, CYRIX şirketlerinin tüm 80386, 486, 586, 686, Pentium, PentiumPro işlemcileri Tüm IDE, MFM, RLL sabit diskler Çoğu SCSI sabit disk denetçileri Çoğu Ethernet ve G/Ç kartları Birçok VGA,SVGA,EGA,HERCULES görüntü kartları Linux tarafından desteklenmektedir. Linux başka işletim sistemleri ile aynı sabit diskte bulunabilir. Makinanıza Linux yüklemek için mevcut işletim sisteminizi kaldırmak zorunda değilsiniz. Fakat yine de Linux yükleyebileceğiniz bir miktar alan ayırmak zorundasınız. Bir bilgisayara Linux yüklemek için bilgisayarınız üzerinde bir başka işletim sisteminin bulunmasına gerek yoktur, Linux tam anlamıyla kendi başına bir işletim sistemidir. “Linux sabit disk üzerinde ne kadar yer kaplar?” sorusuna kesin bir cevap vermek oldukça zor, zira bu hangi yazılımları yükleyeceğinize ve ne kadar kullanıcı alanı istediğinize çok bağlıdır. Yine de kaba rakamlar vermek gerekirse, 40 Mbyte’lık bir alana çalıştırılabilir durumda ve işinizin çoğunu görebilecek bir Linux kurulabilir. Tüm paketleri yüklemeye kalktığınızda ise kabaca 250 Mbyte kadar yer kaplayacaktır. Linux, çok çeşitli gruplar tarafından sürekli geliştirilen bir işletim sistemidir. Belirli kişiler ve topluluklar Linux için geliştirilen temel işletim sistemini ve uygulama yazılımlarını bir araya getirerek dağılımlar oluştururlar. Bir Linux dağılımı temel olarak bir makineye Linux kurmak ve o bilgisayar üzerinde Linux’la çalışmak için gerekecek tüm yazılımları ve paketleri içerir, bu yazılımların yüklenmesi için bir yükleme yazılımı sağlar. Şu an mevcut çok çeşitli Linux dağılımları mevcuttur. Bu dağılımlar içerdikleri paketler ve yükleniş çeşitleri açısında bazı ufak tefek farklılıklar gösterseler de temelde aynı işletim sistemini yüklerler. Bir Linux dağılımı bir araya getirildiği zamandaki güncel işletim sistemini içermektedir. Örnek olarak Linux işletim sisteminin temeli olan çekirdek neredeyse her hafta yenilenerek geliştirilmektedir. Oysa dağılımlar senede ancak birkaç kere oluşturulurlar. Linux dağılımları geleneksel olarak 3.5” lik disketler halinde hazırlanırlar. (her biri bir 3.5” lik diskete sığabilecek seri dizinler şeklinde). Her konu ile ilgili bir seri disket bulunur. (örnek olarak n serisi ağ uygulamaları için n1,n2,n3... şeklinde) 2.1 Mevcut Dağıtımlar 2.1.1 Internet Tüm Linux dağılımları Internet üzerinde anonim FTP hizmeti ile sunulmaktadır. Ancak bireysel olarak dağıtımın tüm disketlerini bu yolla almak çok pratik olmayacaktır. Örnek olarak son slackware dağılımı 110 Mbyte civarında yer kaplamaktadır. Internet aracılığıyla dağıtım elde etmek, yerel kullanıcılarına yeni dağılımlar sunmak isteyen sistem sorumluları için ilginç bir çözüm olmaktadır. 2.1.2 NFS Bir yerel bilgisayar ağına sahip kurumlarda paylaşılan bir disk alanı üzerinden Linux yüklemek mümkündür. Bu sayede CD-ROM veya Internet aracılığı ile elde edilen bir dağıtım kurumda ortak bir disk alanına yerleştirilir ve ağa bağlı makinalara yükleme yapılabilir. Birçok kurumda Linux yüklemek için, geçici olarak bir Ethernet kartı takılır, bilgisayar ağ desteği veren bir şekilde açılır ve Linux disketleri bu şekilde ağ üzerinden yapılır. 2.1.3 Sabit Disk Herhangi bir şekilde Linux dağıtımı disketleri bir sabit diske de kopyalanmış olabilir. Bu durumda mevcut sabit disk üzerindeki disketler kullanılarak da yükleme yapılabilir. Bu yöntem yine daha çok eğitim kurumlarında başka kaynaklardan elde edilmiş bir Linux dağılımını kopyalamak için kullanılır. Bir kullanıcı makinesine Linux yüklerken tüm özelliklerini yüklemek istemeyebilir. Yüklediği yazımların bazılarının gereksiz olduğunu düşünüyorsa ileride bazı uygulamaları kaldırabilir veya sonradan gerekli gördüğü yazılımları dağıtım disketlerinden rahatlıkla ekleyebilir. Linux sadece dağıtımlarda bulunan yazılımlara ek olarak çok çeşitli başka uygulamalar mevcuttur. (Örnek olarak Netscape hiçbir Linux dağıtımında bulunmamaktadır.) bu ek yazılımların birçoğu Internet üzerinde FTP arşivlerinde bulunmaktadır. CD-ROM üzerindeki dağıtımlarda, dağıtımların yanısıra birçok tanınmış FTP arşivinde yer alan yazılımlar ve çeşitli dökümanlarda yer alır. Internet bağlantısı olan bir kurumda çalışmayan (veya bu tür bir kuruma erişimi bulunmayan) birisi için CD-ROM çok iyi bir çözümdür. Internet bağlantısı bulunan (özellikle akademik) kurumlarda güncel dağıtımların Internet üzerinden aktarılması ve buradaki kullanıcılara NFS ve sabit disk üzerinde aktarılması daha pratik bir uygulamadır. Aynı kurumlar kendi çalışma alanları ile ilgili buldukları ek yazılımları da FTP arşivlerinden toparlayabilir ve kullanıcılarına bu ek yazılımları sunabilirler. 2.2 Sabit Disk Üzerinde Linux İçin Yer Açmak Linux işletim sistemini yüklemek için sabit diskiniz üzerinde Linux için bir miktar yer ayırmak zorundasınız. Herhangi bir sabit disk bir işletim sisteminde kullanılabilmesi için ilk olarak bölümlere (partition) ayrılır. Daha sonra bu bölümler işletim sistemine uygun şekilde formatlanır. Linux işletim sistemi kendi disk formatını (ext2) kullanır. En yüksek verimi sabit disk üzerinde, kendi bölümünde, kendi disk formatı altında çalıştığı zaman verebilir. Eğer ayrı bir bölümlendirme yapılmıyorsa, tavsiye edilmese bile MS-DOS formatlı bir disk üzerinde de kurabilir (UMSDOS) ancak bu sistemin performansı diğerine göre oldukça düşük olacaktır. Bu dökümanın geriye kalan tüm kısımlarında bilgisayarınıza Linux yüklemek için sabit disk üzerinde Linux’a özgü bir bölüm ayrılacağı ve bu bölüme yükleyemeceği kabul edilecektir. MS-DOS formatlı bir disk hiyerarşisi altına Linux kurmak için USMDOS-HOWTO dökümanından yararlanabilirisiniz. Eğer bilgisayarınızı bir süredir kullanıyorsanız, büyük bir ihtimalle sabit diskinizin tümünü kullandığınız işletim sistemi için ayırmış durumdasınız. MS-DOS kullanıyorsanız diskinizin bir (sadece CJ veya birden fazla (C: D:..) bölüme ayrılmış durumda olabilir. MS-DOS altında bir disk üzerinde en fazla 4 bölüm olabilir. (primary partition). Eğer daha fazla bölüme ihtiyaç varsa temel bölümlerden biri genişletilmiş bir bölüm olarak ayrılır (extended partition) ve bu bölüm üzerinde mantıksal bölümler ayrılır(logical partitions). Bilgisayarınızda birden fazla bölüm varsa bir bölümü boşaltıp bu bölümü Linux için ayırabilirsiniz. Eğer tek bölümünüz varsa, veya mevcut bölümlerinizden birini tümüyle harcamak istemiyorsanız diskinizi yeniden bölümlemeniz gerekecektir. Klasik olarak bu durumda bölmek istediğiniz bölümdeki yazılımların yedeğini almanız, daha sonra MS-DOS altında fdisk yazılımı yardımı ile söz konusu bölümü silmeniz, yeni boyutu ile yeniden yaratmanız, bu bölümü format komutu ile formatlandırmanız ve yedeğini aldığınız yazılımları yeniden yerleştirmeniz gerekecektir. Bazı yazılımlar mevcut bölümünüzü iki parçaya ayırabilirler. Örnek olarak fips bu amaçla kullanılan bir yazılımdır. (Diskinizin üzerinde işlem yapan her yazılım az da olsa disk üzerindeki bilgilere zarar verme riski taşır. Bu tür yazılımlar ile çalışmadan önce önemli olduğunu düşündüğünüz bilgilerin yedeğini almaya özen gösterin). Ftips, defrag programı kullandıktan sonra bölümünüzü sizin belirleyeceğiniz boyutlarda 2 bölüme ayırabilir. Eğer bilgisayarınızı yeni alıyorsanız veya yeni bir disk alıyorsanız, bu diskin tamamını veya bir bölümünü Linux için kullanabilirsiniz. Bu amaçla diskinizde sadece Linux kullanmak istemediğiniz bölümleri ayırmanız (ve gerisini boş bırakmanız) yeterlidir. Linux bölümlerinin Linux altından formatlanması gerekecektir. Yoğun olarak Linux kullanan yerler için standart olarak dağıtımdan gelen işletim sistemini ayrı bir bölüme yüklemeleri kullanıcı alanları (/home) ve sonradan yüklenen yazılımlar (/usr/local) için ayrı bir alan ayırmaları tavsiye edilebilir. Bu sayede, işletim sistemi güncellemek son derece kolaylaşır, yeni işletim sistemi yüklerken sadece işletim sisteminin bulunduğu bölüm üzerinde işlem yapılır ve bu sayede kullanıcı alanlarının veya sonradan (dağıtım dışı) yüklenen yazılımların zarar görmeleri engellenebilir. Her bir bölüm için ne kadar yer ayrılacağı hakkında çok şey yazılmıştır. Ne var ki yazılanların birçoğu sabit disklerin nadiren 200 Mbyte sınırını geçtiği günlerden kalmaktadır. Linux’un kaplayacağı alan, hangi paketleri kullanacağınıza çok bağlıdır. Kabaca bir disketin 2-3 Mbyte arasında yer kaplayacağını düşünerek, yüklemek istediğiniz disketleri hesaplayarak kaba bir tablo çıkartabilirsiniz. Tecrübeli bir Linux kullanıcısı hangi yazılımları kullanıp hangilerini kullanmadığını daha iyi belirleyecek durumda olacaktır. Dolayısı ile yeni bir kullanıcı ortalama olarak 200-300 Mbyte kadar bir yer ayırmak isteyecektir. Bu, günümüzün disk kapasiteleri düşünülünce o kadar büyük bir alan değildir. Takas alanı konusunda da çok şey yazılmıştır. Birçok kaynak takas bölümü için ayırması gereken alanın gerçek hafızanın 2 katının biraz fazlası olarak kabul edilmektedir. Pratikte 10-60 Mbyte arasında bir alan fazlasıyla yeterli kalmaktadır. Ancak takas bölmeleri 128 megabytedan daha büyük olamaz. Eğer 128 megabytedan daha büyük takas alanı gerekiyorsa birden fazla takas bölmesi ayartmalısınız. Toplam 16 tane takas bölmeniz olabilir. Takas alanı kullanırken, bir seferde daha fazla uygulama çalıştırmanızı sağlayacak şekilde Linux kullanılmayan sayfaları hafızadan diske taşır. Ancak, takas işlemi genelde yavaş olduğundan gerçek fiziksel hafızanın yerini dolduramaz. Ama çok fazla hafıza isteyen uygulamalar (X Window System gibi) eğer yeteri kadar fiziksel hafızanız yoksa takas alanına bel bağlar. Tercih olarak 1.2 Gbyte’lık bir disk üzerinde; Linux nedir denemek isteyen bir kişi için Bölüm 1: DOS 1000 Mbyte Bölüm 2: Linux 180-200 Mbyte Bölüm 3: Linux “swap” bölümü 10-20 Mbyte İşinde arada sırada Linux kullanan birisi için Bölüm 1: DOS 400 Mbyte Bölüm 2: Linux 400 Mbyte Bölüm 3: Linux takas bölümü 32 Mbyte Bölüm 4: DOS( DOS altında D: olarak gözükecek) 400 Mbyte İnternet üzerinde sadece Linux kullanan bir bilgisayar için Bölüm 1: Linux 100 Mbyte Bölüm 2: Linux takas bölümü 60 Mbyte Bölüm 3: Linux /usr 400 Mbyte Bölüm 4: Linux /home 600 Mbyte 2.3 Bilgisayarın Linux ile Açılması Bilgisayarın sabit diski üzerinde yer ayırdıktan, bir Linux dağıtımı bulduktan sonra artık Linux yüklemek için yapılması gereken, yükleme yapmanıza yardımcı olmaya yetecek şekilde bilgisayarınızı Linux altında çalıştırmaktır. Bu amaçla boot ve root disketi adı verilen iki disket kullanılması yeterlidir. Bu disketlerden boot disketi bilgisayarınız üzerindeki donanıma uygun bir Linux çekirdeği (kernel) içerir ve bilgisayarın Linux ile açılmasını sağlar, root disketi adı verilen diğeri ise makinanız Linux olarak açıldığı zaman çalıştıracağı yazılımları içeren ve Linux’un çalışması için gereken sistem programlarını içerir . Bu iki disketi, MS-DOS altındaki sistem disketine benzetmek mümkündür. Boot ve root disketleri, Linux dağılımı ile birlikte gelirler. Eğer bir CD-ROM dağıtımı kullanıyorsanız, büyük ihtimal disketler CD-ROM ile beraber geleceklerdir. Eğer dağıtımı Internet’ten alıyorsanız bu disketler bir disket görüntüsü olarak bulunacaklardır. Yapmanız gerek bu disket görüntülerini normal disketlere bu amaç için yazılmış bir yazılımla aktarmak ve açılış disketlerini oluşturmaktır. Bunun için RAWRITE.EXE programını kullanabilirsiniz. Root disketi için genelde bir veya iki seçenek bulunmaktadır. Genelde kullanılan disket color.gz adını alır. Boot disketi için aynı şeyi söylemek mümkün değildir. Zira boot disketi Linux çekirdeğini içermektedir. Her işletim sistemi, o işletim sistemi altında çalışacak olan bilgisayar üzerindeki donanıma erişebilmek için bazı destekler içerir. Ne var ki her donanım kendisine göre bir takım farklılıklar gösterir. Linux bilgisayarınız üzerinde bulunan birçok donanım için destek verebilir, ne var ki tüm donanım desteğini tek bir çekirdekte toplamak çekirdeğin gereksiz yere büyümesine ve hantallaşmasına neden olacaktı( Bilgisayarınızda ses kartı donanımı yoksa çekirdeğin ses kart desteğine ihtiyacınız olmayacaktır, yapılan sadece gereken destekleri ekleyerek çekirdeğin verimini artırmak demektir.) Linux çekirdeği gerektiğinde destek verdiği donanımları destekleyecek şekilde güncellenebilir. Ancak Linux yükleyebilmek için, seçeceğiniz yükleme yöntemine göre bazı donanımlara destek vermesi gerekmektedir. Örnek vermek gerekirse, NFS üzerinden Linux yüklemek için çekirdek içerisinde mutlaka ağ (network) desteğinin olması gerekmektedir ama ses kartı desteğinin olmasına gerek yoktur. Linux yükledikten sonra derleyeceğiniz bir çekirdeğe ses kartı desteği vermesini sağlayabilirsiniz. Bir işletim sisteminin sabit diske yüklenme aşamasında kullanıcıya sağlayacağı en büyük kolaylık, deneyimli kullanıcılar için tüm paketleri kurmadan önce sormak, Linux’u bilmeyen ve sabit diskine Linux kurmak isteyen yeni kullanıcılar için ise kurulum aşamasını mümkün olan en az soru ile bitirip daha önceden belirlenmiş birtakım paketleri otomatik olarak yüklemektir. Çok farklı donanımların olması Linux yükleyebilmek için bir dizi boot disketinin oluşmasına neden olmuştur. Güncel bir Linux dağıtımında hangi boot disketlerinin hangi donanımlara destek verebildiğini görebilmek için ilgili dağıtımla gelen README dosyalarına bakmak gerekecektir. Şu anki Slackware dağıtımı ile gelen boot disketlerinden bazıları ; Bare.i IDE sabit disklere, sabit disk veya IDE/ATAPI CD-ROM’lardan yükleme yapmak için Net.i IDE sabit disklere, NFS üzerinden yükleme yapmak için. Scsinet.s SCSI sabit disklere, NFS üzerinden yükleme yapmak için. Buna ek olarak değişik SCSI denetçileri için 25 kadar değişik boot disketi bulunmaktadır. Xt.i Bu açılış disketinde sadece IDE ve XT sabit disk sürücüleri vardır. Boot ve root disketlerinizi de elde ettikten sonra artık bilgisayar ilk defa Linux altında çalışmak için hazırdır. Boot disketini takarak sistemi açın, (PC’nin açılma sırasının A:,C: olmasına dikkat ediniz). Disket açılır açılmaz yaklaşık bir sayfalık bir mesaj verecek ve kullanıcıdan ek bir parametre isteyip istemediğini soracaktır. Bu noktada çalışacak olan yeteneğe birçok ek parametre verilebilir. Eğer herşey yolunda giderse bu noktada özel bir parametre belirtmeye gerek kalmayacaktır. Boot disketi parametreleri hakkında BootPrompt-HOWTO içerisinde detaylı bilgi bulabilirsiniz. Bu aşamayı geçtikten sonra çekirdek yüklenmeye başlayacak ve bir dizi mesaj geçecektir. Bu mesajlar çekirdeğinizin bilgisayar üzerindeki donanımları tanıması ve çeşitli hizmetleri çalıştırması ile ilgili mesajlardır. Çekirdeğin donanımınızı ne şekilde tanıdığı bu mesajlardan anlaşılır. Yükleme yapabilmek için çekirdeğin sabit diskinizi ve ağ bağlantısı kullanacaksınız Ethernet kartınızı doğru olarak tanımış olması gerekecektir. Daha sonra kullanıcıdan root disketini yüklemesi için bir mesaj çıkacaktır. Bu aşamada boot disketi yerine root disketi takılmalıdır. Kısa bir yüklemeden sonra bir mesaj çıkacak ve ardından login: mesajı ile karşılaşılacaktır. Tebrikler!. Artık Linux altında çalışmaya başlayabilirsiniz. Bilgisayarınız şu anda sizden bir kullanıcı ismi beklemektedir. “root” yazarak sisteme girin. 2.3.1 Ön Hazırlık Yüklenmenin her aşaması setup yazılımı tarafından yürütülür. Ancak ilk olarak disk alanlarının tanımlanması gerekmektedir.Bu amaçla setup programı kullanılır. Linux altında bir bilgisayara bağlı her cihaza bir dosya gibi erişilebilir. Her cihaza karşılık gelen bir sistem dosyası mevcuttur.cihazlarla ilgili dosyalar /dev dizini altında yer alır. IDE sabit diskler “hd”, SCSI sabit diskler “sd” olarak adlandırılır. Aynı anda bir bilgisayara birden fazla disk bağlanmış olabilir. Diskler sırasıyla a b c d olarak adlandırılır. Her disk üzerinde birden fazla bölüm olabilir. Bu bölümler 1 2 3 4 olarak numaralandırılır. Örnek: /dev/hda, bir numaralı IDE (Primary Master) diski /dev/hda1, bir numaralı IDE diskin ilk bölümü (DOS altında c /dev/hda2, bir numaralı IDE diskin ikinci bölümü /dev/hdb, iki numaralı IDE (Primary Slave) diski /dev/hdc, üç numaralı IDE (Secondry Master) disk /dev/hdd, dört numaralı IDE (Secondry Slave) disk /dev/sdb3, ikinci SCSI sabit diskin üçüncü bölümü göstermektedir. 2.3.2 FDISK Birden fazla sabit disk varsa hangisi ile ilgilenecek belirtilmelidir. Fdisk’i kullanırken dikkat edilmelidir. Her an yanlış bir diski formatlama yapabilirsiniz. Fdisk komutu hardisk bölümlerinin düzenlenmesi için kullanılır. Eğer komut satırında parametre verilmezse fdisk ilk bulduğu disk üzerinde işlem yapacaktır. Komut satırında istenilen disk belirtilmelidir. Fdisk paremetreleri: /fdisk -v: Fdisk programının sürümünü ekrana getirir. Fdisk -l: /dev/hda, /dev/hdb, /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd, /dev/sde, /dev/sdf, /dev/sdg ve /dev/sdh disklerinin (varsa) bölümlendirme tablosunu ekrana yazar ve çıkar. Fdisk -s : Eğer bir DOS bölümü değilse (bölüm numarası 10’dan büyük), sözkonusu disk bölümünün büyüklüğü bayt cinsinden ekrana yazılır. Örnek FDISK Çalışması Bu örnek içerisinde 1 Gbyte’lık SCSI sabit disk’e sahip makine üzerinde LINUX için gerekli kısımların ayrılması adım adım incelenmiştir. Söz konusu sabit disk üzerinde kullanıcı önceden 400 Mbyte’lık bir kullanıcı alanı tanımlamış ve geri alanı LINUX için ayırmıştır. Fdisk programı çalıştığında ilk olarak mevcut bölümler hakkında bilgi almak için p komutunu (Print Partition Info) kullanılır. Command (m for help): p Disk /dev/sda: 34 heads, 61 sectors, 1017 cylinders Units = cylinders of 2074*512 bytes Device Boot Begin start End Blocks Ld System /dev/sda1 * 1 1 395 409584+ 6 DOS 16-bit>=32M bu tablo sadece tek bölüm ayrıldığını, ayrılan alanın DOS formatında olduğunu, boot edecek bölüm olduğunu belirtiyor. Bölümün adı /dev/sda1, yani ilk SCSI sabit disk üzerinde tanımlanan ilk bölüm. İlk iş olarak LINUX işletim sistemi için yeni bir bölüm yaratmalıyız. Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4):2 First cylinder (396-1017):396 Last cylinder or +size or +sizeM or +sizeK ([396]-1017): +250M N komutu ile kendimize yeni bir bölüm yarattık. İlk seçenek temel bir disk bölümümü yoksa gelişmiş bir disk bölümü üzerinde mi işlem yapacağımızı sordu. Temel bir bölüm için p komutunu girdik. Daha sonra hangi bölümü yaratacağımızı sordu. Halen mevcut 1 bölüm var, bu bölüm ikinci bölüm olacak bu yüzden 2 yazdık. Bölümün başlangıç adresini giriyoruz. Bu değer otomatik olarak bir önceki bölümün bitiş değerinden hesaplanmaktadır. Sadece onaylıyoruz. Daha sonra istediğimiz boyutu belirtiyoruz. +250M tanımı 250 Mbyte’lık bir kısım istediğimizi belirtiyor. Yarattığımız bu bölümü p komutu ile inceliyoruz . Command (m for help): p Disk /dev/sda: 34 heads, 61 sectors,1017 cylinders Units = cylinders of 2074*512 bytes device Boot Begin Start End Blocks Id System /dev/sda1 * 1 1 395 409584+ 6 DOS 16-bit>=32M /dev/sda2 396 396 642 256139 83 linux native fdisk yaratılan her bölümü otomatik olarak (LINUX native) olarak yaratmaktadır. Şimdi takas alanı için 60 Mbyte’lık 3.temel bölümü tanımlayalım: command (m for help): n command action e extent p primary partition (1-4) p Partition number (1-4):3 First cylinder (643-1017):643 Last cylinder or +size or +sizeM or +sizeK ([643]-1017): +60M command (m for help): p Disk /dev/sda: 34 heads, 61 sectors,1017 cylinders Units = cylinders of 2074*512 bytes Device Boot Begin Start End Blocks Id System /dev/sda1 * 1 1 395 409584+ 6 DOS 16-bit>=32M /dev/sda2 396 396 642 256139 83 linux native /dev/sda3 643 643 702 62220 83 linux native dikkat edilecek olursa bu bölüm de LINUX native olarak tanımlandı. LINUX tarafından takas bölümü olarak kullanılacak olan bölümler farklı bir yapıya sahiptirler ve ayrıca tanımlanmalrı gerekmektedir. Bu amaçla t komutu ile herhengi bir bölümün tipini değiştirmek mümkündür. (Tip değiştirmekle o bölümün yapısı (formatı) değişmiş olmuyor, format sonradan yapılan bir işlemdir). Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 82 Changed system type of partirion 3 to 82 (Linux swap) Command (m for help): p Disk /dev/sda: 34 heads, 61 sectors,1017 cylinders Units = cylinders of 2074*512 bytes Device Boot Begin Start End Blocks Id System /dev/sda1 * 1 1 395 409584+ 6 DOS 16-bit>=32M /dev/sda2 396 396 642 256139 83 linux native /dev/sda3 643 643 702 62220 82 linux swap yukarıda yapılan işlemle 3 numaralı bölümün tipini Linux swap olarak değiştirmiş olduk. Şu anda yine n komutu ile ekleriz. Command (m for help):n Command action e extent p primary partition (1-4) p Partition number (1-4):4 First cylinder (703-1017):703 Last cylinder or +size or +sizeM or +sizeK ([703]-1017): 1017 Command (m for help) Disk /dev/sda: 34 heads, 61 sectors,1017 cylinders Units = cylinders of 2074*512 bytes Device Boot Begin Start End Blocks Id System /dev/sda1 * 1 1 395 409584+ 6 DOS 16-bit>=32M /dev/sda2 396 396 642 256139 83 linux native /dev/sda3 643 643 702 62220 82 linux swap /dev/sda3 703 703 1017 326655 83 linux native Bu örnekte boyut Mbyte cinsinden verilmedi. Zaten amaç kalan alanı tümüyle kullanıcı alanı olarak ayırmaktı. Bu nedenle son silindirin numarasının girilmesi yeterli olur. Artık yapılması gereken bu bilginin diske yazılmasıdır. Şu ana kadar yapılan hiçbir değişiklik sistem üzerinde herhangi bir etki yapmamıştır. Ancak bölümlenme bilgisi diske yazıldıktan sonra geri dönüş yoktur. Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. (Reboot to ensure the partition table has been updated.) Syncing disk. Reboot your system to ensure the partition table is updated. Sabit diski bölümleme esnasında karşılaşılan bazı sorunlar vardır. Bunların en önemlisi Linux’un nasıl çalıştırılacağı ile ilgilidir. Linux açmak için belli başlı üç yöntöm vardır: LILO ile boot menüsünden DOS altından LOADLIN isimli bir yazılımla Yüklemek için yapıldığı gibi bir boot diskiyle Son iki yöntem herhangi bir sınırlama getirmezken ilk yöntemin bir sınırlaması vardır. LILO isimli yazılım kullanıldığı zaman bilgisayar açıldığı zaman minik bir yazılım çalıştırır ve gerektiğinde linux çekirdeğine yükler. Ancak çekirdek yüklenmesine kadar geçen süre içerisinde sistemin BIOS komutları çalışır. Bu komutların önemli bir sınırlaması bir disk üzerindeki bir yazılımı belirleyen üç parametreden (silindir sayısı, kafa numarası, sektör numarası) silindir sayısının en fazla 1024 ile sınırlı olmasıdır. Bu bakımdan llLILO kullanılacaksa Linux çekirdeğinin yer alacağı bölüm bu 1024 numaralı silindir sınırının altında kalmalıdır. Bu sınırlama tamamıyla DOS’un kullandığı BIOS’un sınırlandırmasıdır. Yeni BIOS’lar bu sınırlamadan kurtulmak için LBA adı verilen bir yöntem kullanırlar. Bu yöntemin temelinde BIOSTA kafa sayısı için gereksiz yere ayrılan kısımların silindir sayısını belirtmek için kullanılmasıdır. (BIOS, bir sabit disk için 64’e kadar kafa kabul edebilmektedir). Böylelikle 1654 silindirli 16 kafalı bir sabit disk, LBA olarak 827 silindirli ve 32 kafalı olarak tanımlanabilmektedir. İkinci durumda bu disk üzerinde tanımlanabilecek her bölümün yukarıda belirtilen sınırlama içerisinde kalacağına dikkat ediniz. 2.3.3 Setup Programı Setup Linux yüklemek için gereken temel birçok işlemi yapabilir. Ok tuşları yardımıyla menüler arasında gezerek işlemleri tamamlayabilirsiniz.ekrana gelen menüler aşağıdadır.(Linux sürekli gelime halinda olduğu için zamanla değişiklikler olabilir.) Hint: If you have trouble using the arrow keys on your keybord, You can use “+”, “-“ and TAB instead. Which option would you like? HELP Read the Slackware setup HELP file KEYMAP Remap your keyboard MAKE TAGS Tagfile customization program TARGET Select target directory [now:/] SOURCE Select source media DISK SETS Decide which disk sets you wish to install INSTALL Install selected disk sets CONFIGURE Reconfigure your Linux system PKGTOOL Install or remove packages with Pkgtool EXIT Exit Slackware Linux Setup < OK > HELP Menüsü: Setup programı hakkında bazı ipuçları verecektir. KEYMAP Memüsü: Bu menü ile Amerikan klavye dışında bir klavye tanımlamak mümkün olacaktır. MAKE TAGS Menüsü: Bu menü yardımı ile dağıtım disketlerinde özel uzantılı dosyalar hazırlayarak hangi paketlerin yükleneceğini otomatik olarak belirlemek mümkündür. Bu sayede eğer benzer makineler yüklenecekse yüklenecek paketler bir kere belirlenir ve bir daha menülerden ekstradan paketlerin seçilmesine gerek kalmaz. Büyük ihtimalle buraya kadar henüz bir takas alanı tanımlamamışsınızdır. Setup yazılımı bu durumu anlar ise bir takas bölmesi oluşturulması için aşağıdaki menüyü ekrana getirecektir. ADDSWAP Menüsü: fdisk ile ayırdığınız takas bölümünü uygun şekilde formatlar ve bu bölümü kullanıma açar. Setup yazılımı hangi disk bölümünün takas bölümü olarak ayrıldığını otomatik olarak bulacaktır. Daha sonra söz konusu alanları form atlayacak ve bu takas alanını sistem belleğine ekleyecektir. (Her adımda bir onay isteyecektir.) TARGET Menüsü: Linux’un hangi bölüme yükleneceğini belirler. Bu menüye girildiği zaman Linux’un disk formatına (ext2) sahip (sabit disk bölümü numarası 83 olan) tüm disk bölümleri gösterilecek ve içerlerinden hangisine Linux kurulması istenileceği sorulacaktır. Bu aşamadan sonra o disk bölümü kullanıcı isterse formatlanacaktır. Burada iki format seçeneği vardır. Bu seçeneklerin ikincisinde disk önce hatalar için taranacak daha sonra formatlanacaktır. Eğer Linux disk formatında başka bölümler varsa bu bölümlerin kullanılmasının istenip istenmediği sorulacaktır. Bu sayede disk hiyerarşisinin herhangi bir kısmını bu ek disk bölümleri üzerine kurmak mümkündür. Son olarak Linux tarafından desteklenen başka disk bölümleri varsa (Örneğin DOS) bu bölümlere Linux altından erişim yapılmasının istenip istenmediği sorulacak ve bu bölümler için hiyerarşi içerisinde bir dizin atanması istenecektir. SOURCE Menüsü: bu menü Linux dağıtımının nerede aranması gerektiğini belirler. Buradaki seçenekler SOURCE MEDIA SELECTION Where do you plan to install slackware Linux from? 1 Install from a hard drive partition 2 Install from floppy disks 3 Install via NFS 4 Install from a pre-mounted directory 5 Install from CD-ROM 1 Numaralı seçenek, Linux dağıtımını bir sabit disk bölümünde aramak için kullanılacaktır. Bu seçenekle örnek olarak DOS kısmında bulunan dağıtım disketlerinden yükleme yapılabilir. 2 Numaralı seçenek, disketlerden yükleme yapılmaktadır. Çalışır bir sistemi birkaç disketle oluşturmak mümkündür. Ancak günümüzde tercih edilmemektedir. 3 Numaralı seçenek, NFS üzerinden yükleme yapmak için kullanılmaktadır. Burada bilgisayar ağına bağlı olması, bu bilgisayar ağı üzerindeki bir sunucu üzerinde erişim izni bulunan bir dizin altında dağıtım disketlerinin bulunması gerekmektedir. Bu seçenekle yükleme yapmak için boot disketi içerisinde yer alan diskette ağ desteğinin bulunması gerekmektedir. Bu seçeneğin ardından bilgisayarın (geçici) IP numarası varsa ağ üzerindeki yönlendiricinin (router-getway) IP numarası, ağ maskesi (subnet mask), NFS sunucu IP numarası ve sunucu üstünde dağıtım disketlerinin bulunduğu hiyerarşi gibi ağ ile ilgili parametreler sorulacaktır. Bu soruların cevabını sistem yetkilisinden öğrenmeniz ve onun onayını almanız gerekecektir. 4 Numaralı seçenek, aslında 1 numaralı seçeneğe çok benzemektedir. Aradaki fark bu durumda sistem hiyerarşisine bağlanmış (mounted) bir dizin içerisinde dağıtım disketlerinin bulunmasıdır. 5 Numaralı seçenek ise CD-ROM’dan yükleme yapmak içindir. DİSKSETS Menüsü CUS Also prompt for CUSTOM disk sets A Base Linux system AP Various Applications that do not need X D Program Development (C, C++, Lisp, Perl etc.) E GNU Emacs F FAQ lists, HOWTO documentation K Linux kernel source N Networking (TCP/IP, UUCP, Mail, News) T TeX typesetting sftware TCL Tcl/Tk script languages X Xfree86 X Window System XAP X Aplications XD X Server Development kit XV Xview (Openlook Window Manager, apps) Y Games (tahat do not require X) A Serisi (8 disket): Temel işletim sistemi bu disketlerde yer alır. Temel disk hiyerarşisi yaratılır, sistemin çalışması için hayati olan yazılımlar, terminal yazılımları, kabuklar (shell), disk düzenleme yazılımları, kütüphaneler, Linux çalıştırmak için LILO ve LOADLIN bu disketlerdedir. AP Serisi (5 disket): X Window ortamı gerektirmeyen uygulama yazılımlar. Metin editörleri, ghostscript, man sayfaları, midnight commander (Norton Commander benzeri bir yazılım) bu disketlerde yer alır. D Serisi (13 disket): Tüm programlama dilleri ve destek yazılımları bu disketlerde yer alır. Eğer kendinize yeni bir Linux Çekirdeği derlemeyi düşünüyorsanız bu seriye ihtiyacınız var. E Serisi (8 disket): EMACS editörü. F Serisi (2 disket): Linux hakkında birçok doküman ve açıklama bu disketlerde yer alır. Yeni başlayan birisi bu disketleri mutlaka yüklemesi gerekir. Söz konusu dokümanlar sıkıştırılmış halde /usr/doc /usr/doc/faq /usr/doc/faq/HOWTO dizinlerine yüklenecektir. Dokümanlar sıkıştırılmış olduğundan zless gibi sıkıştırılmış dosyaları destekleyen bir yazılımla okunmaları gerekir. K Serisi (6 disket): Çekirdeğin kaynak kodu burada bulunur. Eğer kendi donanımınıza uygun bir çekirdek derlemek istiyorsanız bu seriye ihtiyacınız var. FTP arşivlerinden kaynak kodu olarak bulacağınız bazı yazılımlar da bu hiyerarşi altında yer alan bazı dosyalara ihtiyaç duyacaklardır. N Serisi (6 disket) : Ağ desteği bu diskler ile sağlanmaktadır. E-posta okuma yazılımları, lynx, www sunucusu, haber grubu okuma yazılımları bu disketlerin içerisinde yer alan yazılımlardır. T Serisi (9 disket): TeX. TeX yüklerken üç temel seçenekle karşılaşacaksınız. İlk seçenek hangi TeX yardımcı paketlerini isteyeceğinizi sorar. İkinci seçenek hangi dil için makro tanımları istediğinizi sorar. Son seçenek yazı tipleri hakkında tercihlerinizi sorar. TCL Serisi (2 disket): X Window altında kullanımı basit bir programlama dili ve bu dili ile yazılmış bazı uygulama yazılımları (tkdesk). X Serisi (16 disket): X Window desteği. Bu disketlerin büyük kısmı değişik grafik kartları için X window sunucuları ve yazı karakterlerinden oluşmaktadır. Linux yüklediğiniz bilgisyar üzerindeki grafik kartını bilmeniz ve buna uygun bir sunucu seçmeniz gerekmektedir. XAP Serisi (4 disket): X Window altında çeşitli uygulamalar: santranç, gnuplot, xv, xfileman, windows95 benzeri X Window arayüzü bu seriler içerisinde yer almaktadır. XD Serisi (3 disket): Xserver geliştirmek için kütüphane ve uygulama yazılımları. XV Serisi (3 disket): OpenLook desteği veren yazılımlar. Bu sayede X Window altında Sun bilgisayarlarda yer alan Open Windows benzeri bir ortam kullanılabilir. Y Serisi (1 disket): Minik birkaç oyun. INSTALL Menüsü: Seçtiğiniz disk serilerini belirlediğiniz kaynaktan, belirtilen hedef disk bölümüne aktarır. Disk serileri içerisinde yer alan paketleri ne şekilde yüklemek istediğiniz konusunda birtakım seçenekler olacaktır. Bunlar: NORMAL Use the default tagfiles for verbose prompting MENU Choose package subsystems from interactive menus CUSTOM Use custom tagfiles in the package directories PATH Use tagfiles in the subdirectories of a custom path EXPERT Cgoose individual packages from interactive menus NONE Use no tagfiles-install everything NORMAL: Bu seçenek ile gerekli paketler yüklenir, diğer paketler için kısa bir açıklama yazılır ve kullanıcının fikri sorulur. MENU ve EXPERT: Bu seçeneklerde her disk serisi yüklenmeye başlanırken o seride yer alan tüm paketler bir menü içerisinde yer alır. Kullanıcı istediği paketleri işaretler ve bunların yüklenmesini sağlar. CUSTOM ve PATH: Daha önce belirtilen TAGFILE dosyaları yardımıyla yükleme yapmak için kullanılır. Bu durmda belirli bir uzantıya sahip dosyalar içerisinde (TAGFILE) yüklenmesi gereken yazılımlar belirtilir. Bu seçenek ile TAGFILE’ların uzantısı belirtilir ve o uzantılı dosyalarda bulunan paketler yüklenir. NONE: Herşeyi kuracaktır. Sadece belirli paketler için anlamlıdır. 2.3.4 Sistem Tanıtımları (Konfigürasyon) Yükleme bittikten sonra yapılacak iş artık sistemimizin tanıtımlarını yapmaktır. İlk aşama sistemi açacak bir çekirdek belirlemektir. Bu konuda üç seçenek var: Bootdisk Use the kernel from the installation bootdisk Cdrom Use a kernel from the Slackware CD Floppy Install a zimage or bzimage file from a DOS floppy Bootdisk: Bu seçenekte kullandığınız çekirdek boot disketinden kopyalanacaktır. CD-ROOM: Slackware CD-ROOM’unda bulunan önceden derlenmiş çekirdeklerden herhangi birisini seçebilirsiniz. Floppy: Herhengi bir DOS disketinde yer alan çekirdeği yüklemenizi sağlar. Daha sonra sisteminiz için bir boot disketi yaratmak isteyip istemediğinizi soracaktır. Ne olursa olsun, elinizin altında root ve boot disketleri bulundurmak zorundasınız. Bir sorun olduğunda sisteminizi açmak için bir boot disketi bulmanız gerekecektir. Ardından setup size modem, mouse, CD-ROM, bulunduğunuz zaman dilimini soracak ve liloconfig yazılımı çalışacaktır. ;LILO, Linux Loader (Linux yükleyicisi) kelimelerinden meydana gelir. LILO Linuz yüklemek için kullanılan çok pratik ve etkili bir yazılımdır. Bilgisayar açılır açılmaz, boot eden ilk sabit diskin üzerinde (boot partition) kendini yazar, bilgisyar açılır açılmaz, birden fazla işletim sistemi için seçenek sunulur. Konfigürasyon sırasında LILO kendisinin nereye yazılacağını sorar, bu seçenekler arasında The Master Boot Record of your first hard drive The superblock of your root Linux partition A formatted floppy disk yer alır. 1 numaralı seçenek, birçok uygulamada kullanılacak olan seçenektir. MBR bir bilgisayar açarken ilk bakılacak yerdir. 2 numaralı seçenek, MBR’yi kullanmamaktır. Bunun sebebi, MBR üzerinde bir başka işletim sisteminin benzer bir yazılımın bulunması olabilir. (örneğin OS/2 Bootmanager). 3 numaralı seçenek, LILO kendisini bir diskete yükleyecektir. Bu disketten açıldığı zaman menü ortaya çıkacaktır. Daha sonra boot işlemi sırasında çekirdeğe gönderilecek ekstra parametreler belirtilebilir. Birçok sistem için bu parametre gereksizdir. Bu parametre boot diski ile açıldığı zaman sorulan parametrenin aynısıdır. Sonraki seçenek LOLO’nun yükleme sırasındaki davranışını belirler. LILO konfigürasyonu sırasında birden fazla boot edilebilecek sabit disk bölümü tanımlanabilir. Shift tuşuna basıldığı zaman LILO mevcut bölümler için bir liste çıkaracaktır. LILO için tanımlı dört davranış vardır: None, don’t wait at all - boot straight into the first OS 5 seconds 30 seconds Present a prompt and wait until a choice is made without timing out 1 numaralı seçenek, hiç beklenmeden doğrudan listede belirtilen ilk işletim sistemini yükleyecektir. Sadece Linux bulunan bilgisayarlar için kullanılan seçenel budur. 2 ve 3 numaralı seçenek, sırasıyla 5 ve 30 saniye beklerler, eğer bu süre içerisinde Shift tuşuna basılmazsa ilk sırada yer alan işletim sistemi yüklenir. 4 numaralı seçenek, bir işletim sistemi seçilene kadar bekler. Daha sonra sırasıyla yüklenmesini tercih ettiğiniz disk bölümlerini tanıtabilirsiniz. LILO her bölüm için sizden ayıredici bir kelime isteyecektir. LILO yükleme anında sizden komut beklerken bu kelimeye göre işletim sistemini yükleyecektir. 2.3.5 LILO Konfigürasyonu Eğer linux ve OS/2 ile birlikte aynı disk üzerinde çalışmayacaksanız, LILO’yu öncelikli yükleyici olarak diskinizdeki diğer işletim sistemlerinin açılışında rahatlıkla kullanabilirsiniz. OS/2’nin kendine ait önyükleyicisi olduğundan birincil önyükleyici olarak bunu kullanın, LILO’yu ise Linux açmak için çalıştırın. Slackware LILO kurululm işlemi, bazı özel durumlar için yetersiz kalmaktadır. Bu gibi durumlarda dosyanın el yardımıyla konfigürasyonu gereklidir. LILO’yu değiştirmek için /etc/lilo.conf dosyası üzerinde değişiklikler yapmalıyız. Aşağıda bir LILO örneği görülüyor. Burada Linux bölümü /dev/hda2’de, MS-DOS bölümü ise /dev/hdb1’de (ikinci sabit diskin ilk bölümü) bulunuyor. #LILO, /dev/hda üzerinde kurulacak. boot = /dev/hda #Linux yüklemek için image = /vmlinuz (çekirdeğin disketteki ismi /vmlinuz) label = linux (burada “linux” ismini ver. Açılış anında ekranda “linux” yazısı görünür.) root = /dev/hda2 (Kök dosya sistemi olarak /dev/hda2 kullan) vga = ask (VGA ekran modu için kullanıcıdan komut bekle) #MS-DOS yüklemek için other = /dev/hdb1 (MS-DOS bolumu) label = msdos (“msdos” ismini ver) table = /dev/hdb (ikinci sunucu için bölümlendirme tablosu) Yukarudaki bir örneği görülen /etc/lilo.conf dosyasında gerekli değişiklik veya düzeltmeleri yaptıktan sonra /sbin/lilo dosyasını root olarak çalıştırın. Bu komut LILO önyükleyicisini sabit diske kuracaktır. Bundan sonra her yeni çekirdek derlemenin ardından dosyada uygun değişiklikleri yapıp aynı komutu çalıştırmalısınız. Şimdi sistemi tekrar açabilirsiniz. LILO, /etc/lilo.conf dosyasındaki ilk işletim sistemini yükleyecektir. Başka bir sistemle açmak için önyükleme menüsünden ekrana girmelisiniz. Bunun için makine açılırken Shift veya CTRL tuşlarını basılı tutun. Ekrana bir açılış istemcisi gelecektir: boot: Burada ya açılmasını istediğiniz işletim sisteminin ismini yazın (ilk kurulum sırasında MS-DoS veya linux), ya da tab tuşuna basarak listeyi ekrana getirin. OS/2 kullanabilmek için Linux önyükleyicisini ikincil kullanmanız gerekecektir. Linux’u OS/2 önyükleyicisinden açmalısınız. Bunu yapmak için Linux sabit disk bölümünü OS/2 fdisk kullanarak yaratın. Ardından sözkonusu bölümü Fat veya HPFS olrak formatlayın ki OS/2 tanıyabilsin. Bundan sonra LILO’yu linux dosya sisteminin olduğu bölüme kurun. /etc/lilo.conf dosyasının linux için kullanılan satırların son durumu şu şekilde olacaktır: boot = /dev/hda2 image = /vmlinuz label = linux root = /dev/hda2 /sbin/lilo dosyasının çalıştırılmasının ardından OS/2 önyükleyicisine linux bölümünü tanıtın. 2.4 Makineyi Açmak Linux yükleme işlemi sona erdi. Sıra makinenizi Linux çalışacak şekilde çalışmasını sağlamaktır. Bunun için temel olarak iki değişik yöntem mevcuttur. LILO: En çok kullanılan en pratik açılış şeklidir. Burada bilgisayar açıldığı zaman isteğe göre bir süre bekler ve bu esnada shift, tab veya control tuşuna basılırsa birden fazla işletim sistemi ile çalıştırma seçeneği sunar. LOADLIN: DOS altında çalışan bir yazılımdır. DOS altında çalışırken Linux Yüklemenize yarar. Eğer kurulum aşamasında LOADLIN paketini (A serisi disketler içinde ) seçmişseniz bu paket /root dizini altında LOADLIN.ZIP ismi ile kaydedilmiş olacaktır. Yapmanız gereken bu yazılımı ve mevcut çekirdeğinizi (/vmlinux) DOS kısmını aktarmaktır. (son yıllarda pek kullanılmaktadır.) Bütün bu adımlardan sonra artık elinizde çalışmaya hazır bir linux makine vardır. Makineyi kapatıp tekrar açın . ekranda çekirdek mesajları geçtikten sonra: Login: Belirecektir. Buraya root yazın ve sisteme girin. İlk deneme için # shutdown -rf now yazabilirsiniz. Linux bir makine çalıştığı sürece hafıza içerisinde birçok tampon beelek açar. Mümkün olduğu kadar makineyi kapama tuşuna basarak kapatmayın. Shutdown komutu işletim sisteminin tampon belleklerde tuttuğu bilgileri güncellemesini sağlayacaktır. -r paremetresi sitemin reboot etmesini sağlayacaktır. Bilgisayarı kapatmak için # shutdown -hf now komutu kullanabilirsiniz. Burada yer aln h paremetresi sistemin “halt” edeceğini (tamamen kilitleme) ve bir daha açılmayacağını belirtir. Sistemde çalışmaya başlamak üzere ilk iş olarak kendinize çalışmak amacıyla bir kullanıcı tanımlayın. Sistemde başka kullanıcı olacaksa, onlar için de hesap açacaksınız. Kullanıcı hesabı açmak için # adduser komutu kullanılır. adduser (veya useadd) komutu, kullanıcı ismi, isim ve soyad, GID (grup kimliği), UID (kullanıcı kimliği) gibi birtakım sorular sorulacaktır. Bu komut hakkında detaylı bilgiyi Sistem Yönetimi bölümü altında bulabilirsiniz. root kullanıcısı sistem üzerinde sınırsız yetkiye sahip olduğundan sistem dosyalarını kazara değiştirmenize veya silmenize sebep olabilir. Şimdi yeni hesabınızla sisteme girebilirsiniz. ALT F1’den ALT F6’ya kadar olan tuşlarla birden çok ekranda (sanal akranlar) aynı anda çalışabilirsiniz. Bu noktadan sonra bazı uygulamaların ayarlamalarını yapmanız gerekecek. Açılış esnasında makinanızın ismi /etc/rc.d/rc.M dosyasında belirlenir. Bu dosyayı uygun şekilde değiştirerek makinanızın ismini de yeniden tanımlayabilirsiniz. Makinenizin ilk ismi darkstar olacaktır. Eğer TCP/IP ağ üzerinde çalışıyorsanız, /etc/HOSTNAME dosyasının içeriğini değiştirerek veya hostname komutu kullanılarak makine ismi de değiştirilebilir. 2.4.1 Başlangıçta Önceki bölümde sisteme girmek için şifresi olmayan “root” kullanıcıyı kullanmıştık. Bu kullanıcı sistemde en fazla yetkiye sahip kullanıcı olup sistem görevlisi (sorumlusu) adını alır. Eğer root dışında bir kullanıcı hesabı tanımlanmışsa onu kullanın. Şifre yazıldıktan sonra komut istemcisine, yani kısaca kabuk dediğimiz programa gelir. Şifre yazılırken, başkalarının görmemesi için ekrana basılmaz, imleç sabit kalır. Kullanıcı isimleri veya şifrelerde büyük ve küçük harfler arasında fark vardır. Root, root, RooT farklı kullanıcıları işaret eder. Sisteme ilk girişte aşağıdaki gibi bir satırla karşılaşacaksınız. Welcome to Linux 1.2.13. Linux login: root Pasword: Last login: Thu Feb 13 12:46:35 on tty 1 Linux 1.2.13. You have mail. Linux: ~# Genellikle komut istemcisinin sonundaki karekter, root kullanıcısı için #, diğer kullanıcılar için $ olur. Bu karekterlerden önce de makine ismi yeralır. MS-DOS’ta olduğu gibi burada UNIX komutlarını girebileceğiniz kabuk (shell) üzerindesiniz. Şifreyi değiştirmek için kullanılan komut passwd’dir. Bir kullanıcı sadece kendi şifresini değiştirirken root!a herkesin şifresini değiştirme yetkisi verilmiştir. Herhangi bir sistemde hesap şifrenizi unutursanız, bunu sadece root değiştirebilir. root iken passwd yazın ve enter tuşuna basın. linux:~# passwd Changing password for root Enter new password: Re-type new password: Password changed. linux:~# şifrenizi iyi saklayın. root şifresini ele geçiren birisi sistemde istediği değişiklikleri yapabilir. Şifre seçimi için Linux İşletim Sisteminde Güvenlik konusuna bakın. Linux komutları hakkında bilgi almak için man komutu kullanılır. Eğer kurulum aşamasında man dosyalarının kopyalanması sorusuna olumlu yanıt verilmişse bunlar /usr/man dizini altında bulunur. Örneğin passwd komutu hakkında detaylı bilgi almak için $ man passwd yazılır. Tüm man dosyaları /usr/man dizini altında 8 ayrı dizinde saklanır (man1...man8). bazı komutların man dosyaları birden fazla dizin altında bulanabilir. Bir dosya komut hakkında bilgi verirken diğeri sistem programcılarına yönelik olabilir. Örnek olarak mount komutu, hem 2 hem de 8 numaralı man dosyalarıyla birlikte arşivlenmiştir. C programlayıcısı, mount komutuna ulaşmak için $ man 2 mount yazarken, normal kullanıcı, $ man 8 mount yazmalıdır. Bunun yanında başlığında belirli bir anahtar sözcüğü içeren tüm man dosyalarını araştırmak için apropos komutu kullanılır.her komut, bir veya birden çok parametre alabilir. Örnek olarak, find .-name “*.txt” -print komutu, bulunduğunuz yerden itibaren tüm dosyaları araştıracak ve bunların arasından sonu .txt ile bitenleri ekrana basacaktır. Parametreler genel olarak “-“ işaretleri ve bu işaretten gelen parametre ismi ile belirtilirler. 2.4.2 Sorun Çıktığında Çıkabilecek en önemli sorun bilgisayarın açılmamasıdır. Bunun birçok sebebi olabilir. Açılış esnasında ilk olarak LILO çalışır. Çekirdek yüklenir. Hizmet veren yazılımlar teker teker çalışmaya başlar. Her aşmada birçok satırda durumunu belirtecektir. Çalışan yazılımlar veya yazılım parçalarının her biri birbirinden bağımsız olduğu için açılış sırasında geldiğiniz nokta çok önemlidir. LILO çalışmadığında veya çekirdek yüklenirken takılırsa boot disketi ile rahatlıkla sistemi açabilirsiniz. Örnek olarak Linux yüklü disk bölümünüzün /dev/hda2 olduğunu varsayalım. Boot disketi parametre isteğinde mount root = /dev/hda2 yazmanız yeterli olacaktır. Bu durumda boot disketinde yer alan çekirdek ile belirttiğiniz bölümde yer alan Linux hiyerarşisi açılacaktır. Çalışan bu sisteminiz içerisinde artık hatanın kaynağı daha rahat bulabilirsiniz. Çekirdeğin yükleme esnasında takılması büyük ölçüde çekirdeğin donanımı doğru belirleyememesinden çıkar. Örneğin ethernet kartınızı yanlış tanımış olabilir. Bunu çözmenin temel yöntemi çekirdek içerisinde kullanmayacağınız donanımlara ilişkin destekleri kaldırmak veya çekirdeğe yardımcı olabilecek açılış parametreleri vermek. Çalışan sisteminizde bir arıza meydana gelip de makine aniden çalışmamaya başlarsa en son yaptığınız değişiklikleri gözden geçirin. Sisteminizin çalışması her zaman Linux’dan kaynaklanmayabilir, donanım ile ilgili sorunlar da yaşayabilirsiniz. Rastgele davranışlar, durup dururken çakılmalar, panik mesajları altında, bozuk sabit diskler, normalden yüksek frekansta çalıştırılan işlemciler ve sistem saatine göre yavaş kaçan veya bozuk RAM’ler yatabilir. 2.5 Linux Komut Yapısı UNIX ve benzeri işletim sistemlerinde kullanıcının komut yazmasını sağlayan, bu bu komutları yorumlayarak gerekli işlemleri yapan programlara kabuk (shell) denir.Unıx’te bir kullanıcı bir dizi kabuktan istediğini seçebilir. Kullandığınız kabuk ne olursa olsun, gerek kabuktan kaynaklanan gerekse UNIX komutlarının uyduğu bazı standartlar vardır. Bunlar: UNIX’te (ve Linux’te) bütün komutlar ve dosya isimlerinde büyük küçük harf ayrımı önemlidir. Sistem komutlarının ve dosyaların çoğu küçük harfle yazılır. Bazı özel karakterler kullanılamaz. UNIX’te komutlara seçenek verirken seçenekten önce ‘-‘ karakteri kullanılır. örneğin ls -l UNIX komutları tersi istenmedikçe girdilerini standart girdiden (klavye) alır, çıktılarını standart çıktıya (ekran) yazar. UNIX kabukları komut satırından verilen komutu çalıştırmadan önce bir dizi karakteri yorumlayarak dosya adlarına çevirirler. Bu karakterler: o * 0 dahil herhangi bir sayıda karakter yerine geçer. Örneğin rm * komutu bütün dosyaları siler, ls -l a* komutu ‘a’ ile başlayan dosyaların listesini verir. o ? tek bir karakter yerine geçer. o [] karakterleri arasında yazılan liste içindeki herhangi bir harfe dönüştürülür. Örneğin cp *[abc] /tmp komutu ‘a’, ‘b’ ya da ‘c’ ile biten bütün dosyaları /tmp dizinine kopyalayacaktır. Liste içinde aralarına ‘-‘ işareti koyarak aralıklar verebilirsiniz. Örneğin, [A-Z]* büyük harfle başlayan bütün dosyalar anlamına gelir. Liste içindeki ‘^’ karakteri, sonrasında bilirtilen liste dışındaki bütün karakterler anlamına gelir. Örneğin *[^0-9]* adında rakam olmayan herhangi bir dosya anlamına gelecektir. 2.6 Dosya ve Dizin Yapısı UNIX altında bazı karakterlerin özel anlamları vardır. Dizin ve dosya isimlerinin başında nokta olması dosyaların gizli olduğunu gösterir ve parametresiz yazılan ls komutuyla görünmez. Dosya ve dizin isimleri 255 karakteri aşamazlar. Sisteme girince önceden tanımlanmış bir dizin altında bulunursunuz. Bu dizin normal kullanıcılar için genellikle /home/ ve ardından gelen kullanıcı dizini ismidir. Bulunduğunuz dizinin ismini görmek için pwd (print working directory) yazılır. $ pwd /home/gorkem $ UNIX komut yapısı DOS’a çok benzer. Dizin değiştirmek için cd, dizin yaratmak için mkdir komutları kullanılır. $ cd / $ pwd / Hiyerarşik bir sıraya sahip olan UNIX’te üstte / dizini (kök dizin) yeralır. Sistemdeki tüm diğer dosya ve dizinler bunun altında toplanırlar. ~ İşareti, kullanıcının ev dizinini gösterir. Ev dizinine geçip, mkdir komutu ile benim isimli bir dizin yaratalım. $ cd ~ $ pwd /home/gorkem $ mkdir /home/gorkem/benim 2.6.1 Dosya Listesi ve İçeriklerinin Görüntülenmesi Dosya ve dizinleri görebilmek için ls komutu kullanılır. parametresiz yazarak bulunduğumuz dizinler hakkında bilgi alınır. Linux altında değişik uzantılı dosyalar okunabilirliği artırmak için farklı renklerde görülür. /etc/DIR_COLORS dosyası, dosya renklerini ayarlar. Bu dosyayı değiştirerek belirli dosyalar için istenilen renkleri göstermesini sağlayabiliriz. Linux:~$ ls README article.txt mail typescript adres linux perl ls komutu -a parametresiyle birlikte kullanılırsa normalde gözükmeyen ve nokta karakteriyle başlayan dosya ve dizinleri de gözükür. linux:~$ ls -a . .bashrc .term article.txt typescript .. .kermrc .xinitrc linux .Xdefaults .less README mail .bash_history .lessrc adres perl -l parametresi dosyalar hakkında tüm bilgiyi verir. Bunlar, dosyanın sahibi, ne zaman yaratıldığı, sahibi ve grubu gibi bilgilerdir. linux:~$ ls -al total 91 drwxr-xr-x 6 gorkem users 1024 Feb 13 12:56 . drwxr-xr-x 4 root root 1024 Jan 7 1980 .. -rw-r--r-- 1 gorkem users 390 Feb 13 12:56 .Xdefaults -rw-r--r-- 1 gorkem ftpadm 230 Feb 13 12:57 .bash_history -rw-r--r-- 1 gorkem users 1 Feb 13 12:57 .bashrc -rw-r--r-- 1 gorkem users 163 Nov 24 1993 .kermrc -rw-r--r-- 1 gorkem users 34 Nov 24 1993 .less -rw-r--r-- 1 gorkem users 114 Nov 24 1993 .lessrc drwxr-xr-x 2 gorkem users 1024 Jan 7 1980 .term -rw-r--r-- 1 gorkem users 87 Feb 13 12:56 .xinitrc -rw-r--r-- 1 gorkem users 26264 Feb 13 12:53 README -rw-r--r-- 1 gorkem users 2795 Feb 13 12:55 adres -rw-r--r-- 1 gorkem users 47970 Feb 13 12:53 article.txt drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 linux drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 mail drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 perl -rw-r--r-- 1 gorkem users 0 Feb 13 12:57 typescript yukarıda -a ve -l parametrelerinin birleştirilmiş hali gözükmektedir. Dosyaların içeriklerini gösteren birkaç komuttan en pratiği less’tir. Ok tuşları ile dosya içinde hareket edebilir ve q karakteri ile dosyadan çıkarsınız. Dosyanın içeriği birden fazla sayfadan ibaretse dosya sayfalar halinde ekrana gelir. Tüm dosyayı ekrana basmak için cat kullanılır. $ cat README bir dosyanın başından ve sonundan itibaren belirli miktarda satırı ekrana getirmak de mümkündür. Bunun içinde head ve tail komutları kullanılır. linux:~$ head -6 README (dosyanın ilk 6 satırını ekrana basar) This is the README file for the 28 August 1994 public release of the Info-Zıp group’s portable UnZip zipfile-extraction program (and related utilities). Unzip512.zip portable UnZip, version 5.12, source code distribution Unzip512.tar.Z same as above, but compress’d tar format linux:~$ tail -3 README (dosyanın son 3 satırını ekrana getirir.) --Greg Roelofs (Cave Newt), UnZip maintainer/container/explainer and developer guy, with inspiration from David Kirschbaum 2.6.2 Dosyaların Kopyalanması Dosyaları kopyalamak için cp ve bir yerden başka bir dizine almak için mv komutu kullanılır. mv komutu, aynı zamanda dosya isimlerini değiştirmek üzere de işletilebilir. linux:~$ cp article.txt /tmp (article.txt isimli dosyayı /tmp dizinine kopyala) linux:~$ mv article.txt /tmp/article (article.txt isimli dosyayı /tmp dizini altına, ismini article olarak değiştirerek koy.) Kopyalama işlemi sadece dosyalar üzerinde değil, dizinler üzerinde de yapılabilir. Farklı dosya sistemleri üzerinde olmamak kaydıyla bir dizin ve altındaki herşeyi, başka bir dizine kopyalayabilir veya hareket ettirebiliriz. Kopyalarken bu işlem için -R parametresi kullanılır. mv komutu için -r parametresine gerek yoktur. $ cp -R /home/gorkem/temp /tmp (/home/gorkem/temp dizini ve içindeki her dosyayı /tmp altına kopyala) $ mv article.txt ~/benim (article.txt isimli dosyayı çalışma dizini altındaki benim dizinine kopyala) 2.6.3 Dosyaların Silinmesi Bir daha kullanılmayacak olan dosyalar, rm komutu ile silinebilir. Linux altında silinen bir dosyanın geri dönüşü olamaz. rm komutuyla birlikte -i parametresi kullanılırsa, linux, dosyayı silmeden önce kullanıcının da onayını alır. linux:~$ rm -i README rm: remove ‘README’?y (sileyim mi?) linux:~$ Eğer dosya ismi - karakteri ile başlıyorsa, rm komutunu kullandığınız zaman dosya ismi bir parametre olarak algılanacak ve hata verecektir. Bunun için dosya isminden önce - karakterleri yerleştirilmelidir. lnux:~$ rm -- -dosya bir dizin boş iken rmdir komutu ile silinebilir, eğer boş değilse bu komut işe yaramaz. Onun yerine rm komutunu -r parametresi ile kullanırız. lnux:~$ rm mail rm: mail: is a directory linux:~$ rm -rf linux/ (linux dizini içindekilerle birlikte silinir. -f parametresi ile kullanıcının onayını almadan tüm dosyaları tek adımda silmek mümkündür. Bulunduğumuz dizindeki tüm dosyaları silmek için * karakterini kullanın. $ rm * 3. KABUK İŞLEMLERİ Sisteme girdiğiniz anda kabuk programının çalıştırıldığından bahsetmiştik. Bu andan sonra yapacağınız tüm işlemler bu kabuk programı tarafından yönetilir ve denetlenir. Kabuk, klavyeden girilen komutları çalıştırarak bir arabirim görevi yapar. UNİX (ve Linux) altında geliştirilen sayısız kabuk çeşidi ve bunların her birinin kendine ait özelliği vardır. Her programcı kendi zevkine hitap eden kabuğu seçebilir, sistemde yer alan kullanıcılar farklı kabuklar üzerinde çalışabilirler. O an hangi kabuk üzerinde ye aldığımızı öğrenmek için echo $SHELL yazın. $ echo $SEHELL /bin/bash Sıkça kullanılan kabuklar, sh (Shell ya da Bourne shell): İlk UNIX kabuğu. Ksh (Korn Shell): sh uyumlu, bir çok ek programlama özelliği içeren bir kabuk. Bu kabuk da yaygın bir kitle tarafından kullanılıyor. bash (Buourne Again Shell): Kullanım kolaylığı bakımından en çok rağbet gören bash, GNU tarafından kaynak kodu olarak dağıtılıyor. bash sh ve ksh uyumluluğunu korurken, özellikle etkileşimli kullanıma yönelik (komut tamamlama, gibi) bir çok yenilik de içerir. Bu yazının hazırlandığı 1997 Temmuz ayı başlarında Bash 2.0.1 sürümü çıkmıştı. csh(C Shell): Berkeley Üniversitesi’nde geliştirilen csh’nin C diline benzer bir programlama yapısı vardır. Tcsh: csh’n biraz geliştirilmiş hali. Yukarıdaki kabuk programlarından sh, ksh ve bash birbirleriyle uyumludur ve yukarıda en ilkelden en gelişmişe göre sıralanmıştır. Aynı durum csh ve tcsh için de geçerlidir. Kullanılan shell genellikle kişisel ibr tercih nedeni olsa da, bütün sistem scriptleri sh ile yazıldığından, sistem yöneticilerine sh ailesinden bir kabul kullanmaları önerilir. Kabuk programları genellikle 7bin dizini altında yer alır. Kullanıcının sisteme girerken hangi kabuğu kullanacağı /etc/passwd dosyasında yer alır. Bunu değiştirmek için chsh (change shel) komutunu kullanabilirsiniz. $chsh Password: Changing the login shell for cagri Enter the new v alue, or press return for the default Login shell[/bin/sh]:/bin//bash $ Sisteminizde NIS kullanılıyorsa chsh yerine yppasswd -s komutunu kullanmalısınız. 3.1 Yönlendirme Kullanıcı ekranda yazdığı bir komutun neler yaptığını en rahat şekilde komut tarfından ekrana yönlendirilen bilgilerden anlayabilir. Program, kullanıcıyı bilgilendirme amacıyla mümkün olduğu kadar çok, fakat ortalığı fazla karıştırmamak için de mümkün olduğu kadar az bilgiyi ekran vermelidir. 3.2 Standart Girdi, Çıktı ve Hata Linux’ta, programın ekrana yazılan bilgiyi iki sınıf altında toplayabiliriz. Birincisi, olağandışı bir durumu bildiren standart hata, diğeri de her türlü verini yazıldığı standart çıktı. Program çalıştırıldığı andan itibaren bu iki kanal üzerinden akan ilgiler, programın çalıştığı sanal terminale yazılırlar. Program girdileri standart girdi aracı olarak klavyeden alır. Eğer bu bilgiler bir ekran boyutundan(25 satır) fazla tutuyorsa bazı satırlar programcının gözünden kaçabilir. Bunu önlemek amacıyla standart çıktı ve hata dosyaya yazılacak şekilde ayarlanabilir. Yönlendirme olarak da bilinen bu işlem UNIX altında (DOS’ta olduğu gibi) > karakteri ile gerçekleştirilir. Örnek olarak o an bulunduğunuz dizinde yer alan dosyaları ekran getirin : $ Is-al bu komut standart çıktı olarak dosyanın bilgilerini ekrana getirecektir. Bu çıktıyı, bir dosyaya yönlendirelim ve dosyanın içeriğine göz atalım: linux:~$ Is-al > liste linux:~$ cat liste total 16 drwxr-xr-x 5 gorkem users 1024 Feb 13 13:10 . drwxr-xr-x 5 4 root root 1024 Jan 7 1980 .. -rw-r--r-- 1 gorkem users 390 Feb 13 12:56 .Xdefaults -rw-r--r-- 1 gorkem ftpadm 2016 Feb 13:099 .bash_history -rw-r--r-- 1 gorkem users 1 Feb 13 12:57 .bashrc -rw-r--r-- 1 gorkem users 163 Nov 24 1993 .kermrc -rw-r--r-- 1 gorkem users 34 Nov 24 1993 .less -rw-r--r-- 1 gorkem users 114 Nov 24 1993 .lessrc drwxr-xr-x 2 gorkem users 1024 Jan 7 1980 .term -rw-r--r-- 1 gorkem users 87 Feb 13 12:56 .xinitre -rw-r--r-- 1 gorkem users 2795 Feb 13 13:06 adres -rw-r--r-- 1 gorkem users 0 Feb 13 13:10 liste drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 mail drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 perl -rw-r--r-- 1 gorkem users 0 Feb 13 13:10 typescript linux:~$ karakteri standart hatayı dosyaya göndermez. Bu işlem için 2> kullanılır. Ama hatayı görebilmek için, hata yaratan bir komut yazmalıyız, değil mi? $ Is/deneme /deneme : No such file or directory $ Is/deneme 2> hata $ cat hata /deneme : No such file o directory aşağıdaki komutun işletilmesinin ardından standart çıktı oku1 dosyasına, standart hata ise oku2 dosyasına yazılacaktır. Bu dosyaları komutu çalıştırdıktan sonra incelemek suretiyle neler olup bittiğini anlamak mümkün olur. $ mkdir~/deneme (deneme isimli bir dizin yarat) $ touch~/deneme/gecici (gecici isimli bir dosya yarat) $ cat~/deneme 2>oku2>oku1 kabuk standart çıktı ve standart girdi için sırayla 2 ve 1 numaralarının kullanımına izin verir. Yukarıda yer alan son komutta, standart hata mesajları için 2 kullanılarak hatalar oku2 dosyasına yazılmıştır. Aşağıda, çekirdek derlemek için sürekli kullandığım program yer alıyor: Yönlendirme sayesinde ekrana gelmesi gereken mesajlar kullanılmayan 9. sanal konsola yönlendiriliyor. # make config # make dep >/dev/tty9 # make clean >dev/tty9 # time make zImage >/dev/tty9 son satırdaki time komutu, kendinden sonra gelen komutun ne kadar zaman içinde çalıştırıldığını gösterir. Çekirdek derlemede geçen zaman , makinenin gücü hakkında bir fikir verebilir. Peki ne hata, ne de çıktıyı ekranda görme istemiyorsam ne yapmalıyım? Bunun için standart çıktı ve hatayı bir araya getirerek yönlendirilen her çıktının kaybolduğu”kara deliğe”atamak yeterlidir: $ Is/ deneme>dev/null2&1 yukarıdaki komutun yazılış sırasına dikkat edin. Standart çıktı ya da standart hatayı yönlendirirken, > işareti kullanırsanız. Dosya yoksa, oluşturulur ve komutun çıktısı dosyaya yazılır. Dosya varsa, içeriği yok olur, ve komutun çıktısı dosyanın içeriği olur. Var olan bir dosyanın eski içeriğini tamamen silmek değil de komutun çıktısını dosyaya eklemek istiyorsanız >> kullanmalısınız. Bu durumda dosya varsa komutun çıktısı dosyanın eski içeriği korunarak sonuna eklenir, dosya yoksa oluşturulur ve komutun çıktısı dosyaya yazılır. Örneğin: $ echo deneme1>>deneme.txt $ cat deneme.txt denme1 $ echo deneme2<buyuk_dosya.sirali & [1] 772 komutun arka plana atılmasından sonra ekranda yer alan 1, sürecin sıra numarasını, 772 sayısı ise süreç kimliğini (Process ID) gösterir. Her program, sistem kaynaklarını biraz daha azalttığından Linux’çuların deyimiyle makine yavaşlar. Çalışan programların listesini görmek için ps komutunu kullanın. Hiç parametre vermeden yazılırsa sadece üzerinde çalışılan kullanıcının süreçleri ekrana gelir. Sık kullanılan bir başka parametre dizisi de uax tir. Bu sayede sistemdeki o anda çalışılan tüm programlar daha ayrıntılı bir şekilde ekrana listelenir. $ ps PID TTY STAT TIME COMMAND 76 v02 S 0:00 -bash 111 v02 R 0:00 ps $ ps -uax USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND bin 63 0.0 5.5 64 364 ? S 11:12 0:00 /usr/sbin/rpc.portmap gorkem 76 0.0 9.7 101 644 v02 S 11:12 0:00 -bash gorkem 112 0.0 5.0 59..332 v02 R 11:16 0:00 ps -aux root 1 0.0 5.0 56 332 ? S 11:12 0:00 init [5] root 6 0.0 4.2 35 284 ? S 11:12 0:00 bdflush (daemon) root 7 0.0 4.2 35 284 ? S 11:12 0:00 update (bdflush) root 48 0.0 5.1 45 340 ? S 11:12 0:00 /usr/sbin/crond -110 root 59 0.0 5.5 53 364 ? S 11:12 0:00 /usr/sbin/syslogd root 61 0.0 5.0 44 336 ? S 11:12 0:00 /usr/sbin/klogd root 65 0.0 5.5 62 364 ? S 11:12 0:00 /usr/sbin/inetd root 67 0.0 5.8 79 388 ? S 11:12 0:00 /usr/sbin/rpc.mountd root 69 0.0 6.0 88 400 ? S 11:12 0:00 /usr/sbin/rpc.nfsd root 75 0.0 9.9 115 660 v01 S 11:12 0:00 -bash root 77 0.0 4.6 52 304 v03 S 11:12 0:00 /sbin/agetty 38400 tty3 root 78 0.0 4.6 52 304 v04 S 11:12 0:00 /sbin/agetty 38400 tty4 root 79 0.0 4.6 52 304 v05 S 11:12 0:00 /sbin/agetty 38400 tty5 root 80 0.0 4.6 52 304 v06 S 11:12 0:00 /sbin/agetty 38400 tty6 root 81 0.0 5.5 42 368 ? S 11:12 0:00 gpm -t ms Burada yer alan bilgiler sırasıyla: PID: Süreç numarası. Her sürecin farklı bir numara alması sistem tarafından düzenlenir. %CPU: İşlemcinin % olarak ne kadarı süreç tarafından kullanılıyor? %MEM: % olarak hafızada kapladığı yer. SIZE: Programın toplam kullandığı bellek alanı (KB). RSS: Programın bellekte kapladığı gerçel alan. Bu değer paylaşılan sistem kütüphaneleri (shared library) nedeniyle genellikle SIZE değerinden küçüktür. TTY: Sürecin çalıştırıldığı (sanal) terminal. STAT: Süreç o sırada ne yapıyor? S: Uyumakta, genellikle sürecin bir G/Ç işlemi (örneğin farenin hareketi ya da ağdan gelecek veriler) beklemesi sırasında olur. R: Çalışabilir. Çalışabilir süreçler, gereksinim duydukları bütün sistem kaynaklarına sahip olan süreçlerdir. Çekirdek (tek işlemcili bir makinede) belirli aralıklarla bu süreçlerden sadece birini çalıştırır. T: Durmuş. Sürecin kullanılması tarafından (örneğin CTRL-Z tuşlarına basılarak) durdurulmasında görülür. Z: Zombie. Bu tür süreçler, kendisini çalıştıran sürece mesaj bırakmadıklarından takılmış süreçlerdir. Öldürülemezler ancak sistem kaynaklarını da kullanamazlar. D: Kesilemez uykuda.Bazı G/Ç işlemleri o sırada bu işlemi yapan sürecin kesilmemesini gerektirir. Böyle durumdaki süreçleri de ilgili G/Ç işlemi bitinceye kadar öldüremezsiniz. START: Sürecin çalıştığı zaman. COMMAND: Komut satırından girilen programın ismi. ps komutuna bilgisayar üzerinde çalıştığınız her an ihtiyaç duymanız mümkündür. Bu yüzden çeşitli parametrelerle iyi bilinmesi gerekir. 3.4.2 Klavye Üzerinden Kesinti Linux (ve UNIX) altında, klavyeden bazı tuş kombinasyonları yardımıyla çalışmakta olan program kesintiye uğratılabilir. Klavyeden kabuk komut satırına yazılan bir programın uzun sürmesi halinde, eğer daha önceden komutun arkasına & işareti koyup arka planda çalışır halde bırakılmamışsa, klavyeden yapılan bir müdahale ile durdurulup arka planda çalıştırılabilir. Örneğin, uzun sürmesi beklenen bir komutu klavyeden yazalım ve ardından CTRL-Z tuşlarına basılır. Linux:/etc/rc.d# find/usr-name “o*” -print /usr/bin/od /usr/lib/lilo/doc/other.fig /usr/lib/lilo/doc/other.tex /usr/man/man1/ad.1.gz [1]+ Stopped fin/usr-name “o*” -print linux:/etc/rc.d# Bu esnada sürecin çalışmasına ara verilmiş. Fakat program tamamen durmamıştır. Programın çalışmasını arka planda sürdürmek için bg komutu kullanılır. $ bg bu komutu tekrar komut satırında çalışacak ve klavyeden bilgi girilecek şekilde terminale bağlamak için fg yazılır. $ fg bir programı çalıştırmaya başladıktan sonra tamamen durmaya karar vermişseniz klavyeden CTRL-C tuşlarına basın. Durdurulup arka planda çalışmaya yönlendirilen süreçlere kısaca görev ismi verilir. Tüm görevleri görebilmek için; $ jobs yazılır. Görevler, birden fazla oldukları zaman sıra numarası ile belirtilirler. 3.4.3 Süreçlerin Sona Erdirilmesi Her an çalışan süreçlerden biri veya birkaçı, beklenmedik döngüye girebilir. Bunun sonucu olarak sistemin kaynaklarını, özellikle hafızayı tüketici bir duruma gelebilir. Bu tür kısır döngüye giren süreçleri bulup, eğer hayati önem taşımıyorlarsa ‘öldürmek’ gerekir. Süreci öldürmekten kasıt. Programı tamamen durdurarak sistemle ilişkisini kesmektir. Bu sayede programın hafızada kapladığı bölge serbest kalacak, çekirdek de hafıza düzenlemesini tekrar yaparak başka süreçlere daha fazla yer ayıracaktır. Bir süreci öldürmek için kill komutu kullanılır. Yukarıdaki 67 numaralı sürece ait /usr/sbin/rpc.mountd programını öldürmek için şunlar yazılır; $ kill 67 Birçok süreç sizden bu mesajı aldıktan sonra, dosya sistemi üzerinde yarattığı geçici dosyaları, dosyalar üzerine koyduğu kilitleri temizlemek gibi yapması gereken işlemleri yaptıktan sonra çalışmasına son verecektir. Eğer öldürmeye çalıştığınız süreç herhangi bir nedenle tıkanmışsa ve bu komuta tepki vermiyorsa aşağıdaki komut denenir; $ kill -9 67 Artık prograın sistemle ilişkisi tamamen kesilmiştir. Kill komutu, -9 seçeneği sürdükçe 9 numaralı sinyali gönderir. Bu sinyali alan sürecin yukarıda sözü edilen iki özel durum dışında çalışmayı sürdürmesi olanaksızdır.-9 seçeneği özellikle sistem süreçleri üzerinde görmedikçe kullanılmamalıdır. 4. DOSYA VE DİZİN İŞLEMLERİ Tıpkı MS-DOS’ta olduğu gibi Linux dosya yapısının da hiyerarşik bir yapıya sahip olduğu daha önce belirtilmişti. Temel dosya bilgisi önceki konularda anlatıldığında burada sadece dosya ve dizinlerle ilgili özelliklere değinilecektir. 4.1 Erişim Hakları Erişim hakları, Linux dosya sistemi güvenliğinin belkemiğini oluşturur. Her dosyaya ayrı verilebilen erişim izinleri sayesinde çok daha rahat bir sistem gerçekleştirilebilir. Bu konuya sadece sistem görevlisi tarafından yaklaşıldığı zaman çıkartılabilecek bir sonuçtur. Kullanıcı bazında erişim hakları bazen daha da anlamlı olabilir. Yanlış kullanıldığında hoş olmayan sürprizlere yol açabilir. Linux altında üç çeşit erişim hakkı vardır: Okuma İzni : Dosyanın okuma izni varsa içeriği görülebilir, dizinin okuma izni varsa içerdiği dosyaların listesi alınabilir. Yazma İzni : Dosyanın yazma izni varsa dosyayı değiştirebilir veya silebilirsiniz. Dizine yazma izni verildiğinde dizin altındaki dosyalar yazılabilir veya silinebilir. Çalıştırma İzni : Dosyayı çalıştırma hakkını verir. Bir dosya veya dizin ilk yaratıldığında Linux tarafından ön tanımlı bazı izinler verilir. Genellikle bu izin çalıştırma ve okumadır. Dosyanın oluşma anında verilen izni değiştirmek için erişim yetki kalıbı olarak da bilinen umask komutu kullanılır. Erişim haklarının dışında bir dosyanın üç izin düzeyi daha vardır. Bunla dosyanın sahibi, dosyanın grubu ve diğer kullanıcılardır. Dosyanın sahibi, o dosyayı oluşturan kişidir. Her kullanıcının bir grubu da olduğu için, dosya oluştururken kullanıcı hangi grupta ise dosya da o gruba ait olacaktır. Dosyanın sahibi olmayan ve grubu da dosyanın grubuyla uyuşmayan sistemdeki kullanıcılar ‘diğer’ sınıfına girerler. 4.2 Dosya İzinlerinin Değiştirilmesi Dosya izin bilgilerini görebilmek için ls komutu, -l parametresiyle kullanılır. Aşağıdaki dosya üzerindeki erişim haklarına göz atalım: -rwxr-xr-x 2 gorkem users 182 Feb 12 03:58 deneme Dosya bilgisinin an sol kısmında izin hakları yer alır. En baştaki “-“ işreti bunun düz dosya olduğunu belirtir. “gorkem”, dosyasının sahibi; “users” ise grubudur. Ardından sırayla uzunluk, son değiştirilme tarihi ve dosya ismi gibi bilgiler gelir. Son harf kümesine dosyanın modu da denir. Solda yer alan r,w ve x karakterleri sırayla okuma, çalıştırma ve yazma haklarını belirtir. En soldaki “-“ işaretini ayırdığınız zaman geri kalan harfleri üçlü grup haline getirdiğimizde; rwx r-x r-x sırayla birinci harf kümesi dosya sahiplerinin izinlerini, ikinci harf kümesi grup izinleri ve son küme de diğer kullanıcıların izinlerini belirtir. Buna göre yukarıdaki dosyada rwx : Kullanıcı okuyabilir, yazabilir, çalıştırabilir. r-x : Grup okuyabilir, çalıştırabilir fakat yazamaz. r-x : Diğerleri okuyabilir, çalıştırabilir fakat yazamaz. Sol baştaki karakter “d” olsaydı, bir dizini inceliyor olacaktık. Dosyanın izinlerini değiştirmek için chmod komutu kullanılır. Bu komutu kullanırken hangi izin düzeyine (kullanıcı, grup veya diğerleri) hangi izinlerin verileceği veya kaldırılacağı yazılır. Örnek olarak yukarıdaki dosyanın okuma iznini kaldırmak için; $ chmod -r deneme kullanılabilir.”-“ işareti, iznin kaldırılacağını belirtir. İzin vermek için ise “+” yazılır. Dosyanın yeni görüntüsü şöyle olur: --wx--x--x 2 gorkem users 182 Feb 12 03:58 deneme sadece grubun, sadece kullanıcının veya sadece diğerlerinin erişim hakkını değiştirebilmek için her izin düzeyi için bir harf tanımlanmıştır. Kullanıcı adı için “u”, grup için “g” ve diğerleri için “o” yazarak belirli bir izin düzeyi için erişim hakkını değiştirmek mümkün olur. Bu üç harf, izinden hemen önce yazılır. $ chmod u+x deneme (dosyanın sahibi çalıştırabilir) $ chmod o+r t2sac (diğerleri okuyabilir) $ chmod g-w deneme (dosyanın grubu yazamaz) Her izin için aynı zamanda izinler tanımlanmıştır. Dosyanın erişim izinlerini değiştirmek için izne ait sayıları kullanabiliriz. Aşağıdaki tabloda, her izin düzeyi (dosyanın sahibi, grubu ve diğerleri) için üçer tane olmak üzere toplam 9 sayıdan oluşan izin numaralarını görebilirsiniz. Bir izni vermek için sırayla numaraları toplayın. Örneğim sahibin okuması (400), yazması (200), çalıştırması (100), grubun okuması (40), çalıştırması (10) ve diğerlerinin okuması (4) ve çalıştırması (1) için kullanılan rakamların toplamı 755’tir. $ chmod 755 deneme 400 sahibi okur 200 sahibi yazar 100 sahibi çalıştırır 040 grubu okur 020 grubu yazar 010 grubu çalıştırır 004 diğerleri okur 002 diğerleri yazar 001 diğerleri çalıştırır Başka bir örnekte; sahibinin okuması (400), yazması (100), grubun okuması (40), diğerlerinin okuması (4) için izin numarasını bulmak için bu cümlede parantez içinde yer alan sayıları toplarsak 644 yapacaktır. $ chmod 644 deneme Aynen dosyalarda olduğu gibi, bir dizinin de sahibi ve grubu vardır. 4.3 Dosyanın Sahibinin ve Grubunun Değiştirilmesi Bir dosyanın sahibini sadece sistemdeki root kullanıcı değiştirebilme yetkisine sahiptir. Dosya sahibinin değiştirilmesi için chown komutu kullanılabilir. Yukarıdaki dosyanın sahibi ozgur isimli kullanıcı ise; # chown ozgur deneme Dosyanın yeni hali şöyle olur: -rwxr-xr-x 2 ozgur users 182 Feb 12 03:58 deneme chgrp komutu yardımıyla da dosyanın grubunu değiştirilebilir. Yukarıdaki dosyanın grubunu www yapmak için; # chgrp www deneme komutu kullanılabilir. Chown komutu, dosyanın hem kullanıcısını, hem de grubunu değiştirebilme özeliğine sahiptir. Chown komutundan sonra kullanıcı ve grup isimleri aralarında bir nokta kalacak şekilde yazılırsa; $ chown ozgur.www denem $ ls-l deneme -rwxr-xr-x 2 ozgur www 182 Feb 12 03:58 deneme 4.4 Diğer Dosya Sistemlerinin Kullanılması Bir Linux işletim sisteminde dosyaların ve dizinlerin her birisi sabit disk, CDROM veya diğer bilgi saklamaya yarayan cihazların birer parçası olan “dosya sistemlerinde” tutulur. Linux’ un desteklediği pek çok dosya sistemi vardır ve bunların her birisinin veri depolarken kullandıkları yöntem birbirinden farklıdır. Linux’ ta her dosya sistemi farklı bir dizinde tutulur ve bu dizinlerin bilgisi /etc/fstab dosyasında yer alır. Açılış anında bu dosyada hangi dosya sistemlerinin hangi dizinler altına yerleştirileceği okunur ve buna göre makine açılır. Linux kendisi için özel olarak geliştirilen ext2 dosya sistemini kullanır. Bir sistem görevlisi olarak çeşitli dosya sistemlerini tanımalı, bu dosya sistemleri üzerinde hata oluşması durumunda zararı en aza indirecek yolu bilmelisiniz. Bilgisayar başında geçireceğiniz zamanınızın büyük bir bölümünü dosya sistemleri üzerinde harcayacaksınız. 4.4.1 Mount İşlemi Bir dosya sisteminin kullanılabilmesi için boş bir dizin altına yerleştirilmesi gerekir. Ancak bu gerçekleşirse söz konusu dosya sistemini oluşturan dosyalar üzerinde işlem yapılabilir. Bu işlem mount komutu yardımıyla yapılır. Mount komutu şu şekilde kullanılır: Mount -t Tip: Dosya sitemi çeşidi. Örnek dosya sistem çeşitleri arasında ext2, minix, msdos sayılabilir. Genellikle mount programı ne tür bir diske eriştiğini otomatik olarak anlayacaktır. Nereye: mount edilecek dosya sisteminin hangi dizinin altına yerleştirileceğini belirtir. Aygıt: Üzerinde dosya sisteminin bulunduğu sabit disk CD-ROM benzeri aygıt. Linux’a bağlı tüm donanımlara ait bir giriş,/dev dizinin altında bulunur. Bu dizin altındaki dosyalar özel olarak tanımlanmıştır ve bunlara kısaca “düğüm” adı verilir. Örneğin /dev/hda2, birinci IDE sabit diskin ikinci bölümünü; /dev/tty 1 ise birinci sanal konsolu gösterir. Bir dosya sistemini erişilebilir hale getirebilmek için hangi düğüm ismine sahip olduğunu bilmemiz gerekir. Örnek olarak CD-ROM için /dev/cdrom, birinci disket sürücü için /dev/fd0 gibi. CD-Rom sürücüsünü /mnt altına mount etmek için # mount -t iso9660 /dev/cdrom/mnt yazılır. Eğer çekirdekte CD-ROM dosya sistemi desteği varsa ve sistem açılırken çekirdek CD-ROM’u tanımışsa /mnt dizini altında CD’deki dosya sistemi yerleştirilir. Buna benzer bir şekilde MS-DOS disket içeren dike sürücüyü ve üzerinde ext2 dosya sistemi bulunan ikinci IDE sabit diskin birinci bölümünü sırasıyla /-mnt/disk dizinlerine bindirmek için; # mount -t msdos /dev/fd0/mnt/disket ve # mount -t ext2 /dev/hdb1/mnt/disk yazılabilir. Bir mount işleminin tersini yapmak ve dosya sistemini erişilmez kılmak için umount komutu kullanılır. /disk altındaki /dev/hdb1 sabit disk bölümünü umount etmek için # umount /disk veya # umount /dev/hdb1 kullanılır. Her iki yazım şekli de kabul edilir. Son olarak o an sistemde bindirilmiş halde bulunan tüm dosya sistemlerini görmek için mount komutunu parametresiz yazalım. Mount veumount komutları ile bir dizin yapısını disk üzerinde konumlandırırken veya ayırırken üzerinde işlem yapılan dizinde bulunmamalı, ya da o dizinde başka bir süreç çalışıyor olmamalıdır. Aksi takdirde aşağıdaki hata mesajı alınır: #pwd /disk #umount/disk umount:/dev/hdb1: device is busy Yapılması gereken, ayırılacak dizinden dışarı çıkıp tekrar denemek. Diğer bir seçenek de fuser konutunu kullnamak. Bu komut, ayırmak istediğiniz dizini kullanana tüm süreçleri ekranda gösterir. Böylelikle rahatlıkla yukarıdaki örnekteki gibi umount işlemi gerçekleştirebilir. fuser komutunun -km seçeneği ile o dizini kullanan süreçleri öldürelebilir. #cd/ #fuser/disk /disk: 78c #fuser -km/disk #umount/disk fuser komutunu kullanırken dikkatli olama gerekir, zira sistemi kilitleme noktasına getirebilir. 4.4.2 Dosya Sistemi Bilgileri Linux açılırken mount komutu yardımıyla root dosya sistemine akleyeceği her değişik dosya sistemini /etc/fstab dosyasından okur veişlem koyar. Aşağıda örnek bir fstab dosyası yer alıyor. /dev/hda2 / ext2 defaults 1 1 /swap none swap defaults 1 1 /dev/cdrom /cdrom iso9660 defaults 1 1 none /proc proc defaults 1 1 /dev/hda1 /dos msdos defaults 1 1 Çekirdek açılış mesajları içinde VFS: Mounted root (ext2 filesystem) readonly. Gibi bir satır göreceksiniz. Sistem açılırken en önce /dosya sistemini mount eder. Bu sayede bu dosya sistemi altında yer alan ve hayati önem taşıyan yazılımlara(fsck, mount gibi) ulaşır. Daha sonra yerel dosya sistemleri ve en son da ağ üzerinden erişilen dosya sistemlerine (NFS) bağlanır. fstab dosyasında kullanıcının kendi dosyalarını yerleştirmediği, fakat sistem tarafından kullanılan swap ve proc dosya sistemleri için de mount bilgileri bulunur. Yukarıdaki fstab dosyasında ext2 dosya sistemine sahip /dev/hda2 sabit disk bölümü, / dizinini oluşturuyor. MS-DOS formatlı /dev/hda1 bölümü de /dos dizinine erişilebilir olarak açılıl anında eklenecektir. Sistemdeki CD-Rom sürücü /cdrom dizinini altına yerleştirilmiş olup root kullanıcı bunu istediği dizine koyabilir. Bu dosyaya, mount komutundaki gibi parametreler de eklenebilir. dördüncü sırada yer alan defaults parametresini yanına eklemek istediğimiz opsiyonları yazarız. Bu parametrelerden bir tanesi de “user” olup root dışındaki kullanıcılara mount hakkını verir. CD-ROM sürücüyü normal sistem kullanıcılarının mount veya umount yapabilmesi için fstab dosyasındaki ilgili satırı /dev/cdrom /cdrom iso9660 defaults, user 1 1 satırıyla değiştirdiğimizde; defaults parametresi ise, halihazırdaki doya sistemini okunup yazılabildiğini, asenkron olduğunu, üzerindeki bilgileri bloklar halinde alıp verdiğini (buna diğer örnekler CD-ROM ve disket sürücüleridir), içerdiği programların çalıştırılabilir olduğunu ve normal kullanıcıların mount, umount yapamadığını gösterir. 4.4.3 Dosya Sistemi Desteğinin Eklenmesi Çekirdek tarafından hangi dosya sistemlerinin desteklendiği /proc/filesystems dosyasından öğrenilebilir. Diğer modüller gibi dosya sistemlerinin hemen hemen tamamı çekirdeğe dışarıdan eklenen modüllerden oluşur. $ cat /proc/filesystems ext2 vfat nodev proc iso9660 nodev smbfs yukarıdaki satırlar, çekirdekte ext2, vfat, proc, iso9660 ve smbfs dosya sistemi desteği olduğunu gösteriyor. Linux’de tüm modüller /lib/modules/preferred dizini altında yer alır. Bu dizine geçin. $ ls block fs misc net scsi cdrom ipv4 modules.dep pcmcia block: Blok aygıtlara ilişkin modüller cdrom: Değişik tipteki CD sürücü modülleri fs: Dosya sistemi modülleri misc: Çeşitli tipteki modüller (ses kartı, yazıcı) net: Ağ modülleri pcmcia: PCMCIA kartları modülleri scsi: SCSI aygıt modülleri normalde pek çok modül sizin isteyiniz dışında çekirdeğe eklenir ve çıkartılır. Bizim işimize yarayacak modüller fs dizini altındadır. 4.4.4 Dosya Sistemi Yaratılması ve Kontrolü Bazen MS-DOS altında oluşturulamayan dosya sistemlerini (ext2 gibi) oluşturmak gerekebilir. Linux altında bir dosya sistemini oluştururken aynı zamanda bunu kontrol eden programlar vardır. Bunların en çok kullanılanı, Slackware sürümünde gelen mkfs/’tir. Mkfs ile Linux native (ext2) dosya sistemi oluşturmak için mkfs.ext2 programı kullanılır. Mkfs.ext2 “aygıt” yerine üzerine dosya sistemi kurulacak olan cihazın /dev dizini altındaki düğüm dosyasının ismi yazılır. Blok sayısı yerine, fdisk yazılımından o bölümün kaç blok olduğunu öğrenip bu sayı girilmelidir. İbr blok 1024 bayttan oluşur. Örneğin; # mke2fs/dev/hda3 163829 komutu, /dev/hda3 disk bölümünde ext2 dosya sistemini kurar. Bu komutu kullanmadan önce iyi düşünülmelidir, zira burada yer alan tüm dosyalar silinir ve bu hatanın geri dönüşü olmaz. Aşağıdaki komut ile ibr disket üzerinde ext2 dosya sistemi kuruluyor. # mke2fs/dev/fd0 1440 mke2fs ile mkfs.ext2 komutları aynıdır. Benzer şekilde, MS-DOS dosya sistemi yaratmak için mkfs.msdos, minix dosya sistemi yaratmak için mkfs.minix kullanılabilir. Blok sayısı girilmez ise mke2fs bunu otomatik olarak bulacaktır. Herhangi bir sebepten dolayı diskte bozulma ve veri kaybını aza indirmek için de yazılımlar vardır. Fsck ile dosya sistemi kontrolü yapılabilir. Fsck ile ext2, dosfsck (veya fsck.msdos) ile MS-DOS formatlı alanlar kontrol edilir. Linux:~# fsck /dev/hda2 Parallelizing fsck version 0.5b (14-Feb-95) E2fsck 0.5b, 14-Feb-95 for EXT2 FS 0.5a, 95/03/19 /dev/hda2 is mounted. Do you really want to contunie (y/n)? Yes Pass1: checking inodes, blocks and sizes Pass2: checking directory structure Pass3: checking directory connectivity Pass4 checking reference counts Pass5 checking group summary information Fix summary information? Yes Block bitmap differences:-46486 -46487 -46489 -46490. FIXED Free blocks count wrong for group 5 (2803, counted=2808). FIXED Free blocks count wrong (16326, counted=16331). FIXED /dev/hda2: ***** FILE SYSTEM QWAS MODIFIED ***** /dev/hda2: ***** REBOOT LINUX ***** /dev/hda2:3494/29632 files, 42904/59235 blocks Bir dosya sistemini kontrol etmeden önce okunan bölüm root dosya sisteminden ayrılır ve kontrol işleminden sonra kapatılıp tekrar açılır. Debugfs programı, dosya sistemi parametrelerini incelemek için kullanılır. Disk üzerine doğrudan erişim yaptığı için dikkatli kullanılmalıdır. Ext2fs yardımıyla kurtarılamayan bazı dosyalar (özellikle silinmiş dosyalar) debugfs yardımıyla kurtarılabilir. 4.5 Sembolik Bağlantılar Bazı durumlarda, bir dosyayı oluşturup bu dosyanın başka bir dosyayı işaret etmesi istenebilir. Genellikle sistem yöneticileri tarafından kullanılan sembolik bağlantı yardımıyla bir dosya veya dizin, bunlara karşılık gelen başka bir dosya veya dizin olarak gösterilir. Aşağıda sembolik bağlantı örneği yer alıyor. Sistem görevlisi, /root dizini altındayken /usr/scr/linux dizinine geçmek istiyor. /usr/scr/linux dizinine işaret eden bir bağlantı kurmak için ln komutu kullanılır. -s parametresi, bu bağlantının sembolik olacağına işaret eder. ln-s linux:~# ls-l total 116 drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel -rw-r--r-- 1 root root 115695 Sep 15 1994 lodlinv15.zip drwx------ 2 root root 1024 Jan 7 1980 mail -r-r--r-- 1 root root 0 Feb 15 08:14 typescript linux:~#ln-s /usr/scr/linux linux linux:~3ls-l total116 drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel -rw-r--r-- 1 root root 115695 Sep 15 1994 lodlinv15.zip drwx------ 2 root root 1024 Jan 7 1980 mail lrwxrwxrwx 1root root 9 Feb 15 08:14 linux -> /usr/scr/linux -r-r--r-- 1 root root 0 Feb 15 08:14 typescript Bu işlemden sonra kullanıcının /usr/scr/linux dizinine geçmesi için cd linux” yazması yetecektir. Sembolik bağlantı dosyasını diğerlerinden ayıran, satırın en solundaki l karakteridir. 4.6 Sabit Bağlantılar Eğer -s parametresini kullanmazsanız, ln komutu iki dosya arasında sabit bağlantı (hard link) koyacaktır. # ln /etc/group /etc/group2 #ls -al /etc/group* -rw-r-r- 2 root root 390 Mar 17 20:15 /etc/group -rw-r-r- 2 root root 390 Mar 17 20:15 /etc/group2 /etc/group dosyası üzerinde yapılacak tüm değişiklikler /etc/group2 dosyasınada anında yansıtılır. Sabit bağlantıları sistem yöneticileri genelde önemli sistem dosyalarının (/etc/paswd, /etc/shadow vb.) bir kopyasını tutmak için kullanır. 4.7 Dosya Arşivleme ve Sıkıştırma Linux altında dosya arşivlenmesi ve sıkıştırılması neredeyse belirli ve standartlaşmış birkaç komut ile gerçekleştirilir. tar komutu yardımıyla istenilen dosyalar arşivlenebilir, bunların üzerine yenileri eklenebilir, istenildiği zaman da tekrar açıp eski haline getirilebilir. GNU gzip komutu ise dosyaların sıkıştırılması (zip) ve sıkıştırılmış dosyaların açılması (unzip) işlemlerini yapabiliyor. Fazla disk alanı yoksa bu iki komut her zaman işe yarayacaktır. 4.7.1 Dosya Arşivleme Tar (tape Archive) programı, bir veya birden fazla dosyayı tek bir forma sokar. Genellikle bir dizin ve bu dizinin altında yer alan tüm alt dizinleri bir araya getirmek için kullanılır tar, dosyalarının üzerinde sıkıştırma işlemini normalde uygulayamaz. Fakat tar’ın GNU sürümü (Linux’ta kullanılan) bu işlemi gzip kullanmadan da yapabilir. Tar konutuna bir örnek verilecek olursa; $ tar -cf arşiv.tar tmp/ bu komut, -c (create archive) parametresi yardımıyla tmp dizini altındaki herşeyi pakatleyip arsiv.tar ismli dosyaya yollar. -f parametresi, hangi dosyaya yazılacağını belirtir. İstenldiği zaman dosyayı tekrar açmak istendiğinde: $ tar -xf arsiv.tar koutu kullanılır. -x (extract) parametresi, -f ile belirtilen dosyayı açacaktır.-r opsiyonu ile dah önce yaratılmış bir arşive dosya eklenebilir. Böylece dosyayı açma ve tekrar arşiv oluşturma işleminden kurtulunmuş olur. # $ tar -rf arsiv.tar ekleme.txt dosyanın içeriğini önceden görebilmek için -t parametresi kullanılır. Bazı durumlarda arşivlenmiş yazılım kendine ait bir dizin açmak yerine içerdiği dosyaları bulunduğu yere yazabilir. Tar -tf arsiv.tar Hangi dosyaların açıldığını ekranda görebilmek için -v parametresi eklenir: #tar-zcvf tmp.tgz/tmp tar:Removing leading /form absolite path names in the archive. tmp/ tmp/tar-error tmp/.X11-unix/ tmp/rc.inet1.Old tmp/networks.OLD tmp/linux/ tmp/linux/fss.txt tmp/lilo.conf tmp/PKGTOOL:REMOVED aşağıdakş komut, arşivlenen dosyaları diske kaydetmaye yarıyor. Bunun için temiz bir disket yuvasına yerleştirilir ve aşağıdaki satır yazılır. #tar -cf/dev/fd0 tmp/ tmp dizini altındaki her şey diskete kaydedilmiştir. Açmak için bilinen yöntem kullanılır. #tar -xf/dev/fd0 4.7.2 Dosya Sıkıştırma ve Açma Dosya sıkıştırma amacıyla sıkça kullanılan iki yazılım vardır: gzip ve compress. Her iki yazılımda da Slackware Linux dağıtımında bulunmaktadır. GNU’nun dağıtımı olan gzip, tar ile birlikte kullanılan ve dosya sıkıştırma ve arşivlemede neredeyse standart hale gelmiş bir program. Bir dosyayı sıkıştırmak için parametre girmeden gzip komutunun ardından bir dosya ismi yazıldığında; $ gzip alvis $ ls-al elvis.gz gzip ile sıkıştırma dosyalarının sonu .gz ile biter. Bunları açmak için gunzip komutu kullanılır $ gunzip elviz.gz compress ve unsompress de sırayla bir dosyayı sıkıştırmak ve açmak için kullanılır. Aslında Linux’ta uncompress adında bir yazılım yoktur, bu dosya ismi compress dosyasına bağlantılıdır compress il sıkıştırılan dosyaların sonu .Z ile biter. $ ls-al web.html -rw-r--r-- 1 gorkem users 41450 Jan 27 13:40 web.html $ compress web.html $ls-al web.html.Z -rw-r--r-- 1 gorkem users 18906 Jan 13:40 web.html.Z yukarıdaki web.html dosyasını sıkıştırdığımızda dosyanın boyutu 42450 bayttan 18906 bayta indi. Açmak için: $ uncompress web.html.Z Bir dosyanın uzantısından ne tür bir dosya olduğu anlaşılamaz ise file komutu yardıma koşar. Linux’ta belirli uzantılı dosyaların başı bilinen bir harf veya harf grubu ile başlar. File komutu dosyanın başındaki karakterleri kontrol ederek ve buları bir listeyle(/etc/magic) karşılaştırarak dosyanın ne tür olduğunu söyler. #file tmp.gz tmp.tgz:gzip compressed data-deflate method,last modified:Sat Feb 15 08:21:50 1997 os:Unix # file tmp.tar.Z tmp.tar.Z:compressed data 16 bits 4.7.3 Dosya Türleri .Z Sıkıştırılmış dosya (compress ile) .tar Arşivlenmiş dosya .gz Sıkıştırılmış dosya (gzip ile) .bz2 Sıkıştırılmış dosya (bzip ile) .tgz tar ve gzip yardımıyla sılıştırılmış ve arşivlenmiş dosya .txt düz metin dosya .html HTML dosyası .htm HTLM dosyası .ps PostScript dosyası .au ses dosyası .wav bir başka ses dosyası .xpm resim dosyası .jpg Jpeg formatlı resim dosyası .gif Gif formatlı resim dosyası .png resim dosyası .rpm RPM dosyası .h C/C++ başlık dosyası .c Cdosyası .c++ C++ dosyası .cxx C++ dosyası .o C obje dosyası .pl Perl dosyası .tcl TCL/tk betiği (script) 4.7.4 Birlikte Kullanım ftp adreslerimde Linux için yer alan yazımlar genellikle tar ve gzip, nadiren de ta ve compress ile sıkıştırılıp arşivlenerek saklanırlar. Çünkü ta komutu tek başına arşivi skıkştırmaz, bu işlem için gzip veya compres kullanılır. Bunların açılabilmesi için tar komutu ve birkaç parametre yeterli olur. $ ls netscape-4.0.linux-elf.tar.gz yukarıdaki dosya önce tar ile arşivlenmiş, ardından gzip ile sıkıştrılmış. Tek adımda bu iki dosyayı açmak için tar dosyasına x ve f parametrelerinin dışında z parametresi de eklenir. $ tar-zxf netscape-4.0.lınux-elf.tar.gz $ls netscape-4.0.lınux-elf eğer dosya sıkıştırılırken compress komutu kullanılmışsa z yerine Z parametresi yazılır. $ ls folder.tar.Z $ tar-Zxf folder.tar.Z $ ls folder benzer şekilde, bir dosyayı aynı anda hem tar ile arşivlemek, hem de sıkışrtırmak istersek c ve f parametreleri dışında compress ile Z, gzip ile z parametrelerini girmek yeterlidir. Aşağıda sırayla gn-gopher dizisinin önce tar ve gzip ile,, ardından tar ve compress ile arşivlenmesi görülüyor. $ ls gn-gopher/ $ tar-zcf gopher.tgz gn-gopher/ $ tar-Zcf gopher.tar.Z gn-gopher/ 4.8 Dizin Tarama Linux işletim sistemi kurulduğu anda, yünlerce dizin altında binlerce dosya olacaktır. Find komutu, bu dosyaların arasında tarama yapabilmek için geliştirlmiştir. Bu komutla sadece dosya sistemlerine değil, dosyanın sahibi, eriim haklaı, son erişim tarihi gibi verilere de ulaşmak mümkündür. Find komutunun en ık kullanılılş şekli şudur: Find-name Dizin ismi yerine tarancak olna dosyanın bulunduğu dizin ismi yazılır. -name parametresinden sonra ise aranana dosyanın ismi girilir. Burada “*” ve “ *” gibi joker karakterleri de kullanılabilir. Aşağıda, find komutunun kullanımına ilişkin birkaç örnek yer alıyor. $ find .-name “*.html” (bulunduğunuz dizinden itibaren sonu.html ile biten dosyalarıarar) $ find/home/halil-name “screeen” (/home/halil dizininden itibaren screen isimli dosyaları arar) Bu komut, -type d parametresi yardımıyla sadece dizin isimleri rarsında arama yapar. $ find /usr/-name “linux” -type d find komutuna bir alternatif olan locate komutu ile dosyalar çok kısa bir sürede taranabilir. Update koutu, her sabah belirli bir saatteki tüm dosya ve dizin isimlerini bir veri tabanına yükler. Daha sonra bu dosyada yer alan belirli bir dosya veya dizin ismi ile arayabilirsiniz: # locate pico /usr/bin/pico /usr/man/man1/pico.1.gz Yukarıdaki komut ile içinde pico kelimesi geçen dosyalar bulunur. 4.9 mtools MSDOS Arabirimi Linux altından, MS-DOS formatlı disketlere ulaşmayı kolaylaştıran paketin ismi mtools olarak biliniyor. Bu isim, paketin tüm komutlarının ilk harfinin “m” olmasından kaynaklanmış. Paketle birlikte gelen çeşitli yardımcı programlar sayesinde MS-DOS formatlı diskette yer alan dosyalar listelenebilir, silinebilir, disket formatlanabilir, hatta disketin kimliği değiştirilebilir. Son çıkan mtools paketi, 2MB formatlı disketleri de tanıyabiliyor. Aşağıda, mtools paketinden çıkan bazı komutlar ve örnek kullanımları gösteriliyor. mdir : disket içeriğini görüntüler. Linux:~ mdir a: Volume in drive A i SYSTEM_BT Directory for A:/ IO SYS 40566 9-30-93 6:20a MSDOS SYS 38138 9-30-93 6:20a AUTOEXECBAT 91 3-29-95 10.23a NDD 3-29-95 10.26a CHKLIST MS 81 11-07-96 7:00p VGA_45 3-29-95 10:28a YARDIM 3-29-95 10:17a UTIL 3-29-95 10:17a VIRUS 3-29-95 10:17a 9 File(s) 291328 bytes free linux:~# mcopy : Bir dosyayı Linux’tan diskete, disketten linux’a aktarır. Linux:~# mcopy a:/autoexec.bat. Copying AUTOEXEC.BAT mdel : DOS dosyasını siler. mformat : Disketi formatlar. mmd : Disket üzerinde dizin oluşturulur. MSDOS mtools arabirimi aynı zamanda VFAT tipi uzun dosya isimlerini de ekranda gösterebilir. Eğer dosya ismi, tek bir Dos ismi içine sığmıyorsa ve 8+3 kuralını bozuyorsa uygun bir kısa isim yaratılır. Bunun yanında mtools’un 2MB’lık disketleri okuyabilme özelliği de vardır. Mtools paketinin konfigürasyon dosyası /etc/mtools.conf’tur. bu dosyanın kullanımı için mtools(1) man dosyasından yararlanabilirsiniz. 5. LİNUX SİSTEM YÖNETİMİ Linux’a, sorumluluk sahibi sistem yöneticisi tarafından açık tutulduğu süre içerisinde verimli ve düzgün çalışması için gerekli özen gösterilmelidir. Donanımsal etkenler bir tarafa bırakılırsa sistem yöneticisinin uyması gereken ve internet etikleri denilen davranış kuralları vardır. Bu kurallara öncelikle sistem sorumlusu uymalı ve kullanıcıları da uymaya zorlamalıdır. 5.1 Yetkili Kullanıcı Sistemin en büyük sorumlusu root şifresini bilen kullanıcıdır. Sistem yöneticisi, makinedeki kullanıcıların karşılıklı güven içinde istek ve şikayetlerini yönelttikleri tek merci durumundadır. Sistem yöneticisinin sahibinin haberi olmaksızın sistem kullanıcılarına ait dosyaların yerini ve izinlerini değiştirmesi uygun değildir. Yönetici zaman zaman kullanıcıları bilgilendirmelidir. ( Unix veya İnternet hakkında veya Linux’a eklenen uygulama programları ile ilgili dökümanlar kullanıcılara gönderilebilir.) 5.2 Sistem Kuralları Hemen akla gelebilecek birkaç basit kural bir hesabın birden fazla kişiyle kullanılmaması, sistemin güvenliğini zedeleyecek crack, satan, cops gibi programların diğer kullanıcıların zararına çalıştırılmaması, sistem kaynaklarının sorumsuzca tüketilmemesi olarak sayılabilir. 5.3 Kullanıcı İşlemleri 5.3.1 Kullanıcı Hesabı Açmak (Adduser) Kullanıcı hesabı açmak iki şekilde yapılabilir. Bunlardan birincisi adduser komutu yardımıyla yapmak , diğeri ise bu komutun yaptığı işlemleri sırasıyla elden yapmaktır. İlk önce adduser komutunu kullanmak için sisteme root olarak girilir ve bu komut çalıştırılır. #adduser Login name for new user ( 8 character or less ) [] : eyeze Kullanıcı ismi en az 3 karakter en fazla 8 karakter olmalıdır. User id for eyeze [ defaults to next available ] : Initial group for eyeze [ users ] : Eğer özel olarak değiştirmek istemezseniz her kullanıcının grup numarasını (GID = Group ID) 100 olarak tanımlayacaktır. Bu gruba karşılık gelen isim users ‘ tır. Kullanıcı kimliği (UID = User ID) ise genellikle 500’den sonra gelen ve kullanılmayan ilk sayı olarak atanır. Additional groups for eyeze [] : Eyeze’s home directory [ /home/eyeze]: Eyeze’s shell [/bin/bash]: Sisteme girişte çalıştırılacak kabuk için seçimi ya kullanıcıya bırakır ya da ön tanımlı olarak bash verebilirsiniz. Eyeze’s account expiry date ( MM/DD/YY) []: Changing password for eyeze Enter the new password ( minimum of 6 , maximum of 8 character ) New password: Re-enter new password: Password changed. Done... Her şeyin doğru olduğunu emin olduktan sonra /etc/skel dizini altında yer alan tüm dosyalar bu kullanıcının dizinine kopyalanacaktır. Bu dizinin altına her kullanıcının home dizinine yüklenmesi istenen sistem dosyaları yerleştirilebilir. Bu işlemden sonra kullanıcı sisteme girebilir. Adduser komutunu kullanmadan kullanıcı hesabı açmak için /etc/passwd ve /etc/shadow dosyalarına birer satır eklenmelidir. /etc/passwd dosyasına aralarına ‘:’ koyarak sırasıyla hesap ismi, ‘x’ , grup kimliği, kullanıcı kimliği, kullanıcı isim ve soyadı, ev dizini ve kabuk programı eklenir. eyeze:x:100:504:Evren Demir:/home/eyeze:/bin/bash /etc/shadow dosyasına ise ; eyeze::9990:0:99999:7:::: satırı eklenir. Bu satırda kullanıcı şifresi daha sonra verileceği için ikinci girdi boş bırakılmıştır. Tüm bunların ardından /home/eyeze dizini oluşturulur ve dizin grubu ayarlanır. Gelen e-postalar içinse /var/spool/mail dizininde bir dosya tanımlanır. /etc/skel içinde yer alan dosyalar kullanıcının dizinine kopyalanır ve sonra bu kullanıcı sisteme girebilir. #mkdir /home/eyeze #chown -R eyeze.users /home/eyeze #touch /var/spool/mail/eyeze #chown eyeze.mail /var/spool/mail/eyeze 5.3.2 Kullanıcı Grubu Users grubuna bağlı kalmadan wwwadm veya ftpadm gibi grup isimleri belirtilebilir, bu gruplar da bir veya birkaç kullanıcıya ait olacak şekilde değiştirilebilir. Bir kullanıcının kullanıcı kimliğini öğrenmek için id komutu kullanılır. $ id eyeze UID=504 (eyeze) GID=100 (eyeze) Users grubunun dışında birden fazla grup tanımlaması sistemin denetlenmesini güçleştirse de sistem güvenliğini arttırır. Her kullanıcının en az bir grubu vardır. Bazı kullanıcıların birden fazla grubunun olmasıyla bu kullanıcılar sistemde root kullanıcısının üstlenmesi gereken işleri yapabilirler. Grup kimliğinin değiştirilmesi veya yeni grubun eklenmesi için /etc/group dosyası kullanılır. Bu dosyaya grubun ismi, numarası, grup şifresi ve gruba ait kullanıcılar yazılır. /etc/group dosyasının iki satırında yer alan parametreler; root::0:root sys::3:root,bin,sys,adm gibidir. Sırayla ‘:’ ile ayrılmış her kolon grup ismi,grup şifresi,grup numarası ve gruba ait kullanıcılardır. Grup ismi, ls -l komutunu işletince kullanıcı isminin hemen sağında görülen kelimedir. Grup şifresi, gruba ait olmayan kullanıcıların dosyasına erişim için nadiren kullanılır. Grup numarası, kullanıcının ait olduğu grubun karşılığıdır. Gruba ait kullanıcılar ise her biri birer virgülle ayrılmış olarak yazılır. Kullanıcı sisteme girdiği zaman otomatik olarak /etc/password dosyasında yer alan grup ismi aktif olur. Bu yüzden her kullanıcının ismi /etc/groups dosyasına yazılmaz. Hangi grubun veya grupların içinde olduğumuzu öğrenmek için groups komutu kullanılır. $ groups eyeze users 5.3.3 Yeni Kullanıcı Grubu Eklenmesi Sisteme yeni bir kullanıcı grubu eklemek için groupadd komutu kullanılır. # groupadd deneme Bir kullanıcıyı bu gruba dahil etmek içinse # gpasswd -a eyeze deneme yazılır. 5.3.4 Kullanıcı Grubunun Silinmesi Bir kullanıcı grubunu sistemden kaldırmak için groupdel komutu kullanılır. #groupdel deneme 5.3.5 Kullanıcı Hesabının Silinmesi Bir kullanıcıya ait hesabı silmek için /etc/passwd dosyasında bu kullanıcıya ait olan satırdaki şifre kolonunun başına ‘*’ işareti koyulabilir. Bir parolanın içinde * karakteri olmayacağından bu kullanıcı sisteme bir daha giremez. Hesabı tamamen kaldırmak için sırasıyla aşağıdaki işlemler yapılır: Kullanıcının home dizinini ve e-postalarını yedekledikten sonra sistemde kullanıcıya ait olan dosyalar ve home dizini silinir. /etc/passwd ve /etc/group dosyasından kullanıcının isminin geçtiği satırlar silinir. Sistemde kullanıcıya ait olabilecek tüm dosyaları silmek için /etc/passwd dosyasından kullanıcıya ait olan satırlar silinmeden önce $ find /-user eyeze -ls-exec rm {}; komut satırı kullanılır. 5.4 Sistemin Yedeklenmesi Makinenin belli aralıklarla yedeklenmesi sistem güvenliğinin bir parçasıdır. Yedekleme ile kullanıcı hatalarının önüne geçilebilir. Yedekleme genellikle tüm sistem üzerinde yapılmaz. Sadece önemli bilgileri içeren dizinler üzerinde yedekleme işlemi yapılabilir. Yedekleme üniteleri olarak teyp, disket veya başka diskler kullanılabilir. Kullanışlı olması için yedeklemeyi yapan program, yedeklenen dosyalar arasındaki belirli bir dosyayı açabilmelidir. Yedeklenecek olan dizinlerden en önemlileri, sistem konfigürasyon dosyalarının yer aldığı /etc, bazı Xwindow dosyalarının bulunduğu /usr/X11/lib/X11 dizini altındaki bazı dosya ve dizinler, kullanıcı dizinlerinin yer aldığı /home, /usr ve /usr/local dizininde yer alan bazı dizin ve dosyalar ve /root dizinidir. $ tar cvMf /dev/fd0 /usr /home Yukarıdaki komut ile /usr ve /home dizinleri diskete yedeklenir. Sıkıştırarak yedeklemek için bu komuta z seçeneği vermek yeterlidir. Açmak içinse $ tar xf /dev/fd0 komutu kullanılır. Eğer sıkıştırarak yedeklediyseniz açarken de z seçeneği kullanılır. tar’ın yanısıra kullanılan yedekleme komutları olarak dump, restore, cpio, dd kullanılabilir. Bir TCP/IP ağınız varsa ve birden fazla Linux veya Unix makinesi kullanıyorsanız tek bir teyp sürücü ile bütün makinelerinizin hatta Windows makinelerinizin bile yedeğini alabilirsiniz. 5.5 Sistemin Güncellenmesi Yeniden Linux yüklenecek olan makine üzerinde Linux bulunmasının yararları ve sakıncaları vardır. Yapılacak aslında işletim sisteminin bulunduğu bölümü değiştirmektir. Takas alanının ayrılması, kullanıcı alanını ayrılması gibi işlemler önceden yapılmış oluyor. Değiştirecek bir sebep olmadığı sürece bir işletim sisteminin güncellemesinden kaçınılmalı veya en aza indirilmelidir. Yeni bir sistem, yeni bilinmeyenler ve az da olsa çalışmama riski getirecektir. Eğer sistem üzerinde belirli hizmetler veriliyorsa o hizmetlerle ilgili verilerin güncelleme esnasında yok olmamasına dikkat edilmelidir. Makineye ait tanımların (/etc) ve standart dağılım dışında yüklenmiş paketlerin önceden yedeklenmesi gerekir. Güncelleme için iki yöntem vardır. Biri doğrudan yeni sistemi eskisinin üzerine yüklemek, diğeri eskisini silerek yenisini yüklemektir. Güncelleme gerektiren dizinler; /var/spool/mail , /root dahil tüm kullanıcı dizinleri , /usr altında gerekli dizinler, /var/adm ve /etc ‘ dir. Daha önce shadow kullanmayan bir sistemden shadow kullanılan bir sisteme geçerken /etc/passwd ve /etc/shadow dosyalarında gerekli değişiklikler yapıldıktan sonra yeni yerine kopyalanmalıdır. 5.6 Çekirdeğin Derlenmesi Genel anlamda çekirdek, yazılımın ve donanımın arasında bekleyerek iletişimi sağlayan bir arabirimdir. Çalışan tüm programların ve süreçlerin hafıza ile olan ilişkilerini düzenler. İşlemcinin gücünün tüm bu programlar arasında düzenli bir şekilde dağıtımını üzerine alır. Çekirdek kaynak dosyaları diskte çok yer tutar. Kullandığımız sisteme göre de çekirdeğin derlenme süresi değişkenlik gösterir. Çekirdek kaynak kodu tsk11.mit.edu adresinin yansısını tutan herhangi bir adresten alınabilir. Bu dizin altındaki Linux sürümlerinin bir tanesini seçtikten sonra altındaki dosya alınır. Dosyanın ismi linux-x.y.z.tar.gz yapısındadır. 5.6.1 Çekirdek Konfigürasyonu /usr/scr/linux dizini altındayken make config yazılır. Bu komut bir konfigürasyon dosyası yaratmak için bazı sorular sorar. Bu sorulara ‘y’ evet veya ‘h’ hayır ile cevap vermek gerekir. Bazı aygıt sürücülerde ‘m’ seçeneği de olabilir. Bunun anlamı sistem o programı modül olarak derleyecek ve çekirdeğe dahil etmeyecek demektir. Kullanıcı derleme aşamasından sonra istediği zaman bu modülü çekirdeğe dahil edebilir, işi bittikten sonra çıkarabilir. Bazı konfigürasyon parametreleri; Matematikçi İşlemci Emülasyonu : Kullanılan makinenin işlemcisi yardımcı matematik işlemcisine sahip değilse bu seçeneğe evet cevabı verilmelidir. Normal (MFM/RLL) disk ve IDE disk/cdrom desteği : Hemen herkesin kullandığı PC sabit diskleri standart olduğu için evet cevabı verilmelidir. Ağ desteği : Makine herhangi bir ağ üzerinde ise veya internete bağlanmak için SLIP,PPP gibi programlar kullanılmak isteniyorsa bu seçeneğe evet cevabı verilmelidir. Fakat ağ üzerinde bulunulmasa bile yeni uygulama programlarının ve paketlerin ağ desteğine ihtiyaç duyduğu düşünülürse bu seçeneğe evet cevabı vermek şarttır. En fazla 16 Mb hafıza: Bazı hatalı 386 DMA denetleyicileri hafızanın 16 Mb’tan yüksek bölümlerine ulaşamazlar. Eğer bu durum makinede varsa evet cevabı verilmelidir. Sistem V IPC: IPC desteği verir. Bazı Perl programları ve oyunlar bu seçenek olmadan çalışmazlar. İşlemci tipi: Çekirdek hangi makine için derleniyorsa onun tipi girilir. SCSI desteği: SCSI aygıtlarınız varsa bu seçeneğe evet cevabı verilir ve sonra SCSI aygıtlarından uygun olanlar seçilir. Ağ kartı desteği: Ağa bağlanmak için bir kart kullanılacaksa veya SLIP,PPP bağlantıları ya da paralel port üzerinden yapılacak her türlü işlemler için bu seçenek işaretlenmelidir. Sonra ekrana gelen kart tiplerinden uygun olanlar seçilir. Dosya sistemleri: Bazı dosya sistemlerinden kullanmak istenilenler seçilebilir. Bu dosya sistemleri minix, extended file system, second extended file system, xiafs, msdos, umsdos, proc, NFS, ISO9660, OS/2 HPFS, system V’ dir. Karakter aygıtlar: Yazıcı, fare, teyp yedekleme sürücüleri gibi karakter aygıtları(iletişimi karakter karakter sağlayan aygıtlar) için sürücüler eklenebilir. Ses kartı: Linux’un ses kapasitesi için bu destek eklenmelidir. Çekirdek işlemleri: Çekirdekten doğan hataların bulunmasını kolaylaştırmak için bu seçenek eklenmelidir. 5.6.2 Temizlik Fazla dosyaları temizlemek, gerekli olan dosyaların yerinde olup olmadığını kontrol etmek için sırasıyla; # make dep # make clean yazılmalıdır. Bunun ardından tüm nesne dosyaları ve eski sürümden kalan dosyalar silinecektir. Temizlik işleminden sonra # make zImage veya # make zdisk yazılmalıdır. Eğer kişisel bir bilgisayarda çalışıyorsanız, ilk seçenekte çekirdek derlenip /usr/src/linux/arch/i386/boot dizini altına zImage adıyla yerleştirilecektir. Buraya yerleştirilmeden önce yerden kazanmak için çekirdek sıkıştırılır. Diğer durumda ise yeni çekirdek sabit diskiniz yerine disket sürücüsüne yazılır. Disket üzerine yazmanın bir avantajı karalı olmayan ve sistemi açmayan çekirdek ile karşılaşılması halinde sistemi sabit disk üzerindeki eski çekirdekten açabilme imkanı bırakmasıdır. 5.6.3 Çekirdeğin Kurulması LILO, bilgisayarın açılışı anında çekirdek ile ilgili düzenlemeleri okur, buna göre hangi çekirdekten açması gerektiğini anlar. /etc/lilo.conf dosyasının içinde gerekli olan kurulum bilgileri vardır. image = /vmlinuz label = linux root = /dev/hdal other = /dev/hdal label = dos table = /dev/hda image= ifadesi kurulu olan çekirdeği ifade eder. label= bölümünde hangi işletim sistemi veya çekirdek sürümünün açılışta kullanılacağını yazar. Hemen altındaki root bölümünde ise label= kısmında seçilen işletim sisteminin hiyerarşik sırada en üst dizin yapısı yazılır. LILO programı çalıştırıldığında * karakteri çalıştırılacak ilk çekirdeği veya sistemi gösterir. # lilo Added linux * Added dos Yeni bir çekirdeği derledikten sonra LILO üzerinden ekleme yapmak ve açılış anında kullanmak için /etc/lilo.conf dosyasındaki image = /vmlinuz label = linux root = /dev/hdal satırlarının kopyasını çıkarıp image, label, root yerlerine sırasıyla yeni derlenen çekirdeğin sabit disk üzerindeki yeri, ismi ve Linux işletim sisteminin kök dizini yazılır. Açılış anında bekleme sağlamak ve seçim yapabilmek için konfigürasyon dosyasının başına delay=xxx eklenebilir. xxx sayısı, gecikme zamanı saniyenin onda biri olarak verilebilir. 5.6.4 Çekirdeğin Yamanması Çekirdeğin her yeni sürümüyle birlikte bir önceki sürümünün yaması da gelir. Yamayı uygulamak tüm çekirdeğin tekrar derlenmesinden daha iyidir. Yama önce /usr/src dizini içine kopyalanmalıdır. Bu dizin altında iken # zcat patch -2.0.11.gz | patch -p0 sıkıştırılmış değilse # patch -2.0.11 yazılır. Bu komutun ardından satırlar ekrandan hızla kaymaya başlayacak ve yama tamamlanmış olacaktır. Yamanın başarılı bir şekilde tamamlandığından emin olmak için /usr/src/linux dizini altında .rej uzantılı dosyalara bakılır. # find .-name’*.rej’ -print Bu komut .rej uzantılı dosyaları bulursa yama işlemi tamamlanamamış demektir. Yama işlemi tamamlandıktan sonra sırasıyla # make clean # make config # make dep komutları uygulanır. Patch komutunun aldığı bazı seçenekler vardır. Patch -s komutu ile oluşabilecek tüm hata mesajlarını ekrana yazar. Diğer yama seçenekleri komut satırına man patch yazarak görülebilir. Birkaç yamadan sonra .orig uzantılı dosyalar oluşmaya başlar. Bu dosyalar gereksizdir ve çok yer kapladıkları için silinmeleri gerekir. # find /usr/src/linux -name’*.orig’ -exec rm -f {} komutu ile bu .orig uzantılı dosyalar silinebilir. 5.6.5 Çıkabilecek Sorunlar Eğer bir çekirdek güncellemesinden sonra yeni çekirdek garip şeyler yapıyorsa yeni çekirdeği derlemeden önce make clean komutu kullanılmamıştır. Eğer çekirdek çok fazla hafıza harcıyorsa ayarlanmış bir çok gereksiz parça vardır. Çekirdeğin ne kadar yer kapladığı free komtuyla öğrenilebilir. Aynı şekilde bu değere dmesg komutu ile de ulaşılabilir. LILO’ yu çalıştırmak unutulmuşsa veya sistem hiç açılmıyorsa disketten açılış yapılır. Eğer eski çekirdek 1.2.X veya daha düşükse ve bu 2.0.X sürümüne yükseltilmek isteniyorsa, 2.0.X çekirdek kurulumunda getirilen bazı değişiklikler sorun çıkartabilir. /usr/src/linux/documantation/changes dosyasında yapılması gereken değişikliklerin bir listesi vardır. 5.7 Modüller Linux işletim sisteminin çekirdeğinin boyu genellikle 400-600 Kb arasındadır. Bazı çekirdeklerde bu sayı 800 Kb’a kadar çıkabilir. Çekirdeğin boyunun büyümesi sistemin performansını olumsuz yönde etkiler. Linux’a özgü özelliklerden birisi modüllerdir. Modüller sayesinde nadiren gerekli olan bir çekirdek parçası sadece gerektiği zaman çekirdeğe eklenir. Bir modül çekirdeğin derleme aşamasında M parametresiyle tanımlanır. Modüller arasında disket desteği, yazıcı desteği, minix dosya sistemi desteği veya SCSI aygıt sürücü desteği vardır. Bir modülü derledikten sonra o modüle ait dosya /lib/modules dizini altında yer alır. Burada istenilen bir modül # insmod modul-ismi komutuyla çekirdeğe eklenir ve # rmmod modul-ismi komutu ile hafızadan çıkarılır. Hafızadaki modüllerin bir listesini görmek için lsmod komutu kullanılır. Kerneld komutu arka planda çalışarak gerekli olan modülleri anında yükler. Belirli bir süre içinde kullanılmayan modülleri çekirdekten atar. 5.8 Yeni Yazılımların Yüklenmesi Sadece gereken zamanda gereken dosyalar makineye kurulmalı veya güncellenmelidir. Her çıkan yeni yazılım sisteme kurulmamalıdır. Bu işlem çekirdek için de geçerlidir. Linux’a çok önemli bir fonksiyon kazandırmayacaksa her an çekirdek derlemek hem zaman kaybı olur hem de derleme esnasında sistemi yavaşlatır. 5.9 Kaynak Kodun Derlenmesi Kurmak istenilen ve ftp adresinden getirilen dosya genellikle tar veya gzip ile sıkıştırılmıştır. Bu dosyanın sonu tar.gz, tgz veya tar.Z ile biter. Öncelikle yazılımın açıldığı zaman hangi dizine yerleştirileceği ayarlanır. Bu tar komutunun -t seçeneği ile kontrol edilir. Compress ve gzip ile sıkıştırılmış dosyalar için # tar -ztvf dosya.tar.gz komutu kullanılır. Yeni bir yazılımı denemek için arşiv genellikle /usr/src veya /usr/local/src dizininin altına kopyalanır ve burada konfigürasyon işlemleri uygulanır. Öncelikle Readme,Readme.linux veya Install dosyaları incelenmelidir. Bunlar sırasıyla bir kullanıcı olarak dosyaların nasıl kurulacağını anlatılmaktadır. Kurma aşamasında dikkat edilecek dosyalardan biri makefile dosyasıdır. Bu dosyanın içinde nadiren değişiklik yapmak gerekebilir. Diğer kontrol edilmesi gereken dosya ise config.h dosyasıdır. Bu da sistem gereksinimlerine göre değiştirilebilir. Varsa Makefile dosyasına göre yazılımı kurmak için make komutu kullanılır. Bu komut make all, make install gibi parametreler alabilir. Make all bulunan bütün yazılımları kurar. Make install ise bu yazılımı konfigürasyon dosyalarının gösterdiği dizinlere yerleştirir. Çoğu büyük paketler man dosyalarıyla birlikte gelirler. Bunları da diğer man dosyalarının yanına koymak için ayrı bir make install.man türü komut kullanmak gerekir. 5.10 Sistem Açılış Dosyaları Linux makinesi açılırken birçok dosya okur. Birkaç dakika içinde çekirdeği hafızaya yükler, belirli dizinlerin altındaki programları arka planda çalıştırır. Açık bir işletim sistemini diğerlerinden ayıran bir özellik kullanıcının büyük bir kolaylıkla konfigürasyon dosyalarını değiştirmesidir. Sistem açılış dosyalarında ( özellikle ağ temelli dosyalarda ) değişiklik yapabilmek için TCP/IP konusundaki basit temeller anlaşılmış olmalıdır. Açılış dosyalarında tek bir kullanıcı için veya sistemde hesabı olan herkese yönelik olarak değişiklik yapmak mümkündür. Pek çok kullanıcı bu açılış dosyalarıyla oynayarak Linux’u yakından öğrenir. İnternet servisi veren bir makine bu servisini daemonlar aracılığıyla yapar. Bir daemon her makine tarafından bilinen bir port numarasını açar ve dinlemeye başlar. Eğer sorumlu olduğu port adresine istek gelirse bu isteğe cevap vererek servise başlar. 5.10.1 inetd ve /etc/inetd.conf inetd en önemli internet servislerindendir. Bu program sistem açılırken arka planda çalışmaya bırakılır. İnetd’nin görevi belirli portları dinleyerek bu portlara yapılan bağlantıları denetlemektir. Bir bağlantı yapıldığı anda inetd bu portla ilgilenecek olan programı çalıştırır. İnetd’nin kullandığı konfigürasyon dosyası /etc/inetd.conf’dur. /etc altında bir konfigürasyon dosyasını değiştirmek için o dosyayı okuyan ve arka planda çalışıyor durumda bulunan süreçlerin haberdar olması gerekir. Çünkü bu dizindeki bazı dosyalar açılışta okunur. inetd, inetd.conf dosyasını açılışta okur. Değişiklik yaptıktan sonra inetd’nin bu değişiklikten haberinin olması için bu sürecin PID numarası ps -aux komutu ile elde edilir. # kill -HUP PID-inetd yerine elde edilen süreç numarası girilir. Bu sayede inetd kendisine ait olan inetd.conf dosyasını tekrar okuyacak ve değişiklikler işleme konacaktır. Her bilgisayar tarafından bilinen servislerin isimleri ve hangi portları kullandıkları /etc/services dosyasında tutulur. 5.10.2 syslogd ve /etc/syslog.conf syslogd programı Linux’taki çeşitli olayların kayıtlarını tutar. Bunlar genellikle hata mesajları veya çekirdek mesajları gibi kayıtlardır. Syslogd sistem açılırken arka planda işlemeye bırakılır. /etc/syslog.conf syslogd programının konfigürasyonu için kullanılır. Normal olarak sistem kayıtları /usr/adm/messages dosyasının sonuna eklenir. Syslod.conf dosyasında, en solda yer alan ve nokta ile ayrılmış olan iki kelimeden ilki kaydı yapılan program grubudur. Bu kısma kern ( çekirdek mesajları ), mail ( sendmail mesajları ), login ( sisteme giriş veya çıkış mesajları ), cron ( cron mesajları ), lpr ( yazıcı mesajları ), auth, authpriv veya security ( güvenlik mesajları ), news ( haber grubu mesajları ), daemon ( daemonlardan gelen mesajlar ), user ( kullanıcı mesajları ), uucp ( uucp mesajları ) yazılabilir. Noktanın sağındaki kelime ise kaydı yapılan program grubunun mesaj önem sırasını belirler. Bu kısımda önem sırasına göre debug, info, notice, warning, err, crit, alert ve emerg bulunur. Dosyanın sağında yer alan kısımda ise bu mesajların hangi dosyaya yazılacağı vardır. Başka bir makineye kayıt tutturmak da mümkündür. Uzak makinenin ismi syslog.conf dosyasının sağ bölümüne yazılır. Bazı kritik ve sistemin düzgün çalışmadığını haber veren mesajlar konsola yönlendirilmelidir. kern.crit /dev/console Sisteme bağlanmış olan kullanıcılar hakkında bilgiyi /var/adm/wtmp dosyası tutar. Bu dosya ASCII olmadığından doğrudan okunamaz, last komutu ile içeriği incelenebilir. 5.10.3 init ve /etc/inittab init sistemde ilk çalışan programdır. İnit sayesinde açılış anında hangi programların çalışacağı belirlenir. Bu programları da /etc/inittab dosyasından öğrenir. Bir Linux makinesinin birkaç tane çalışma düzeni vardır. Bunlardan birkaçı 3 ( çok kullanıcılı konum ), 1 ( tek kullanıcılı konum ) ve 4 ( X Window konumu ) ‘ dur. Her konum, bir sayı veya bu sayılara karşılık gelen tek harften oluşur. Bir konum altında çalışırken diğerine geçebilmek için init veya telinit komutu kullanılır. /etc/inittab’ da yer alan dosya isimleri değiştirilebilir veya kullanıcının isteği doğrultusunda her çalışma modu için farklı dosyalar çalıştırılabilir. İnit komutundan sonra açmak istenilen çalışma düzenine ait olan sayı yazılmalıdır. Örneğin init 0 komutu sistemi kapatır. /etc/inittab dosyasında yapılacak her değişikliğin ardından # init q komutu verilerek init programının inittab dosyasını tekrar okuyup değişikliklerden haberdar olması sağlanmalıdır. O an sistemin hangi konumda çalıştığını bulmak için runlevel komutu kullanılabilir. Örneğin; $ runlevel N 3 5.11. Çekirdek Mesajları Çekirdek, hafızaya yüklenip çalıştırıldıktan sonra kendisi ve sistemdeki donanım hakkındaki her türlü bilgiyi ekrana yazar. Mesajda swap alanı belirlenmesi, sabit diskin tanınması, aygıt sürücülerinin ve ethernet kartının tanınması, disketin tanınması, ekranın özellikleri gibi bilgiler vardır. Bu bilgilere sistem açıldıktan sonra /var/adm/messages dosyasından erişilebilir. 5.12. Linux Dosya Sistemi Yapısı Bir işletim sisteminin dosya sisteminin performansı, hızı ve buna benzer özellikleri sistemin verimli ve kararlı çalışması üzerinde doğrudan etkilidir. Linux dizin yapısında bazı dizinlerin işlevi birbiriyle aynıdır. Bu durum, özellikle birbirini takip eden iki Linux sürümünde belirginleşir. Dosya sistemleri ve dizinler paylaşımlı olarak da kullanılabilir. Kök dizini, kendisine bağlı diğer tüm dizinleri de içerdiğinden Linux dosya sisteminde önemli bir yere sahiptir. Linux açılırken önce kök dizini /etc/fstab dosyasına uygun şekilde bağlanır. Diğer dosya sistemlerinin onarımı ve kontrolü için gerekli olan fsck programları bu dizinde bulunmalıdır. Benzer şekilde yedekleme için gerekli olan tar, zip, compress gibi arşiv programlarına da kök dizini altından erişebilmeli, açılış esnasında hafızaya yüklenen çekirdek de kök dizininde yer almalıdır. Kök dizini başlangıçta küçük tutulmalı ve geliştirilen programlar daha önceden belirlenen başka bir dosya sistemi altına koyulmalıdır. Sistemdeki önemli dizinler; /bin : Sistemin açılışı ve kontrolü için gerekli komutlar, hem kullanıcının hem de sistem görevlisinin kullanabileceği dosyalar yer alır. Bu dizinde bulunan dosyalara örnek olarak date, chown, cat, mkdir, mount, ps, rm, sh, su dd, df, ln, chgrp verilebilir. /dev : G/Ç dosyaları yer alır. Linux çekirdeğinde desteklenen her aygıta ait dosya /dev dizini altında bulunur. Kurulum anında bu dosyalar yerine yerleştirilir. Bu dosyaların silinmesi halinde /dev/makedev ile tekrar yaratılabilir. /etc : Sistem konfigürasyon dosyaları yer alır. Bu dizin içinde çalıştırılabilir dosyalar bulunmamalıdır. skel: Buradaki dosyalar kullanıcı hesabı açıldığında kullanıcının home dizinine kopyalanır. rc.d: Bu dizinin içinde init sürecinin başvurduğu konfigürasyon dosyaları vardır. passwd: Kullanıcı şifre veritabanıdır. fstab: Linux’un açılışı esnasında yüklenecek dosya sistemleri burada listelenir. group: Kullanıcıların gruplarını tutar. inittab: init daemon için konfigürasyon dosyasıdır. issue: Kullanıcı sisteme girmeden hemen önce ekranına yazılması istenen mesaj burada tutulur. motd: Kullanıcı sisteme girdiği zaman ekranına yazılması istenen mesaj burada tutulur. profile: Kullanıcı sisteme girdiği zaman çalıştırılan dosyadır. ( csh ve sh türü kabuklar için ) shells: Sistemde kullanılabilecek kabuk isimleri burada tutulur. login.access: login komutu için konfigürasyon komutudur. Sisteme girişi kullanıcı bazında sınırlamak için kullanılır. shadow: Kullanıcı şifrelerinin şifrelenmiş halidir. /home : Kullanıcılara ayrılmış dizindir. Başka şekilde ayarlanmamış ise açılan her hesaba ait kullanıcı burayı kullanır. /lib : Kütüphane dosyaları yer alır. /mnt : Geçici mount edilen dosya sistemleri yer alır. /proc : Süreç kontrollerini ve diğer sistem bilgilerini tutan dosya sistemi yer alır. Bu dosya sistemi disk üzerinde yer kaplamaz. Tüm dosyalar çekirdeğin bir uzantısı sayılır. cpuinfo: İşlemci modeli, tipi ve performansını bildirir. devices: Çalışan çekirdek içinde desteği bulunan aygıt sürücülerini listeler. dma: Hangi dma kanallarının kullanıldığını belirtir. filesystems: Çalışan çekirdek içinde desteği bulunan dosya sistemlerini listeler. interrupts: Hangi kesintilerin kullanımda olduğunu belirtir. iports: Hangi G/Ç portlarının kullanıldığını belirtir. kcore: Sistem hafızasının görüntüsünü verir. /root : Sistem görevlisinin home dizinidir. /sbin : Sistem komutları yer alır. Sadece sistem görevlisinin ihtiyacı olan komutlar /sbin veya /usr/sbin dizinlerinin içinde bulunur. /tmp : Geçici dosyaların koyulduğu dizindir. Belirli zaman aralıklarında temizlenmelidir. /usr : Diğer önemli sistem dosyalarını tutar. Bu bölüm genelde en kalabalık dizindir. Yeni kurulan tüm programlar buraya koyulur. X11R6: X Window sistemi bilgileri tutulur. doc: Belge ve dökümanlar tutulur. ( Genellikle HOWTO ve FAQ dosyaları. ) lib: Bazı kütüphaneler tutulur. man: Man dosyaları tutulur. src: Bazı kaynak dosyaları ve Linux çekirdeğini oluşturan kodları tutan dizindir. sbin: Kök dosya sisteminde yer alması gerekmeyen çalıştırılabilir sistem görevlisi dosyaları tutulur. /var: Sürekli değişen sistem bilgileri tutulur. adm: Sistem yönetimini ilgilendiren kayıtlar tutulur. preserve: Sistemin göçmesinden sonra zarar görmesi mümkün dosyalar tutulur. spool: Daha sonra işlenecek veriler burada tutulur. Sistem yöneticisi dosya ve dizin yapısını düzenli olarak kontrol etmelidir. Unix ve Linux iki tür aygıt tanır. Bunlardan biri karakter aygıtları ( veri alışverişini bayt bazında yapan aygıtlar ), diğeri ise blok aygıtları (veri alışverişini blok cinsinden yapan aygıtlar ) dır. Karakter aygıtlarına örnek seri bağlanan aygıtlar ve teypler, blok aygıtlarına ise diskler verilebilir. Bu cihazlardan bir bilgi yazılıp okunduğunda dosya sistemi altında bunları tanımlayan dosyalar kullanılmış olur. Her aygıt bir dosya olarak dosya sisteminde yer bulduğuna göre hangi aygıt dosyalarının bulunduğu öğrenilebilir. $ ls -l /dev/cua0 crw-rw-rw- 1 root uucp 5,64 may 13 1997 /dev/cua0 İlk karakter (c) bu dosyanın bir karakter aygıtına ait olduğunu gösterir. Normal dosyalar için bu karakter ‘-‘ , blok aygıtlar içinse ‘b’ olmalıdır. Aygıt sürücü desteği çekirdekte olmasa bile /dev dizini altında tüm aygıt dosyaları bulunur. Tüm aygıt sürücülerinin bulunması programların kurulumunu ve yeni donanımların eklenmesini kolaylaştırır. 5.13. LILO Yapılandırması LILO öncelikli yükleyici olarak diskteki diğer işletim sistemlerinin açılışında kullanılabilir. LILO’yu değiştirmek için /etc/lilo.conf dosyası üzerinde değişiklikler yapılmalıdır./etc/lilo.conf dosyası üzerinde değişiklik yapabilmek için metin editörlerden pico kullanılabilir. /etc/lilo.conf dosyasında gerekli değişiklikler yapıldıktan sonra /sbin/lilo programı root yetkisiyle çalıştırılmalıdır. Sistem sabit diskten tekrar açıldığında LILO /etc/lilo.conf dosyasındaki ilk işletim sistemini yükleyecektir. Eğer makine başka bir sistemle başlatılmak isteniyorsa ekrana ön yükleme menüsü getirilmelidir. Bunun içinde makine açılırken shift veya kontrol tuşlarına basılmalıdır. Bu yapılanların normalde düzgün bir kurulumdan sonra yapılmasına gerek yoktur. Ama eğer Linux yüklü bir makineye Windows kurulacaksa /etc/lilo.conf dosyasında gerekli değişiklikler yapılmalıdır. 5.14 X Window İle Konsolda Türkçe Yazmak Bunun için standart olmayan karakterlerin ( Türkçe karakterler ) ekranda görüntülenebilmesi ve bilgisayara standart dışı bir klavye olduğunun belirtilmesi gerekir. Türkçe yazabilme sorunuyla her işletim sisteminde karşılaşılır. Linux altında Türkçe desteğini sağlamak için birkaç işlem yapılmalıdır. Bu işlemlerin başında Linux’a Türkçe destekli klavye ve font tanıtmak gelir. Yapılması gereken işlemler; - Bir metin düzenleyicisinde /etc/X11/XF86Config dosyası açılır. ‘FontPath’ satırının hemen üzerine aşağıdaki satırlar eklenir. FontPath “/usr/share/fonts/ISO8859-9/100dpi:unscaled” FontPath “/usr/share/fonts/ISO8859-9/75dpi:unscaled” FontPath “/usr/share/fonts/ISO8859-9/misc:unscaled” FontPath “/usr/share/fonts/ISO8859-9/100dpi” FontPath “/usr/share/fonts/ISO8859-9/75dpi” FontPath “/usr/share/fonts/ISO8859-9/misc” - X Window’a girilir. Eğer KDE kullanılıyorsa kvt altında Türkçe karakterleri görmek için bir terminal açılır. Terminal içinden Options menüsü seçilir. Font ‘ISO-8859-9’ olarak değiştirilir. - Türkçe klavye haritasını yüklemek için kvt’den çıkılır ve Q Türkçe klavye için aşağıdaki komut yazılır. xmodmap /usr/x11r6/lib/x11/etc/xmodmap.trq 5.15 Belirli Zamanlarda Komut İşletilmesi crontab dosyası yardımıyla sistem üzerinde olunmadığı zamanlarda belirli işler yapılabilir. crontab dosyası /etc dizini altında yer alır. Bu dosyada 6 alan bulunur. Bunlardan ilk beşi komutun ne zaman işleneceğini gösterir. Son alan ise çalıştırılacak olan komuttur. Zamanı belirten sütunlardan ilki dakikayı ( 0-59 arası ), ikincisi saati ( 0-23 arası ), üçüncüsü günü ( 0-31 arası ), dördüncüsü ayı ( 1-12 arası ), beşincisi ise haftanın gününü ( 0 Pazar olmak üzere 0-6 arası ) gösterir. Eğer bir zaman alanına * girilirse bu her zaman anlamına gelir. 15 08 * * * updatedb Bununla her gün saat 8:15’te updatedb programı çalıştırılır. 0 1 9,19,29 * * find /tmp -atime 3 -exec rm -rf {}*; Bu örnekte ise her ayın 9,19,29’unu gösterir. Aynı alanda birden fazla sayı kullanılacaksa arada boşluk bırakılmamaya dikkat edilmelidir. Bu girdileri bir crontab dosyasına yazmak için sisteme root olarak girilir ve # crontab -e yazılır. Ekrana bilgisayar ilk kurulduğu andaki ön tanımlı crontab satırları gelir. Buraya istenilen kadar crontab girdisi girilebilir. crontab dosyasının işletilmesinden crond sorumludur. Sistem açılırken /etc/rc.d dizini içindeki dosyalardan biri crond programını çalıştırır ve o andan itibaren crontab -e komutuyla yaratılan dosyadaki emirler zamanı geldikçe işletilir. 5.16 Yazıcı Eklenmesi Linux geniş bir paralel yazıcı desteği sunar. Linux ile sadece makineye bağlı yazıcıya değil ağ üzerindeki herhangi bir yazıcıya da erişilebilir. 5.16.1 Yazıcının Bulunması Sistem açılırken ekrana gelen mesajlar dmesg komutuyla tekrar ekrana getirilir. # dmesg | grep lp lp0 at 0x0380,(polling) böyle bir satırla karşılaşırsa Linux yazıcıyı tanımış demektir. Bu mesaj /dev/lp0 düğümünde bir yazıcı olduğunu gösterir. 5.16.2 Yazıcının Tanınması Yazıcıların ayarlanması printtool komutu ile sağlanır. # printtool Ekrana printtool’un ana ekranı gelir. Buradan Add butonu ile yazıcı tanımlaması yapılır. Gelen pencerede uygun olan seçenek seçilir: Local printer:Bulunulan makineye bağlı yerel yazıcı. Remote Unix (lpd) Queue: Ağ üzerinde bir başka makineye bağlı yazıcı. Lan Manager Printer (SMB): SMB protokolünü kullanan Lan Manager yazıcısı. Netware Printer (NCP): Bir Novell Netware sistem üzerindeki yazıcı. Yerel bir yazıcının tanıtımı için; Printtool bağlı olan yazıcıyı otomatik olarak bulur. Bu pencerede OK butonuna basıldıktan sonra yazıcı adı ve diğer ek bilgilerin bulunduğu bir pencere gelir. Burada sadece yazıcı adı değiştirilir ve yazıcı tipi için ‘select ‘ butonuna basılır. Yazıcı tipi seçilir ve isteğe bağlı olarak Resolution ve Paper Size değişkenleri değiştirilir. Yazıcının özelliklerini veren pencerede Ok’lenip geçilir. Yazıcıdan bir test sayfası çıkışı için menüden Tests seçilir. Yazıcı sorunsuz çalışıyorsa printtool programından çıkılabilir. 5.16.3 Yazıcıdan Çıktı Alınması Linux altında yazıcı sistemini lpq programı kontrol eder. bu program arka planda sürekli çalışır. Bir programın ya da komut satırının yazıcı isteğini karşılar. Linux’ta belgelerin lpr komutu yardımıyla çıktısı alınabilir. # lpr -plp belge.txt -p parametresi yazıcının adını belirtir. Linux’ta lpr yardımıyla hem metin dosyaları hem de Postscript yazıcıya gönderilebilir. 5.16.4 Yazıcı Kuyruğunun Gösterilmesi Linux çok kullanıcılı bir işletim sistemi olduğu için bir yazıcıyı birden fazla kullanıcı kullanıyor olabilir. Sırada bekleyen yazıcı işlemleri lpq komutu ile görülür. # lpq -plp 5.16.5 Yazıcı İşlemlerinin Durdurulması Yazıcı işlerinin durdurulması için lpq komutunun çıktısında yer alan job numarasına ihtiyaç vardır. Lprm komutu ile yazıcıya gönderilen bir belgenin çıktısının alınması işi durdurulabilir. # lprm 13 5.17 Zaman Ayarlarının Yapılması Sistem zaman ayarı timetool programı yardımıyla yapılır. # timetool Gelen pencerede saat istenilen bir zamana ayarlanıp ‘ Set System Clock ‘ tuşuna basılır. Eğer saatin değişmesi istenmiyorsa ‘Exit Time Machine’ tuşuna basılır. 5.18 Ses Kartı Linux pek çok ses kartını tanıyabilen bir yapıya sahiptir. 5.18.1 Ses Kartı Ayarlarının Yapılması Ses kartı ayarlarının yapılması için sndconfig programı kullanılır. Bu program sistemde bulunan kartı tanıyacak ve gerekli modülleri yükleyecektir. Sndconfig programını çalıştırmak için sisteme root olarak girilmelidir. # sndconfig program bir süre sonra ses kartını tanıdığına dair bir mesaj verir ve örnek bir ses çıkarır. Eğer kart otomatik olarak tanınmazsa gelen pencereden kartın modeli ve ardından kartın I/O numarası ile DMA ve IRQ gibi bilgiler seçilir. 6. BASH KABUĞU Unix için geliştirilen en önemli ve en çok kullanılan kabukların başında tcsh, bash ve ksh gelir. Bash Bourne Shell’in biraz daha geliştirilmiş sürümüdür. Tcsh ise C-Shell üzerine eklenen yeniliklerle genişletilmiştir. Linux işletim sistemi için de derlenen bash ise hem tcsh hem de ksh’dan özellikler taşır. Tüm bu kabuklar kullanıcının hizmetine sunulmuş olup bash kabuğu sistem ilk açıldığında tanımlıdır. Kullanıcı sisteme girdiği zaman bu kabuk aktif olur, bundan sonra kullanıcı herhangi bir kabuk altında çalışmalarına devam edebilir. Bunun için sadece çalışmak istediği kabuğun adını komut satırına yazması yeterlidir. 6.1 Bash Özellikleri Bash’ın kullanıcıya zaman kazandıran en önemli özelliklerinden birisi dosya isimlerini tamamlamasıdır. Komut satırında tamamlanmamış bir komut veya dosya ismi yazdıktan sonra Tab tuşuna basılırsa satır tamamlanır. Eğer komut satırındaki karakter kümesiyle başlayan birden fazla komut varsa bir sinyal sesi duyulur ve bilgisayar yeterince karakter yazılmasını bekler. Bash komut satırında iken satırın kolayca değiştirilebilmesini sağlar. Böylece komut çalıştırılmadan önce birkaç tuşa basarak üzerinde değişiklik yapılabilir. Klavye üzerindeki alt ve üst yön tuşları daha önce yazılan komutları görmeyi ve arasında seçim yapmayı sağlar. Böyle seçilen komut üzerinde değişiklik yapılabilir. 6.2 Takma Adlar ( Alias ) alias komutu ile bir komut veya komut kümesinin yerine bir isim kullanılabilir. İşleyişi bir makroya benzeyen bu komut yardımıyla uzun komutlar daha kısa komutlarla tanımlanabilir. Bir alias komutu anahtar kelimeyle başlar, ardından ‘=’ konur ve yerine kullanılacak komut yazılır. Arada boşluk bırakılmaz. $ alias dir=’ls -l’ $ dir Bir takma ismin tanımı unalias komutu ile kaldırılabilir. 6.3 Özel Kabuk Tanımları Tanımlamalar set komutu yardımıyla yapılır. Tüm tanımlar küçük harfle yazılır. Bu özellikleri yardımıyla tanımlar değişkenlerden ayrılırlar. $ set -o tanım $ set +o tanım Yukarıdaki komutlardan ilki tanımı işletir, diğeri ise tanımı kaldırır. Noclobber: Bu tanımın seçilmesinden sonra bir komutun çıktısı bir dosyaya gönderildiğinde dosyanın eski içeriği aynı kalır. Ignoreeof: Kabuktan yanlışlıkla kontrol-d tuş takımı ile çıkılmasını engeller. Env komutu ile sistemde ön tanımı yapılan veya sonradan tanımlanan tüm değişkenler ekrana listelenir. Sisteme girildiği anda tanımlanan bazı komutlar; HISTFILE : Tüm yazılan komutlar .bash_history adlı dosya içinde tutulur. Her kullanıcının kendi home dizini içinde kullanıcıya özgü bu dosyadan vardır. $HISTFILE değişkeni ile dosyanın ismi değiştirilebilir. PATH: PATH değişkeninde bir komut yazıldığı anda sistem tarafından aranacak olan yolların listesini verir. PATH değişkeninde her dizin ‘:’ ile birbirinden ayrılır. Kullanıcı PATH değişkenine yeni girdiler ekleyebilir. SHELL: O an kullanılan kabuğun yolu ismini verir. Kabuk programları genellikle /bin dizini altında tutulur. Her kabuğun yol ismi sistemdeki /etc/shells dosyasında bulunur. HOME: Kullanıcının home dizinini gösteren yolu ekranda gösterir. Her kullanıcının home dizini sistemde hesap açılırken sistem görevlisi tarafından belirlenir. LOGNAME: Sistemdeki kullanıcı hesabının ismini tutar. TERM: Kullanıcının halen üzerinde çalıştığı terminali gösterir. PS1 ve PS2: Ekranda komut satırının başına gelecek olan karakterleri belirler. PS1 birinci satırın karakterlerini tutarken PS2 ise birinci satıra sığmayan komutlar bir alt satıra geçtiğindeki karakterleri tutar. Bu karakterler ön tanımlı olarak $ işaretidir. Önceden tanımlanan kodlar yardımıyla komut satırı değiştirilebilir. Her kodun başında karakteri vardır. Sıkça kullanılan kodların listesi; t : saat, d : tarih, s : kabuk ismi, w : çalışma dizini, u : kullanıcı ismi, h : makine ismi şeklindedir. EDITOR: Ön tanımlı metin düzenleyicidir. HISTSIZE: .bash_history dosyasındaki satır sayısını verir. HOSTTYPE: Sistem mimarisini verir. 6.4 Sisteme Giriş Dosyaları Sisteme girerken her giriş anında çalıştırılan dosyalar vardır. Bash kabuğu ile ilgili olan dosyalar ; /etc/profile ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc ‘ dır. Kullanıcı bu dosyaların kendisine ait olanlarını istediği gibi değiştirebilir. /etc/profile dosyasını tüm kullanıcılar kullanır. Her kullanıcı sisteme girdiğinde sistem tarafından bu dosya çalıştırılır. Bu dosyada kullanıcıların ihtiyacına yönelik özel sistem değişkenleri bulunur ve birtakım kontrol ve kayıt işlemleri yapılır. .bashrc dosyası her bash kabuğu veya alt kabuk çalıştırıldığı anda okunur. her kabuk programı çalıştırılınca bir alt kabuğa ihtiyaç olduğunda bu durumda .bashrc dosyası da okunacak ve içerdiği değişkenler program çalışmadan önce tanımlanacaktır. Sistemden çıkarken varsa çalıştırılan dosyanın ismi .bash_logout ‘ tur. Bu dosya ile kullanıcı sistemden çıkarken fazladan işlemler yapabilir. 6.5 Kabuk Programlamaya Giriş Her kabuğun kendine özgü programlama dili yapısı vardır. Bash kabuğu ise güçlü programlama özellikleriyle karışık programların rahatça yazılmasını sağlar. Mantıksal operatörler, döngüler, değişkenler ve daha birçok özellik bash kabuğunda da vardır ve işleyişi neredeyse aynıdır. Genellikle bir programı oluşturacak olan komutlar bir dosyaya yazılırlar ve ardından bu dosya çalıştırılır. Herhangi bir editörde yazılan program daha sonra kabuk altında çalıştırılır. Bir kabuk programı diğerlerini de çalıştırabilir. 6.5.1 Kabuk Programları Kabuk programları bir veya birden fazla linux komutunu tutan dosyalardır. Bu dosya yaratıldıktan sonra doğrudan ismi girilerek veya dosya isminden önce ‘.’ karakteri getirerek çalıştırılır. Bir kabuk programı çalıştırma bitinin 1 yapılmasıyla çalıştırılabilir hale getirilir. $ chmod +x komut-ismi şeklinde de bir programı çalıştırılabilir yapabiliriz. Daha sonra programın ismi yazılarak program bir linux komutuymuş gibi çalışır. Kabuk programları yazarken dosyanın işlevini ve her satırdaki komutların ne amaçla kullanıldığını gösteren açıklama satırları kullanılabilir. Bir açıklama eklemek için satır başına veya boş bir satıra # işareti eklenir ve ardından açıklama cümlesi yazılır. Bir kabuk altında çalışırken başka bir kabuk için yazılmış bir programı çalıştırmak mümkündür. Örneğin tcsh altında çalışırken bash kullanılarak yazılmış bir program çalıştırılmak istenebilir. Bunun için programın en başına #! karakteri ve ardından programın çalışacağı kabuğun yolu yazılır. 6.5.2 Değişkenlerin Kullanımı Bir değişkene değer atandığı anda sistem tarafından tanınır. Değişkenler alfabetik veya nümerik karakterlerden oluşabilir. Ama bir değişken sayısal bir karakter ile başlayamaz. Bir değişkene değer ataması ‘=’ ile yapılır. İçeriği olan bir değişkene başına ‘$’ işareti koyularak ulaşılır. $ mesaj=” Ders çalışmalısın!!” $ echo artık $mesaj artık ders çalışmalısın!! 6.5.3 Giriş/Çıkış İşlemleri Bir kabuk programı çalışırken kullanıcının klavye ile bilgi girmesi sağlanabilir. Bu tür işlemler için tanımlanan read komutu klavyeyi okur ve bu bilgiyi bir değişkene atar. $ echo Bir sayi giriniz: $ read b $ echo Girilen sayi : $b 6.5.4 Aritmetik İşlemler Bash kabuğunda aritmetiksel işlemlere büyük sınırlamalar getirilmiştir. Tamsayı değişkeni dışında matematiksel değişken kullanmak için bu işlemler için geliştirilmiş awk ve bc kullanılabilir. Aritmetiksel işlemler için eval komutu veya bash kabuğu altında yerleşik komut olan let komutu kullanılabilir. Aritmetik değişken tanımlamanın bir diğer yolu da typeset komutudur. $ typeset -i cevap $ e=10 ; y=12 $ cevap=e*y $ echo $cevap 120 6.5.5 if-else Kalıbı ve Kontrol İşlemleri Hemen her programlama dilinde olan if kalıbı bir Linux komutunun çalışmasını kontrol eder. if komutu yerleşik bir komuttur ve her if komutu bir fi komutuyla biter. İf komutunun ardından gelen Linux komutu çalıştırılır ve komutun çıkış durumu göz önüne alınarak ardından gelen then deyimiyle birlikte devamı işletilir. Genellikle komutun iki türlü çıkış durumu olacağından else komutunun ardından gelen komut zinciri diğer çıkış durumunda çalıştırılır. if Linux komutu then komut1 komut2 .... else komut1 komut2 .... fi if komutu genellikle kendine test komutu ile kullanım bulur. Bu komut yardımıyla mantıksal işlemler yapılabilir, sayılar ve diziler karşılaştırılabilir. Anahtar sözcük olan test’ten sonra opsiyonlar veya karşılaştırılacak olan değerler yazılır. Her opsiyon bir mantıksal işleme karşılık gelir. Komutun işletilmesinden sonra kabuğa bir değer döner. Bu değer komut başarılı olmuşsa 0, başarılı değilse 1’dir. Son çalıştırılan tüm Linux komutlarının çıkış değeri $? değişkeninde tutulur. Test komutunun çıkış değeri bu yolla öğrenilebilir. $ e=8 $ test $e -eq 4 $ echo $! 1 Test komutu yerine [] ‘de kullanılabilir. Kullanırken araya boşluk konulmamalıdır. Ama parantezler komut olarak algılandıkları için sağına ve soluna bir boşluk konulmalıdır. $ [$e -eq 4] Aritmetik Karşılaştırmalar Dizisel Karşılaştırma -gt büyük -z boş dizi -lt küçük -n tanımlı dizi -ge büyük eşit = eşit diziler -le küçük eşit != farklı diziler -eq eşit -ne eşit değil Dosya Karşılaştırması Mantıksal Karşılaştırma -f dosya var -a ve -s dosya boş değil -o veya -r dosya okunabilir ! değil -w dosya yazılabilir -x dosya çalıştırılabilir -h sembolik bağlantı -c karakter aygıt -b blok aygıt #!/bin/bash echo “0 ile 20 arasında bir sayı giriniz:” read sayi if [ $sayi -gt 10 ] then echo “Sayı çift basamaklıdır. else echo “Sayı tek basamaklıdır.” fi 6.5.6 case Kalıbı Birkaç alternatif arasından seçim yapmak için kullanılan bir komut olan case bir eşleştirme gördüğü anda belirli bir komut kümesini işleme sokar. Case yapısı case komutu ile başlar, eşleştirilecek olan anahtar sözcük yazılır ve seçenekler alt alta her seçeneğe ait komut ile birlikte yazılır. Tüm yapı esac komutu ile biter. Case anahtar-sözcük in seçenek1) komutlar ;; seçenek 2) komutlar ;; *) komutlar ;; esac Seçenekler arsında özel karakterler kullanılabilir. Hiçbir eşleme yapılmadığı zaman *) seçeneği değerlendirilir ve buna ait olan komutlar işletilir. * kullanımı isteğe bağlıdır. #!/bin/bash echo “1- Ekranı Temizle” echo “2- Sistemdekileri Göster” echo -n “Bir seçim yapınız:” read secim case $secim in 1) clear ;; 2) w ;; *) echo “Hatalı seçim yaptınız!” esac 6.6 Döngüler Diğer hemen tüm programlama dillerinin en büyük gücü olan döngülere kabuk altında da izin veriliyor. 6.6.1 While-do Döngüsü Döngü bloğu while anahtar kelimesiyle başlar, ardından gelen koşul sağlandığı süre boyunca devam eder. önce koşulun sağlanıp sağlanmadığına bakılır. Döngüden çıkabilmek için mutlaka döngü içindeki koşul ifadesinin değerini yanlış yapacak bir durum oluşmalıdır. while koşul-ifadesi do komutlar done (( )) karakterleri arasına matematiksel bir işlem getirilebilir. Bu sadece bash kabuğunda olan bir özelliktir. #!/bin/bash say=0 while [ $say -lt 10] do say=$((say+1)) echo $say done 6.6.2 for-do Döngüsü Bir liste dahilindeki tüm değerlere sırayla erişimi sağlar. For komutundan sonra yer alan liste sırayla kullanılır ve her birisi için döngü çalıştırılır. Listenin sonuna gelindiğinde ise döngüden çıkılır. for degisken1 in deger1 deger2... for meyve in seftali elma do do komutlar echo $meyve done done for-do döngüsü dosya isimleri üzerinde yapılan işlemlerde de kolaylık sağlar. Bunun için özel karakterlerden de yararlanılır. for s in *.pl ; do file $s done 6.7 Örnek Kabuk Programı Sistem görevlisinin en çok kullandığı komutlardan birisi ps-aux | grep -i xxx komutudur. Bu komut ile çalışan xxx isimli program hakkında detaylı bilgi elde edilir. Ps komutu detaylı bir süreç listesini ekrana verirken çıktı grep komutuna yönlendirilir ve sadece istediğimiz bilgi ekranda görünür. Her zaman bu satırı yazmaktansa bu satırı bir dosyaya gönderip bu dosya adı ile çalıştırmak daha kolay olacaktır. #!/bin/bash if [ $#=1 ] then ps-aux | grep -i $1 else ps-ax fi Ardından dosya PATH değişkeninin işaret ettiği dizinlerden /usr/local/bin dizininin altına yerleştirilir. Dosyanın çalıştırılabilir olması için chmod +x /usr/local/bin/t komutu uygulanır. Grep komutu bir dosyadaki veya standart girişteki satırlar içinden belirli bir kelime, harf veya harf grubunu bulmaya yarar. $ w | grep demir Bu komut ile sistemde demir isimli kullanıcı olup olmadığına bakılır. Örneğin ilk satırı bu dosyanın /bin/bash programı tarafından çalıştırılacağını gösterir. İkinci satırda ise komut satırı üzerinde kaç tane opsiyon olduğunu gösterir. $# çevresel değişkeni her biri Tab veya boşluk tuşu ile ayrılmış komut satırı opsiyonlarını verir. Komut satırından çalıştırılan komut ise $0 değişkenine aktarılır. 6.8 Kabuk Fonksiyonları Diğer programlama dillerindeki gibi bir program parçacığı birden fazla yerde parametre vererek kullanılmak istendiğinde fonksiyonlar kullanılır. 6.8.1 Örnek Bir Fonksiyon #!/bin/bash deneme(){ case $1 in ‘ ‘ ) echo “$0: Kullanım: deneme sayı” exit;; ‘1000’) echo “1000 rakamı giremezsiniz!!” exit;; esac echo “ $1 sayısını girdiniz!” } echo “Bir sayı giriniz:” read sayi deneme $sayi 7. SED VE VI 7.1 SED ( Stream Editor ) Sed bir dosyadan veya standart girdiden (klavye) bilgi okur ve okuduğu bilgiyi kullanıcının belirlediği düzene sokarak standart çıktıya (ekran) yazar. Genellikle bu veri bir dosyaya yerleştirilir. Sed komut satırında veya bir kabuk programında kullanılabilir. Sed kullanırken en çok ‘s’ işlemcisi kullanılır. Bu bir karakteri veya karakter kümesini başka bir diziye çevirir. sed ‘s/hastahane/hastane/g’ dosyam Bu komut ile dosyam içinde yer alan bütün ‘hastahane’ kelimelerini ‘hastane’ kelimesi ile değiştirilir. Burada kullanılan ‘g’ işlemcisi ise sed’in bulduğu satırların tamamını araştırması içindir. Sed ile kullanılan özel karakterler; . * [ ] ^ $ & dir. Her özel karakterin başına ‘’ karakteri getirilerek özel anlamlarını kaybetmesi sağlanabilir. Aynı anda birden çok değiştirme yapabilmek içinse her argüman için -e kullanılmalıdır. Bir dosya üzerinde işlem yapıp çıktıyı ekrana değil başka bir dosyaya göndermek için; Sed ‘s/ /usr / bin / /bin/g’ dosyam>yenidosya 7.1.1 Düzgün Deyimler Sed metin işleyen birçok program gibi düzgün deyimlerden yararlanır. => ^ karakteri satır başını gösterir. sed ‘s/^Prş /Perşembe/’ dosyam Satır başında Prş varsa bunu Perşembe yapar. => $ karakteri satır sonunu gösterir. sed ‘s/$/SatırSonu/’ dosya Her satırın sonuna SatırSonu yazar. => . karakteri herhangi bir karakter anlamına gelir. sed ‘s/^..//’ dosya Dosyanın başındaki ilk iki karakteri siler. => [] birden fazla karakter arasından seçim yapar. sed ‘s/[Oo]penwin/openwin/g’ dosya => - karakteri ile sağındaki ve solundaki dahil olmak üzere tüm harfleri seçer. sed ‘s/[A-Z] //g’ dosya => ^ karakteri, karakter kümesinin dışında kalan karakterleri seçmek için kullanılır. sed ‘s/[^1-9a-z]//g’ dosya => * karakteri, kendisinden bir önce gelen karakterin veya küme içine alınmış karakter gruplarının sıfır veya daha fazla tekrarı için kullanılır. sed ‘s/ ^ *//’ dosya => .* karakteri harf kombinasyonu herhangi bir sayıda karakter grubu anlamındadır. => ‘(‘ ve ‘)’ operatörleri yardımıyla eşleştirildiği anda belleğe kaydedilen kelime grupları daha sonra tekrar çağrılabilir. sed ‘s/^ ([A-Za-z] [A-Za-z]*) /1/’ dosya => Tüm dosya üzerinde değil de bazı özellikleri sağlayan satırlar üzerinde işlem yapmak için adresleme yapılmalıdır. Adresleme işlemi s işlemcisinden hemen önce yapılmalıdır. sed ‘1,12s/Ege/Akdeniz/g’ dosya => Bir kelime ile başlayan tüm satırlarda işlem yapmak için; sed ‘/^Makine/s/Endüstri /Elektronik /g’ dosya => Bir kelime ile başlamayan tüm satırlarda işlem yapmak için; sed ‘/^Makine/!s/Endüstri /Elektronik /g’ dosya 7.1.2 SED Kaynak Dosyası Eğer sed kaynak satırı bir iki satıra sığmayacak kadar büyükse komutlar bir dosya altında toplanabilir. Daha sonra sed komutu -f parametresiyle çalıştırılır. $ sed -f dosyam.sed dosya 7.2 Metin Düzenleyiciler Hem konsolda hem de X Window altında kullanılabilen bir çok metin düzenleyici vardır. Pico, vi, nedit, gedit,mc, joe, xjed, ed bunlardan sadece birkaçıdır. Linux için programlanmış ve ticari destek gören bazı düzenleyiciler vardır. Bunlardan en çok kullanılanı Star Office’ dir. Star Office hem bir metin düzenleyici, hem de tablolama yazılımı, veritabanı uygulaması, sunum programı gibi eklentileri olan bir masaüstüdür. Linux altında kullanılan ticari programlar için Commercial-HOWTO dosyasına bakılabilir. Pico kolay kullanımlı bir metin düzenleyicidir. Komut istemcisi üzerindeyken sadece pico yazılarak program çalıştırılabilir. İlk önce boş bir ekran gelir. Ekranın alt kısmında iki satır halinde gerekli olan komutlar yer alır. Bir dosya yüklemek için Control-R tuşuna basılmalıdır. Dosya üzerinde yapılan bir değişikliği kaydetmek için Control-O tuşuna basılır. Tüm komutlar Control tuşu ile kullanılır. Bir grup komut listesi; Bir Satır Yukarı Yukarı ok tuşu Bir Satır Aşağı Aşağı ok tuşu Sola Git Sol ok tuşu Sağa Git Sağ ok tuşu Satırın Sonuna Git Control-E Satırın Başına Git Control-A Satırı Sil Control-K Arama Yap Control-W Pico’dan Çık Control-X Bir Sayfa Aşağı Control-V Bir Sayfa Yukarı Control-Y Pico hakkında bilgi edinmek içinse Control-G tuşuna basılır. 7.3 Vi Editörü Vi biraz karmaşık ama hızı ve verimi ile her kullanıcının işini kolaylaştıracak bir editördür. PC editörlerin büyük çoğunluğunda klavye, editör komutlarını almak ve basılan tuşları ekrana göndermek için kullanılmaktadır. Vi’nin tasarım aşamasında bu durumdan kaçınılmış, standart dışı klavyesi olan bilgisayarların da olabileceği varsayılarak klavye üzerinde kullanılması gereken tuşların sayısı mümkün olduğunca indirilmeye çalışılmıştır. Vi ile çalışırken karşılaşılan vi editörünün çalışma aşamasında üç ayrı işlev vardır. Bunlardan birincisi bilgisayara komutların girdisi sırasında kullanılan komut modu, ikincisi yazı yazarken kullanılan yazı modu diğeri ise satır modudur. Komut modunda klavye üzerinde görevi olan tüm tuşlar bilgisayara komut vermek için kullanılır. Yazı modunda ise diğer editörlere benzer şekilde yazı yazılabilir. Klavye modu değiştirildiğinde klavye tuşlarının işlevleri hemen değişir. Vi editörü ilk çalıştırıldığında komut moduna girilir. Bu anda her tuşa ait bir komut çalıştırılmaya hazırdır. ( Örneğin k karakteri bir karakter yukarı gider. ) Yazı moduna geçmek için ‘i’ tuşuna basılır. Yazı modunda iken klavyeden girilen her karakter ekranda görünür. Tekrar komut moduna dönmek için ESC tuşuna basılır. Dosya işlemleri veya eşleme yaparken iki mod birlikte kullanılmaz. En alt satırda vi mesajları görülür ve gerektiğinde satır modunda komutlar girilir. Satır moduna geçmek içinse ‘:’ karakteri kullanılır. 7.3.1 Dosya İşlemleri Sisteme girip komut satırında $ vi dosya yazıldığında bir metin üzerinde arama ve değiştirme görüntüsü monitörde görülür ve program çalışır. Yazmak istenenler yazıldıktan sonra ESC ve iki kere ‘Z’ tuşuna basılırsa komut dizisi önce dosyaya kaydedilir, sonra vi editöründen çıkılıp kabuğa dönülür. İsimsiz bir dosyada çalışırken dosyayı sabit diske yazmak için ‘w’ satır komutu kullanılır. Vi editörden çıkmak için ‘:q’ yazılmalıdır. 7.3.2 vi’ da Yazma vi editörüne girildiğinde ‘i’ tuşuna basılınca yazı moduna geçilir. İstenilenler yazıldıktan sonra satır sonuna gelindiğinde Enter tuşuna basılarak yazmaya devam edilir. Satır sonuna gelindiğinde ESC ile komut satırına geçilip yön tuşları ile dosya içinde gezinilebilir. Yön tuşlarının görevini h, j, k, l tuşları yapabilir. J, imleci bir satır aşağı indirir. K,imleci bir satır yukarı çıkartır. H, imleci bir karakter sola alır. L, imleci bir karakter sağa alır. Enter tuşu komut modunda ‘j’ tuşu yerine kullanılabilir. ‘i’ komutu imlecin bulunduğu yerden itibaren ‘a’ komutu ise bir karakter sağdan yazmayı sağlar. ‘o’ komutu ise imlecin bulunduğu yerin altında bir satır boşluk bırakır ve boş satırın başına geçerek yazı moduna geçer. Control-F tuşu bir sayfa ileri gitmek, Control-B tuşu ise metni bir sayfa geri almak için kullanılır. Vi her satırı kendi içinde numaralandırır. Belirli bir satıra gitmek için yön tuşlarının yanında satır numarası da kullanılır. Bunun için komut modunda iken satır numarası girilir ve G tuşuna basılır. Eğer satır numarası girilmezse imleç dosya sonuna konumlanır. 7.3.3 Silme ve Kopyalama Yazı modunda iken BackSpace tuşu, komut modundayken ise ‘x’ komutu ile istenilen kadar harf silinebilir. ‘dd’ komutu ile imlecin üzerinde bulunduğu satır tümden silinir ve satırlar bir satır yukarı alınır. Satırın sonundayken imlecin otomatik olarak bir alt satıra geçmesi için :set wm=n satır komutu yardımıyla yapılır. Burada n sondan kaç karakter boşluk kalacağını gösterir. ‘dd’ veya ‘x’ komutlarıyla silinen harf ya da harf grupları belleğe alınır ve istenildiği zaman imlecin bulunduğu yerden itibaren ‘p’ komutuyla getirilir. İmlecin bulunduğu yerden satır sonuna kadar silmek için ‘d$’, metnin sonuna kadar silmek için ‘dg’ komutları kullanılır. Tek bir harfi değiştirmek için ‘r’ komutu, bir kelimeyi değiştirmek için ‘cw’ komutu kullanılır. ‘yy’ komutu üzerinde bulunulan satırı kopyalar. Eğer komuttan önce sayı girilirse o kadar satır kopyalanır. ‘yy’ komutu yerine ‘Y’ komutu da kullanılabilir. Kopyalanan satırlar ‘p’ komutu ile istenilen yere basılır. Bir hata yaptıktan sonra eski konuma dönmek için ‘u’ komutu kullanılır. Bu komut üzerinde değişiklikler yapılan metni son çalıştırılan komuttan önceki duruma getirir. Yeni konuma tekrar dönmek için Control-R tuşlarına basılır. 7.3.4 Komut Tekrarı Komutun kaç defa tekrarlanacağı komuttan önce girilmelidir. Girilen rakamlar ekranda görünmezler. Örneğin ‘6x’ komutu 6 karakter siler. 7.3.5 Arama ve Eşleştirme Komut modunda iken ‘/’ karakteri ile arama konumuna geçilir. Ekranın en alt kısmında açılan satıra aranılan kelime yazılır ve Enter tuşuna basılır. Vi imlecin bulunduğu yerden itibaren bu kelimeyi arar ve eğer bulunmuşsa imleç oraya konumlanır. ‘/’ komutu dosyanın sonuna doğru ‘?’ komutu ise başına doğru arama yapar. Aynı kelimeyi tekrar aratmak için ‘n’ tuşuna basılır. :[a,b] s/nümerik/sayısal/işlemci Yukarıdaki komut metin içinde a ve b satırları arasındaki nümerik kelimelerini sayısal kelimesi ile değiştirir. Tüm dosya üzerinde eşleştirme yapmak için % karakteri, satır sonunu belirtmek için $ karakteri kullanılır. “c” işlemcisi her eşleşmeden önce kullanıcıdan izin alır. “g” işlemcisi her satırda rastlanan ilk eşleşmeyi yapar. “i” işlemcisi ise aramayı büyük-küçük harf gözetmeksizin yapar. Sed ile kullanılan ‘(‘ ‘)’ operatörleri vi’de de kullanılır. 7.3.6 Diğer Dosyaların Metne Eklenmesi İmlecin bulunduğu yerden itibaren başka bir dosyayı metne kopyalamak için; :r dosyam.txt komutu kullanılır. 7.3.7 Kabuk Komutlarının Çalıştırılması vi altında iken kabuk komutlarını çalıştırmak için (örneğin ls komutunu kullanmak için); :! ls -al kullanılır. Komut çıktısını ekran yerine bir dosyaya göndermek içinse; :r! ls -al şeklinde kullanılır. 7.3.8 vi Başlangıç Dosyaları vi her açıldığında belirli dosyalar okunur ve gerekli düzenlemeler yapılır. Bunun için set komutu kullanılır. Vi her açılışta önce bulunulan dizin içindeki sonra home dizini içindeki .exrc dosyasına bakar. Açılış anındaki ayarlama işlemleri için bu dosya kullanılır. Dosyaya her satıra bir set komutu gelecek şekilde istenildiği kadar komut yerleştirilebilir. set ignorecase set wrapmargin set tabstop=5 Bu seçeneklerde ignorecase arama yapılırken büyük-küçük harf ayırımı yapılmamasını, wrapmargin sol taraftan iki karakter boşluk bırakılmasını, tabstop ise Tab tuşuna basıldığında imlecin 5 karakter ileri gitmesini sağlar. 8. X WİNDOW GRAFİK ARABİRİMİ 8.1. Giris: İlk olarak Massatchutses Institute of Technology (MIT/ABD) tarafından UNIX işletim sistemleri için yazılıp geliştirilen X Window Sistemi güçlü bir grafik düzenlemesine sahiptir. Yaklaşık dünya üzerindeki her UNIX iş istasyonu X Window sisteminin çeşitli varyasyonlarını kullanmaktadır. MIT X Window Sistem surum 11, dağıtım 6'nın (X11R6), 80368/80486 ve Pentium mimariye sahip UNIX işletim sistemleri için ücretsiz dağıtılabilen bir sürümü David Wexelblat'ın dwex@XFree86.org önderliğindeki bir grup programcı tarafından geliştirilmiştir. XFree86 adı verilen bu dağıtım, Linux dahil olmak üzere System V/386, 386BSD ve diğer x86 kullanan tüm UNIX sistemlerinde kullanılabilir.Ayrıca gerekli olan tüm ana ve yardımcı programlarını, destekleyici dosyaları ve kütüphanelerini de bünyesinde bulundurur. Açık sistemlerin kullanıcıya sunduğu en büyük özelliklerden biri olan X Window, Linux’un doğduğu andan itibaren destek görmeye başladı. İnternet üzerinde bedava dağıtılmasıyla Linux dağıtımı altında bir standart olarak kendine yer edindi. Daha önce bir UNIX sistem üzerinde X Window kullandıysanız bu bölümü kavramak gayet kolay olacaktır. X Window’un Linux altındaki son sürümü Nisan 1994’te çıkan X11R6’dır. Aradan uzunca bir süre geçmesine rağmen bu sürümde kayda değer bir değişiklik olmadı. Bunun yanında X Window’da kullanılan pencere yöneticisi (window manager) çeşidi neredeyse 20’ye yaklaştı. Pencere denetleyicilerin her birinin farklı özellikleri vardır. Bunlar, X Window’a açılan ve uygulama programları ile kullanıcı arasındaki bilgi alışverişini sağlayan arabirimdir. X Window (veya kısaca X) istemci-sunucu modeline göre çalışır. Ana makine üzerinde çalışan X sunucusu, grafik donanımı üzerindeki tüm giriş-çıkış yetkilere sahiptir. Bir X istemcisi, sunucuya bağlanarak istediği işlemleri sunucuya yaptırır. İstemcinin görevi emir vermek, sunucunun ise verilen emri görünür hale getirmektir. Aslında bilinmesi gereken en önemli kavram, X’in ağ tabanlı bir yapıya sahip olmasıdır. Bir istemci ve sunucunun olduğu her yerde ağdan da söz edebiliriz. X, ,ster konsol üzerinde (yerel makinede) isterse ağ üzerinde (uzak makinede) çalışabilir. Başka bir makine üzerindeymiş gibi o makinenin X Window uygulama ve kaynaklarından yararlanabilirsiniz. Yukarıda kısaca bahsedilen pencere yöneticisi, ekrandaki pencerelerin denetiminde söz sahibi olan tek programdır. Her pencerenin nasıl görüneceğini, ne kadar büyük olduğunu bilir; kullanıcı tarafından verilen küçültme, pencere kapatma gibi komutları işler. Desteklenen standart SVGA chipsetleri aşağıda gösterilmiştir: · Tseng ET3000, ET4000AX, ET4000/W32, ET6000 · Western Digital/Paradise PVGA1 · Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C30, WD90C31, WD90C33 · Genoa GVGA · Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420, TGUI9420DGi, TGUI9430DGi, TGUI9440AGi, TGUI9660XGi, TGUI9680 · ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX, 68800LX, 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX, 264CT, 264ET, 264VT, 264VT2, 264GT · NCR 77C22, 77C22E, 77C22E+ · Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD5436, CLGD5440, CLGD5446, CLGD5462, CLGD5464, CLGD6205, CLGD6215, CLGD6225, CLGD6235, CLGD6410, CLGD6412, CLGD6420, CLGD6440 · OAK OTI067, OTI077, OTI087 · Avance Logic ALG2101, ALG2228, ALG2301, ALG2302, ALG2308, ALG2401 · Chips & Technologies 65520, 65530, 65540, 65545, 65520, 65530, 65540, 65545, 65546, 65548, 65550, 65554 · MX MX68000, MX680010 · Video 7/Headland Technologies HT216-32 · SiS 86C201, 86C202, 86C205 · ARK Logic ARK1000PV, ARK1000VL, ARK2000PV, ARK2000MT · RealTek RTG3106 · Alliance AP6422 · Matrox MGA2064W · NVidia/SGS Thomson NV1, STG2000 Desteklenen hızlandırılmıs SVGA chipsetleri ise asagıdadır: · 8514/A (ve benzerleri) · ATI Mach8, Mach32, Mach64 · Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD5436, CLGD5440, CGLD5446, CLGD5462, CLGD5464. · S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964, 86C732, 86C764, 86C765, 86C868, 86C968, 86C325, 86C988 · Western Digital WD90C31, WD90C33, WD90C24A · Weitek P9000 · IIT AGX-014, AGX-015, AGX-016 · IBM XGA-2 · Tseng ET4000/W32, ET4000/W32i, ET4000/W32p, ET6000 · Ark Logic ARK1000PV, ARK1000VL, ARK2000PV, ARK2000MT · MGA2064W Bu chipsetleri kullanan ekran kartları PCI ve VLB de dahil olmak üzere bütün (bus) tiplerince desteklenmektedir. Avance Logic, MX ve Video 7 chipsetleri haricinde yukarıdaki chipsetlerin tamamı 256 renk ve monochrome kiplerini destekler. Avance Logic, MX ve Video 7 chipsetleri ise sadece 256 renk kipini desteklemektedir. Üzerinde Linux işletim sistemi ve XFree86 bulunan bir makine en az 486 işlemciye, 8 MB hafızaya ve yukarıdaki chipsetlerinden birini kullanan bir ekran kartına ihtiyaç duyar.Ancak ideal bir performans için Pentium işlemci (ve ya Pentium Pro), 16 MB hafızaya ve hızlandırılmış kart olan S3 ekran kartı kullanılabilir. Unutmamanız gereken bir gerçek ise makineniz ne kadar çok fiziksel hafızaya sahipse o kadar az swap yapacak, sabit diske anlık yazma ve okuma azalacaktır. Sabit diskin hafızadan daha yavaş çalıştığını hatırlarsak 16 MB fiziksel hafızaya sahip olmak 16 MB sanal hafızaya sahip olmaktan daha iyidir. 8.2. X Window Kurulumu ve Konfigürasyonu X Window’un 386 ve yukarı tabanlı makineler için geliştirdiği sisteme Xfree86 adı verilir. Linux da Xfree86’yı Slackware dağıtımına ekleyerek kullanıcıların hizmetine sunmuştur. Xfree86 sürüm 3.1’in desteklediği kartlara ait çipsetler kitabın başında verilmiştir. Bu çipsetler, PCI ve VLB dahil, her tür veri yoluna sahip ana kartlar üzerinde sorunsuz çalışır. Linux ile uyumlu çalışabilen yer alan çipsetlerin hepsi 256 renk (8 bit) desteklerler. Eğer kart üzerinde yeteri kadar RAM var ise (en az 2MB), ekranınızı 16 bit (65536 renk) açma imkanınız olur. Özellikle S3 kartları Linux Xfree86 altında sorun çıkartmadan 65536 rengi kolayca gösterebilirler. X Window üzerinde rahatça çalışabilmek için en az 486 tabanlı bir bilgisayara ihtiyacınız var. Rahat bir çalışma için 16MB RAM ve Pentium 100 bilgisayar işinizi görecektir. Renk sorunu yaşamamak için ise 2MB, görüntü hafızası olan bir grafik kartı kullanın. X Window, sistemi fazlaca yüklediğinden takas alanı için fazla söz söylemeye gerek yok. X’e yatırım yapmak istiyorsanız paranızı hafıza için ayırın. Xfree86, Slackware tarafından dağıtılan paketlerin X bölümünde yer alıyor. Herhangi bir nedenden dolayı sistemde X yoksa ‘pkgtool’ yardımıyla sisteminize kurun. Gerekli kütüphaneleri eklemeyi unutmayın. 8.3. X Konfigürasyonu X Window kurulumu basit olmasına rağmen konfigürasyonu biraz başınızı ağrıtabilir. Slackware 2.2 dağıtımı ile gelen konfigürasyon programları, kullanıcının hata yapmasını affetmiyordu. Yanlışlıkla basılan bir tuş yüzünden baştan başlamak zorunda kalınabiliyordu. Slackware 3.3 altında, grafik arabirimini kullanan XF86Setup programı ile bir fare yardımıyla rahatlıkla ve kısa sürede X konfigürasyonu tamamlanabiliyor. Ücretli sürümlerden bir tanesi elinizin altında ise işler daha da kolaylaşıyor, neredeyse donanım hakkında hiçbir şey bilmeden X kurulabiliyor. Konfigürasyon işlemlerinden önce hazırlık aşamasında XF86Config(1) ve Xfree86(1) man sayfalarını okuyun.bu dosyalarda X Window için oluşturulacak olan /etc/XF86Config dosyasının hakkında detaylı bilgi vardır. XF86Config dosyası X açılırken okunur ve fare, ekran çözünürlüğü, renk sayısı gibi özellikler belirlenir. Ekranınızın kalitesine göre açmak istediğiniz çözünürlük hakkında bir miktar fikir sahibi olmalısınız. Bazı eski ekranlar 1024x768 çözünürlüğü desteklemezler, bu yüzden 800x600 gibi düşük bir çözünürlük ile işe başlayın. Daha ayrıntılı bilgi için Xfree86-HOWTO dokümanlarına göz atabilirsiniz. Linux’un Slackware 3.3 sürümü, kullanıcıya X konfigürasyonu için iki program sunar. Birincisi, yukarıda da belirtilen ve zayıf bir arabirimi olan xf86config, diğeri de XF86Setup. İkincisini kullanmanız, her bakımdan avantaj olarak göze çarpıyor. Program, bazı ayarlamaları kullanıcıya bırakmadan (örneğin çipsetin seçimi) kendisi hallediyor. Burada yeralan soruları doğru bir şekilde cevapladıktan sonra X açmaya hazırsınız demektir. Aşağıda XF86Config dosya formatı hakkında biraz bilgi verilmiştir. X Window’u kurduktan sonra kendi zevkiniz doğrultusunda bu dosya üzerinde değişiklik yapabilirsiniz. Dosya, pek çok bölümden (section) oluşur ve her bölüm, Section “bölüm-ismi” ve Endsection kelimeleri arasında yer alır. Ekran yazı tiplerinin ve kullanılacak renklerin patikasını belirleyen bölüm dosya altında şu şekilde görünecektir: Section “Files” RgbPath “/usr/X11R6/lib/X11/rgb” FontPath “/usr/X11R6/lib/X11/fonts/misc” FontPath “/usr/X11R6/lib/X11/fonts/75dpi” EndSection İstediğimiz kadar yazı tipi girişi yapabiliriz. Üç tanım satırının arasına, örneğin X altında kullanacağımız Türkçe yazı tiplerini yerleştirelim. Section “Files” RgbPath “/usr/X11R6/lib/X11/rgb” FontPath “/usr/X11R6/lib/X11/fonts/misc” FontPath “/usr/X11R6/lib/X11/fonts/75dpi” FontPath “/usr/X11R6/lib/X11/fonts/turkce/75dpi” EndSection Klavye ve farenin tanımlandığı bölümler, “Keyboard” ve “Pointer” adı altındadır. Açıklama satırlarının başında “#” karakteri yer alır. örnek dosyanın yer aldığı makinede farenin kullandığı protokol, “MouseSystems” olup hemen her standart fare için bu protokol önerilir. Diğer protokoller arasında Busmouse, Logitech, Microsoft, MMSeries, Mouseman, MouseSystems, PS2, MMHitTab/ vardır. X açıldığı zaman herşey yolunda gitmesine rağmen farenin ikonu hareket etmiyor veya ekranda deli gibi oradan buraya koşuşturuyorsa farenin kullandığı protokolü değiştirin. Bazı farelerin altındaki küçük anahtarın bulunduğu konumu değiştirmeniz de işe yarayabilir. Section “Keyboard” Protokol “Standart” Autorepeat 500 5 ServerNumLock Endsection Section “Pointer” Protokol “MouseSystems” Device “/dev/mouse” Emulate3buttons # iki tuslu microsoft farede 3. tusun, # iki tusla basilmasini saglamak icin... ChordMiddle # 3 tuslu Logitech fareler icin EndSection Farenin kullandığı seri port /dev/mouse’dur. Bu dosya, genellikle uygun olan bir seri arabirime (örneğin/dev/ttyS0) bağlıdır. XF86Config dosyasının en önemli bölümü monitörle ilgili bilgilerin yeraldığı kısımdır. Bu bölümde monitörün yatay (Horizontal Sync), düşey frekansları (VertRefresh) ve frekans aralıklarıyla sürücü saat frekansı (dot-clock frequency) belirtilir. Kullandığınız monitörle ilgili konfigürasyon sırasında girilen bilgiler bu bölümde yer alır. Section “Monitör” Identifier “CTX 5468 NI” HorizSync 30-38, 47-50 VertRefresh 50-90 # Modes : Name Dotclock horiz vert modeline “640x480” 25 640 664 760 800 480 491 ... ... EndSection “Identifier”, kullanılan monitörün tipini verir. X bunu kullanmaz, istediğiniz herhangi bir kelimeyi yazabilirsiniz. HorizSync, monitörün yatay frekansını kHz cinsinden belirtir. VertRefresh ise monitörün tazeleme frekansı olup Hz cinsindendir. Her iki değer, frekans aralığı veya tek sayı olarak verilebilir.“Modeline” kelimesi ile başlayan satırda belirli bir çözünürlük için gerekli “Dotclock” (sürücü saat frekansı) ile yatay ve düşey tarama frekansları MHZ cinsinden yazılıdır. Monitör bilgilerinin yer aldığı bölümden sonra ekran ve alt bölümü olan görüntü bölümü gelir. Section “Screen” ........... Depth 8 Modes ViewPort 0 0 Virtual 1024 768 EndSubsection EndSection Driver kısmında kullanılacak olan X sunucusunun tipi (SVGA, hızlandırılmış, vb.) girilir. S3, Wieitek, ATI gibi hızlandırılmış bir görüntü kartı kullanılıyorsa “Accel”, normal(generic) bir kart ve kaliteli bir monitör varsa “SVGA” ve siyah beyaz VGA bir monitörle birlikte tek renk (monochrome) destekleyen kart kullanılıyorsa “VGA2” yazılıdır. “Display” alt bölümünde, görüntü özellikleri yer alır. “Depth” kelimesinin karşısında yer alan rakam, piksel başına kaç bitin, başka bir deyişle kaç rengin kullanılacağını belirtir. Günümüz Xfree86 sunucuları genellikle 256 (8 bit), 65536 (16 Bit) ve 16.7 milyon (24 Bit) renge kadar çıkabilirler. “Modes” karşısında yer alan ekran çözünürlük listesi, Linux’un X altında, çalışırken görüntüleyebileceği çözünürlükleri belirtir. “Virtual” karşısında yer alan x ve y sayıları sırayla ekranın genişliğini ve yüksekliğini belirtir. “Virtual girdilerinin ardından verilen “ViewPort” parametresi de ekranın sol üst köşesinin hangi koordinatlara tekabül edeceğini tanımlar. 8.4 Cıkabilecek Sorunlar: X sunucusunu çalıştırdığınızda (startx) eğer bir şeyler yanlış gittiyse ve bir şekilde sunucunuz çalışmadıysa problem büyük ihtimalle konfigürasyon dosyanızdandır. /etc/XF86Config dosyasını gözden geçirmeniz bir bakıma faydalı olabilir. Monitör zaman ayarlamaları OFF ya da ekran kartınızın Clock ayarları yanlış olabilir. Eğer "couldn't find any screens" ya da "none of the devices found" gibi hata mesajlarıyla karşılaştıysanız /etc/XF86Config dosyasında "Clock" satırı ile başlayan satırları comment ediniz (satırın basına # koyarak) ve bir de boyle deneyiniz. Şayet görüntü sık sık kayıyor ya da köşeler dikenli gibi duruyorsa monitör zaman ayarlamaları ya da Clock yanlış ayarlanmış demektir. Ayrıca doğru ekran kartını ve chipsetini seçtiğinizden, doğru X sunucusunu kullandığınızdan ve /usr/X11R6/bin/X dosyasının doğru sunucuya sembolik linkli olduğundan emin olunuz. Ornek: Linux:~# cd /usr/X11R6/bin/ Charisma:/usr/X11R6/bin# ls -al X lrwxrwxrwx 1 root root 9 May 31 17:59 X -> XF86_SVGA* Linux:/usr/X11R6/bin# Ekran kartım Cirrus Logic ve kullandığım sunucu XF86_SVGA, görüldüğü gibi X dosyası XF86_SVGA dosyasına sembolik olarak linklenmiş. Eğer; /bin/ls: X: No such file or directory gibi bir hata mesajıyla karşılaşırsanız aşağıdaki komutları giriniz: Linux:~# cd /usr/X11R6/bin/ Linux:~# ln -fs XF86_SVGA X Sonra startx komutuyla sunucunuzu yeniden test ediniz. Şayet herşeye rağmen tekrar çalışmıyorsa X sunucunuz; X > /tmp/x.out 2>&1 komutuyla sorunun ne olduğunu anlayabilirsiniz. 8.6. X Window Komutları $ startx Ekranda X sunucusunun dosyadan okuduğu satırlar ile ilgili bilgileri sırayla göreceksiniz. Ardından ekran kararacak ve X açılacaktır. CTRL+ALT+Bspace tuşlarıyla X sunucusu öldürülüp başlanılan yere vt100 terminaline geri dönülür. Ekran karadı fakat X açılmadıysa konfigürasyonda hatalar olabilir. Örneğin çipset veya ekran kartı bilgileri yanlış girilmiş olabilir. Görüntü kartı hafızası ekranı açmaya yetmeyebilir. X sunucusunu başlatmaya yarayan startx komutu, ev dizini içindeki .xinitrc dosyasını arar. Bulamazsa sistemde /usr/X11/lib/X11/xinit/ dizini içinde yer alan xinitrc dosyasını okur. Bu dosyanın içine X açıldığı zaman başlayacak olan programları koyabilir, ekranın renk düzenlemesini yapabilirsiniz. 8.7. Fvwm Pencere Yöneticisi Fvwn, Linux için özel olarak geliştirilmiş bir wm‘dir. Diğer wm’lere karşı belirli üstünlükleri olan fvwm’nin rahatça konfigüre edilebilir bir rc dosyası, renkli ikon desteği, “pager” ( birden fazla ekranı aynı anda kontrol etme yeteneği), farenin tuşlarına basıldığı zaman ekrana gelen “popup” menüleri ve Motif desteği vardır. “Pager”, fvwm’i üstün kılan ve kullanıcının “olsa da kullansak” beklentilerine tam anlamıyla cevap veren bir özelliktir. Ekranın bir köşesine yerleştirilen bir pencere ile farenin tuşlarına basarak istediğiniz başka bir ekrana geçmek mümkün olur. Fvwm, çalıştığı zaman ev dizininde yer alan .fvwmrc dosyasını okumaya çalışır, bu dosyayı bulamazsa sistemdeki örnek fvwmrc dosyasını açılış konfigürasyon dosyası olarak kabul eder. 9. LINUX AĞ YÖNETİMİ 9.1. Linux ‘un Ağ Donanım Desteği Makinenizi ağ üzerinde kullanabilmek için Linux altında geliştirilen bir teknolojiye ve bu teknolojiyi sağlayan protokol desteğine ihtiyaç vardır. Örneğin ağa ethernet kartı ile bağlanılacaksa bir ethernet sürücü ve TCP/IP desteğine, modem ile bağlanılacaksa SLIP/PPP desteği ve seri bağlantı için gerekebilecek bir yazılıma gereksinim duyulur. Başlangıç için bulunulan ağ ile ilgili bilgiler ve paket yazılımlar elde edilmelidir. Ağ yapılandırmasına geçmeden önce aşağıdaki bileşenler alınmalı ve bilgisayara yüklenmelidir. . Yeni Bir Çekirdek Kaynak Kodu: Kullanılan çekirdek çok küçük bir ihtimalle de olsa kullanması planlanan ağ tipi veya kartı için destek içermiyor olabilir. . Ağ Araçları: Bunlar yan cihazları kontrol eden programlardır. Örneğin route komutu yardımıyla yönlendirme yapılabilir, netstat ile ağ istatistiği çıkartılabilir. Bütün ağ araçları Net-Tools paketinin içinde yer alır. Bu paketi sisteme kurmak için en yakındaki bir sunsite yansısında yer alan /system/network/sunacm/NetTools dizininde yer alan Net-Tools programını almak ve derlemek gerekir. . Ağ Uygulama Programları: Telnet ve FTP programları Net-Tools paketi ile gelmezler. Bu gibi ek yazılımlar NetKit paketi yardımıyla elde edilebilir. . Adresler: Yerel ağa bağlanılmışsa aşağıda ki bilgiler gereklidir. Kurulan makinenin IP adresi ve adı Yerel alan ağı adresi IP broadcast (yayın) numarası Ağ maskesi Geçit (gateway) adresi DNS adresi Eğer internet ‘e bağlanmayacaksanız kendiniz adres tanımlayabilir veya bu iş için ayrılmış özel adres bloklarından yararlanabilirsiniz. Bu da ileride internet bağlantısı yapılırken büyük kolaylık sağlayacaktır. Eğer kendiniz ağınızı kuracaksınız ve internet‘ e bağlanmayacaksanız özel adres blokları içinden bir adres seçmek zorunda değilsiniz. Bu adres blokları standartlaşma sağlamak amacıyla belirlenmiştir. İnternet ‘teki RFC1597 belgesine göre bu özel adres blokları aşağıda görüldüğü şekilde tanımlanmıştır. Sınıf Ağ Maskesi Ağ Adresi A 255.0.0.0 10.0.0.0 - 10.255.255.255 B 255.255.0.0 172.16.0.0 - 172.31.255.255 C 255.255.255.0 192.168.0.0 - 192.168.255.255 9.2. Linux ‘a Ağ Desteği Verilmesi Linux ‘un en büyük avantajlarından birisi de kurulumdan sonra internet ‘e bağlanmaya hazır bir hale gelmesidir. Ek olarak kurulum yapıldıktan sonra büyük çoğunlukla yeniden ayarlanmaya ya da paket kurmaya gerek kalmaz. Çekirdek içinde ağ kartlarına ait sürücüleri (aygıt sürücüleri) ve kullanılabilecek protokollerin destekleri bulunmalıdır. Bu iki temel yapıdan yoksun olan bir çekirdek ile ağ hizmeti vermek veya servis almak mümkün değildir. Ancak çekirdek derlenmesi son zamanlarda çıkan dağıtımlarda gereksiz hale gelmiş, sistemin modüler yapısıyla birlikte tüm destek sistemleri bir istek geldiği zaman otomatik olarak çekirdeğe bağlanır bir yapıya kavuşmuştur. PPP, seri hat üzerinden IP bağlantısı kurarak veri iletişimini sağlayan bir protokoldür. Linux ile PPP bağlantısı yardımıyla ister uzaktaki bir makineye erişebilir, isterseniz PPP sunucu kurabilir ve evindeki kullanıcılara PPP hizmeti verebilirsiniz. Tüm internet servis sağlayıcıları PPP bağlantıyı destekler. Pek azı SLIP de destekleyebilir. PPP desteği de modülerdir ve çekirdeğin derlenmesine gerek kalmaz. 9.3. Linux Ağ Yapılandırılması Bazı UNIX sistemlerde ağ aygıtlarına erişmek için düğümler tanımlanmıştır ve diğer düğümler gibi /dev dizini altında bulunurlar. Ancak Linux ‘da ağ arayüzleri çekirdek içinde dinamik olarak desteklenir ve özel bir düğüme ihtiyaç duymazlar. Ağ aygıtları aygıt sürücüleri tarafından yapılandırılır ve birinci ethernet kartı eth0, ikincisi eth1, ...adını alır. Bir ağ yapılandırmasını tanımlarken ağ aygıtına belirli bir IP adresi, ağ maskesi ve benzeri parametreler verilir. Bunu için ifconfig (interface configure) komutu kullanılır. Yani inconfig komutu, ağ bağlantısı yapan kartın belirli parametreler ile konfigürasyonunu sağlar. Bu komut, sadece ethernet kartını yapılandırır. Örnek olarak 192.168.99.10 IP ‘sine sahip ve internet ‘ten bağımsız bir C sınıfı ağa bağlanması düşünülen makine için loopback ifconfig satırı şu şekilde yazılır. # /sbin/ifconfig lo 127.0.0.1 # /sbin/ifconfig eth0 192.168.99.10 netmask 255.255.255.0 Yukarıda temel olarak makinenin kendi ağ aygıtı (loopback device) ve ethernet kartı tanımlanmıştır. İfconfig komutunun tek başına kullanılması halinde Linux ‘a tanıtılan ağ aygıtlarının bir listesi alınabilir. $ /sbin/ifconfig lo Link encap:local Loopback inet addr: 127.0.0.1 Bcast: 127.255.255.255 Mask:255.0.0.0 UPBROADCAST LOOPBACK RUNNİNG MTU:3584 Metric:1 RX packets:493 errors :0 dropped:0 overruns:0 TX packets:493 errors :0 dropped:0 overruns:0 eth0 Link encap: 10Mbps Ethernet Hwaddr 48:54:33:00:e8:3a inet addr: 192.168.99.10 Bcast: 192.168.99.10 Mask:255.0.0.0 UP BROADCAST RUNNİNG MTU:1500 Metric:1 RX packets:71956 errors :0 dropped:0 overruns:0 TX packets:13212 errors :3 dropped:0 overruns:0 İnterrupt : 3 Base address : 0x300 Bu makine üzerinde tek ethernet kartı olup, inconfig bilgisinde ikinci sırada yeralıyor. Kartla ilgilidetaylı bilgi ( her karta özgü donanım numarası, alınan ve verilen paket sayısı gibi) inconfig çıktısında vardır. İfconfig komutunun sonuna down parametresi getirilirse söz konusu ağ aygıtı işlev dışı kalır, down parametresi verilen bir ağ aygıtı up ile tekrar açılırsa normal çalışmasına devam eder. # ifconfig eth0 down ethernet bağlantısını yeniden açmak için # ifconfig eth0 up Yönlendirme ayarlarının yapılmasından sonra ağın çalışması kontrol edilebilir. Her paket gönderileceği adrese gitmeden önce bir tabloya bakar. Bu tablo, paketin gideceği adresi barındırır. Tabloyu oluşturmak için route komutundan yararlanılır. Eğer ethernet kartını ifconfig ile ayarladıktan sonra route komutu çıktısında 192.168.99.0 255.255.255.0 U 0 0 143 eth0 gibi bir satır görülmüyorsa, elinizde çok eski bir sürüm Linux vardır. Bu durumda # route add -net 192.168.99.0 netmask 255.255.255.0 komutu yardımıyla ethernet kartının ağı görmesi sağlanmalıdır. 9.3.1. İfconfig Bilgileri RX ve TX packets karşısında yer alan sayılar sırasıyla ne kadar paketin alındığını (received) ve kaç paketin gönderildiğini (transmitted), bu paketler alınırken kaç hata yapıldığını, kaç paketin silindiğini (örneğin donanım yetersizliğinden), kaç “overrun” olduğunu belirtir. Overrun genellikle düşük hızlı makinelerde görülür ve ağ üzerinde gidip gelen paketlerin yetersiz hız nedeniyle çekirdek tarafından yakalanamaması durumunda oluşur. Up ve down: Up bir ethernet kartını etkin hale getirirken, down ise kartı düşürür. Netmask maske: Ağ maskesini ayarlamak için kullanılır. Eğer ağ maskesi girilmezse Linux o IP ‘e uygun bir tanım yapmaya çalışır. Broadcast adres: İfconfig ile ethernet kartı tanımı yaparken eskiden yayın (broadcast) adresini de girmek gerekiyordu. Şimdiki ifconfig programı broadcast’ten sonra vereceğiniz IP numarasını kendi kendine buluyor. Mtu bayt: MTU (Maximum Transfer Unit), bir defada aktarılacak olan paketin en büyük boyutunu verir. 9.3.2. Ağın Çalışmasını Gözlemlemek Çekirdeğin yönlendirme tablosunu göstermek route komutundan yararlanılır.örneğin ağa bağlı olmayan, ayrıca ethernet kartı da etkin durumda bulunmayan bir makine için aşağıdakine benzer bir çıktı alınabilir. Route komutunun genel kullanımı şu şekildedir: route [add | del] [ -net | -host] varis_adresi [gw yonlendirici] secenekler.... Host: Paketin gideceği yer başka bir makine Net: Paketin gideceği yer başka bir ağ Varış_adresi: Paketin gideceği yer Yönlendirici: Bu paketin gidebilmesi için geçmesi gereken yönlendirici Add: Tabloya ekle Del: Tablodan sil Tablonun genel durumunu kontrol etmek için route komutuna parametre vermeden komut satırından yazdık. $ /sbin/route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.0.0.0 U 0 0 1 lo Destination: Paketin varacağı adres Gateway: Bu adrese varmak için paketin hangi noktaya yollanması gerektiği Genmask: Kullanılan ağ maskesi İface: Paketin kullanacağı arayüz (yukarıdaki örnekte lo) Ağa bağlı bir makinede route komutunu çalıştıracak olursak aşağıdakine benzer bir sonuç alırız. Burada ek olarak 192.168.99 ağı üzerinde kullandığımız ethernet kartına ait yönlendirme (routing) bilgileri de verilmiştir. $ /sbin/route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.99.0 * 255.255.255.0 U 0 0 143 eth0 127.0.0.0 * 255.0.0.0 U 0 0 1 lo default router71.ceng.m 0.0.0.0 UG 1 0 204 eth0 Örnek tabloda üç ayrı yönlendirme girişi vardır. Birincisi, makinanın kendisi ile haberleşmesini sağlayacak olan loopback. İkinci satırda, yerel ağa gidecek olan tüm paketlerin yönlendiriciye verilmeden ağa yönlendirilmesi. Son sırada ise (default) paket ilk iki satırda yer alan varış adresinden farklı bir adrese gidecekse, önce yönlendiriciden geçip sonra dış dünyaya açılacağından yönlendiricinin IP adresi yazılmıştır. $ ping localhost PING localhost (127.0.0.1) : 56 data bytes 64 bytes from 127.0.0.1 : icmp_seq = 0 ttl = 64 time = 0.1 ms 64 bytes from 127.0.0.1 : icmp_seq = 1 ttl = 64 time = 0.1 ms 64 bytes from 127.0.0.1 : icmp_seq = 2 ttl = 64 time = 0.1 ms --- localhost ping statistics --- packets transmitted, 3 packets received, 0% packet loss round - trip min/avg/max = 0.1/0.1/0.1 ms Ping ile makineye belirli uzunlukta üretilen paketleri göndermek ve bu paketlerin geriye gelmesiyle aradaki gecikme farkını ölçmek mümkündür. Bu örnekte paketler makinenin kendisine yollanıyor ve ethernet kartı kullanılmıyor. Paketlerin her birisinin boyu 64 bayttır. Paketin gönderilmesiyle alınması arasında geçen süre 0.1 milisaniyedir. 3 paket yollanmış 3 paket ise geri alınmıştır ve paket kaybı yüzde sıfırdır. Paketlerin ortalama gidiş-dönüş süresi 0.1 milisaniyedir. Herhangi bir makineyi kontrol etmek için; $ ping 192.168.99.13 yazılabilir. Ping komutunun parametreleri: - c sayı : sayı kadar paketi gönderdikten sonra işlem kesilir. ping -c 10 192.168.1.1 -f (Flood ping) : Mümkün olan en yüksek hızda veya her saniyede 100 paket yollanacak şekilde işlem yapılır. -q : Sessiz çalışır. Alınan ve verilen hiçbir paket ekranda gösterilmez, sadece istatistiki bilgiler verir. -s paket_boyu : paket boyunu düzenlememizi sağlar. Ağın çalışmasını gözlemlemek amacıyla kullanabileceğimiz bir başka komut da netstat ‘dır. O anki mevcut bağlantıların tamamını, TCP/IP oturumlarını, TCP, UDP ve IP protokollerinin kullanım istatistiklerini ekranda göstererek bilgi verir. 9.4. Alan Adı Sunucusunun Tanımlanması TCP/IP, sembolik makine adlarını IP adreslerine dönüştürürken /etc/hosts dosyasından faydalanır. Örneğin hedef makinenin adı darkstar olsun. Bu makineye erişmek için Linux önce /etc/hosts dosyasına bakar ve oradaki satırlarda ‘darkstar’ kelimesini eşleştirebildiği IP numaralarını arar. Zira bir makineye ulaşmak için makine adına değil, IP numarasına ihtiyacımız vardır. İnternet bağlantılarında mutlaka DNS (Berkeley Internet Domaaın Name Service) kullanılmalıdır. DNS, IP adreslerinin tanınmasına ve makine adlarıyla eşlenmesine yardımcı olur. Internete bağlanırken DNS adresini ya bağlandığınız servis sağlayıcıdan, ya da sistem yöneticiden öğrenmek gereklidir. 9.4.1. Alan Adı Sunucusunun Aranması /etc/resolv.conf dosyasında adres çözümleyicinin hangi alan adı sunucusuna bağlanması gerektiği yazılıdır. En az bir alan adı sunucusunun IP numarasının bu dosya içinde yazılması zorunluluğu vardır. $ cat /etc/resolv.conf domain gelecek.com.tr nameserver 192.168.91.2 nameserver 144.122.199.20 search gelecek.com.tr gen.tr Yukarıdaki resolv.conf dosyası internet üzerinde DNS sunucusu olan bir makine için yeterli bilgilere sahiptir. Domain seçeneği alan adını verir. Nameserver ise sistemin alan adı sunucusunun IP adresini içerir. 9.5. Diğer Yapılandırma Dosyaları TCP/IP uygulamalarında pek çok yapılandırma dosyası hizmet verir. Bunların da tamamı /etc dizini altında yer alır. Bu dosyalar herhangi bir editör yardımıyla değiştirilebildiği gibi açıklama satırları da satır başına # karakteri konularak yaratılabilir. 9.5.1. Kontrol Dosyaları - Makine Adları ve IP Karşılıkları ( /etc/hosts) Konfigürasyonu tamamlamak için /etc dizini altında yer alan bazı dosyaların elden geçirilmesi gerekir. Bu dosyalar sistemin daha güvenli ve verimli çalışmasına yardım eder. Bu dosyaların belli başlı olanları ve ne işe yaradıklarını görelim. /etc/hosts dosyasında makinelerin IP numaraları ve internet adresleri yazılır. Buraya sürekli kullanılan belli başlı önemli makinelerin girişi yapılabilir. Her makinenin uzun isimleri yerine kısa bir kelime yazılarak söz konusu makineye ulaşılabilir. Örnek bir etc/hosts dosyası : 127.0.0.1 localhost 144.122.199.20 knidos.cc.metu.edu.tr knidos İlk satırda loopback IP numarası ve buna karşılık gelen makine ismi vardır. Bu satırı silmemelisiniz. İkinci satırda ise knidos.cc.metu.edu.tr makinesinin IP numarası 144.122.199.20 olarak belirtilmiş ve bu bilgisayara “knidos” ismi ile de ulaşılabilmesi sağlanmıştır. /etc/hosts.allow ve /etc/hosts.deny konfigürasyon dosyaları, başka bir makineden Linux ‘unuza yapılan bağlantıları denetler. /etc/hosts.deny içine, sınırlandırma getirmek istediğiniz internet servislerini ve hangi makinalar için sınırlandırma istediğinizi yazabilirsiniz. $ cat /etc/hosts.deny # in.fingerd: ALL except localhost, localhost: echo “request from %d@%h” >> /tmp/req; in.telnetd : .net.tr Yukarıdaki hosts.deny dosyasında dışarıdan gelebilecek finger istekleri filtreleniyor ve bu istekler hakkında detaylı bilgi (hangi kullanıcı, hangi makineden) /tmp/req dosyasına ekleniyor. Sonraki satır in.telnetd yazılımını çalıştıran isteklerin *.net.tr adreslerinden gelmesi halinde bunların gözardı edileceğini belirtir. hosts.allow dosyasında, genellikle hosts.deny dosyasına gruplanan makine isimlerinin sınırlandırma istenmeyen bir veya birkaç tanesi yazılır. Eğer bir makine ismi ve karşılık gelen internet adresi her iki dosyada da varsa, sözkonusu servise izin verilir. /etc/resolv.conf dosyasında alan adı ve alan adı sunucusunun IP numarası yazılır. $ cat /etc/resolv.conf domain linux.org.tr nameserver 144.122.199.20 Yukarıdaki satırlardan üzerinde bulunduğum makinenın alan adının (domain name) linux.org.tr, alan adı sunucusunun ise 144.122.199.20 IP numaralı knidos makinesi olduğu anlaşılıyor. 9.5.2. Ağ İsimleri ( /etc/networks) Ağ isimlerinin de bir ya da daha fazla takma adı bulunabilir. Ancak bu amaç için kullanılan /etc/networks dosyasına erişim o denli sık olmaz. 9.5.3. Ağ Protokolleri ( /etc/protocols) Bu dosya bir tablo halinde protokolün adını ve karşılık gelen protokol numarasını tutar. Az kullanılır. 9.5.4. Ağ servisleri ( /etc/services) Bu dosya bir servis protokol adı ile port numarası arasında eşleme yapar. Örnek bir /etc/services dosyası aşağıdaki gibidir. Systat 11/tcp users Daytime 13/tcp Daytime 13/udp Daytime 13/udp ------ ftp-data 20/tcp ftp 21/tcp telnet 23/tcp smtp 25/tcp mail ------ Eğer bir servisi ait olduğu port yerine başka bir porttan vermek isterseniz /etc/services dosyasında gerekli değişiklikleri yapmak gereklidir. Örnek olarak telnet servisini 23 numaralı port yerine 10000. porttan sağlamak için, /etc/services dosyasında yer alan telnet 23/tcp satırını telnet 1000/tcp olarak değiştirmeliyiz. Hemen belirtelim, uzaktan erişim imkanı sağlayan telnet programı sadece linux ’ta yok. Windows 9X, NT ve 2000 ile de geliyor. 9.5.5. Ftp Kullanıcıları ( /etc/ftpusesrs ) Bu dosya, FTP protokolü ile sisteme giren kullanıcıların sınırlandırılmasına yarar. Ftpd tarafından sisteme bir FTP isteği geldiği zaman bu dosya okunur ve eğer FTP isteği yapan kullanıcının adı dosyanın içinde yer alıyorsa FTP oturumu kapatılır. Şu şekildedir. # /etc/ftpusers - users not allowed to login via ftp # ftp ile sisteme giremeyen kullanıcıların listesi root uucp bin mail Yukarıdaki dosya uzaktan root, uucp, bin ve mail kullanıcılarının makineye ftp ile bağlanamayacaklarını gösterir. 9.5.6. Güvenlik Dosyaları ( /etc/securetty, hosts.allow ve hosts.deny) Sisteme root kullanıcı tarafından telnet protokolü ile girilme isteği halinde /etc/securetty dosyası okunur. Bu dosya içindeki yer alan tty ‘lardan sisteme girme isteği kabul edilir. Host.deny ve host.allow dosyaları tcpd programının konfigürasyondosyalarıdır. Tcpd programı, inetd tarafından /etc/inetd.conf dosyasında tanımlanan FTP, telnet, gopher gibi servislere cevap vermek amacıyla çağırılır. 9.6. Yönlendirme Daha önce de belirtildiği gibi birden fazla ağa fiziksel bağlantısı bulunan ve ağlar arası bilgi paketlerinin geçişine olanak tanıyan araçlara yönlendirici (router) adı verilir. İki ayrı ağda yer alan makinelerin haberleşmesine imkan tanıyan yönlendiriciler, kendilerine gönderilen paketleri bir ağdan diğerine iletilirler. Herhangi bir ağ içerisinde yer alan makineler aynı IP ağ içerisinde bulunan makinelerle (ağ konfigürasyonları doğru olduğu sürece) haberleşebilirler. Başka adreslere ulaşabilmek için bulunulan ağ dışındaki ağlarla bağlantısı olan ve o ağ üzerinde bulunan bir makine ile haberleşmeleri gereklidir. Bu makine bilgisayar tanımlarında gateway ( yönlendirici, arabirim, arayol ) olarak verilir. Minimum yönlendirme, bir ağa bağlı olmayan makinelerde, ifconfig yardımıyla yapılan yönlendirmedir. En çok kullanılan statik yönlendirme çeşidinde, az sayıda arayol ile dışarıya bağlı olan bir makinede, route komutuyla yapılır. Aynı adrese ulaşan birden fazla arayol olması durumunda ise, kendi yönlendirme tablosunu ağın durumuna göre değiştirebilen dinamik yönlendirmeye başvurulabilir Linux ‘un yönlendirici olarak kullanılmasına bir örnek verilebilir. Elimizde var olduğunu bildiğimiziki ağ olsun. Bu ağlardan birincisini, 144.122.71.0 ağı, diğerini de 144.122.1.0 ağı olarak kabul edelim. 144.122.71.0 ağının internet ‘e bağlanabilmesi için 144.122.1.0 ağına ulaşması gereklidir. Yönlendirici olarak kullanılacak makineyi 71.0 ağında kurup gerekli gerekli yönlendirme talimatları verildiği anda bu ağa bağlı olan diğer makinelerde internet ‘e açılabileceklerdir. Örnek olarak 144.122.71.0 ağı üzerindeki bir makine için ifconfig satırı; İfconfig eth0 144.122.71.1 broadcast 144.122.71.255 netmask 255.255.255.0 olarak görülür. Bu makinenin yönlendirici olarak görev yapabilmesi için route komutu kullanılır. Bu sayede bu bilgisayar, diğerlerine ulaşacaktır. Route add - net 144.122.71.0 netmask 255.255.255.0 dev eth0 Bu, 144.122.71.0 ağında olan makinelerin eth0 kartı üzerinden erişilebileceğini gösterir. Diğer adreslere erişebilmek için ise bir çıkışa (gateway) ihtiyaç duyulmaktadır. Route add default gw 144.122.71.1 dev eth0 Bu satır sayesinde eldeki tablo yardımıyla çözümlenemeyen adreslere gitmesi gereken tüm paketler 144.122.71.1 üzerinden gönderilmektedir. Bu durumda bu makinenin paketleri nereye göndereceğini bildiği varsayılmaktadır. Bu makine içinde iki adet ethernet bağlantısı bulunmaktadır. Bunlardan biri yönlendiriciyi 144.122.71.0 ağına bağlarken diğeri 144.122.1.0 ağına bağlamaktadır. İlk olarak bu iki kart için gereken tanımlamalar /etc/rc.d/rc.inet1 içerisinde aşağıdakine benzer şekilde tanımlanmıştır. İfconfig eth0 144.122.71.1 broadcast 144.122.71.255 netmask 255.255.255.0 İfconfig eth1 144.122.1.200 broadcast 144.122.71.255 netmask 255.255.255.0 Birinci ethernet kartı için eth0, ikinci ethernet kartı için de kısaltmaları kullanılabilir. Doğal olarak her iki ağ için bir ‘route’ satırı gerekmekte: route add - net 144.122.71.0 netmask 255.255.255.0 dev eth0 route add - net 144.122.71.0 netmask 255.255.255.0 dev eth0 Bu sayede diğer makinelerden farklı olarak yönlendirici hem 144.122.1.0 ağı, hem de 144.122.71.0 ağı üzerindeki adreslere direk ulaşabilmektedir. Ağa bağlanmak amacıyla birden fazla kart kullanıyorsanız, arp komutunu incelemek gereklidir. Bu komut pek çok opsiyon alır ve sistem yöneticisinin Linux üzerindeki ağı kontrolünü kolaylaştırır. # arp -a IP address HW type HW address 191.72.1.3 10Mbps Ethernet 00:00:C0:5A:42:C1 191.72.1.2 10Mbps Ethernet 00:00:C0:90:B3:42 191.72.2.4 10Mbps Ethernet 00:00:C0:04:69:AA 9.6.1. Birden Fazla Ethernet Kartının Tanıtılması Yukarıda örneğini verdiğimiz Linux yönlendirici üzerinde iki ethernet kartı bulunuyor. Bu sayede Linux makinesi iki ethernet ağı arasında bir yönlendirici olarak kullanılabilmektedir. Bir Linux ‘a birden fazla ethernet kartı takmak mümkündür. Bu kartları takarken aşağıdaki maddelere dikkat etmek gerekir: . Çekirdek içerisinde her iki kart için destek bulunmalıdır. . Ethernet kartları sistemdeki diğer IO ve IRQ ayarlarına çakışmayacak şekilde ve farklı değerlerde olmalıdır. Birden fazla ethernet kartı (ya da herhangi iki veya daha fazla PPP, SLIP gibi ağ bağlantısı) olan makine bir yönlendirici olarak kullanılacaksa, çekirdek IP FORWARDING desteğiyle derlenmelidir. Linux açılırken çekirdek tanıdığı donanımları teker teker arayarak bulmaya çalışır (probing). Birden fazla ethernet kartı kullanımına sık rastlanmadığından Linux ilk ethernet kartını bulduktan sonra ikinci ve daha fazla ethernet kartı aramadığında iki kartınız bile olsa sadece birini görecektir. Çekirdeğe ethernet kartı ile ilgili parametreler vererek birden fazla ethernet kartının açılışta bulunması sağlanabilir. LILO kullanıldığı zaman /etc/lilo.conf içinde append=”ether=0,0,eth1” olmalıdır. Yukarıda ki parametre ile çekirdek ikinci ethernet kartını da arayacaktır. Aynı şekilde arka arkaya ether=...... parametreleri vererek varsa üçüncü veya daha fazla kartın aratılması da mümkündür. Ethernet kartlarınızın adreslerini biliyorsanız, kartların yanlış sırayla bulunması tehlikesini de önlemek için, Append=”ether=5,0x340,eth0 ether=15,0x300,eth1” gibi bir satır eklenmesi yeterli olacaktır. Sistem açıldıktan sonra gerçekten istenen kartların istenen adreste çalıştığına emin olmak için /var/adm/messages dosyasına bakabilirsiniz, ya da dmesg komutuyla çekirdek mesajlarını görebilirsiniz. 10. Desteklenen Protokoller Linux ’un protokol desteği diğer işletim sistemlerine nazaran daha çok gelişmiştir. Bu da Linux ‘u ağ ortamında rakipsiz kılan özelliklerden birisidir. Linux diğer tüm işletim sistemleriyle uyum içinde çalışabilir ve aynı ağ üzerinde kaynak paylaşımı yapabilir. 10.1. TCP/IP TCP/IP desteği tüm dağıtımlar ile hazır gelir, zira Internet ‘e bağlanın ya da bağlanmayın, makinenin kendisini tanıyabilmesi için bu protokole ihtiyacı vardır ve X Window gibi bazı uygulamalar TCP/IP desteği talep ederler. TCP/IP desteği İnternet ve pek çok yerel Intranet ’ler üzerinde kullanılır. 10.2. IPX ve Novell Desteği NCP (NetWare Core Protocol), IPX üzerinde yer alan ve Novell NetWare istemcilerinin sunucularla konuşmasını sağlayan protokole verilen isimdir. Bu seçenek ile, NetWare dosya sunucularına diğer UNIX makinelerde ki gibi bağlanmak olasıdır. NetWare dosya sistemlerine erişebilmek için özel bir mount programı (ncpmount/ncpumount) kullanılması gerekecektir. Bu ve diğer gerekli programlar, en yakın sunsite arşivindeki /system/filesystem/ncpfs dizininden indirilebilir. Novell NetWare dosya ya da yazıcı sunucularına erişmek istiyorsanız IPX protokol desteğinin çekirdekte bulunması gerekiyor, modem dağıtımların tümünde bu destek vardır. Çekirdeğe eklenen IPX desteğinin yanı sıra sunsite arşivindeki /system/filesystem/ncpfs/ipx.tgz paketinde yer alan uygulama yazılımları ile ağ aygıtlarının IPX desteği almasını ve sistemin bir IPX yönlendirici gibi çalışması sağlanabilir. Böylece tıpkı bir IP yönlendirici gibi IPX paketlerinin de iki IPX ağı arasında yönlendirilmesi mümkün olur. Linux aynı zamanda IP temelli bir ağda IPX paketlerini tünelleme metodu ile bir noktadan başka bir noktaya aktarılabilir. 10.3. Samba (Netbeuı ve Netbios Desteği) SMB, Windows 3.1, NT ve Windows 95 tarafından kullanılan, disk ve yazıcı paylaşımına olanak veren bir protokoldür. Linux, Samba desteği ile bu işletim sistemleri veya kendi üzerinde bulunan disk ve yazıcıların tüm makineler tarafından paylaşılmasını sağlar. Andrew Tridgel tarafından geliştirilen Samba programı ve yardımcı programlar kullanarak, UNIX (Linux da dahil) makinelerde disk ve yazıcılarını Windows makineleri ile paylaşabilir. Samba ile yapılabilecek dört şey vardır: 1. Linux dizin ve sürücülerini Windows makineleri ile paylaştırmak. 2. Windows dizin ve sürücülerini Linux makineleri ile paylaştırmak. 3. Linux yazıcılarını Windows makineleri ile paylaştırmak. 4. Windows yazıcılarını Linux makineleri ile paylaştırmak. 10.3.1. Kurulum Samba paketini kurmak çok kolaydır. Basitçe, belirtilen adreslerden kaynağı edinin, ve içerisindeki README dosyasını okuyun. Basamak basamak SMB yi kuracağınızı açıklayan docs/INSTALL.txt dosyası da mevcuttur. Paketi derledikten sonra daemonları /usr/sbin dizinine ve derlenmiş dosyaları /usr/bin dizinine kopyalayın. man sayfalarını da /usr/local/man dizinine kopyalamayı unutmayın. Samba paketini derlerken, yapılandırma dosyası olan smb.conf dosyasının yerini Makefile da belirtmeniz gerekmektedir. Bunun yeri genellikle /etc dizinidir, fakat istediğiniz yeri de belirtebilirsiniz. Burada sizin smb.conf dosyasının yerini /etc/smb.conf log dosyasının yerini /var/log/samba-log.%m ve lock dosyasının yerini ise /var/lock/samba olarak belirlediğinizi tahmin ediyoruz. smb.conf yapılandırma dosyasını kurunuz. Samba ‘nın kurulduğu dizine gidiniz. examples/simple altdizinine bakınız ve README dosyasını okuyunuz. Bu dizinde bulunan smb.conf dosyasını /etc dizinine kopyalayınız. DİKKAT, Eğer Linux dağıtımlarından birisini kullanıyorsanız Samba halihazırda kurulu olabilir ve /etc dizininde de yapılandırma dosyasına sahip olabilirsiniz. Bunlara göz atmadan başka bir iş yapmayınız. Eğer yapılandırma dosyanız yok ise, herhangi bir yere koyunuz ve bu dosyaya /etc dizininde aşağıdaki gibi sembolik bağlantı yapınız ln -s /smb.conf/dosyasına/dizin /etc/smb.conf 10.3.2. Daemonun Çalıştırılması İki SMB daemonu /usr/sbin/smbd ve /usr/sbin/nmbd dir. Samba daemonlarını inetd den veya kendi başına süreçler olarak çalıştırabilirsiniz. Eğer kalıcı bir dosya sunucusu (file server) yapılandırıyorsanız, inetd den çalıştırmalısınız ki, öldüğünde tekrar başlasın. Eğer geçici olarak çalıştırmak istiyorsanız /etc/rc.d/init.d den çalıştırabilirsiniz, hatta isteğe bağlı olarak komut satırından da çalıştırabilirsiniz. inetd den daemonu çalıştırmak istiyorsanız, aşağıdaki paragrafı /etc/rc.d/inet.d ye yazınız: # SAMBA NetBIOS servisleri (PC ler için dosya ve yazıcı paylaşımı) netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd Ve aşağıdaki komutu çalıştırarak inetd yi tekrar çalıştırın kill -HUP 1 Daemonu sistem başlangıç betiğinden çalıştırmak istiyorsanız aşağıdaki betiği /etc/rc.d/init.d/smb dosyası olarak kaydediniz ve yorum satırlarındakilere sembolik bağlantı kurunuz. #!/bin/sh # # /etc/rc.d/init.d/smb - SMB hizmetlerini başlatır ve durdurur. # # Aşağıdaki dosyalar bu dosya ile sembolik olarak ilişkilendirilmelidir : # symlinks: /etc/rc.d/rc1.d/K35smb (SMB hizmetlerini kapanışta öldürür) # /etc/rc.d/rc3.d/S91smb (SMB hizmetlerini çok kullanıcılı ortamda # başlatır) # /etc/rc.d/rc6.d/K35smb (SMB hizmetlerini tekrar açılışta öldürür) # # Kaynak fonksiyon kütüphanesi. . /etc/rc.d/init.d/functions # Kaynak ağ ortamını yapılandırma. . /etc/sysconfig/network # Ağın çalışıp çalışmadığını kontrol. [ ${NETWORKING} = "no" ] && exit 0 # Bizim nasıl çağrıldığımıza bak. case "$1" in start) echo -n " SMB Hizmetleri başlatılıyor: " daemon smbd -D daemon nmbd -D echo touch /var/lock/subsys/smb ;; stop) echo -n "SMB hizmetleri durduruluyor: " killproc smbd killproc nmbd rm -f /var/lock/subsys/smb echo "" ;; *) echo "Kullanım: smb {start|stop}" exit 1 esac 10.3.3. Genel Yapılandırma (/etc/smb.conf) Linux ta Samba ‘nın yapılandırılması /etc/smb.conf adlı dosya ile yapılmaktadır. Bu dosya sizin hangi kaynakları dış dünya ile paylaşacağınızı ve hangi kısıtlamaları koyacağınızı belirler. Aşağıdaki paragraflar linux kaynaklarını Windows makineleri ile nasıl paylaştırılacağını açıkladığından, buradaki smb.conf dosyası mümkün olduğu kadar basit tutulmaya çalışılmıştır. Dosyadaki her bir bölüm bir başlıkla başlar; örneğin global (tümü), homes (ev dizinleri), printers (yazıcılar) gibi. Homes bölümü, uzaktaki kullanıcıların sadece linux makinedeki ev dizinlerine ulaşmasına izin verir. Eğer, Windows kullanıcısı Windows makineden buradaki paylaşıma bağlanmaya çalışırsa, bu kullanıcı linux makinedeki ev dizinine bağlanır. Bunun yapılabilmesi için bu kullanıcıların linux makinede kullanıcı hakkı olması gerektiğini unutmayın. Aşağıdaki örnek smb.conf dosyası uzaktaki kullanıcıların, yerel makinedeki ev dizinlerine ulaşmaya ve temporary dizinine yazmaya izin verir. Windows kullanıcısının bu paylaşımı görebilmesi için, linux makinesi yerel ağda bulunmak zorundadır. Kullanıcı, File Manager veya Windows Explorer kullanarak bu dizine rahatlıkla ulaşır. ; /etc/smb.conf ; ; Bu dosyada değişiklik yaptıktan sonra hizmetçiyi tekrar başlatmayı unutmayın, ; örneğin: ; /etc/rc.d/init.d/smb stop ; /etc/rc.d/init.d/smb start [global] ; Eğer guest (misafir) kullanıcı istiyorsanız yorumu kaldırınız (";" işaretlerini) ; guest account = nobody log file = /var/log/samba-log.%m lock directory = /var/lock/samba share modes = yes [homes] comment = Ev dizinleri browseable = no read only = no create mode = 0750 [tmp] comment = Geçici dosya alanı path = /tmp read only = no public = yes 10.3.4. Linux Kaynaklarını Windows Makineler ile Paylaşmak Yukarıdaki basit smb.conf dosyasında olduğu gibi, linux kaynaklarını Windows kullanıcıları ile paylaşmak oldukça kolaydır. Her şeyi Samba ile kontrol edebilirsiniz. İşte size bazı örnekler: Bir dizini herkese açık olarak paylaştırmak istiyorsanız, yukarıdaki smb.conf dosyasına aşağıdaki gibi bir bölüm ekleyiniz. [public] comment = Herkese Açık path = /home/public public = yes writable = yes printable = yes Not: /home dizininde public altdizinini açmayı unutmayın. Yukarıdaki dizini herkes için sadece okunabilir fakat staff grubuna ait kullanıcılar için yazılabilir hale getirmek için aşağıdaki değişikliği yapmalısınız. [public] comment = Herkese Açık path = /home/public public = yes writable = yes printable = no write list = @staff 10.3.5. Windows Kaynaklarını Linux Makineler ile Paylaşmak UNIX için SMB istemcisi Samba dağıtımı ile birlikte gelmektedir. Bu konut satırında çalışan ftp-benzeri bir istemcidir. Bu uygulamayı Windows hizmetçisi ile linux istemcisi arasında dosya transferi yapmak için kullanılır. Hangi makinede hangi paylaşımların olduğunu görmek için şunu çalıştırın /usr/sbin/smbclient -L host Burada 'host', görmek istediğiniz makinenin ismidir. Bu size o makinedeki size paylaştırılan kaynakların listesini verecektir. Örneğin /usr/sbin/smbclient -L arzu Bu size aşağıdakine benzer bir çıktı verecektir: Added interface ip=144.122.45.123 bcast=144.122.45.255 nmask=255.255.255.0 Got a positive name query response from 144.122.45.126 ( 144.122.45.126 ) Server time is Mon Apr 20 11:49:00 1998 Timezone is UTC-0.0 security=share Server=[ARZU] User=[] Workgroup=[SCENET] Domain=[SCENET] Sharename Type Comment --------- ---- ------- IPC$ IPC Remote Inter Process Communication NOVELL Disk NWCLIENT Disk WIN95TR Disk This machine has a browse list: Server Comment --------- ------- ALI ALI ERYILMAZ ARZU ARZU OZDEMIR AYKUT AYKUT INAN ISERI CEREN CEREN TEKKAYA HAKAN Hakan's Computer MBASER Samba 1.9.18p3 TARKAN TARKAN pasanin computeri This machine has a workgroup list: Workgroup Master --------- ------- GSL ISIK SCENET ARZU İstemciyi kullanmak için şunu çalıştırınız: /usr/sbin/smbclient service Burada 'service' makinenin ve paylaşımın ismidir. Örneğin, mbaser isimli makinedeki, public adı ile paylaşılan dizine ulaşmak istiyorsanız, bu \mbaserpublic olmalıdır. Fakat kabuk kısıtlamalarından dolayı aşağıdaki gibi çalıştırmalısınız. Burada 'mypasswd' den kasıt şifrenizdir. /usr/sbin/smbclient \\mbaser\public mypasswd smbclient prompt unu göreceksiniz: Added interface ip=144.122.45.123 bcast=144.122.45.255 nmask=255.255.255.0 Server time is Mon Apr 20 15:02:43 1998 Timezone is UTC-0.0 Password: Domain=[SCENET] OS=[Unix] Server=[Samba 1.9.18p3] security=user smb: > 10.3.6. Linux Yazıcısını Windows Makineler ile Paylaşmak [printers] comment = Bütün Yazıcılar path = /var/spool/samba browseable = no printable = yes Samba ile UNIX makinelere bağlı yazıcıların Windows makineleri ile paylaştırılmasında bazı sorunlar vardır. Bunlardan birisi, Windows makinelerin yazıcıları görmesidir. Bunu sabitlemek için, Samba dağılımı ile gelen docs/WinNT.txt dosyasına bakınız. Diğerleri ise şifrelerle ilgilidir. 10.3.7. Windows Yazıcısını Linux Makineler ile Paylaştırmak Windows makineye bağlı bir yazıcıyı paylaşmak için, şunları yapmalısınız: a) /etc/printcap dosyasında gerekli değişiklikleri yapmalısınız. b) /usr/bin/smbprint betiğine sahip olmalısınız. Bu Samba kaynağı ile birlikte gelmekle birlikte bütün derlenmiş dağıtımlarda bulunmayabilir. Bir kopyası aşağıda verilecektir. c) Eğer ASCII dosyalarını Postscript haline dönüştürmek istiyorsanız, nenscript veya bir benzerine sahip olmalısınız. nenscript genellikle /usr/bin dizininde bulunur. d) Samba ile çıktı almak için işler kolaylaştıracak bir betik isterseniz, Perl ile yazılmış bir betiği aşağıda bulacaksınız. Aşağıda tanımlı HP 5MP yazıcısı /etc/printcap dosyasında tanımlamak için şu komutlar kullanılır: cm -yorum lp -çıktı için yazılacak olan aracın ismi sd -yazıcı için spool dizini af -hesaplama dosyası mx -en büyük dosya boyutu (sınırsız için sıfır '0') if -girdi filtresinin ismi (betik) # /etc/printcap # # smbprint ile //aykut/HP # lp: :cm=Aykut'un makinasındaki HP yazıcı: :lp=/dev/lp1: :sd=/var/spool/lpd/lp: :af=/var/spool/lpd/lp/acct: :mx#0: :if=/usr/bin/smbprint: Spool ve heasp dizinlerinin var ve yazılabilir olduğunu kontrol ediniz. 'if' satırı smbprint betiğinin nerde olduğunu göstermektedir. /dev dizinindeki doğru araca yazdırdığınızı kontrol ediniz. Bir sonraki basamak ise smbprint betiğinin kendisidir. Bu genellikle /usr/bin dizinine konulur ve Andrew Tridgell (Samba ‘nın yazarı) tarafından yazıldığı söylenir. Samba kaynak dağılımı ile birlikte gelir, fakat bazı derlenmiş dağılımlarda bulunmayabilir, bu yüzden buraya tekrar alınmıştır. 10.4. Appletalk Desteği Aynı ağ üzerinde yer alan Apple Makintosh makineleri ile aynı disk ve yazıcıların paylaşımını sağlayan pakete netatalk ismi verilir. AppleTalk için daha fazla bilgiye ve disk ile yazıcı paylaşımı yapan pakete http://www.umich.edu/~rsug/netatalk adresinden erişilebilir. 11. Desteklenen Ağ Teknolojileri 11.1. Güvenlik Duvarı Bir güvenlik duvarı, bilgisayarınızı ya da bilgisayar ağınızı dışarıdan gelebilecek davetsiz misafirlere karşı korumak amacıyla hazırlanmış programdır. Güvenlik duvarı genel olarak bu amaçla kullanılsa da ağın yapılandırılması üzerinde kolaylaştırıcı etkileri vardır. Örneğin, kullanıcıların her birinin haberi olmadan İnternet bağlantılarını yerel ağ üzerindeki proxy ’e yönlendirebilirsiniz. Ya da yerel ağ üzerinde başka bir e-posta sunucusu olmasını istemiyor olabilirsiniz. Bu durumda yerel ağa gelen tüm 25.port isteklerini daha önce e-posta sunucusu olarak görev verilen tek bir makineye yollanabilir. Güvenlik duvarının bulunduğu makine üzerinde bazı önlemler almak gerekiyor. Tavsiye edilen, kullanıcıların bu sistemi erişimine sahip olmamalarıdır. Bununla birlikte her Linux makineye uygulanabilecek birkaç basit güvenlik önlemi de almak gereklidir. Örnek olarak, netstat, systat, bootp ve finger servislerini /etc/inet.conf dosyasından (açık ise) kapatın ve son güncel çekirdeği kullanın. 11.2. IP Accounting IP Accounting yardımıyla makinenin üzerinden geçen paketlerin istatistiğinin tutulması mümkündür. Özellikle hangi port üzerinden, toplam uzunluğunu da alabileceğimiz kaç paket geçtiğini öğrenebiliriz. IP Accounting, Linux ‘un yönlendirici olarak kullanıldığı durumlarda anlam kazanır. Sistem üzerinden geçen paketlere ait tüm istatistikler /proc/net/ip_acct dosyasında tutulur. Bu yüzden /proc sanal dosya sisteminin de sistemde tanımlı olması gerekiyor, normalde kurulum sırasında bu dizin zaten yerleşik olarak dosya hiyerarşisinde yerini alır. IP Accounting özelliği, çekirdeğin ağ üzerindeki trafiğin analizini yapmasını sağlar. Toplanan veriler, makine açıldığı andan itibaren kar üzerinden geçen paket ve toplam bayt sayısıdır. Bir konfigürasyon dosyası yardımıyla bu bilgiler belirli sınıflara ayrılabilir. Çekirdeğin derlenmesi aşamasında IP Accounting seçeneği kullanılmalıdır. * Networking options -------------- IP:accounting (CONFİG_IP_ACCT) [n/Y/?]Y Çekirdeğin derlenmesinden ve makinenin yeni çekirdekle açılmasından sonra, ipfwadm komutu ile IP accounting işlemlerine başlanabilir. 11.3. ATM Teknolojisi Özellikle sesli ve görüntülü iletişim alanında en yeni ve gelecek vaat eden teknolojilerden biri olan ATM Linux tarafından destekleniyor. Ancak sınırlı sayıda ATM kartı tanınıyor. Daha geniş bilgi için htptp://lrcwww.epfl.ch/linux-atm 11.4. DHCP Bu protokol yardımıyla herhangi bir makine, kendi ağ bilgilerini uzaktaki bir DHCP sunucudan alabilir. Ağ yönetimini kolaylaştırdığı için DHCP yavaş yavaş büyük sistemlerde ve özellikle hareketli donanımların yoğun olduğu yerlerde ağırlığını hissettirmeye başladı. Linux ‘un DHCP desteği Red Hat, SuSe gibi belli başlı dağıtımlarda kurulum esnasında geliyor. Ancak Linux ‘ta DHCP sadece ethernet ağlar üzerinde desteklenebiliyor. 11.5. IP Aliasing Tek ağ arabirimi (örneğin ethernet veya seri bağlantı) kartı için birden fazla IP numarası gereken durumlarda IP Aliasing kullanılır. Genellikle İnternet servis sağlayıcıları, müşterilerinin FTP ve WWW sunucularını tek makine üzerinde toplamak için bu yola başvururlar. Bu sayede bir makineye atanmış birden fazla WWW adresi ve her birinin birbirinden bağımsız Web sayfaları farklı makinelerdeymiş gibi kullanılabilir. Her sanal ağ adresi için bir arayüz tanımlamalısınız. Bu sayede aynı bilgisayarda 255 adede kadar farklı IP ‘lere sahip sanal makineye izin verilebilir. Her sanal arabirim, bağlı bulunduğu gerçek arabirim üzerinden işlem görür. Ancak şu da unutulmamalıdır ki, tek bir IP üzerinden de, farklı sanal IP ‘lere ihtiyaç kalmadan istediğiniz kadar alan adı (ya da web sayfası) için servis verebilirsiniz. IP Aliasing özelliğini eklemek için iki adıma ihtiyaç vardır. Birincisi ifconfig komutu ile ethernet kartına bir IP numarası vermek. # ifconfig eth0:0 192.168.10.15 Yukarıda ki örnekte 192.168.10.15 IP numarasına gelen istekleri birinci ethernet kartının almasını sağlamak macıyla bu ethernet kartına bilgi verdik. İkinci adım olarak yönlendirme tablosunu oluşturmak gerekecektir. Route komutuyla 192.168.10.15 kaynak adresine sahip tüm paketler eth0:0 tarafından yakalanacaktır. # route add -host 192.168.10.15 dev eth0:0 eth0:0 kartına ait ifconfig çıktısını alırsak, # ifconfig eth0:0 eth0:0 Link encap:10Mbps Ethernet Hwaddr 01:01:01:58:B6:AA inet addr:192.168.10.15 Bcast:192.168.18.255 Mask:255.255.255.0 UP BROADCAST RUNNİNG MTU:1500 METRİC:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 IP Aliasing ile tanımlanmış ethernet kartının yönlendirme tablosu da aşağıdaki gibi olacaktır. Artık birinci ethernet kartı hem kendi olağan IP numarasını, hem de 192.168.10.15 numaralı IP adesini tanıyabilir. Destinatıon Gateway Genmask Flags Metric Ref Use Iface 192.168.10.15 * * UH 0 0 0 etho:0 Apache Web sunucusu, IP Aliasing özelliğini destekler ve farklı arabirimlere ya da sanal adreslere gelen http isteklerine farklı yanıtlar verebilir. 12. DİĞER TEKNOLOJİLER 12.1. Telsiz Ağlar Telsiz ağlar son zamanlarda popülerliğini artırmış teknolojik bir gelişmedir. Telsiz ağ dediğimiz zaman aklınıza, aralarında kablo gibi, herhangi bir fiziksel bağlantı olmayan donanımdan bağımsız ağlar gelebilir. Gerçekte telsizle bağlı cihazlar bilgisayar olmayabilir, aralarındaki uzaklık kilometreler boyunca olabilir. Genel olarak telsiz ağlar, eğer bilgisayarlar birbirinden uzakta ise ve sürekli yer değiştirmek zorunda ise kullanılırlar. Telsiz ağ teknolojisinde genellikle radyo frekansı kullanılır, bazı durumlarda eğer hem alıcı hem de verici birbirini görüyorlarsa uzak mesafelerden çok yüksek hızda mikrodalga ve kızılaltı ışıma yardımıyla da haberleşme yapılabilir. Telsiz ağların, klasik yöntemlere karşı birtakım avantaj ve dezavantajları bulunuyor. En önemli avantajı kablo sorununu neredeyse sıfıra indirmesi. Telsiz modemler bilgisayarın seri portuna takılabiliyor veya bir PCMCIA kartı ile bağlantı sağlanabiliyor. 12.2. IP Masquerading ( IP Gizleme ) IP gizleme, bir ağın arkasındaki birden fazla makinenin bir Linux sunucu üzerinden dışarıya bağlanmasıdır. Tüm makineler dış dünyaya aynı IP adresine sahipmiş gibi görünürler. IP Masquerading ‘in NAT ’dan ( Network AddressTranslation ) farkı, IP adres kısıtlamasının bulunmamasıdır. Linux, tek IP üzerinden 4096 ayrı bilgisayarı İnternet ‘e taşıyabilir. Örnek olarak İnternet ‘e bağlandınız. İnternet servis sağlayıcınız size sadece bir IP numarası verdi ve odanızda İnternet ’e bağlamayı bekleyen birden fazla bilgisayar var. Servis sağlayıcıya her makine için para ödeyip bir hesap ismi almaktansa odadaki tüm makineler bir Linux ve telefon bağlantısı yardımıyla İnternet ‘e erişebilirler. IP .Masquerading kullanabilmek için çekirdekte bu desteğin verilmesi gerekiyor. Bunun için IP Forwarding, IP Firewalling ve IP Masquerading seçenekleri açık tutulmalıdır. IP Masquerading Ayarları Yapmanız gereken işlem, öncelikle /etc/rc.d/rc.local dosyasının sonuna, aşağıdaki satırları eklemektir. Depmod -a /sbin/insmod ip_masq_ftp /sbin/insmod ip_masq_quake /sbin/insmod ip_masq_cuseeme /sbin/insmod ip_masq_irc /sbin/insmod ip_masq_raudio /sbin/insmod ip_masq_vdolive Bu satırlar gerekli modülleri çekirdeğe eklemektir. Şimdi IPM (IP Masquerading Modül) çalıştırmak içinaşağıdaki ipchains komut setinden yararlanacağız. Bu satırları yine aynı dosyaya ekleyin. Linux açılırken aynı satırların çalışması gereklidir, bu nedenle mutlaka her açılışta okunan rc.local dosyasını seçtik. İpchains -P forward DENY İpchains -A forward -s 192.168.1.0/24 -j MASQ Yukarıdaki 192.168.1.0 ağ adresi, ağ üzerinde bulunan bilgisayarlara aittir. Linux tarafında yapmadığımız son bir işlem daha var. IP Masquerading, pakelerin bir arayüzden (modem) diğer arayüze (ethernet kartı) taşınmasını öngördüğü için çekirdekte IP Forwarding (IP yönlendirme) desteğine de ihtiyaç vardır. Yapılması gereken sadece /etc/sysconfig/network satırında bulunan FORWARD_IPV4=false satırını FORWARD_IPV4=true yada FORWARD_IPV4=1 haline getirmek . makine açılırken IP paket yönlendirme desteğide çekirdeğe eklenecektir. İnternet ‘e çıkmak için Linux ‘un arkasında Windows95/98 kullanıyorsanız, yapmanız gereken işlemler de çok basittir. Ethernet denetleyicisini doğru kurduğunuzdan ve denetleyicinin ethernet kartını tanıdığından emin olun. Ardından; Start>Settings>Control Panel>Network>TCP/IP ( Başlat>Ayarlar>Denetim Masası>Ağ> TCP/IP) menüsüne girin. Buradan ethernet kartının ağ geçidini (Gateway) 192.168.1.1 olarak tanımlayın. DNS yapılandırması için İnternet servis sağlayıcınızdan gerekli bilgileri alabilirsiniz. Ardından Windows ‘u yeniden başlatın. Linux sunucunun arkasından sadece Windows değil, her türlü işletim sistemini İnternet ‘e çıkartabilirsiniz. Bunun için ağ içindeki işletim sistemleri üzerinde hiçbir değişikliğe gidilmesine, Windows NT ‘dekine benzer şekilde makineler üzerinde ek program yüklenmesine gerek kalmaz. 12.3. IP Multicasting Geleneksel IP yönlendirmesinin altında bir gönderen (sunucu) bir de alan (istemci) yatar. IP multicasting teknolojisinde ise bir sunucudan gönderilen mesaj birden çok noktaya ulaşabilir. Ayrıca bir yayının ne kadar uzağa (yerel ağ, kampüs, şehir vs.) ulaşabileceği de sınırlanabilir. Özellikle ses ve görüntü iletişiminde kullanılan IP multicasting teknolojisi Linux altında beklenildiği kadar yaygınlaşamamıştır. 12.4. IP Tünelleme ( IP Tunnelling) Kurumsal özel ağların ( Virtual Private Network - VPN ) başvurduğu üç teknoloji; yönlendirme, şifreleme ve tünellemedir. Bir urum Intranet ‘inden aynı kurumun yine Internet üzerindeki başka bir şubesine gönderilen paketin yerine güvenli bir şekilde ulaşması için şifreleme, her ağ paketinin varış adresine, doğru arayüzlerden geçerek iletilmesi için yönlendirme ve farklı protokol kullanan ağların yabancı paketleri tanıyabilmesi için tünelleme kullanılır. Aynı firmanın iki şubesi arasında IPX ağı kurmak yerine yardımcı bir araç olarak İnternet kullanılabilir. Ancak yönlendiriciler IPX paketlerini tanımayacaklardır. Ancak tünelleme yardımıyla bir Linux makinese gelen IPX paketleri, IP paketlerinin içine konularak karşı sisteme gönderilir. Karşıdaki makine bu IP paketinin içindeki IPX paketlerini ayrıştırır ve yerel ağa dağıtır. Tünelleme, genellikle yönlendiriciler tarafından tanınmayan bir paketin, bu birimler tarafından tanınan başka bir paket içinde yollanması anlamına gelir. Bir paketi diğer bir paketin içine koyarak taşınması işlemine “encapsulation” adı verilir. 12.5. Squid Proxy Bir proxy, yerel ağ ile dış dünya arasında yer alan ve başta bilginin güvenli bir şekilde temini ve paketlerin depolanmasını sağlayan bir programdır. Proxy önbelleği yardımıyla yerel ağdaki istemci, dışarıdaki bir sunucuya doğrudan bağlanmadan yine yerel ağdaki sunucu üzerinden servis alır. Proxy sunucu bir istek aldığı anda eğer bu isteği kendi disk alanından karşılayabiliyorsa istemciye doğrudan gönderir, aksi halde asıl sunucuya bağlanır ve bu sunucudan aldığı bilgileri istemciye yollar. Bu sırada yolladığı paketleri, ilerde gelebilecek istekleri karşılayabilmek amacıyla depolar. Böylelikle birkaç bilgisayarın aynı anda bilgileri almak için mevcut band genişliğini kullanmaları önlenmiş olur. Ayrıca yerel ağdan daha hızlı bilgi transferi gerçekleştirmiş olur. İstatistikler, proxy kullanan ağlarda performans artışının %40 ‘lara kadar ulaştığını göstermiştir. Özellikle kısıtlı band genişliğine sahip organizasyonlarda bir proxy sisteminin kurulumu büyük önem taşır. Linux ‘ta squid adlı proxy yazılımı sıkça kullanılmaktadır. Proxy, ipfwadm ile birlikte kurulursa kullanıcıların haberi olmadan ağdan dışarıya gidecek belirli paketlerin proxy ‘ye yönlendirilmesi sağlanabilir. Squid ‘in şeffaf proxy özelliği yardımıyla cache alan bir sunucunun yerel ağda ya da bir servis sağlayıcıda çalışması mümkündür. 13. AĞ DENETİMİ Ağ yöneticisinin isteklerinin başında ağ trafiğinin sorunsuz bir şekilde işlemesi gelir. Eğer ağın denetimi uzaktan yapılabiliyorsa bu sistem yöneticisine hem zamandan hem paradan tasarruf sağlar. Linux altında periyodik olarak ağ denetimi yapan pek çok program vardır. Bunlardan bir kısmı Web ara yüzü ile yöneticiyi uyarırken, bir kısmı e-posta ile son durumu bildirir. Ağ denetleme yazılımlarının veritabanlarına girilen ağ ve makine adresleri yazılım tarafından sürekli kontrol altında tutulur. Uzaktaki ağ ve makinelerin kontrol edildikleri genellikle servislerin (http, FTP, POP^, SMTP) çalışıp çalışmadığı, işlemcinin yükü, disk kullanımı gibi sistemin hayati organlarıdır. Örnek olarak disk kullanımını uzaktan denetleyen bir yazılım, diskin %90 ‘ı dolduğu zaman uyarı mesajı, %95 ‘i dolduğu zaman alarm mesajı verebilir. Hemen hemen tüm denetleme yazılımları istatistik verebilirler. Böylece bir gün içinde kaç makinenin kaç saat açık kaldığı ya da FTP servisinin %kaç verimle çalıştığı öğrenilebilir. Aşağıda örnek bir ağ denetleyicinin (Angel Network Monitor) ekran çıktısı görülüyor. Last updated: Fri App 3 14:15:03 1998 Hostname Service Error message Lux01 Disk Probable command timeout Lux01 FTP Connectio refused or timeout Lux01 Listener Connectio refused or timeout Lux01 Load Check_load Probable command timeout Lux01 SMTP Connectio refused or timeout mars03 Disk Mount point /u is 94% full venus02 Load Load 2.45 exceeds 2 Çoğu denetim yazılımlarının bir Web arabirimi vardır, böylece grafiksel sunumun avantajlarından faydalanmak mümkün olur. Genellikle küçük bir geniş ağ (örneğin bir üniversite kampüsü ya da büyük bir firmanın bilgisayar sistemleri ) tek bir yazılım tarafından denetlenebilir. 14. NIS NIS Network Information Service kelimelerinin baş harflerinden oluşmaktadır. Amacı bir ağ üzerindeki bütün makinalara, bütün ağ tarafından bilinmek kaydıyla bilgi akışı sağlanmaktadır. NIS tarafından dağıtılacak bilgiler, hesap isimleri, şifreler, kullanıcın dizinleri ve grup bilgileri olabilir. NIS yardımıyla, örneğin size ait şifre NIS veri tabanında kayıtlı ise, ağ üzerinde NIS istemci programlarını çalıştıran bütün makinalara girebilirsiniz. NIS’in biraz daha gelişmiş bir sürümü olan NIS+ , verileri korumak amacıyla şifreleme yöntemi kullanır. Bu avantajına rağmen NIS+ ‘ın kurulumu ve kullanımı daha zordur. 14.1. NIS’in Çalışma Prensipleri Bir ağ üzerinde en az bir makine NIS sunucusu olmak zorundadır. İster herbiri farklı NIS “domain” lerine hizmet eden çoklu NIS sunucularına sahip olabilirsiniz., ya da beraber çalışan NIS sunucularınız olur. Bu durumda sunuculardan biri ana NIS sunucusu, diğeri ise ikincil (slave) NIS sunucusu olabilirler. İkincil sunucular sadece NIS veritabanının kopyalarına sahiptirler ve bu kopyaları ana NIS sunucusunda bulunan veri tabanlarında değişiklik yapıldığı zaman ana sunucudan alırlar. Ağ üzerinde bulunan makine sayısına ve ağ güvenliğine bağlı olarak bir veya daha fazla ikincil sunucu kurulabilir. Bir NIS sunucusu kapandığında veya çok yavaş cevap verdiğinde, diğer NIS istemcileri çalışan veya daha hızlı bir sunucu bulmaya çalışacaktır. NIS veritabanları DBM adı verilen yapılardır ve bu yapı ASCII veritabanlarından çıkarılır. Ana NIS sunucusu hem ASCII hemde DBM veritabanlarını içermelidir. NIS sunucusu, ASCII yapıdaki /etc/passwd gibi veri tabanlarını DBM veritabanına çevirerek /var/yp dizini altında tutar. İkincil sunucular NIS haritalarında oluşacak değişikliklerden yppush programı aracılığıyla haberdar edilecek ve veritabanlarını senkronize etmek için otomatik olarak gereken değişiklikleri alacaklardır. NIS istemcilerinin bunu yapmasına gerek yoktur çünkü sunucudaki DBM veritabanlarında bulunan bilgileri okumak için devamlı olarak NIS sunucusu ile bağlantı kurmaktadır. İkincil sunuculara gayet büyük ağlar üzerinde ihtiyaç duyulur. 14.2. NIS İstemcisi NIS’i kurmak için herşeyden önce /usr/sbin/rpc.portmap programını çalıştırmanız gerekir. Bazı Linux dağıtımları (örneğin Slackware) bu daemon’u çalıştırmak için gereken kodu /etc/rc.d/rc.inet2 dosyasında barındırırlar. RPC portmapper (map & portmap ) programı bir sunucu olup RPC program numaralarını TCP/IP ( veya UDP/IP ) protokol port numaralarına çevirir. RPC portmapper o makine üzerinde RPC çağrıları (NIS istemci yazılımının yaptığı iş ) RPC sunucularına (NIS sunucuları gibi) yapılabilmesi için çalışıyor olmalıdır. Bir RPC sunucusu başladığı zaman, portmap’a hangi port numarasını dinlediğini ve hangi RPC program numaralarına hizmet edeceğini bildirir. Bir istemci verilen bir program numarasına RPC çağrısı yapmak istediği zaman, ilk önce sunucu makine üzerindeki portmap ile bağlantı kurarak RPC paketlerinin nereye gönderileceği belirler. Normal olarak, bazı RPC sunucuları inetad(8) tarafından başlatılır, bu yüzden portmap, inetd’den önce çalıştırılmalıdır. NIS kurmadan önce, yukarıda da belirtildiği gibi iki durumu değerlendirmek zorundasınız. Ya sizin makinanız halihazırdaki NIS sunucularının bulunduğu bir ağın parçası olacaktır., ya da henüz ağınızdaki herhangi bir NIS sunucusu yoktur. Birinci durumda, sadece istemci programlara (ypbin, ypwhich, ypcat, yppoll, ypmatch ) ihtiyacınız vardır. En önemli program ypbind’dır. Bu programı her zaman çalıştırıyor olmalısınız. Ypbind çalışır çalışmaz, makinanız bir NIS istemcisi durumuna gelir. İkinci durumda, eğer NIS sunucularınız yoksa, bir de NIS sunucularınız yoksa, bir de NIS sunucu programına (ypserv) ihtiyacınız vardır. 14.3. NIS İstemcisi Kurulması Slackware dağıtımıyla gelen NIS yazılımını daha önce kurmamışsanız, sisteminize yükleyin. NIS istemcisi ypbind dışındaki çalıştırılabilir dosyalar (ypwhich, yppoll, ypmatch) bütün kullanıcılar tarafından erişilebilir bir dizinde bulunmalıdır. Öncelikle yapılması gereken ypbind’ı test etmektir. Bunun için, Domain adınızı belirlediğinizden emin olun. Bunun için, /bin/domainname-yp nis.domain /bin/domainname-yp > /etc/defaultdomain komutunu girin. İkinci satırda, sistemde daha sonra kullanılmak üzere /etc/defaultdomain dosyasına domain adı yazılır. Yukarıdaki komutta nis.domain herhangi bir kelime olabilir. Eğer çalışmıyorsa /usr/sbin/rpc.portmap programını çalıştırın. /usr/sbin//ybind programını çalıştırın. Rpcinfo -p localhost komutunu kullanarak ypbind programının portmapper’da servislerini kayıt ettirdiğini kontrol edin. Rpcinfo şöyle bir çıktı üretmelidir: 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100007 2 udp 637 ypbind 100007 2 tcp 639 ypbind 300019 1 udp 660 Ayrıca rpcinfo -u localhost ypbind komutunu da çalıştırabilirsiniz. Bu komut ise şöyle bir çıktı verir: Program 100007 version 2 ready and waiting En son olarak, makine ismi taramaları (host lookup) için /etc/host.conf dosyasında lookup sırasına NIS bilgisini ekleyin. Bu dosyada yer alan order satırını istediğiniz gibi düzenleyebilirsiniz. Daha fazla bilgi için resolv(8) sayfasına bakın. $ cat/etc/host.conf order nis, bind, hosts multi on bu noktadan sonra ypcat, vb gibi NIS istemci programları kullanılabilir. Örneğin, ypcat passwd komutu bütün NIS şifre veritabanını gösterir. Şimdi sistemde bulunan /etc/rc.d/rc.inet2 dosyasını ypbind programının sistem açılırken çalışması ve sisteminizin bir NIS istemcisi olarak görev yapması için değiştirmek gerekir. Ayrıca, /etc/rc.d/rc.inet2 dosyasını açın ve ypbind’ı çalıştıran ve domain adını belirleyen satırların başındaki # işaretini kaldırın. # domain if [ -r /etc/defaultdomain ] ; then domainname-yp cat /etc/defaultdomain fi # Start the ypbind daemon if [ -f $ {NET}/ypbind -a *d /var/yp ] ; then echo -n “ypbind” $ {NET}/ypbind fi NIS’i çalıştırmak için /etc/passwd/ ve /etc/group dosyalarının sonuna “+:*:0:0:::” satırını ekleyin. ypbind’ı öldürüp yeniden çalıştırın. 14.4. NIS Sunucusu Kurulması NIS aracılığı ile kullanıma açık olacak dosyalardan ihtiyacınız olanların belirlenmesi gerekir. /var/ypMakefile/ dosyasında gerekli ekleme/çıkartmaları yapın. NIS veri tabanını aşağıdaki satırı yazarak oluşturun: $ rpcinfo -u localhost ypserv program 100004 version 2 ready and waiting artık sunucu çalışmaktadır. 14.5. yppasswdd Programı NIS şifre veritabanının güvenilir olması için “yppasswd daemon” gereklidir. Kullanıcılar yppasswd komutu yardımıyla sunucu üzerindeki şifrelerini değiştirebilirler. yppasswd daemon (kısaca yppasswd) bu değişikliklerin doğru bir şekilde yapılmasını ve bu şifre değiştirme sürecini kontrol eden sunucudur. 14.6. NIS’in Kontrol Edilmesi NIS, birkaç basit komut ile kontrol edilebilir. $ ypwhich ypwhich NIS sunucusunun hangi makine olduğunu söyleyecektir. Bu komut ise $ ypmatch userid passwd (userid herhangi bir kullanıcının login adı olmak kaydıyla ) size bu kullanıcının NIS şifre dosyasındaki bilgilerini verir. ypwhich ve ypmatch programları NIS dağıtımı içinde gelirler. Bir NIS sunucusu kapandığı ve tekrar başladığı zaman ypbind aşağıdaki gibi bir mesaj ile başlayabilir: Yp_match:clnt_call:RPC:Unable to receive;errno= Connection refused Ve NIS veritabanında kayıtlı olanlar sisteme giremezler. root olarak sisteme girmeyi deneyin ve başarılı olursanız ypbind işlemini öldürüp yeniden başlatın. 15. NFS NFS ( Netwok File System), bir ağ üzerinden disklerin paylaşımını sağlamak üzere geliştirilmiştir. NFS sayesinde bir makinede yer alan belirli bir disk bölümü, başka makineler tarafından okunabilir veya yazılabilir. Bu işleme özellikle büyük organizasyonlarda, disk alanından tasarruf etmek için başvurulur. Her makinede aynı dosyalar, çalıştırılabilir programlar olması yerine bunlar tek sunucuda toplanır, diğer bilgisayarlar bu alanı ortaklaşa paylaşırlar. Paylaşılan dizin, sanki yerel makinenin diziniymiş gibi davranır. Kendi disk alanını paylaştıran makineye NFS sunucusu, bu diske erişim yapan makinelere de NFS istemci adı verilir. NFS kullanımının pek çok avantajı sayılabilir. Bunlar kısaca: Yerel bir işletmede kullanıcılar tek bilgisayar üzerindeki aynı disk alanını paylaşabilirler. Diğer bilgisayarlar açıldıktan sonra bu diskleri kendi dosya sistemlerine bindirebilirler. NFS ‘nin NIS ile birlikte kullanımı sayesinde bir kullanıcı herhangi bir makineye girip diğer kullanıcılarla birlikte aynı dosya yapısı ile çalışabilir. Paylaşım sayesinde büyük disk alanı isteyen programlar tek bir sunucuda toplanabilir ve bu sayede önemli miktarda diskten tasarruf sağlanabilir. Bir makine üzerinde yapılan değişiklik, her makinede yapılmış gibi olur. Böylece aynı yazılımı örneğin 20 bilgisayara yüklemek zorunda kalmazsınız. 15.1. Ağ Üzerinde Paylaşım NFS ‘nin çalışması,yerel bir diskin mount edilmesi kadar kolaydır. Örnek olarak NFS sunucusu olan aspendos makinesinde yer alan /home dizinini, yerel makinedeki /users dizinine yerleştirmek için: # mount -t nfs aspendos:/home /users kullanılır. mount, karşı makinenin erişim izinleri doğru olduğunu teyit ettiği anda bu işlemi gerçekleştirir. Sunucu ile istemci arasındaki mesaj alış-verişini mountd programı üstlenir. NFS kullanabilmek için çekirdekte NFS desteği olması şarttır. Çekirdeğin hangi dosya sistemini desteklediğini /proc dosya sistemi altındaki filesystems dosyasını okuyarak anlayabilmek mümkündür. Eğer aşağıdaki satırlarda nfs kelimesi geçiyorsa çekirdeğe NFS desteği verilerek derlenmesi gerekir. $ cat /proc/filesystems minix ext2 msdos nodev proc nodev nfs NFS için mount programının genel kullanımı şöyledir. Mount -t nfs < sunucu-adresiaylaşma-dizini > < yerel-dizin> -o Sistem açılırken /etc/fstab dosyasında yer alan bilgilerle uzak makinenin diski otomatik olarak paylaştırılabilir. Mount programı bazı seçenekleri destekler. Bu seçenekler -o yardımıyla komut satırında verilebildiği gibi /etc/fstab içinde de belirtilebilir. Her iki durumda da birden fazla seçenek kullanılırsa bunlar birbirlerinden virgülle ayrılırlar. Açılış sırasında news makinesindeki /usr/spool/news dosyasının yerel makinedeki /usr/spool/news dizini altına yerleştiren /etc/fstab satırı News: /usr/spool/news /usr/spool/news timeo=20 Şeklinde yazılır. NFS ile kullanılan timeo seçeneğinin karşısında yer alan sayı (saniyenin onda biri olarak), bağlantının kurulabilmesi için geçecek maksimum zamanı gösterir. Bu zamanın aşılması halinde sunucuyla bağlantı kesilir. 15.2. NFS Kurulumu Yerel makinenin sunucu olabilmesi için nfsd ve mountd programlarının çalıştırılması gerekir. Bu yazılımlar açılış esnasında aşağıda görülen /etc/rc.d/rc.inet2 dosyasından başlatılırlar. Telnetd, fingerd ve benzeri süreçlerin aksine bu iki program inetd tarafından yönetilmezler. Dikkat etmeniz gereken bir durum da nfsd ve muntd programlarının rpc.portmap programından sonra çalıştırılması gerektiğidir: İf [ -x/usr/sbin/rpc.mountd ]; then # ( rpc.mountd programi var ve çalistirilabilir mi ? ) /usr/sbin/rpc.mountd; echo -n “mountd” fi İf [ -x/usr/sbin/rpc.nfsd ]; then # ( rpc.nfsd programi var ve çalistirilabilir mi ? ) /usr/sbin/rpc.nfsd; echo -n “nfsd” fi Sunucunun hangi dizinlerini, hangi istemciler tarafından paylaşılabileceği /etc/exports dosyasında belirtilir. Örnek olarak bir exports dosyasının görünümü aşağıdaki gibidir: /home davul.cclub.metu.edu.tr, ordek.cclub.metu.edu.tr /usr/ftp (ro) /cdrom *.edu.tr Her satır, yerel makinede ki dizin ismi ile başlar, bu dizini mount etmeye izin verilen bilgisayar isimleri ile devam eder. Makine isimlerinde ? veya * joker karakterleri kullanılabilir. Dosyanın üçüncü satırı, sonu .edu.tr ile biten tüm makinelerin /cdrom dizinine ulaşabileceğini belirtir. Aynı dizini paylaşacak birden fazla makine adı, aralarında virgül konarak yazılabilir. Parantez içinde yer alan ro kelimesi, dizinlerin salt okunur mount edilmesi gerektiğini belirtir. Daha geniş bilgi için mount programının man dosyasına bakılabilir. 16. DNS (DOMAIN NAME SYSTEM-ALAN İSİMLENDİRME SERVİSİ) 16.1. Giriş Bilgisayar ağlarının günümüzde olduğu kadar yaygın olmadığı dönemlerde makine, sunucu, yazıcı vb. ağ üzerindeki cihazlara ilgili nümerik adresleri ile erişmek kullanıcılar için fazla zor değildi. İnternet ‘in beklenenden daha hızlı büyümesiyle birlikte artan kullanıcı ve ağ üzerindeki cihazlarla birlikte nümerik isimler yerine alfanümerik hatırlanması kolay bir yapı geliştirildi. Bu yapıya Alan İsimlendirme Sistemi adı verilmektedir. Genellikle kısaltılmış şekliyle DNS olarak da kullanılmaktadır. Alan isimleri verilirken alt isimler (subdomain) genelden özele doğru sıra izler. Örneğin, Türkiye Linux Kulanıcıları Grubu olarak ODTÜ ‘de yer alan kullanıcıların kullanabileceği alan adı, metu.linux.org.tr şeklindedir. Burada alt isim (.) ile birbirinden ayrılmıştır. En alt seviye olan ‘metu’ ODTÜ ‘de yer alan Linux kullanıcılarını, ‘linux’ Linux grubunu, ‘org’ Linux grubunun ticari kaygılar gütmeyen bir organizasyon olduğunu, ‘tr’ ise ISO tarafından belirlenen Türkiye ‘nin ülke kodunu ifade eder. En üst düzeydeki bazı alan isimleri aşağıda listelenmiştir. .com ticari kuruluşlar (commercial) .edu üniversite düzeyinde eğitim kurumları (educational) .k12 lise düzeyindeki eğitim kurumları .org ticari olmayan organizasyonlar .mil askeri kuruluşlar (military) .net ağ organizasyonları (network) .ülke kodu ISO tarafından belirlenen ülke kodu 16.2. TCP/IP Uygulamaları ve DNS Makinalara ait isimlerin nümerik adresleri yerine alfanümerik isimlerinin kullanılmasıyla birlikte DNS standart hale gelmiş olup Internet üzerindeki çoğu uygulamalarda doğrudan alan isimleri kullanılmaktadır. TCP/IP uygulamalarında ise alan isimleri günlük kullanımda IP (32-bitlik) adreslerinin yerini almış durumdadır. Örneğin, metu.linux.org.tr’a telnet bağlantısı yapabilmek için hem $telnet metu.linux.org.tr komutu $telnet 144.122.199.199 komutu yardımıyla ulaşabilirsiniz. Fakat herhangi bir şekilde ODTÜ’de yer alan metu.linux.org.tr sunucusunun IP adresinde değişiklik olursa yukarıdaki IP adresini kullanarak erişemezsiniz. Oysa IP adresi yerine metu.linux.org.tr sunucusuna bağlanırken alan adını kullanırsanız bu ve benzeri değişiklikler sizi etkilemez. Şimdi kabaca herhangi bir kullanıcının metu.linux.org.tr adresine bağlanmak istediğinde gerçekleşen DNS sorgusunun nasıl işlediğini ve Türkiye’deki yapıyı da anlatacak şekilde örnekleyelim. Örneğin, Amerika’da herhangi bir Internet Servis Sağlayıcısı’ndan (ISS) bağlantıyı yapan bir kullanıcı (.........) adresine bağlanmak istedi. Kullanıcının bu adresi tarayıcısına girmesinden itibaren öncelikli olarak kendi alan adı sunucusuna (name server) bu adrese karşılık gelen IP adresini bulmak için gerekli sorguyu yollayacaktır. Türkiye’nin alan adı sunucusunun knidos.cc.metu.edu.tr olduğu bilgisi alındığı andan itibaren sorguyu bu kez knidos.cc.metu.edu.tr sunucusuna gönderecek ve buradan da linux.org.tr alanına ait bilgilerin metu.linux.org.tr sunucusunda tutulduğunu öğrenecek. Nihayet son sorgu metu.linux.org.tr sunucusuna yollanacak ve buradan da (......) adresine karşılık gelen IP adresini öğrenecek. 16.3. BIND Konfigürasyonu BIND, Linux dağıtımlarının hemen hepsi ile gelen ve alan adı sorgularına yanıt veren yazılım paketidir. Açılımı Berkeley Internet Domain Name şeklindedir. Doğrudan Linux kurulu olan bir sunucu üzerindeki BIND konfigürasyonuna geçmeden DNS ile ilgili temel birkaç konudan bahsetmekte fayda var. DNS ile ilgili yazılımları istemci ve sunucu olarak ikiye ayırmak daha doğru olur: Sunucu, istemciden gelen sorgulara yanıt veren ve sürekli çalışan bir işlem olup BIND paketinden çıkan named yazılımı bu işi görür. İstemcilerse Linux dağıtımlarıyla gelen host, nslookup vb. programlar olup sorguyu yapan yazılımlardır. Bununla birlikte BIND konfigürasyonunda sıklıkla karşımıza çıkacak olan birkaç kavram aşağıda açıklanmaktadır. Yeri geldikçe diğer kavramalara da değinilecektir. primary name server O alana ait bütün bilgilerin bulunacağı sunucu olup bu amaçla konfigüre edilmiş sunucudur. “primary name server” bir alan için ancak bir tane olabilir. “primary name server” tanımlanırken, named.hosts, named.boot, named,rev ve named.cache gibi dosyalara ihtiyaç vardır. secondary named server O alana ait veritabanındaki bilgileri “primary name server” dan belirli aralıklarla alan sunucudur.belirli aralıklarla transfer edilen bu dosyalara zone-file adı verilir. “primary name server” dan alınabilecek yanıtların aynısı ““secondary name server” dan da doğru şekilde alınabilir. caching only name server Bu şekilde konfigüre edilen DNS sunucuları aynı sorguları “cache” de tutup bir sonraki sorgu için bir önceki aynı sorguya alınan yanıt kullanılır. Bir çok DNS sunucusu bu şekilde konfigüre ediliyor olmasına rağmen “caching only” sunucular her zaman sorgulara doğru yanıt vermeyebilirler. BIND paketi bütün Linux dağılımları ile gelir. BIND’ın yeni versiyonuna ihtiyaç duyduğunuzda Hata! Yeri imi tanımlanmamış. adresinden paketi transfer edebilirsiniz. Gerekli kurulumları yaptığınızda /usr /sbin dizini altına named binary dosyasını koyacaktır. Named konfigürasyonu ile ilgili dosyalar ve işlevleri aşağıda verilmektedir. named.boot Genel named parametrelerini ve o alana ait veritabanı bilgilerinin nerede olacağı belirtilir. named.cache Internet üzerindeki root domain sunucularının listesini içerir. named.local loopback adresine ait tanımları içerir. named.hosts O domain’e ait makine isimlerine karşılık gelen IP numaralarının bulunduğu dosya. named.reverse IP adresine karşılık gelen isimlerin listesinin bulunduğu dosya. Yukarıda belirtilen dosya isimlerinden named.boot dışındaki dosya isimleri genelde karşılaşılan isimler olduğu için kullanılmıştır. Bu dosya isimlerini istediğiniz gibi değiştirebilirsiniz. “named” konfigürasyonuyla ilgili kullanılan örnek dosyalar linux.org.tr alanının alan adı sunuculuğunu yapan metu.linux.org.tr makinesinde alınmıştır. (yani linux.org.tr ve metu.linux.org.tr aynı sunuculardır) named.boot Dosyası named.boot dosyası named programı çalıştığı zaman baktığı ilk konfigürasyon dosyasıdır ve /etc dizini altındadır. named, bu konfigürasyon dosyası ile diğer dosyalara veya DNS tanımlarının tutulduğu diğer dosyalara nasıl ulaşacağını öğrenir. Aşağıda linux.org.tr sunucusuna ait named.boot dosyasını göreceksiniz. ; ; boot file for name server ; directory /etc/namedb ;type domain source hosts/file backup file cache . root.cache primary linux.org.tr named.hosts primary 0.0.127.IN.ADDR.ARPA named.local forwarders 144.122.199.20 named.boot dosyasında yer alan satırlara kısaca göz atacak olursak ; directory named.boot dosyasında belirtilen diğer dosyaları hangi dizin altında named programının arayacağını belirtir. cache cache dosyasını belirtir. primary primary’den hemen sonra gelen alanın primary name server olduğunu belirtir ve ilgili bilgileri de alan adından hemen sonra verilen dosya içerisinde tutar. Bu satır birden fazla olabilir, bu durumda ise konfigüre edilen sunucu birden fazla alan için primary name server olarak görev yapar. forwarders sorgularına yanıt veremediği istekleri yönlendireceği sunucuların listelendiği satır. slave yukarıdaki konfigürasyon dosyasında olmayan fakat başka bir yerde karşınıza çıkabilecek olan slave satırı eklendiği zaman name server sorgulara yanıt vermek için sadece ve sadece forwarders satırında belirtilen sunucuları kullanabilir. 16.4. Caching Only Alan Adı Sunucu Konfigürasyonu Linux.org.tr sunucusu üzerindeki alan adı sunucu sadece cache only olarak çalışacak olsaydı, yukarıda belirtilen konfigürasyon satırı aşağıdaki hale gelirdi: named.boot -------------- ; ; boot file for name server ; ;type domain source hosts/file backup file cache . root.cache primary 0.0.127.IN.ADDR.ARPA named.local Bu konfigürasyonla çalışan alan adı sunucusu, named.cache dosyasında yer alan root sunucuları kullanarak gelen sorgulara yanıt verip, sorguların yanıtlarını cache’de tutmaktadır. 16.5. Primary ve Secondary Alan Adı Sunucu Konfigürasyonu Yine linux.org.tr named.boot dosyasına bakacak olursak, primary linux.org.tr named.hosts satırıyla linux.org.tr makinası linux.org.tr alanı için primary sunucu ve bu domain ile ilgili bilgilerin tutulduğu dosya ise named.hosts dosyasıdır. Yukarıdaki satırı named.boot dosyasına yazmamızla aslında işimiz bitmiyor. linux.org.tr sunucusu linux.org.tr alanı için primary olduğunu, Türkiye için root sunucu olan knidos.cc.metu.edu.tr sunucusunun da bilmesi gerekiyor. Bunun için metu.edu.tr/~dnsadmin adresinden gerekli form doldurup tanımların ODTÜ’deki yöneticiler tarafından yapılması gerekiyor. Bu form doğrultusunda da knidos.cc.metu.edu.tr sunucusunda aşağıdaki satırların girilmesi şarttır. linux.org.tr IN NS metu.linux.org.tr. metu linux.org.tr IN A 144.122.199.199 Şu an bu işlemler zaten yapılmış olup sadece bilginiz olması için bu satırlar yazılmıştır. primary 0.0.127.IN-ADDR.ARPA named.local satırıyla linux.org.tr makinesinde 127.0.0.1 IP adresine karşılık gelen loopback isminin tanımlarının yer alacağı dosya adı verilmiştir. Eğer Türkiye Linux Kullanıcıları Grubu’nun kendine ait bir IP adres bloğu, örneğin şu an ODTÜ’de kullanılan 144.122.199.0 bloğu verilmiş ve bu blok kendi alt gruplarına dağıtılmış olsaydı bu adreslere ait reverse tanımlar yine linux.org.tr makinesinde tutulacaktı. Böyle bir durumda named.boot dosyasına aşağıdaki satır benzeri bir satır daha eklemek gerekecekti. primary 199.122.144.IN-ADDR.ARPA named.144.122.199 Türkiye Linux Kullanıcıları Grubu için kullanılan IP adresine ait gereli reverse tanımı ilgili üniversitenin alan adı sunucusunda girilmiş durumdadır. Örneğin, metu.linux.org.tr için knidos.cc.metu.linux.org.tr sunucusunda aşağıdaki satır tanımlanmıştır. 199.199.122.144 IN PTR metu.linux.org.tr Bazı programların reverse tanımlarını kullanıyor olması nedeniyle (örneğin tcpd) bu tür tanımların girilmesi önemlidir. Bir veya daha fazla C sınıfı şeklinde IP adres blokları aldığınız zaman IP adresi aldığınız kurumdan, bu adres aralığının reverse tanımlarını sizin alan adı sunucunuza yönlendirilmesini isteyebilirsiniz. Bir C sınıfından az sayıdaki IP adresleri içinse yine IP adresini aldığınız kurum gerekli reverse tanımları sizin için yapmak zorundadır. Şu an linux.org.tr makinesi herhangi bir başka primary sunucunun secondary sunucusu olmadığı için named.boot dosyasında secondary geçen bir satıra rastlamadık. Örneğin linux.org.tr sunucusu linux.org sunucusunun secondary alan adı sunucusu olduğunu varsayalım, bu durumda aşağıdaki satırı named.boot dosyasına eklememeniz gerekecek. secondary linux.org 198.182.196.49 SEC.linux.org bu satırı eklediğimiz andan itibaren named belirli aralıkla gidip linux.org sunucusundan DNS dosyalarının bir kopyasını linux.org.tr sunucusuna aktaracak. linux.org alanının secondary sunucusu olduğumuza dair bilginin de ayrıca linux.org alanının primary tanımlarını tutan sunucuda belirtilmesi gerekir. 16.6. named Konfigürasyon Dosyası Named konfigürasyon dosyalarında (named.hosts, named.local, named.cache, named.rev) karşılaşılan konfigürasyon parametreleri ve ne anlama geldikleri aşağıda yer almaktadır. SQA (Start of authority) İlgili dosyanın ne kadar zaman aralıklarında yenilenebileceği gibi bilgileri içerir. NS (Name Server) Alan adı sunucusu olduğunu belirtir. A (Adress) Makine ismini IP adresine çevirir. PTR (Pointer) IP adresini makine ismine çevirir. MX (Mail Exchange) O alana ait mesajları hangi makinanın dağıtacağını belirtir. CNAME (Canonical Name) Bir makinaya verilen isimler birden fazla ise bu isimleri belirtirken kullanılır. HINFO (Host Information) Belirtilen sunucunun işletim sistemi veya donanımı konusunda bilgi verir. named.hosts, named.local vb. dosyalara girilen standart bir DNS kaydı aşağıdaki yapıda karşımıza çıkar. [name] [ttl] IN type data [ ] içerisinde belirtilen değerler isteğe bağlı olup gerekmediği durumlarda yazılmayabilir. name Bu kısıma tam domain ismi, makine ismi yazılabilir. Ttl (time-to-live) Burada belirtilen süre kadar (bu süre saniye cinsindedir) cache tutulabileceğini belirtir. Eğer herhangi bir süre verilmemiş ise SQA kısmında verilen süre kullanılır. IN Girilen kaydın DNS kaydı olduğunu belirtir. type Yukarıda bahsettiğimiz kısaltmalardan ilgili olanı yazılır. data Bu kısıma IP adresi yazılır. Şimdi de kısaltmaların bulunduğu named.cache, named.hosts, named.local gibi dosyalardan birer kesit alıp içindekilere göz atalım. metu:/etc/namedb# more named.cache ; last update : Nov 8, 1995 ; related version of root zone 1995110800 ; ; ; formerly NS.INTERNIC.NET ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; ; 3600000 NS B.ROOT-ASERVERS.NET. B.ROOT-SEVERS.NET. 3600000 A 128.9.0.107 ; ; Yukarıdaki dosya, root name server’ların listesinin yer aldığı dosyadır. süregelen değişiklikler doğrultusunda bu dosyada yer alan kayıtlar da değişebilirler. Sürekli güncel tutmak amacıyla (ftp://nic.ddn.mil/netinfo/root-server.txt) adresinden dosyanın yeni halini belirli aralıklarla almakta fayda vardır. ttl süresi ise olabildiğince büyük verilerek root sunucuların herhangi bir şekilde cache’den silinmesi önlenmiş olur. metu:/etc/namedb# more named.local ; ; @(#)named.local 1.1 (Berkeley) 86/01/21 ; $ORIGIN 0.0.127.in-addr.arpa. @ IN SQA metu.linux.org.tr root.metu.linux.org.tr ( 1996012201 ; Serial 3600 ; Refresh 300 ;Retry 3600000 ; Expire 14400 ) ; Minimum IN NS metu.linux.org.tr. 1 IN PTR localhost. IN SOA ile başlayan satırda metu.linux.org.tr adresi ilgili domain konusunda yetkili sunucuyu, root.metu.linux.org.tr ise herhangi bir şekilde sorun olduğunda bağlantıyı kuracak e-posta adresini (root@metu.linux.org.tr) belirtir. Diğer bilgilerse sırayla metu.linux.org.tr’ın “primary name server” olduğunu ve 127.0.0.1 IP adresine localhost isminin karşılık geldiğini belirtir. Metu:/etc/namedb# more named.hosts ; Authoritative data for Berkeley.EDU (ORIGIN assumed Berkeley.EDU) ; $ORIGIN linux.org.tr @ IN SQA metu.linux.org.tr root.metu.linux.org.tr ( 1997072902 ; Serial 10800 ; Refresh 3 hours 3600 ;Retry 1 hour 3600000 ; Expire 1000 hours 86400 ) ; Minimum 24 hours IN MX 10 metu IN NS metu IN HINFO “i486” “Linux 2.0.27” localhost .IN A 127.1 metu IN A 144.122.199.199 IN A 144.122.199.199 www IN CNAME metu ftp IN CNAME metu gopher IN CNAME metu listproc IN CNAME metu ege IN A 155.223.97.31 uuuuuuu IN CNAME ege burada diğer named.local dosyasından farklı olarak makine ismi - IP adresi eşlemesi yapılmış olup MX ve CNAME kavramları kullanılmıştır. MX tanımın bulunduğu satırda linux.org.tr domaini için e-postaları alabilecek sunucu metu.linux.org.tr olarak tanımlanmış. 10 rakamı ise metu.linux.org.tr’nin linux.org.tr olarak gelmesi gereken mesajlardaki önceliğini belirtir. Sayı ne kadar küçük verilirse önceliği o kadar fazladır. HINFO tanımının bulunduğu satır metu.linux.org.tr’in donanım, işletim sistemi ve sürüm bilgilerini tutuyor. CNAME geçen satırlar ise metu.linux.org.tr makinasının olması düşünülen diğer simlerini tanımlamak için kullanıldı. Örneğin, (wwww.linux.org.tr) ile metu.linux.org.tr aynı sunucular olup wwww.linux.org.tr, metu.linux.org.tr’ın bir diğer adı (alias) olarak gözükmektedir. Bütün bu konfigürasyon işlemleri bittikten sonra, metu:/etc/namedb# named komutunu çalıştırıp nslookup veya host gibi programlar yardımıyla name server’ımızın çalışıp çalışmadığını denemek kalıyor. Çalıştırdığımızda verilen hata mesajları /usr/adm/mesages dosyasına yazılır. 16.7. hosts ve nslookup Programlarının Kullanımı Host veya nslookup programları yardımıyla bind konfigürasyonumuzun ilgili sunucuda doğru çalışıp çalışmadığını test edelim. Örnek olarak, host komutunu kullanarak linux.org.tr için knidos.cc.metu..edu.tr’da girilmesi gereken tanımların doğruluğunu kontrol edebiliriz. $nslookup Default Server : knidos.cc.metu.edu.tr Adress : 144.122.199.20 > linux.org.tr Server : knidos.cc.metu.edu.tr Adress : 144.122.199.20 Name : linux.org.tr Adress : 144.122.199.199 > exit Yukarıdaki satırlarda nslookup yardımıyla ön tanımlı DNS sunucusu olan knidos makinesine linux.org.tr makinesinin IP adresini sorduk. nslookup komutunun -t seçeneği yardımıyla bir makine hakkında daha başka veriler almak da mümkündür. > server metu.linux.org.tr Default Server : metu.linux.org.tr Adress : 144.122.199.199 >ls -t HINFO linux.org.tr [metu.linux.org.tr] linux.org.tr. Linux 2.0.27 > nslookup üzerinde daha fazla bilgi için komuta ait man sayfasına göz atın. host komutu da nslookup komutunun bir tamamlayıcısı gibidir. Aşağıda birkaç örnekle host komutu anlatılıyor. $ host linux.org.tr linux.org.tr has adress 144.122.199.199 linux.org.tr mail is handled (pri=10) by metu.linux.org.tr $ host wwww.ege.linux.org.tr wwww.ege.linux.org.tr is a nickname for ege.linux.org.tr ege.linux.org.tr has adress 155.223.97.31 Yukarıda yer alan ilk komut yardımıyla linux.org.tr makinesinin isim-IP dönüşümü yapılmış ve makineye karşılık gelen adresin 144.122.199.199 olduğu anlaşılmıştır. 17. DİĞER KULLANICILARLA İLETİŞİM Internet, baş döndürücü bir hızla gelişmekte. Dünyada İnternet’e her gün onbinlerce kullanıcı eklenirken İnternet’e bağlı Türk insanının sayısı (şimdilik) yüzbinlerle ifade ediliyor. Bunda özellikle medyanın, İnternet’in tanıtımına yaptığı etki çok büyük. Konuyla ilgili hemen her yazıda, bu dev ağın diğer ucundaki kullanıcılardan bahsediliyor. İletişim teknolojisiyle birlikte karşılıklı konuşmayı iyice azaltan kesimlerin İnternet’e bağlandığınızda hiç de yalnız olmadığınızı farkediyorsunuz. Biraz merakla, biraz uğraşla dünyanın öteki ucundan bağlanan insancıklarla bağlantı kurmak gayet kolay. İnternet’le bilgisini, kültürünü arttıran, yalnızlıktan kurtulan, hoşça vakit geçiren, hatta evlenenlere bile rastlanıyor. Bazen de bunun tam tersine, hayal kırıklığına uğrayanlar da var. Ama çoğunluk bu sonsuz derinliğe bir girdiği zaman sihirden kurtulamıyor. Diğer kullanıcılarla iletişim kurabilmek için sayısız yol yöntem var. Bunlardan en çok bilineni e-posta. Mektupla varışı günlerce sürebilecek bir mesaj, e-posta ile gönderdiğimizde bakmışsınız ki birkaç dakika sonra karşıda. Bunun yanında her haber gruplarına bağlanmak ve onbinlerce tartışma grubundan hangisini okuyacağını şaşırmak da var. irc (internet relay chat) ile binlerce odalı bir eve girip her ülkeden, her zevkte süresiz arkadaşlıklar kurmak mümkün. Bunların hepsi Linux ile mümkün. Yazılımları kurduğunuz anda yüzlerce ülkeden milyonlarca kullanıcı sizi ekran karşısında bekliyor. Aşağıda iletişim kurabilmek için kullanan yazılımlardan birkaçı anlatılıyor. 17.1. Pine Pine, e-posta atma ve okuma için en çok kullanılan yardımcı programlardan biridir. Kurulumu ve kullanılması kolay olan pine, Linux altında sürekli güncellenen bir yazılımdır. Daha önce pine kurmadıysanız size en yakın sunsite arşivinden indirip kurmak mümkündür. Pine, açıldığı zaman aşağıdaki gibi bir görüntüyle sizi karşılar. PINE 3.95 MAIN MENU Folder:INBOX 4 Messages ? HELP -Get help using Pine C COMPOSE MESSAGE -Compose and sen a message I FOLDER INDEX -View messages in current folder L FOLDER LIST -Select a folder to view A ADDRESS BOOK -Configure or update Pine S SETUP -Congifure or update Pine Q Quıt -Exit the Pine program Copyright 1989-1994. PINE is a trademark of the University of Washington. [Folder “INBOX” opened with 4 messages] ? Help P PrevCmd R ReINotes O OTHER CMDS L[ListFldrs] N İleriCmd K KBLock Pine programı, kursör tuşları ile kolayca yönetebilir. En üzt satırda pine hakkında detaylı bilgi alabileceğiniz bölüm vardır. Diğer satırlar sırayla: COMPOSE MESSAGE : E-posta hazırlayır göndermek için FOLDER INDEX : Gelen ve giden e-postaları gruplanabilir. Bu seçenek seçilen grup içindeki e-postaları ekrana getirir. FOLDER LIST osta grubu seçmek için ADDRESS BOOK : Adres rehberi SETUP : Pine’ın konfigürasyonu bu seçenekle yapılır. QUIT : Programdan çıkar. Pine’ın kullanıcı dostu özelliklerinden birisi, her komutu tek tuş ile belirtebilmesi ve bu tuşların ne işlerin yaradıklarının ekranın en alt kısmında sürekli görülebilmesidir. Bir komutu hazırlayamazsanız ekranın en alt kısmına bakın. 17.1.1. E-posta Gönderme Bir e-posta gönderebilmek için karşıdaki kullanıcının e-posta adresini bilmeniz gerekecektir. Ana menüde COMPOSE MESSAGE satırının karşısına gelin ve return tuşuna basın. Bu andan itibaren pine’ın editörüne gireceksiniz. To : Cc : Attchmnt : Subject : ----- Message Text ----- To: kısmına mesaj göndermek istediğiniz kişinin e-posta adresini yazın. Cc: (Carbon Copy) bölümünde ise, gönderilen e-postanın ikinci kişi tarafından alınmasını da istiyorsanız o kişinin de e-posta adresinin belirtin. Pine ile sadece mesajları değil, herhangi bir dosyayı da göndermek mümkündür. Attchmnt kısmına, dosyanın adını yazın. Pine, dosyayı ev dizininde arayacak ve atılacak e-postanın içine ekleyecektir. Subject (başlık) kısmında, mesajın içeriğini belli eden birkaç kelime yazın ve return tuşuna basın. Artık istediğinizi yazabilirsiniz. To: evren@hotmail.com Cc: Attchmnt:1. /home/yesim/adresler (2.8 KB) “” Subject: -----Message Text ----- Selam, İstediklerinizi ekte yolluyorum. Umarım isinize yarar. Gorusuruz. Mesajı yollamak için Control-X, vazgeçmek için Control-C tuşuna basın. Yukarıda da belirtildiği gibi, pine’ın tüm komutları ekranın alt kısmına yazılmıştır. 17.1.2. E-posta Okuma Pine, açıldığı anda ana menüye gelir. Herhangi bir alt menüden ana menüye geçmek için m tuşuna basın. Buradayken gelen e-postaları okuyabilmek için FOLDER INDEX’e geçin. +1 Sep 15 To: root@linux.lin (4,394) Register with the Linux counter proje +2 Sep 15 PATRİCK j. Volkerd (2,671) Welcome to Linux! Burada gelen e-postaların ne zaman, kim tarafından yollandığı, uzunluğu ve başlığı yeralır. Okumak için ok tuşlarıyla bir tanesinin üzerine gelip return tuşuna basın. 17.1.3. E-posta Silme Gelen e-postaların diskte fazla yer tutmasını önlemek için bazen kontorl etmelisiniz. Özellikle e-posta aracılığıyla fazla miktarda program alış-verişi yapıyorsanız kısa sürede yer kalmadığını görmeniz işten bile değil. Ayrıca eklenen e-posta üzerine yön tuşları ile gelip D tuşuna basın. +D 1 Sep 15 To: root@linux.lin (4,394) Register with the Linux counter +2 Sep 15 PATRİCK j. Volkerd (2,671) Welcome to Linux! Satırın başında D karakteri belirecektir. Silmek istediğiniz dosya diskten hemen silinemez. Sistemden çıkarken Pine, bunları silmek isteyip istemediğinizi sorar, sonra siler. 17.2. Etkileşimli İletişim Yöntemleri Pine, kullanım kolaylığı ile kullanıcıya cazip gelirken, atılan mesajların karşıya anında gitmemesi, hatta yolda kaybolması olasılığı bile vardır. Buna karşın bir kere atıldığı zaman e-postayı alan kişi bunu istediği zaman okur, yani e-posta atılırken karşıdaki kullanıcının sistemde o an bulunması şart değildir. write, talk ve irc, daha pratik ve anında iletişime izin veren programlardır. write ile ayn makine üzerindeki kullanıcıyla anında iletişim kurmak mümkün olur. komut satırında write e konuşmak istediğiniz kullanıcının ismini yazmak yeterlidir. linux: ~$ wite gorkem cok aciktim.yemege gidelim Mesaj gönderme bittiği zaman Control-C yardımıyla çıkılabilir. Aynı şekilde mesajı alan kullanıcı da write ile cevap verebilir. write, kısa süren mesajlaşmalarda etkili olurken uzun sürecek konuşmalarda genellikle talk kullanılır. talk yardımıyla mesajlaşan kullanıcıların her birinin ekranları enine ikiye bölünür. Ekranın bir yarısında gelen mesajlar,öteki yarısında giden mesajlar görünür. Talk ve write genellikle iki kişi arasında iletişim kurmak için kullanılır. Bunların yanında irc, aynı anda binlerce kullanıcının bağlandığı bir dünyadır. Uygun bir yazılımla dünyanın dört bir yanında bulunan sunuculara bağlanmak suretiyle irc’ye girilebilir. Çok basit birkaç komutla yüzlerce kanala girip her kanaldaki onlarca kişiyle yazışmak olasıdır. İster özel mesaj gönderirsiniz, ister belirli bir konuda yapılan konferansa katılırsınız. Linux’unuzda irc yazılımı yoksa sunsite arşivinden alp kolayca kurabilirsiniz. 17.3. Haber Grupları Haber gruplarını, milyonlarca kişinin e-posta alıp gönderdiği bir yer olarak düşünebiliriz. Dünya üzerinde haber gruplarına ait e-postaları dağıtma işlemini üstlenmiş pek çok omurga vardır. Bunlar, diğer alt haber grubu sunucularına ücreti karşılığında e-postaları gönderirler. Normal bir kullanıcı da bu sunuculara bağlanıp haberleri okur. İnternet üzerinde bu haber sunucularına bağlanmak için NNTP protokolü kullanılır. Alternatif olarak kendi Linux makinanız üzerinde siz de küçük bir haber sunucu yaratabilirsiniz. Haber gruplarına bağlandığınızda karşınıza bir menü çıkar. Bu menüde konularına göre sınıflandırılmış gruplar vardır. Kullanıcı bu gruplardan birini seçerek daha öne yollanmış e-postalaı okuyabilir ve iserse kendisi de bir e-posta gönderebilir. Her grubun bir ismi vardır ve bu isimlerde alt grupları belirtmek amacıyla noktalar kullanılır. örneğin Linux grubuna ait onlarca haber grubundan comp.os.linux, comp.os.linux.x ve comp.os.linux.setup örnek verilebilir. Haber gruplarını okumak için en çok kullanılan iki program tin ve trn’dir. Tin’e girince ekranda üye olunmuş haber gruplarının bir listesi çıkar. Bunlardan, istediğiniz bir tanesine return tuşunu kullanarak girebilirsiniz. Ardından ekranda bu gruba gönderilen e-postalar yer alacaktır. Burada yapabilecekleriniz arasında bir mesajı okumak veya cevap yazmak vardır. q tuşuyla tin’den çıkabilirsiniz. Aşağıda tin komutu çalıştırıldığı anda ekrana gelen haber grupları yer alıyor. İstediğiniz haber grubuna s (subscribe) tuşuyla üye olabilir, istemediklerinizi u (unsubcribe) ile silebilirsiniz. Linux’unuzun bağlandığı sunucunun kapasitesine göre teorik olarak onbinlerce haber grubunu okumak mümkündür. Group Selection (news.metu.edu.tr 18) h=help 1 alt.os.linux Use comp.os.linux.*instead. 2 comp.os.linux 3 comp.os.linux.admin 4 comp.os.linux.advocacy Benefits of Linux compared to other o 5 comp.unix.shell Using and programming the Unix shell. 6 gnu.bash.bug Bourne Again Shell bug reports an su 7 comp.lang.perl 8 comp.graphics.agorithms Algorithms used in producing computer 9 metu.cc.hot-line 10 alt.2600 The magazine or the game system. 11 comp.sys.cbm The commodore computers 12 alt.2600.codez No description. 13 alt.3d Use alt.3d.misc instead. 14 alt.c64 Use comp.sys.cbm instead. 15 alt.cd-rom Discussions of optical storage media. 16 alt.cookies.yum.yum.yum Use rec.food.baking instead. 17 alt.music.ozzy Blizzard of Osbourne. =set current to n, TAB=next unread,/=search pattern, c)atchup, g)oto, j=line down, k=line up,h)elp,m)ove,q)uit, r=toggle all/unread, s)ubscribe,S)ub pattern, u)unsub pattern,y)ank in/out Ekranın en altında tin komutlarının bir listesi vardır. bir e-postaya cevap yazmak için o mesajı okurken f tuşuna basın. Diyelim ki farklı bir haber sunucusuna bağlanmak istiyorsunuz. tin, komutu, NNTPSERVER kabuk değişkenini okuyarak bu değişkende bulunan sunucuya bağlanır. Buradaki makinanın ismini değiştirmek suretiyle dilediğiniz bir sunucuya bağlanmanız olasıdır. $ export NNTPSERVER=news.metu.edu.tr $ tin-r 18. LİNUX İŞLETİM SİSTEMİNDE GÜVENLİK Güvenlik bir bütün olarak ele alınmalıdır. Altyapıyı sağlam tutmak için öncelikle temel sistem güvenliğine özen göstermelisiniz. Bunun içine ağ ve kablo güvenliğini yerleştirebiliriz. Ardından makinelerin işletim sistemi güvenliği gelmelidir. Ağ kabloların serbest bir şekilde ortada dolaşması sonucu mutlaka bir sorun çıkacaktır. Eğer yerden doğru geçirmeniz gerekiyorsa mutlaka yere sabitleyin veya özel koruyucu plastik içerisinden geçirin. Ana sunucu bilgisayarı, herkesin ulaşamayacağı, tozdan, nemden uzak, özel, kapalı bir mekanda tutun. Mutlaka sisteminizi günlük yedekleyin. Sistemde elektrik kesilmesi ciddi bir sorundur. Henüz kaydedilmemiş bir çok dosya olabilir. Ayrıca sabit disklerin bozulmasındaki en etkili nedenlerden birisi bilgi okunurken/yazılırken elektrik kesilmesi sonucu meydana gelen hasarlardır. Bu sorunları önlemek için mutlaka bir kesintisiz güç kaynağı (UPS) kullanın. Bir sistemin sağlam/güvenilir olması sadece sistem yöneticisine bağlı değildir. bir çok hacker ve cracker sadece kullanıcıların bilgisizliğinden yararlanarak çok kolay bir şekilde değerli bilgilerinize ulaşabilir. Bunu önlemenin yolu da kullanıcıları eğitmekten veya parola yaşlandırma ve sadece belli bir kalıba göre üretilen parolaların kullanılabilmesine izin vermekten geçer. 18.1. Fiziksel Güvenlik Güvenliğin birinci kuralı fiziksel güvenliği sağlamaktır. Tüm modern kasalarda iki çeşit kilit bulunabilir. Bu kilit yardımıyla klavyenin yetkisiz kişiler tarafından kullanılması veya kasanın çalınmasının önüne geçebiliriz. BIOS’a bir parola atanarak makinenin açılması sırasında benzer şekilde sadece bu parolayı bilen tarafından kullanılması sağlanabilir. Ancak hemen her farklı BIOS’un ön tanımlı bir parolası olduğundan bu parolayı bilen bir saldırgan rahatlıkla sistemi açabilir. Ancak BIOS parolası bir CMOS entegre içinde saklıdır ve anakart içindeki pilin yerinden çıkartılması ile kolaylıkla silinebilir. BIOS’a benzer şekilde LILO’nun açılış esnasında bir parola sorması da istenebilir, bu konuda detaylı bilgiye lilo.conf kılavuz sayfasından erişebiliriz. Temel olarak, aşağıdaki iki satırın /etc/lilo.conf’a yerleştirilmesi yeterlidir. restricted password = Parola_ver Yukarıdaki satırlar lilo.conf dosyasının tepesine yerleştirdikten sonra lilo komutunun işletilmesiyle MBR’a yazılan LILO programı, sistemin tekrar açılmasından sonra çekirdeğe verilecek her parametre için sizden parola isteyecektir. Böylece istenmeyen misafirlerin “linux 1”, ya da “linux single” gibi parametrelerle sisteme yalnız başlarına girmeleri engellenebilir. Ancak yukarıdaki işlemleri yaptıktan sonra parolanın herkesçe görünmemesini sağlamak amacıyla # chmod 700 /etc/lilo.conf komutunun da işletilmesi gerekir. xclock adlı program ile konsol başından ayrıldığınız anda X ekranının kilitlenmesi sağlanabilir. İşinizi bitirip tekrar başına döndüğünüzde root parolasını girerek kaldığınız yerden devam edebilirsiniz. Fakat bu yöntem ile makinenin fiziksel güvenliği tam olarak sağlanamaz. Saldırgan makineyi kapatabilir ve halihazırdaki görevlerin çalışma düzenini anlık da olsa bozabilir. 18.2. Ağ güvenliği Ağ kabloların serbest bir şekilde ortada dolaşması sonucu mutlaka bir sorun çıkacaktır. Eğer yerden doğru geçirmeniz gerekiyorsa mutlaka yere sabitleyin veya özel koruyucu plastik/alüminyum içerisinden geçirin. Doğrusal (lineer) ve halka bağlantılarında tek bir kablonun kopması, tüm ağın kullanılmaz duruma gelmesine sebep olacaktır. Kablo ile konnektör bağlantılarını iyice kontrol edin. Herhangi bir temassızlık sonucunda tüm ağ bunlardan etkilenecektir. Ana sunucu bilgisayarı, herkesin ulaşamayacağı, tozdan, nemden uzak, özel kapalı bir mekanda tutun. Bunların yanında ağ üzerinde paketleri dinleyebilen ve gerektiğinde bu paketlerde yer alan parolaları da yakabilen programlar mevcuttur. Bir sniffer Ethernet bağlantılarını dinler ve içinde “Pasword”, “Login”, “Su” gibi belirli anahtar kelimeler geçen paketleri yakalar. Bu paketlerin içinde bir saldırganın işini çok kolaylaştıracak parolalar bulunabilir. Bunu önlemek için ssh yöntemi geliştirilmiştir. Ssh protokolü yardımıyla iki makine, şifrelenmiş paketler ile haberleşebilir. Böylece ağ üzerindeki potansiyel saldırganlar paketleri dinleyemez. Bazı ağ servislerinin dizayn açıklarından yararlanarak bunları tamamen durdurmak ya da kısmen iş göremez hale getirmek amacıyla yazılan saldırı programları da vardır. Eğer sistem yöneticisi NFS kullanımı konusunda bilinçsiz ise sistemde kendi eliyle açık yaratma ihtimali de artar. 18.3. Zayıf parolalar Bir makineye girmenin en kolay ve en sık kullanılan yolu zayıf parolaları kullanmaktır. Zayıf parola kolayca tahmin edilen ve bir takım yollar kullanılarak bulunabilen ve bu açıklığından yararlanarak, sisteme girilebilen parolalardır. Genel olarak kullanıcılar sistem güvenliğinden haberdar olmadıkları için kolaya kaçarak rahatça tekrar hatırlayabilecekleri zayıf parolaları seçerler. Eğer yüzlerce kişiyi barındıran bir sistemin başında iseniz kullanıcıların şifrelerini sürekli olarak değiştirmelerini sağlamalısınız. Bunu Linux altındaki /etc/shadow dosyası yardımıyla yapabilirsiniz. Zayıf parolaları bulan ve sistem yöneticisini uyaran Satan, Cops gibi programlar vardır. Gerekmedikçe dosya ve dizinlere fazladan hak vermemeye, gruplara ve kişilere özel ayrıcalıklar tanımamaya özen gösterin. Kullanıcıların /etc/passwd veri tabanından parolaları alıp bunları zorlama yöntemi ile diğer kullanıcılara ait parolaları bulmalarını önlemek için shadow yöntemini kullanmalısınız. Bir dosyanın rm komutuyla silinmemesini, ya da içeriğinin root dışındaki kullanıcılar tarafından hiçbir şekilde değiştirilmemesini sağlamak için chattr komutunu kullanmalıyız. Örneğin lili.conf, passwd, shadow ya da group gibi dosyalarınıza hiç dokunmayacaksanız ve bir kazayla silinmesini istemiyorsanız. Aşağıdaki örneği inceleyin: # chattr +i /etc/passwd chattr komutuna verilen +i (immutable) parametresi bu dosyanın hiçbir şekilde değiştirilememesini sağlar. Root bile bu dosya üzerinde değişiklik yapamaz. Eski haline getirmek için; # chattr -i /etc/passwd komutunu kullanın. 18.4. Dosya Sistemi Güvenliği Dosyaların güvenliği de en az parolalar kadar önemlidir. Bir kullanıcıya ait, ama herkes tarafından okunabilen bir e-postanın varlığı ya da /etc/passwd parola veritabanının yazılabilir olması sistem yöneticisini dehşete düşürmeye yeter. Tripwire gibi yazılım paketleri sistemde değişen önemli dosyaları haber verir. Güvenlik gerektiren dosyaların özellikle bir kırıcı tarafından değiştirildiğinden şüphelendiğiniz anda gerekli önlemleri almalısınız. Mutlaka sisteminizi günlük yedekleyin. Tüm işletim sistemini yedeklemenize gerek yoktur. Belli başlı dizinler yedeklendiği anda bir sorun çıktığında işletim sistemi yeniden kurulduktan sonra yedeklenen bölümler tekrar kurulur. Yedek alınması gereken belli başlı dizinler aşağıda verilmiştir: Yapılandırma dosyaları (/etc altında) E-postalar (/var/spool/mail) Kullanıcı dosyaları (/home) Sistem dosyaları (/var/log) Hizmet veren programların verileri (/home/ftp, /home/httpd) En kolay yedek alma işlemi tar, gzip ile boş bir disk şeklindedir. Dosya sistemi güvenliği için; kullanıcıların ev dizinlerinde çalışmaları gereken dosyalar istemiyorsanız, /home dizinini içinde barındıran disk bölümü için /etc/fstab’ta “noexec” parametresini kullanabilirsiniz. Bu durumda kullanıcılar sadece sistemde kendilerine izin verilen (ön tanımlı olarak /bin, /usr/bin ve /usr/X11R6/bin altında) programları çalıştırabilirler. NFS ile dosya sistemi paylaşımı yapmanız halinde hangi bilgisayara hangi hakları verdiğinizi iki kez kontrol edin. Aşağıdaki komut, sistemdeki tüm SUID (set user ID) ve SIGN (set grup ID) dosyalarını bulup gösterecektir. Sürekli olarak dağıtımların web sayfalarında bu konuda sorunlu olan programlar (paketler) yayınlanır ve yenisini kurmanız istenir. # find / -type f ( -perm -4000 -o -perm -2000 ) Gerekiyorsa “chmod a-s dosyaadı” komutu yardımıyla yukarıdaki komutun çalıştırılması sonucu listelenen dosyaların üzerindeki SUID veya SGID bitlerini kaldırın. Sistemde kesinlikle herkes tarafından yazılabilir hiçbir dosya bulunmamalıdır. Aşağıdaki komut yardımıyla bu türden dosyaları ve dizinleri bularak gerekli önlemleri alabilirsiniz: # find / -perm -21 -type 1 -ls 18.5. Yerel Güvenlik Eğer sisteminizde yeterli güvenlik yoksa, yerel kullanıcılardan bazıları öncelikle root parolasını ele geçirmek, ya da hatalı düzenlenmiş ya da kurulmuş bir programdan faydalanıp üst düzey haklara sahip olmak isteyecektir. Yerel güvenliği arttırmak için; Hesap açacağınız kişilere ek yetkiler vermeyin. Bu kişiler için fazladan ftp alanı, disk alanı sağlamayın ve /etc/passwd, /etc/shadow veritabanını sürekli olarak denetleyin. /etc/passwd kullanıcı numarası (user ID, UID) ya da grup numarası (group ID, GID) mutlaka 0’dan farklı olmalıdır. /etc/shadow’da tüm kullanıcıların parolası tanımlı olmalı, sisteme giriş için kullanılan kabuk tanımlanan kabuktan farklı olmamalıdır. adduser ile bir hesap açarken sistem sizin için bu ayarları düzgün yapacaktır. Sisteme (telnet ile) giren kişilerin hangi IP numaralarından giriş yaptığını arada sırada denetleyin, aynı anda aynı kişinin birden fazla IP numarası üzerinden giriş yapması halinde mutlaka durumu açıklığa kavuşturun. Eğer sisteme girişleri sadece belirli alanlara kısıtlayabilirseniz işiniz oldukça kolaylaşır. Bunu için /etc/hosts.deny dosyasını kullanabilirsiniz. Bir hesap açtıktan sonra son giriş tarihini sürekli kontrol edin. Eğer yapabiliyorsanız uzun süredir girilmeyen hesapları (kişinin bilgisi dahilinde) kapatın ve başkalarının kullanma riskini sıfıra indirin. Hesap kapatmak için deluser (bazı sistemlerde userdel) komutunu kullanılabilir, ya da /etc/shadow dosyasındaki şifrelenmiş parola dizgisinin başına “*” karakterini ekleyebilirsiniz. Saldırı için kullanılan hesapların önemli bir kısmı uzun süredir bekleyen ve sistem yöneticisinin farkına varmadığı masum kullanıcı hesapları olabilir. Yukarıdaki yöntemlerin yanında, root kullanıcısının uyması gereken bazı kurallar aşağıda belirtilmiştir. Öncelikle günlük işlerinizi root kullanıcısı altında yapmamaya özen gösterin. Yapacağınız en küçük hata saatlerinize mal olacaktır. Sisteme sadece güvendiğiniz bir bilgisayardan giriş yapın. 18.6. Sisteme İzinsiz Girenlerin Bulunması Her çabanıza, geceli gündüzlü sistem gözetmenize rağmen istemediğiniz kişiler sisteminize izinsiz ziyaretlerde bulunabilirler. Böyle bir durumda kullanıcıyı fark ettiğiniz anda bilgisayarın erişimini kapatın. Ancak bunu ağ kartını çıkartarak yapın. Sistemin reboot edilmesi saldırganın deşifre olduğu hissini uyandıracaktır. Hemen ardından kayıt dosyalarını kullanarak bilgisayara nasıl girildiğini araştırın. Eğer saldırgan tekrar girmek amacıyla birtakım ‘backdoor’ları (daha önce erişim elde edebilmek için açık kapılar bırakılması) makinenize yerleştirmiş olabilir. Bunları bulmak gayet zordur. /etc/passwd, .rhosts, /etc/group dosyalarını kontrol edin. Eğer sisteme nasıl girildiğini bulamazsanız sistemi yeniden kurmanız gerekebilir. Syslogd tarafından tutulan kayıtların bulunduğu /var/log dizininde düzenli olarak yapacağınız araştırmalar da sistemin güvenliğini denetlemenizde yardımcı olacaktır. Bu kayıtları (/var/log/messages ve /var/log/security) incelerken aşağıdaki temel kriterleri göz önünde bulundurmanızda fayda vardır. Makinenin sebepsiz açılıp/kapatılması. Nereden girdiği belli olmayan kullanıcılar (last komutuyla öğrenilebilir). Özellikle yine giriş noktası belirsiz kullanıcıların su komutu yardımıyla root haklarına sahip olması belirsiz bir durumdur. Kayıp kayıt dosyaları. Herhangi dosyaların sistem açılırken yaratıldığını mutlaka bir kenara not etmelisiniz ki daha sonra karşılaştırma yapabilesiniz. Kayıt dosyalarının sahibinin, ya da grubunun root dışındaki bir kullanıcısı olması ve/veya root dışındaki bir kullanıcı tarafından içinin okunabiliyor durumda bulunması. Kayıt dosyalarının belirli bir bölümünün silinmiş olması, ya da çok uzun süre hiçbir aktivitenin dosyaya eklenmediğinin anlaşılması. Crontab dosyalarında ve dizinlerinde (/etc/crontab, /etc/cron.*) anlamadığınız ve/veya sistem kurulduktan sonra oluşturulan, bu yolla belirli zamanlarda belirli komutların işletilmesini sağlayan girdiler. 18.7. Diğer Güvenlik Önlemleri 18.7.1. Güvenlik Duvarı Oluşturulması Ağ trafiğini engellemek için 2.0 Linux çekirdeğiyle birlikte ipfwadm komutu gelmiştir. 2.1 sürüm ile birlikte gelen ipchains programı çekirdeğin içine gömülen güvenlik duvarını denetler. Her iki programda 2.4’ten sonra yerini netfilter paketine bırakacaktır. Ancak gerçekten güçlü ve port bazında güvenlik isteyen sistemler için ipchains gerçekten performanslı ve gayet yeterli bir programdır. Hem ipfwadm, hem de ipchains IP, port numarası, arayüz ya da paketin geldiği kaynak adresine göre tanımlama kabul ederler. Örneğin “etf0’a 900. porttan, 1.2.3.4 Ip numarasından gelen hiçbir isteği kabul etme” gibi bir emir verilebilir. Ipchains bunların yanında bir porta gelen istekleri başka bir porta yönlendirebilir. Aşağıda ipchains’e göre bir örnek verilecektir. Bu örnek kısa sürede bir güvenlik duvarını nasıl kurulacağını gösterecektir. Deneme yapacağınız makine üzerinde çift ethernet kartı olsun. Bir tanesi her an tehlikelerin gelebileceği dış dünyaya bakan, diğeri de içeride, korunması gereken makinalara doğru yönelmiş olan. Bu program geçit (gateway) olarak kullanılan bir sisteme yerleştirilebilir. Sistemde iki ethernet kartı vardır, eth0 dışarıya bakan, eth1 ise güvenilir olan iç ağa. Güvenilir ağdan dışarıya hiçbir bağlantı denetlenmemektedir, ancak içeriye yapılabilecek birtakım bağlantılar ipchains tarafından kesilecektir. Öncelikle bazı değişken ayarlarını yapmamız gerekecek. Aşağıdaki değişkenleri kendi sistemimize göre modifiye edin. Satır sığmadığı zaman satır sonunda bir karakteri göreceksiniz, bu karakter aşağıdaki satırın kendisiyle bitiştiğini gösterir. Programın ilk satırı # ! /bin/bash ile başlıyor. Eğer satır başında # karakteri varsa satırın geri kalanı göz ardı edilir. Ethernet kartlarının netmaskı C sınıfı için 24, B sınıfı için 16’dır. ! /bin/bash ETH0IP: Dışarıdaki ağa bakan IP numarası (ethernet 0 ya da eth0) ETH0NET: Dışarıdaki ağın numarası ETH0NETMASK: Dışarıdaki ağın maskesi GUVENLI1: Dışarıdaki güvenli bir makine GUVENLI2: Dışarıdaki bir başka güvenli bir makine ETH1IP: İçerideki ağa bakan IP numarası (ethernet 1 ya da eth1) ETH1NET: Dışarıdaki ağın numarası ETH1NETMASK: Dışarıdaki ağın maskesi ETH0IP: 194.24.22.1 ETH0NET: 194.24.22.0 ETH0NETMASK: 24 GUVENLI1: 212.45.3.13 GUVENLI2: 193.12.54.9 ETH1IP: 192.168.1.1 ETH1NET: 192.168.1.1 ETH1NETMASK: 24 PATH değişkeni patikayı (yolu) ayarlıyor. PATH=/shbin -F parametresi tüm kuralları siliyor, bir başka deyişle daha önce verilmiş bir güvenlik kuralı varsa bunu iptal ediyor. ipchains -F input ipchains -F output ipchains -F forward Spoof adı verilen bir yöntem aynı ağ üzerindeki başka bir makinanın kendisini güvenilir bir sistem olarak algılatma metodolojisine dayanır. Aşağıdaki satırlar spoof’u engelliyor. ipchains -A input -p all -j DENY -s 10.0.0.0/8 -i eth0 -d 0.0.0.0/0 ipchains -A input -p all -j DENY -s 127.0.0.0/8 -i eth0 -d 0.0.0.0/0 ipchains -A input -p all -j DENY -s 192.168.0.0/16 -i eth0 -d 0.0.0.0/0 ipchains -A input -p all -j DENY -s 172.16.0.0/16 -i eth0 -d 0.0.0.0/0 ipchains -A input -p all -j DENY -s $ETHOIP -i eth0 -d 0.0.0.0/0 Bu satırlar ICMP paketlerini düşürüyor. ICMP, ping yardımıyla bir makinaya ulaşmak istediğinizde kullandığınız protokole verilen isimdir. ipchains -A input -p icmp -j DENY ACCEPT -s $ETH0NET/$ETH0NETMASK -i eth0 -d0/0 ipchains -A input -p icmp -j DENY -s 0.0.0.0/0 -i eth0 -D 0/0 0.0.0.0/0 yerine 0/0 da kullanılabilir. Eğer uzaktan ssh (secure shell) ile sisteme ulaştırmak isteyenler var ise bu IP’lere ssh’ın portu olan 22 açılıyor. Aslında aşağıdaki örneği çoğaltarak açmak isrediğimiz tüm servislere izin verebilirsiniz. Örnek olarak bu makine bir web sunuculuk görevi yapacaksa 22 yerine 80 yazmanız yeterli olacaktır. ipchains -A input -p tcp -j ACCEPT -s $GUVENLI -i eth0 -d 0.0.0.0/0 22 ipchains -A input -p tcp -j ACCEPT -s $GUVENLI -i eth0 -d 0.0.0.0/0 22 Eğer Apache web sunucusu isteklerinin de alınmasını istiyorsak, ipchains -A input -p tcp -j ACCEPT -s 0/0 -i eth0 -d 0.0.0.0/0 80 ipchains -A input -p tcp -j ACCEPT -s 0/0 -i eth0 -d 0.0.0.0/0 80 1 ve 1023 arası tüm portlar kapatılıyor. Bu portların özelliği sistemde çalışan belli başlı tüm servislerin dinlendiği portlar olmasıdır. ipchains -A input -p tcp -j DENY -s 0.0.0.0/0 -i eth0 -d 0.0.0.0/0 1024:65535 ipchains -A input -p udp -j DENY -s 0.0.0.0/0 -i eth0 -d 0.0.0.0/0 1024:65535 1024 ile 65535 arası portları da kapatmak isterseniz, aşağıdaki satırlar işinizi görecektir. Aslında ek bilgi vermek amacıyla 1-1023 ve 1024-65535 arası portları ikiye ayıralım, normal olarak iki satırda işimizi halledebilirdik. ipchains -A input -p tcp -j DENY -s 0.0.0.0/0 -i eth0 -d 0.0.0.0/0 1024:65535 ipchains -A input -p udp -j DENY -s 0.0.0.0/0 -i eth0 -d 0.0.0.0/0 1024:65535 IP Masquerading yapabilmek için aşağıdaki satırlara ihtiyacınız var. ipchains -p forward DENY ipchains -A forward -p all -j MASQ -s $ETH1NET/$ETH1NETMASK -d 0.0.0.0/0 18.7.2. Güvenlik Duvarı (FİREWALL ) Bilgisayarlardaki firewall özel bir ağı uçsuz bucaksız olan Internet'ten korumayı sağlayan bir araçtır. Firewall'un en basit şekli ( modem yada ethernet kartı ile ) Internet'e ya da özel ağlara bağlı bir Linux makinasıdır. Firewall görevini üstlenen bilgisayar, Internet'e ve de ağa erişebilir.Bu korumalı ağ Internet'e çıkamaz ve de Internet'te bu ağa giremez. Internet'e veya Internet'ten akan bilgiler firewall tarafından filtrelenir. Ağ içinde servisleri açma ya da kapatmada daha az özen gösterilir. Bu şekilde sadece bir makine üzerinde yoğunlaşılır. Firewall kurmak oldukça karmaşık bir iştir. İlk başta makinenize bağlı iki ethernet kartı gerekir. Sonra iki ethernet kartı arası bilgi köprülerinin filterelenmesini kurmak için ipchains isimli program kurulmalıdır. 18.7.3. SSH (Secure Shell) Ssh, güvenli telnet bağlantısı için kullanılan bir protokoldür. Telnet benzeri olarak, uzaktaki bir makinaya girmenizi sağlar ve işlemlerinizi bu makine üzerinde yapmanıza imkan verir. Kullanıcı gözüyle bakılırsa, telnet’ten tek farkı programın güvenli bir port üzerinden çalışmasıdır. Aslında kullanılan portun güvenli olması söz konusu değildir, ancak bu porttan yapılacak bağlantılar özel bir kriptoloji yöntemiyle şifrelendiği için, ağı dinleyen birisi paketleri yakalasa dahi anlamsız mesajlarla karşılaşacaktır. Ssh’ın en önemli özelliği de budur. Uzaktaki makinaya yapacağınız güvenli telnet erişimi, ağ üzerindeki sniffer programlarının parolanızı ve kullanıcı adınızı yakalamasını engeller. Ssh’ın iki sürümü (ssh-1 ve ssh-2) bulunuyor. Her iki sürüm de farklı protokollerde çalışıyor ve farklı lisanslama özelliklerine sahip. Aslında iş kuruluma geldiği zaman hiçbir farklılık yok. Ssh’ın rpm halini kurmak için üç farklı dosyaya ihtiyacınız var. Ssh: Halen 1.2 sürümünde olan ssh-1 paketinin ana dosyalarını içeren program. Bunun hem istemci, hem de sunucu tarafından kurulması gereklidir. Ssh-clients: Eğer bir Linux makinasından ssh çalıştıran bir sisteme bağlanmak istiyorsanız istemciye ssh-clients de kurmalısınız. Ssh-server: Sunucu tarafına kurulması gereken dosyaları içerir. Ssh’ın yapılandırma dosyaları /etc/ssh dizini altındadır. Ssh_key dosyası özel bir anahtarı içerir ve diğer kullanıcılar tarafından görülmeyecek şekilde 600 iznine sahiptir. Ssh_host_key.pub ise 664 iznindedir. Eğer ssh taleplerinin sadece belli makinalardan gelmesini sağlamak istiyorsanız /etc/ssh/sshd_config dosyasındaki AllowHosts satırını değiştirebilirsiniz. Bu aşamadan sonra güvenli telnet bağlantısının iş görebilmesi için sshd’nin her açılışta çalışması gereklidir. Bunu da sshd satırını /etc/rc.d/rc.local’ın sonuna yerleştirmekle yapabilirsiniz. Eğer bir Linux altından, sshd çalıştıran sisteme bağlanmak isterseniz aşağıdaki örneği inceleyin. Bu örnekte “gazi” kullanıcısı ns.gelecek.com.tr makinasına ssh üzerinden bağlanıyor. $ ssh -1 gazi ns.gelecek.com.tr 19. Mandrake Linux kurulumu 19.1 Ön hazırlıklar Kuruluma başlamadan önce birtakım ön hazırlıklardan geçmeniz gerekiyor. Bunlardan kısaca söz edelim. 19.1.1 Genel bilgisayar bilgisi Daha önce, önsözde de belirttiğimiz gibi bilgisayarlar hakkında detaylı olmasa da bazı ön bilgilere sahip olmalısınız. Özellikle bilgisayarın sabit diskinin büyüklüğü (Mb cinsinden), türü (IDE, SCSI), hafıza (Mb cinsinden), CDROM (varsa, IDE veya SCSI olmayan CD sürücülerin modeli) ve farenin tipi bilinmelidir. Bunları bilgisayarı satın aldığınız yerden öğrenebilirsiniz. Video kartının özelliklerinden ve monitörünüzün tipinden haberdar olmalısınız. Özellikle monitörün hangi ekran çözünürlüğünü destekleyebildiğini öğrenin. 19.1.2 Ağ bilgisi Eğer bir ağa bağlı iseniz ağ özelliklerini ve ağa bağlanabilmek için gerekli bilgileri sistem yöneticinizden öğrenin. Mandrake kurulumu için bir ağa bağlı olmak zorunda değilsiniz. Aşağıda yazılanlar, bilgisayarınızı Internet'e ethernet kartı yardımıyla bağlamak için gerekli bilgileri içerir. Eğer telefon hattı üzerinden Internet bağlantısı planlıyorsanız aşağıdakilerin hepsi işinize yaramayabilir. Makinanızın IP adresi : 144.122.72.14 benzeri 4 adet birbirinden nokta karakteriyle ayrılmış rakamlardan oluşmalıdır. Ağ maskesi : Yine IP adresine benzer şekildedir, genellikle 255.255.255.0 gibi bir rakamdır. Arayüz (gateway) adresi : Bilgisayarınızın dış dünyaya açılan kapısı Alan adı sunucusu (DNS) IP adresi : Makine adından IP adresini bulmak için kullanılır. Alan adı (domain name), örnek olarak gelecek.com.tr Makine adı (host name), örnek olarak penguen.gelecek.com.tr 19.1.3 Disk alanı Sabit diskin hangi alanını Linux için ayıracağınıza şimdiden karar verin. En azından iki disk alanını Linux için kullanmanız gerekecektir. Bu disk alanlarından bir tanesi takas alanı (swap space) için ayrılacaktır. Yeni bir diskiniz varsa ya da eski sisteminizden zaten kurtulmayı planlıyorsanız sorun yok, ancak boş ve Linux için ayrılmayı bekleyen bir disk alanınız yok ise bazı DOS yazılımları yardımıyla yeni disk bölümleri yaratmalısınız. Bunun için fips ve defrag ikilisi gayet ideal ve uzun yıllar boyu denenmiş programlardır. Yapılması gerekenler kabaca, Önce bölmek istediğiniz yer için diskinizde yeteri kadar alan bulunup bulunmadığını kontrol edin. Windows'un disk defrag yazılımı ile disk üzerindeki verilerin tamamını tek bir bölgede toplayın. Böylece kalan yeri bölebilirsiniz. fips ile kalan bölgeyi ikiye bölün.Gerekiyorsa bu işlemi tekrarlayın. 19.1.4 Takas Alanı Takas alanı kullanırken, bir seferde daha fazla uygulama ile çalışmanızı sağlayacak şekilde Linux kullanılmayan sayfaları bellekten diske taşır. Ancak, takas alanı genelde yavaş olduğundan gerçek fiziksel belleğin yerini dolduramaz. Takas alanı 2 Gb’tan fazla olamaz. toplam 16 tane takas bölmeniz olabilir. Takas alanını 80 Mb’tan fazla ayırmaya gerek yoktur, bu yetrli olacaktır. 19.1.5 CD-ROM'dan kurulum Mandrake Linux'un en kolay kurulum yöntemi CD'dendir. Ancak CD'nin bulunamadığı zamanlarda da Mandrake'yi bir FTP adresinden, sabit diskten veya NFS sunucudan kurabilirsiniz. 19.1.6 Disk bilgileri Kurulum yöntemini (bizim metodumuz CD'den olacaktır) ve ne kadar yeri Linux için açmanız gerektiğini şimdiden biliyor olmalısınız. Disk sıkıntınız varsa ve deneme amaçlı kuracaksanız 300Mb, diğer durumlarda en az 600Mb yer ayırmanız tavsiye edilir. 19.1.7 Kurulacak Sistemin Açılması Sahip olduğunuz Manrake CD'si bootable yani doğrudan CD'den açılabilir durumdadır.CD'yi yerleştirdikten sonra BIOS'tan CD'den açılacak şekilde ayarlarsanız makine CD'den açılavak ve kurulum başlayacaktır. Eğer bilgisayarınız CD'den açılmıyorsa disketlerden açmak için açılış disketlerini oluşturmalısınız. Bu disketler CD altında images dizini altında bulunurlar. dosutils dizinindeki rawrite.exe programını çalıştırarak imagescdrom.img dosyasını bir diskete yazdırmanız gerekiyor. Buradaki cdrom.img dosyası kurulum CD'den yapılacağı için seçilmiştir. Temiz bir disketi A: sürücüsüne yerleştirin ve CD'nizi bilgisayara takın. Aşağıdaki işlemleri sırasıyla yapın. D:dosutils> RAWRITE Enter disk image source file name: ..IMAGESCDROM.IMG Enter target diskette drive: A: Please insert a formatted diskette into drive A: and press -ENTER- : Yukarıda sırasıyla hangi disket görüntüsünü (cdrom.img) ve bunu nereye (A: sürücüsü) yazdıracağımızı belirttik. Başka bir CD'ye ihtiyacımız olmadığı için artık kuruluma başlayabiliriz. Diskete yazdırma işlemi bittiği zaman disketi yuvasından çıkartın ve bilgisayarı, disketten açılacak şekilde BIOS'tan ayarlayın. Anakartınız ve BIOS destekliyorsa herhangi bir ek diskete gerek kalmadan kurulum yapabilirsiniz. Sadece Manrake CD'sini yerine takmanız ve BIOS'tan açılış önceliğini CD'ye vermeniz gerekecektir. Bilgisayarınız açılır açılmaz bir açılış ekranı ile karşılaşacaksınız. Bu açılış ekranından itibaren yapabilecekleriniz, Kurulum için değişik yöntemler belirlemek Fonksiyon tuşlarını kullanarak değişik kurulum metodları hakkında bilgi almak Ayrıca kurulu olan Linux sisteminiz varsa ve açılış ile ilgili hatalar varsa bunları düzeltmek olabilir. Biz kuruluma başlayacağımız için verilen seçeneklerin ilkini kullanıyor ve sadece ENTER tuşuna basıyoruz. Eğer expert seçeneğini seçseydik kurulumu çok daha ayrıntılı biçimde yapacaktık.Bu durumda ise hata yapma olasılığımız oldukça yüksek olacaktı. Linux, kurulumdam sonra birden çok sanal ekran destekler. Her bir ekranı görebilmek için ALT tuşu ve bir klavye üzerinden 1-7 arasında bir tuşa basmalısınız. Sistem açıldığı anda 1. ekran (ALT-1) üzerinde olursunuz. Diğer ekranların her birinden (nadiren gerekse de) kurulum ve çekirdek mesajlarını görmek mümkün olur. Şimdi etkileşimli kuruluma başlayabiliriz. İlk olarak bir hoşgeldiniz yazısı sizi karşılar. "Ok" diyerek bu bölümü geçin. Ardından kurulumda kullanılacak dil seçimine geleceksiniz. Bu bölüm istediğiniz bir dili seçin. Gördüğünüz gibi Mandrake Linux'un kurulum dilleri arasında Türkçe de bulunmaktadır. Eğer isterseniz Türkçe seçeneğini seçebilirsiniz, Türkçe'yi seçtiğimizde KDE'yi de Türkçe olarak ayarlıyor. Fakat CD'de Xwindows için gerekli olan Türkçe fontlar yüklü olmadığından dolayı ilk etapta sorun çıkarıyor. Bundan dolayı biz kurulumu da İngilizce olarak yapacağız.Eğer kurulum dilini Türkçe olarak seçerseniz Türkçe fontları ftp.gelecek.com.tr adresinden indirip sisteminize kurabilir, ve rahatlıkla Türkçe sorunu olmadan İnternet'te sörf yapabilirsiniz. Karşımıza gelen ekrandan bahsedelim.Gördüğünüz gibi ekran 3 kısımdan oluşmaktadır. Sol tarafta işlemlerle ilgili bir seçenek sağ üstte işlemlerin yapılacağı ve ekranın çoğunu kaplayan bir kısım ve solda en altta gerekli açıklamaların olduğu bir kısım bulunmaktadır.Sol taraftaki menüde işlemler yeşil,kırmızı ve sarı ışıklarla işaretlenmiştir.Yeşil seçenekler tamamlanmış olan işlemleri, sarı seçenekler o anda yapılan işlemleri ve kırmızı seçenekler ise daha yapılmamış olan seçenekleri gösterir.Fare ile üzerleri tıklanarak işlemler üzerinde geri dönülebilir.Ekranın sol alt köşesindeki 3 renk ise ekranın 3 farklı renk seçeneğini göstermektedir. Bu seçenek tamamen görseliğe dayanan bir seçenektir. İşlemlerin herhangi bir anında bu renkler tıklanarak ekranın rengini değiştirebilirsiniz.Açıklama kısmında ise o andaki seçenekler hakkında ayrıntılı bilgi içerir. 19.1.8 Kurulum Çeşidi ve Donanımsal Seçimler Şimdi ise nasıl bir kurulum yapacağımızı seçeceğiz. Karşımıza üç seçenek çıkmaktadır. Recommended, Customized ve Expert. Şimdi bunlardan kısaca bahsedelim: Recommended: Bu seçenek Linux'u ilk defa kuracaklar için hazırlanmıştır. Bu seçenek seçildiğinde ileride karşımıza çıkacak olan seçeneklerin birçoğu sistem tarafından ayarlanacak ve kullanıcının yapması gereken pek birşey kalmayacaktır. Customized: Daha önce Linux kurmuş ve kullanmış kullanıcılar için hazırlanmış olan bir seçenektir.Bu seçenek ile hangi tür paketleri seçeceğimizi belirleyebiliriz. Expert: Kurulum sırasında bütün paket seçenekleri tek tek seçebilirsiniz.Customized seçeneğinde sadece hangi tür paketlerin seçileceği belirlenir fakat bu seçilen türün içinden paketler tek tek seçilemez. Eğer Customized veya Expert seçeneği seçilirse bundan sonra karşımıza bir seçenek daha gelir. Bu seçenek ile kuracağımız sistemi hangi amaçla kullanacığımız sorulur. Geliştirme amaçlı kullanacaksanız Development seçeneğini, sunucu amaçlı kuracaksanız Server seçeneğini, bunların dışında bir amaçla kullanacaksanız ise Normal seçeneğini seçmelisiniz.Biz Normal seçeneğini seçerek kuruluma devam ediyoruz. Bu aşamadan sonra ise makinemizdeki sabit disk ve cdrom gibi aygıtların tanınması için PCI araçlarının aranıp aranmamasını sorar. Evet seçeneğini seçerek devam ediyoruz. Sistem PCI aygıtları tanıdıktan sonra SCSI araçların kullanılıp kullanılmadığı soruluyor. SCSI araçlar kullanılıyorsa çekirdeğin bazı ek desteklere ihtiyac duymasından dolayı bu soru sorulmaktadır. SCSI aracınız varsa bu seçeneği seçmeyi unutmayınız. Bizim SCSI aygıtımız olmadığından dolayı bu seçeneği No cevabı ile geçiyoruz. 19.2 Kurulum Sistemin donanımı ile ilgili ön hazırlıklar bittiğine göre artık kuruluma başlayabiliriz. Şimdi ise bize sistemde kurulum veya güncelleme seçeneklerinden hangisini yapacağımız sorulmaktadır. Biz sistemi ilk defa kurduğumuz için Install seçeneğini seçiyoruz. Fakat daha eski bir Mandrake sürümümüz varsa Upgrade seçeneği ile Mandrake 7.0'a güncelleyebiliriz. 19.2.1 Sistemle İlgili Sorular Bu aşamada bize sistemle ilgili bazı sorular sorulmaktadır.Bu sorulara göz atalım: Use Hard Drive Optimisations: Bu seçenek sadece uzman Linux kullanıcılar tarafından seçilmelidir. bu seçenek sabit disk erişimi için izinlerin ayarlanmasında kullanılır. Choose Security Level: Bu seçenek ile kurulacak olan sistemin güvenlik seviyesi belirlenir.Sistemin güvenliği ne kadar yüksek seçilirse o kadar güvenli olacak fakat aynı zamanda sistemin az da olsa yavaşlamasına sebep olacaktır. Precise RAM Size If Needed(...): Eğer parantezler içinde belirtilen bellek (RAM) boyutu sizinkinden farklı ise bu seçenekteki kutucuğa makinenizin belleğinin boyutunu yazmalısınız.Büyük boyutlu bellekler Linux tarafından doğrudan tanınmayıp ek parametrelere ihtiyac duyulduğundan böyle bir seçeneğe gerek duyulmuştur. Removable Media Automounting: Burada görülen supermount Mandrake'nin ilk defa 7.0 sürümü ile çıkardığı bir komuttur. bu seçeneği seçtiğinizde CDROM veya disketinizi kullanmak için mount etmenize gerek kalmayacaktır. Enable Num Lock At Startup: Bu seçenek seçildiğinde bilgisayar açıldığında klavyedeki NumLock seçeneği aktif hale gelecektir. 19.2.2 Sabit Disk Bölümlemesi Şimdi ise Linux'u sabit diskteki hangi bölüme kuracağımızı ayarlayacağız.Fakat bunun için ilk önce Linux'a sabit diskte yer açmamız gerekiyor. İlk durumda bizim sabit diskimiz boş durumdadır. Fakat sizinki biraz daha farklı olabilir. Ekrandaki seçeneklerde bahsedelim.Üst kısımda değişik renklerdeki kutular oluşturulacak veya mevcut bölümlerin grafiksel olarak gösterilmesi için oluşturulmuştur.Ayrıca bu kısımdaki tuşların yani bu kutuların üstüne basarak bölüm oluşturmaya başlayabiliriz. 'Clear All' seçeneği ile bütün yapmış olduklarımızı silebiliriz.Doğrudan 'Auto Allocate' seçeneğini seçerseniz sistem bütün herşeyi kendi ayarlayacaktır.'Undo' ile yapmış olduğunuz değişikliği geri alabilir,'Reload' ile sabit diskteki bölümlemeyi programa tekrar okutabilirsiniz.Yaptığınız ayarları 'Save On Floppy' ile diskete kaydedebilir ve 'Restore From Floppy' ile daha sonra disketten istediğiniz ayarlara ulaşabilirsiniz. Üst kısımdaki 'Filesystem Types' seçeneği ile ilk önce hangi tür sabit disk bölümü oluşturacağımızı seçeceğiz. Swap'in bulunduğu kısmı tıkladığımızda karşımıza gelen ekrandaki seçeneklere göz atalım.'Start Sector' ile oluşturacağımız bölümün sabit diskteki kaçıncı sektörden başlayacağı seçilir. Bu kısım her zaman otomatik olarak ayarlandığından seçeneği değiştirmemeniz tavsiye edilir.'Size In MB' ile oluşturacağımız bölümün boyutunu belirliyoruz. Swap (takas) için 90 MB her sistem için yeterlidir (Bellek miktarı 64Mb veya daha fazla ise takas alanını daha düşük - 30 Mb - tutabilirsiniz. Oluşturduğumuz takas bölümü sabit diskte bellek görevini görecektir.Sistemin gerektiğinde bellek ihtiyacını karşılayacaktır. Takas seçeneğini seçtikten sonra alt kısımdaki 'Auto Allocate' seçeneğini seçerek siğer kısımların hepsinin sistem tarafından otomatik olarak ayarlanmasını sağlıyoruz. Bölümleri istediğimiz şekilde ayarladıktan sonra bize değişiklerin kaydedilip kaydedilmemesini soracaktır. Ok ile onayladıktan sonra oluşturduğumuz bölümleri formatlama ile ilgili bir seçenek ile karşılacağız.Burada oluşturduğumuz bütün bölümleri formatlama seçeneğini seçmeliyiz. Formatlanacak seçenekleri seçtikten sonra bize bu seçilen bölümlerin formatlanma sırasında diskteki hatalara karşı denetlenip denetlenmeyeceği sorulur. Bu seçeneği seçmenizde (OK tuşu ile) yarar vardır. 19.2.3 Paket Seçimi ve Kurulum Kurulacak olan peketleri seçmeye başlayacağız.Karşımıza gelen ekranda oldukça fazla seçenek mevcut. Bu seçeneklerle ilgili ayrıntılı bilgi bundan sonraki adımda verilecektir. Eğer bütün seçenekleri seçerseniz bundan sonraki adım biraz uzun sürebilir fakat kuracağınız paketlerin ne olduğunu öğrenebilirsiniz.Biz bundan dolayı bütün paketleri seçtik. Bundan sonraki adımda kuracağımız sistemin toplam ne kadar boyuta sahip olması gerektiğini seçeceğiz. Bu seçenek görüldüğü gibi kullanıcı için oldukça büyük avantajlar getirecektir.Çünkü sisteminin kapasitesine göre seçim yapmak zorunda kalacaktır.Eğer bizim kullandığımız gibi küçük bir diske sahipseniz bu aşamadan sonraki paket seçeneğinde oldukça rahat olunacaktır. Şimdi ise kuracağımız paketleri teker teker seçeceğiz.Sağ taraftaki oklara basarak veya başlıklar çift tıklanarak alt seçeneklerin gelmesi sağlanabilir. Gelen seçenekler tıklandığında sağ tarafta seçilecek olan paket hakkında daha ayrıntılı bilgiye sahip olunabilir.Paketler çift tıklanarak seçilip seçilmemesi sağlanır. Bu seçenek sadece başlangıçta 'Expert' kurulum seçeneği seçilmişse gelecektir. Alt taraftaki 'install' seçeneği ile paketlerin kurulması başlayacaktır. 19.2.4 Ağ (Network) Ayarları Kurulum tamamlandığı zaman eğer ethernet kartı veya modem varsa ağ ayarları yapılacaktır. Eğer ethernet kartı veya modeminiz yok ise 'Do not setup networking' seçeneği ile diğer aşamalara geçebilirsiniz.Eğer ethernet kartına sahipseniz ve yerel bir ağda bulunuyor iseniz 'Local LAN' seçeneği ile ayarları yapabilirsiniz.Modeminiz var ise 'Dialup with Modem' ile modem ayarlarınızı yapıp internete bağlanabilirsiniz. Bunun için modeminizin ISA modem ya da harici modem olması gerekiyor. PCI modemlerin önemli bir bölümü Linux ile çalışmıyor. Bizim ethernet kartımız olduğundan 'Local LAN' seçeneğini seçtik. 'Dialup With Modem' seçeneğini seçtiyseniz bundan sonraki seçeneklere benzer sorular ile karşılaşacaksınız. 'Local LAN' seçeneği seçildikten sonra sistem, kullandığınız ethernet kartını otomatik olarak bulacaktır. Eğer sisteminizde iki veya daha fazla ethernet kartı var ise gelen menüde size sorulan 'Başka bir kart var mı?' seçeneğine 'yes' cevabı ile karşılık vererek sistemin diğer kartı tanımasını sağlamalısınız. Bundan sonra ise ethernet kartımızın IP numarasını ve ağ maskesini (genellikle 255.255.255.0 gibi bir rakamdır) gireceğiz. Bunu da yazdıktan sonra bize sisteme verilecek olan 'hostname' yani makinenin adını, DNS sunucu ve gateway adreslerini soracaktır. Bu ayarları girdikten sonra eğer proxy kullanıyorsak proxy adresini de gireceğiz.Eğer proxy kullanılmıyorsa 'ok' ile bu seçeneği geçmeliyiz. Böylece ağ ayarlarını da bitirmiş olduk. 19.2.5 Cryptographic Bu seçenek ise Linux ve Unix sistemlerin şifreleri saklama yöntemi olan cryptography ile ilgili ayarlamalar yapılacaktır. Mandrake ile bazı kriptografi paketleri lisans sözleşmeleri nedeniyle gelmemekte, sizin İnternet'ten almanız beklenmektedir. Karşınıza gelen ekranda bir lisans sözleşmesi ile karşılacaksınız. Bu sözleşmeyi okuyup 'OK' ile kabul ettikten sonra ise kriptografi ile ilgili programların nereden indirileceği sorulur. Bu seçeneğin uygulanması için makinenizin o an İnternete bağlı olması gerekmektedir. Eğer internete bağlı iseniz listeden herhangi bir seçeneği seçin ve programların gelmesini bekleyin.Eğer internet bağlantınız yok ise 'Cancel' ile bu seçeneği geçiniz. 19.2.6 Zaman Dilimi Ayarı Şimdi ise bulunduğumuz bölgeyi seçerek zaman ayarlarının yapılmasını sağlamalıyız. Biz burada 'Turkey' i seçiyoruz. Bölgemizi de seçtikten sonra bize sorulan soru ile saatimizin GMT uyumlu olup olmadığı soruluyor. Türkiye'nin saati GMT'ye göre ayarlı olduğundan bu seçeneği 'Yes' ile geçiyoruz. 19.2.7 Yazıcı Ayarları Eğer bir yazıcıya sahipseniz yazıcınızı ayarlamaya başlayabilirsiniz. İlk sayfadan sonra gelecek olan seçenekte yazıcının hangi bağlı olduğu kuyruğun ismini ve hangı dizinde kayıtlarının tutulacağı soruluyor. Bunu 'Ok' ile geçmelisiniz. Şimdi ise kuracağımız yazıcıyı hangi amaçla kullanacağımız soruluyor.'SMB/Windows95/98/NT' seçeneği ile yazıcıyı samba adlı program üzerinden windows makineler ile ortak kullanabilir,'Remote lpd' ile diğer makinelerin uzaktan erişimini sağlayabilir 'NetWare' ile netware üzerinden kullanilabilir veya 'Local Printer' ile sadece kurulan makine üzerinden çalışmasını sağlayabiliriz. Biz 'Local Printer' seçeneğini seçiyoruz. Ardından yazıcının bağlı olduğu portu seçmeliyiz. Standart olarak yazıcının bağlı olduğu port paralel port yani /dev/lp0'dır. Ardından seçtiğimiz yazıcıya göre uygun baskı ayarlarını (sayfa boyutu için A4 gibi) seçiyor ve yaptığımız ayarları test ediyoruz. En son olarak ise yaptığımız ayarları test ediyoruz. 19.2.8 Root Şifresi Şimdi root şifresini belirliyoruz. Burada root şifresini belirlemenin dışında şifreleme ile ilgili ek güvenlik seçenekleri vardır. 'Use Shadow File' ve 'Use MD5 Passwords' seçenekleri ile güvenliği arttırabiliriz. 'Use NIS' ile ise ağdan şifre paylaşımını sağlayabiliriz. Normalde sadece parolayı vermek yeterlidir. 19.2.9 Kullanıcı Ekleme Eğer sisteme yeni kullanıcı eklemek istiyorsanız bu kısımdan ekleyebilirsiniz. Bu kısımı 'Done' seçeneği ile atlayıp daha sonra 'adduser' komutu ile yeni kullanıcı ekleyebilirsiniz. 19.2.10 Açılış Disketi Oluşturma Eğer daha sonra sistemdeki arızaları gidermek için kurtarma disketi yapacaksanız bu seçeneği 'yes' ile cevaplamalısınız. 19.2.11 Lilo Ayarları Lilo sistemin açılış yöneticisidir. Eğer bunu kurmazsanız hatalarla karşılaşabilirsiniz. İlk olarak Lilo'nun nereye yazılacağını seçmeliyiz. Bunun için 'Boot Device' olarak /dev/hda seçilmelidir.Eğer SCSI aygıtlara sahipseniz 'Linear' seçeneğini seçmelisiniz. Bunun dışındaki ayarlarla oynamanıza gerek yok. Şimdi karşımıza gelen ekranda makinede kurulu olan işletim sistemlerine göre ayarlar zaten yapılmış olacaktır. Eğer bunlar üzerinde değişiklik yapmak istiyorsanız çift tıklamalısınız. 'Done' seçeneği ile lilo'nun ayarlanmasını bitirebilirsiniz. 19.2.12 X-Windows Ayarları Makinenin ekran kartınızı kendisinin tanımasını istiyorsanız bu seçeneğe 'Yes' ile cevap veriniz. Eğer ekran kartınız tanınmadıysa karşınıza gelecek olan listeden seçmelisiniz. Bundan sonra ise monitörünüzün desteklediği çözünürlükleri seçmelisiniz. Bunu da seçtikten sonra makinenin monitörü test ederek uygun çözünürlükleri bulmasını sağlayabilirsiniz. Bundan sonra size monitörünüzün birkaç defa kapanıp açılacağı söylenecektir.Buna da 'Ok' dedikten sonra monitörünüz tanınacak ve X-Windows ayarlarınız bitmiş olacaktır. Artık kurulum tamamen bitmiştir. 'Ok' tuşuna basarak sistemin tekrar başlamasını sağlayabilirsiniz. 20. LINUX VE WINDOWS9X BİRARADA NASIL KULLANILACAK 20.1. Giriş Linux birçok yönüyle Win95'ten daha iyidir. Bu yüzden Win95 yerine Linux kurulur. Ama bilgisayarda daha yeni olanlar veya Microsoft ürünlerini çok sevenler sabit diskine her ikisini de kurmayı tercih eder, böylece istediği zaman Win95 istediği zaman Linux açabilirler. Tabii bu size biraz sorun yaratacaktır. Eğer iki sabit diskiniz varsa bütün bu sorunlardan kurtulabilirsiniz. Bu belgenin devamında sizin 850Mb'lık bir sabit diskiniz olduğunu düşünüyoruz. 20.2. Sabit diskin bölümlenmesi: Eğer daha önceden Win95 sabit diskinize yüklü ise, sabit diskinizden bir şeyler silmeniz gerekecektir. Çünkü sabit diskin yarısını Win95 diğer yarısını da Linux yapmayı düşünüyoruz. (Aslında 400 MB bile Win95 için fazla.) Bunun için ilk önce gereksiz ne varsa silin. Sonrada "FIPS" veya "Partition Magic" gibi programlardan yararlanarak iki tane bölüm daha oluşturun. (biri takas dosyası, diğeri de Linux'un kendisi için.) Hatırlatma - 1: "FIPS" gibi programları kullanmadan önce size tavsiyem sabit diskinizdeki bölünmüş dosyaları bira araya getirin. Bu işi "defrag" veya Norton'un "speedisk"i ile yapabilirsiniz. Hatırlatma - 2: Linux'un tek kötü yanı eğer Linux bölümünüz 1024. silindirden sonra olursa açmayacaktır. Buna dikkat etmeniz gerekir. Şu anda sabit diskinizin görünümü şöyle olacaktır: ---------------------------------------------- | 400MB /dev/hda1 Win95 Bölümü :FAT/VFAT | ----------------------------------------------- | 400MB /dev/hda2 Linux Bölümü :Ext2 | ----------------------------------------------- | 50MB /dev/hda3 Takas Bölümü | ----------------------------------------------- İsterseniz Linux'unuzu bir yerine bir kaç bölüme ayırabilirsiniz. Bu bölümü oluşturduktan sonra, Linux'u kurmaya başlayabilirsiniz. 20.3. Yeni Sistemi Kullanma: Linux'unuzu kurduktan sonra şimdi onu kullanmaya başlayabilirsiniz. Linux'u açın ve /dos dizinine mount edin # mount -t msdos /dev/hda1 /dos Buradan Win95 bölümüne ulaşabilirsiniz. Hatta çekirdeğiniz VFAT destekliyor ise Win95'teki uzun dosya isimlerini de görebilirsiniz. Çekirdeğinizin VFAT'i destekleyip desteklemediğini /proc/filesystems dosyasına bakarak anlayabilirsiniz. # cat /proc/filesystems ext2 minix msdos vfat nodev proc nodev nfs nodev smbfs nodev ncpfs Hatırlatma -3: Eğer Win95'in yeni sürümlerini kullanıyorsanız ve de bu sürüm FAT12 veya FAT16 yerine FAT32 kullanıyorsa biraz sorun yaşayacaksınız. Çünkü şu anki Linux sürümleri (Linux-2.0.20) henüz FAT32'yi desteklemiyor. Bu gibi bir durumda siz bindirme işlemini edemezsiniz. Win95'in FAT32 olup olmadığını Win95 açtıktan sonra "fdisk" komutunu kullanarak bulabilirsiniz. Eğer FAT32'i kullanıyorsanız "LOADLIN" kullanarak Linux açarsınız, fakat Linux kullanıyorken Win95 bölümünü göremezsiniz. (Bu bence gayet doğal, çünkü Win95 kullanırken de Linux bölümünü göremiyorsunuz.) 20.4. Linux+Win95+DOS Şu ana kadar yaptıklarınızla DOS'u da kullanabilirsiniz. Win95 açarken, "Starting Windows 95..." ("Windows 95 Başlıyor...") yazdığında 2 saniye bekler. Burada F8 tuşuna basarsanız küçük bir menü çıkar. Bu menüden "Command Prompt Only" ("Sadece Komut İstemi")'ni seçerseniz DOS v7.0 açmış olacaksınız. (Buradan "win" yazıp enter tuşuna basarsanız Win95 çalışır.) Eğer "Previous MS-DOS version" ("Önceki MS-DOS sürümü")'nü seçerseniz Win95'i kurmadan önce varolan DOS'u açmış olursunuz. Not 1: "LOADLIN" programını kullanarak bilgisayarınızı kapatıp açmadan Linux'a geçebilirsiniz. Not 2: Eğer menüde "Previous MS-DOS version" yoksa MSDOS.SYS dosyasını "EDIT" komutunu kullanarak BootMulti=1 yazın;eğer BootMulti=0 gibi bir satır varsa bunu da değiştirebilirsiniz. Not 3: Win95 açarken, "Starting Windows 95..." ("Windows 95 Başlıyor...") yazısından sonra F8 yerine F4'e basarsanız direk "Önceki MS-DOS sürümü"nden açar. 20.5. Karşınıza Çıkabilecek Problemler: Ilk önce Linux yükleyip, bunun üstüne Win95 yüklerseniz Linux'unuz çalışmayacaktır. Çünkü Win95 kuruluş aşamasında MBR'yi (master boot record) silecektir. Bu gibi bir durumdaki kurtuluş yolunuz ya "LOADLIN" ya da daha önceden akıllılık edip açılış disketi oluşturduysanız, o disketen açmaktır. Yapabileceğiniz iş Linux'u açıp "LILO"yu yeniden kurmak olacaktır. # liloconfig 21. LINUX VE WINDOWS NT BİRARADA NASIL KULLANILACAK Hiç bir şart altında bölümleri formatlamak için NT 3.51 altındaki Disk Yöneticisi'ni (Disk Administrator) kullanmayın. Size "hiç bir zarar vermeyeceğini söylediği" bir imza yazıp yazamayacağını soracaktır. Bana bunu yaptığında bölüm tablomu, onu ileride anlatacağım 3. ve 7.basamakları uygulayıncaya kadar askıya almıştı. Bu sorunlar yüzünden, bir FAT NT bölümü ile sınırlı kalmıştım. Disk Yöneticisi'ni (Disk Administrator) doğru bir şekilde çalıştırabilseniz dahi Linux NTFS dosya sistemine sahip oluncaya kadar Linux ve NT arasında dosya transferi yapabilmek için küçük de olsa bir FAT bölümüne ihtiyacınız olacaktır. NOT : Altıncı madde yalnızca Debian Linux 1.1, Linux 2.0.0, HP Vectra XU 6/150, Adaptec AIC 7880 Ultra (BIOS1.2S-HP), Quantum Fireball 1080S, Phoenix uyumlu BIOS GG.06.02. NT 3.51 ile alakalıdır. Bu örnekler bir SCSI disk (/dev/sda) için yazılmıştır; IDE sürücüler için /dev/hda kullanabilirsiniz. 1. Linux'u kurun. NT bölümleri de (NT bölümünü FAT olarak yapın) dahil olmak üzere tüm disk bölümlemesini Linux altında yapın. 2. /etc/lilo.conf dosyasını düzenleyin ve boot=/dev/sda (Linux Yükleyicisini (LILO) Linux bölümüne kurmakta başarılı olamadım - benim için /dev/sda idi) ve Linux Yükleyicisini çalıştırın ("lilo"). "ae" editörünü kullanmak zorunda kalacaksınız. 3. MBR'yi dd if=/dev/sda of=/dev/fd0 bs=512 count=1 şeklinde kayıt edin. Bu iş için disket kullanın, bana güvenin ayrıca bunu disk bölümleme tablosunu (partition table) her değiştirdiğinizde tekrarlayın. 4. NT, bölüm 1'i kurun. İşlemin ortasında makineyi açıp kapattığında bilgisayarınız Linux açacaktır. 5. /etc/lilo/conf dosyasına aşağıdaki gibi bir NT satırı ekleyin : other=/dev/sda1 label=NT table=/dev/sda ve yine Linux Yükleyecisini çalıştırın (lilo). Eğer linux yükleyecisini buna itiraz ederse (Mesajı tam olarak hatırlayamıyorum) "linear" seçeneğini /etc/lilo.conf dosyasında "compact" anahtarının yanına yerleştirin. Hatta eğer bölümleme tablonuz NT tarafından işe yaramaz hale getirildi ise, ya "ignore-table" kullanın ya da 7. maddede söylenenleri uygulayın. Ayrıca "fix-table"a bir göz atın. LILO HOWTO size yardımcı olabilir. 6. Makinenizi kapatıp açın, Linux Yükleyicisinden NT'yi seçin ve NT'nin kurulumunu tamamlayın. Ağ sürücülerini yüklemek için "Boot Disk XU, HP Vectra AIC 7880 Driver A.01.02" disketine ve Matrox MGA Millennium ekran sürücülerini yüklemek için "XU/VT Drivers and Documentation" CD'sine ihtiyacınız olacaktır. 7. Linux'a döndüğünüzde, "fdisk"'i çalıştırın ve Linux bölümleri üzerinde "partition doesn't end on cylinder boundary" (Bölüm silindir sınırlarında bitmiyor) mesajları almadığınızdan emin olun. Bu mesaj NT bölümleri üzerinde görülebilir, bu normal bir durumdur. /dev/sda1 1 1 322 329301 6 DOS 16-bit >=32M Partition 1 does not end on cylinder boundary: (Bölüm silindir sınırlarında bitmiyor) phys=(321, 39, 9) should be (321, 63, 32) Cfdisk sistemde "ilginçlik" olduğunu söyleyebilir, bunu dikkate almayın. Unusable 0.04* /dev/sda1 Primary DOS 16-bit >=32Mb 321.59* Unusable 0.39* Eğer Linux bölümleri üzerinde benzer hata mesajları alıyorsanız, cfdisk'i kullanarak "boot sector" gibi birkaç yerde değişiklik yapmanız gerekebilir. Ancak, eğer NT bilgisayarınızı cfdisk'i bile (/dev/sda'yı göremediğini iddia ederek) çalıştıramayacak bir hale getirdiyse daha önce kayıt etmiş olduğunuz bölümleme tablosuna (MBR) ihtiyacınız olacaktır. Bunu aşağıdaki şekilde yapabilirsiniz : dd if=/dev/zero of=/dev/sda bs=512 count=1 dd if=/dev/fd0 of=/dev/sda bs=510 count=1 8. Linux'un kalan kurulumunu tamamlayın? Eğer NT'yi tercih ediyorsanız, linux yükleyicisi yerine bölümleme tablosunu (MBR) yazabilirsiniz. Bölümleme tablosunu temizlemek için aşağıdaki işlemleri uygulayabilirsiniz. a) dd if=/dev/zero of=/dev/sda bs=446 count=1 (Linux'da) yazın veya SCSI yardımcı programlarını kullanarak sabit diskinizi düşük düzeyli (low-level format)formatlayın. IDE bir diski bu şekilde formatlamanın zararlı olduğunu duydum bu yüzden IDE disk kullanıyorsanız bunu yapmayın. b) fdisk /mbr (tabii ki herşeyden önce içerisinde fdisk bulunan bir DOS disketi hazırlamıştınız) yazın. c) NT bölümünü silin ve NT kurulum programı ile yeniden oluşturun. d) NT kurulumuna devam edin. Buraya kadar yazdıklarim Linux paketinde yeralan Linux-NT Nasıl'dan (HOW-TO) çevirdiklerimdi, şimdi de NT ile Linux'u beraber kurmak için -kendi yaptıklarımdan yola çıkarak- yapmanız gerekenleri maddeler halinde açıklayayım. Yalnız bu yaptıklarımda OS/2'n in sistem disketini kullandım, böyle bir alternatifi olmayanlara ancak fikir vermek açısından faydalı olabilir. 1. Diskim için OS/2 Warp 3.0'ın fdisk programını kullandım, bence ilk iş olarak (elinizde yoksa, bir arkadaşınızdan ödünç alabilirsiniz ) bir OS/2 sistem disketi bulun. 2. Bilgisayarı açıp fdisk'i çalıştırın, OS/2'nin Açılış Düzenleyicisini (Boot Manager) kurun, Açılış Düzenleyici 2MB'lik bir yer kaplayacaktır. Daha sonra, iki adet birincil (primary) bölüm oluşturun. Bunlardan biri NT için diğeri de Linux için olacağında n büyüklüklerini istediğiniz gibi ayarlayabilirsiniz. Burada her iki bölümü de "Add to Boot Manager Menu" ile - birer isim vererek, Linux, WinNT gibi - Açılış düzenleyicisinin menüsüne ekleyin. Ve yaptıklarınızı kayıt edip çıkın. OS/2'nin fdisk'i ile işin iz bitti. 3. Bilgisayarınızı açtığınızda karşınıza açılış düzenleyicisi çıkacaktır. Burada hiçbir bölüm formatlı olmadığı için, herhangi biri ile açılış yapma şansınız olmayacaktır. 4. Bu yüzden NT'yi kurmadan, önce açılış düzenleyicisinden NT bölümünü seçerek Linux bölümünü "hidden" yapın. 5. Daha sonra bir sistem disketi ile açarak NT'nizi kurun. Göreceksiniz ki sorun çıkmayacaktır 6. Linux'u kurmak için Linux bölümünü aktif hale getirmenize gerek yok, ancak linux'u kurmadan fdisk ile "linux native" yapacağınız bölümü NT'nin bölümü ile karıştırmamaya özen gösterin. 7. Linux yükleyicisinin (lilo) ayarlarını yaparken de -mesajı tam hatırlamıyorum ancak- kendini MBR yerine kendi kullandığı bölümün başına (boot sector) kurmasını sağlayın. Bu sayede linux'un OS/2'nin açılış yükleyicisini etkisiz hale getirmesini engellemiş olursunuz, ayrıca açılıştaki bekleme süresini kaldırmak da (0 yapmak) iyi bir fikir olabilir, çünkü tüm işlemler OS/2 açılış düzenleyicisi tarafından yapılacaktır. 8. Linux'un kurulumunu da tamamladığınızda, eksik kalan hiç bir şey olmayacak, açılıştaki açılış düzenleyicisi ile istediğiniz bölümü açmanız mümkün. ____________________ Coder By HadroC
 
  Bugün 36437 ziyaretçi (115309 klik) Üye burdaydı!  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol