![]() |
|
|||||||
| Linuxu TanıyaLım Linux İşletim Sistemi icinde Linuxu TanıyaLım konusu , 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 ... |
![]() |
|
|
LinkBack | Konu Seçenekleri | Modları Göster |
|
|
#1 (permalink) |
|
Foruma Erişimi Yasak
![]() |
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 ¤¤¤¤¤¤ 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/¤¤¤¤¤¤ kartı New Media Winsurfer PCMCIA mode/¤¤¤¤¤¤ 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 anl----- 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 anl----- 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 sen¤¤¤leyici 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 <disk-bölümü>: 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 > <Cancel> 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 anl----- gelir. Liste içindeki ‘^’ karakteri, sonrasında bilirtilen liste dışındaki bütün karakterler anl----- gelir. Örneğin *[^0-9]* adında rakam olmayan herhangi bir dosya anl----- 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/¤¤¤¤2&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<<denem.txt $ cat deneme.txt deneme1 deneme2 $ örnekte görüldüğü gibi ilk komut deneme.txt dosyasını oluşturdu. İkincisi ise oluşan dosyanın içeriğini koruyarak ikinci komutun çıktısını bu dosyanın sonuna ekliyor. Standart hata ve çıktıya ek olarak UNIX’ in desteklediği bir yönlendirme daha vardır: standart girdi sayesinde bir dosyayı oluşturan satırlar, bir komut veya programa yönlendirilebilir. Daha önce bir etin editör kullanarak hazırlamış olduğumuz raporu patrona kısa yoldan göndermek için, $ mail -s “rapor” patron< rapor.txt dosyanın içeriği, mil komutuna girdi olmuş ve rapor.txt dosyası patron kullanıcısına “rapor” konu başlığı ile e-posta ile gönderilmiştir. 3.3 Boru (pipe) İşlemleri Bazı durumlarda, bir komutun çıktısı diğer bir komuta yönlendirilebilir. Başka bir deyişle, komutun standart çıktısını bir dosyaya değil, bu çıktıyı işleyecek başka bir komuta yönlendirmek istiyorsunuz. Bu amaçla UNIX altında (yine DOS’ta olduğu gibi) boru ( | ) karakteri kullanılır. Bu karakter, kendinden önce gelen komut veya komut serisinin çıktısını, kendinden sonra gelen komuta gönderir. Örneğin bir dizinde yer alan tüm dosyaları yazıcıya aktarmak için, $ ls -al | lpr komutları kullanılabilir. Artık ls-al komutunun ekrana vermesi gereken tüm bilgiler, lpr komutuyla yazıcıya gönderilmiştir. İlk komutun standart çıktısı, ikinci komuta standart girdi olarak atanır. Diğer bir örnekte, README dosyasında kaç satır olduğu bulunuyor.bir dosyadaki veya komut çıktısındaki satır, karakter ve kelime sayılarını bulmak için wc komutunu kullanabilirsiniz. $ who | wc -l 40 yönlendirme, bir programdan bir dosyaya yapılabilir, fakat bir programdan başka bir programa yönlendirme yapılamaz. Benzer şekilde, iki dosyanın arasında pipe işlemi uygulamak mümkün olmaz. # ps -aux | grep inetd | grep -v grep|awk ‘{print $2}’ | xargs kill -l Yukarıdaki örnek zorlama bir örnek değil, bir Linux sistem yöneticisinin her an kullanması gerekebilecek türden. 3.4 Çok görevlilik UNIX’in en büyük silahlarından biri süreçtir. Her süreç sistemde bağımsız çalışan, birbirini etkileyen ve her biri kendi kaynağını kullanan programdır. Süreçler arka planda veya kabuğun kontrolünde çalışabilir. Çekirdek, her sürecin kullandığı sistem kaynağından haberdar olur ve bu kaynakların süreçler arasında adilce paylaşılmasından sorumludur. Bir süreç, aksi belirtilmedikçe çalıştığı süre içinde klavyeden bilgi alır ve ekrana bilgi verir. Kullanıcılardan haberi bile olmadan çalışan süreçler, Linux makinesindeki G/Ç işlemlerini gerçekleştirebilmek için sürekli faaliyet içinde bulunurlar. Onlarca süreçten bazıları kullanıcıların sisteme girmesini sağlarken (getty) bazıları da WWW ve FTP gibi internet tabanlı istekleri yerine getirir. 3.4.1 Arka Planda Çalıştırma Bir komutu arka planda çalıştırmak için, komutun sonuna & karakteri getirilir. Komutu girdikten sonra tekrar kabuk istemcisine düşer ve kalınan yerden devam edilebilir. Program, arka planda diğer süreçlerle çakışmadan bir süre çalışır ve işi bittiğinde durur. $ sort buyuk_dosya>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. |
|
|
|