Linux'ta Performans Artırmak İçin İpuçları

Kullanilacak Bilgisayarin Linux Icin Hazirlanmasi

Tum Guc Yonetimi Ozelliklerini Devre Disi Birakin

Bilgisayarimizin performansi, surekli calismasi ve disklerinin surekli donmesiyle dogrudan baglantilidir. Bu nedenle cpu bekleme konumu ve ozellikle disklerin durdurulmasi ozelliklerinin devre disi birakilmasi cok ONEMLIDIR. Aksi taksirde bu suspend durumundan bilgisayarin tekrar normal konumuna donmesi icin gececek hatiri sayilir bir beklemeye neden olacaktir.


Sistem Kernel'inde Yapilabilecek Degisiklikler

En Guncel Surumu Kullanin !

PGCC Kullanin

Pentium makinaniz varsa, bunun icin optimize edilmis olan bu derleyiciyi kullanin.

Islemcinizi Dogru Secin

Kernel parametrelerini ayarlarken, makinanizdaki islemciyi secin. Processor Family = (PPro,Pentium) gibi. Bu, kernelinizin islemcinizin tum instruction setini kullanmasina ve dolayisiyla performans artisina neden olacaktir.

MTRR Destegi Ekleyin

Eger Islemciniz Pentium Pro/II/III yada AMD K2-2/3 den biriyse MTRR = [X] olmalidir.

Math Emulation Devre Disi !

Islemciniz Math Coprocessor tasiyorsa, kernel ayarlarindan Math Emulation degerini devre disi birakin. Bu Matamatik yogun (X gibi) islemlerde muthis fark edecektir.

SMP Sadece SMP Makinalar Icindir

SMP destegini, ancak makinaniz SMP bir makinaysa, yani birden fazla islemci iceriyorsa devreye sokun. Aksi halde devre disi birakin.

Server larda Guc Yonetimi Olmaz

Eger Linux' iniz server olarak calisiyorsa APM (Advanced Power Management) devre disi birakilmalidir. Disklerin durup tekrar calismasi omurlerini azalttigindan cok buyuk sistemlerde, diskler ayri bir unite icinde olup hicbir zaman kapatilmamalidir.

Chipset Duzeltmeleri Gerekli Oldugunda Aktive Edilmeli

Kernel icinde cesitli chipsetler icin hata duzeltmeleri yapilabilmesine olanak saglanmistir. Eger sizin sisteminiz bu chipsetlerden ihtiva etmiyorsa bunlari devre disi birakin. Ornegin RZ1000 chipseti.

Birden Cok Disk Icin Stripping (RAID-0)

Eger birden cok diskiniz varsa RAID-0 devreye konulmalidir.

Kernel/User Netlink

Kernel/User Netlink ozelligini devre disi birakin

SCSI Destegi SCSI Sistemler Icindir

Eger SCSI cihazlariniz yıoksa, SCSI destegini devre disi birakin

SCSI Sistemlerde Probe All LUN

Eger mutlaka tum LUN (Logical Unit Number) lari check etmek istemiyorsaniz Probe All Luns ozelligini devre disi birakin. Dikkat ! Eger Makinanizdaki SCSI cihaz bosluk atlayarak bu degere sahipse (Orn, Lun 1: HDISK1, Lun 3: HDISK2) bu ozelligi devre disi birakmayiniz.

Verbose SCSI Error Reporting

Verbose SCSI error reporting ozelligini devre disi birakiniz.

SCSI Logging Facility

SCSI Logiing Facility ozelligini devre disi birakiniz.

Maximum Number Of Commands Per LUN

Deneyerek sistemize en uygun degeri bulunuz. Herhangi bir standardi yada yaklasimi yok.

Network Gerekli Mi ?

Eger gerekli degilse, tum network cihazlarini devre disi birakin.

Maximum Number of Unix98 PTYs

Bu degeri 128 olarak tanimlayin

Watchdog Timer Support

Bu ozelligi devre disi birakin

Gerekli File Sistemler Icin Destek Verin

Sadece sisteminizde kullanacaginiz file sistem ler icin destek verin. Digerlerini devre disi birakin (Ornegin MSDOS (VFAT), EXT2fs, /dev/pts, /proc ve ISO 9660 CDROM genellikle yeterlidir.)

Network File Sistemler Icin Gerekli Olanlara Destek Verin

Network file sistemler icin, sadece gerekli olanlara (ornegin NFS (#undef NFS_PARANOIA ile birlikte)) destek verin.

Console Suruculerini Devre Disi Birakin

VGA Text Console yeterli. Digerlerini devre disi birakin.

Enhanced Real Time Clock Support

Buna ihtiyacimiz yok. Devre disi birakin

Gereksiz Seri Port ve Mouse Suruculeri

Gereksiz seri port ve mouse suruculerini devre disi birakin.

TV Kartiniz Var mi ?

Eger cevabiniz hayirsa Video for Linux 'i devre disi birakin.

NON SCSI/IDE/ATAPI CDROMs

Hic geregi yok. (Eger side bir tane bunlardan yoksa tabii ki) Devre disi birakin.

ISDN Var mi ?

Cevabimiz genllikle hayir. O halde devre disi birakin.

Loadable Modullere Gerek Var mi ?

Bttv (video4linux) gibi ozellikle bazi parametreleri disardan girilmesi gereken cihazlarin disinda modul olarak birseyler olusturmayin. Eger kernel too big gibi bir hata alirsaniz make bzlilo ile derleyebilirsiniz.

Amateur Radio

Buda ne ? Devre disi birakin.

Irda SubSystem

Eger bir notebook yada benzeri birsey uzerinden infrared kullanmiyorsaniz, devre disi birakin.

Makina Multimedya Destegi Veriyor mu ?

Eger cevabiniz hayirsa tum ses kartlari ve joystick leri devre disi birakin.

Linux Sistem Programlarinin Hazirlanmasi

Sisteminizda calisan uygulamalarin olabildigince guncel surumlerini kullanin. Bu, hatalari en aza indirilmis bir sisteme ve daha durayli bir Linux'a sahip olmanizi saglayacaktir. Derleyici olarak (eger makinaniz pentium serisi ise) pgcc kullanin.

Tum Gereksiz Sistem Servisleri ve Daemon lari Devre Disi Birakin

Bilgisayarinizda gereksiz uygulamalari devre disi birakin. Ornegin evde kullandiginiz bilgisayarda web sunucusunun, news sunucusunun, samba nın calismasi oldukca gereksizdir. Benzer sekilde web sunucusu olarak kullanilan bir makinada X serverin calismasi da ornek verilebilir.

Az Gerekli Uygulamalarin Onceliklerini Dusurun

Sisteminizde calisan uygulamalarin onceliklerini nice komutuyla dusurebilirsiniz. Ornegin evdeki makinanizda sendmail yada cron programlarinin yuksek oncelige ihtiyaclari yoktur. Benzer sekilde internet proxy makinasi olarak calisan bir makinada cron yada news sunucusunun onceliklerinin yuksek olmasinin bir geregi yoktur.

IRQ Kesintilerinin Onceliklerini Ayarlayın

irqtune, cok kullanisli bir yardimcidir. Bir veritabani sunucusu, ethernet kartindan cok disk islemleri yapar. Bu nedenle ethernet onceligi dusurulurken, disk controlller onceligi yukseltilebilir. Ornegin irqtune 11 8 (11 adaptec scsi kontroller irq su, 8 PCI Ne2000 ethernet irq su) bir veritabani sunucusu icin iyi bir tercihken, bir internet gateway icinse irqtune 8 11 daha iyi bir tercihtir.

IDE Diskiniz Varsa Disk Erisim Parametrelerini Duzenleyin

HDPARM, ide controller inizin calisma parametrelerini ayarlayabildiginiz bir programdir. Read-ahead bufferi, DMA kullanimi gibi cesitli parametreleri duzenleyebilirsiniz. Ayni zamanda harddisk uzerindeki cache, chipset gibi ozelliklere de bagli oldugundan her sistem icin en uygun degerin tespit edilmesi onemlidir. Ayni zamanda diskten bir seferde okunan bilginin hacmi de bu parametrelerde onem tasir. Ornegin veritabani uygulamalari gibi bilgiyi blok blok okuyan bir uygulama yogun calisiyorsa, DMA aktivasyonu sirali okuma performasyonunu artirirken, rasgele okuma hizini dusurebilir.

Sistem Daemon larinin Ayarlanmasi



 

TCP/UDP Performansi

Sisteminizin band genisligi iyiyse (ornegin local 10 mbit) yapilacak birkac ufak degisiklikle, TCP performansi onemli olcuda arttirilabilir.

Time Stamps

Duraysiz baglantilarda ve dusuk hizlarda networkte cevaplama/band genisligi utilizasyonu icin kullanilan bir parametredir. Intranetlerde iyi bir ethernet altyapisi ve hizli bir omurga oldugu icin buna ihtiyac yoktur. echo 0 > /proc/sys/net/ipv4/tcp_timestamps komutuyla bu ozellik devre disi birakilabilir.

Tcp Window Scaling

Duraysiz baglantilarda ve dusuk hizlarda uzun beklemelrin duzeltilmesi icin kullanilan bir parametredir. Intranetlerde iyi bir ethernet altyapisi ve hizli bir omurga oldugu icin buna ihtiyac yoktur. echo 0 > /proc/sys/net/ipv4/tcp_window_scaling komutuyla bu ozellik devre disi birakilabilir.

Selective Acknowledgements

Duraysiz baglantilarda ve dusuk hizlarda network utilizasyonu icin kullanilan bir parametredir. Intranetlerde iyi bir ethernet altyapisi ve hizli bir omurga oldugu icin buna ihtiyac yoktur. echo 0 > /proc/sys/net/ipv4/tcp_sack komutuyla bu ozellik devre disi birakilabilir.

PPPD - Internete Giden Yol

Burada, 56 k modemler ile internet baglantisinin tune edilmesi anlatilmistir.

56K Hazir Mi ?

Oncelikle modeminizin hizini kontrol edin. Internete baglandiginizda hiziniz 57600 gorunuyorsa V90 yada 56KFlex devrede degil demektir. Bazi eski USR 56 k modemlerde flash bios update programlari ile bu yukleniyordu. Gercekte baglanti hizinizin 44000 gibi biryerlerde olmasi gerekli.
Seri Portlarinizin Hizlarini Ayarladiniz Mi ?
#!/bin/sh
/bin/setserial -v /dev/modem port 0x2f8 irq 3 spd_vhi
/bin/sleep 1s
/bin/setserial -v /dev/modem port 0x2f8 irq 3 spd_cust baud_base 460800 divisor 2
/bin/sleep 1s
/bin/setserial -v /dev/modem port 0x2f8 irq 3 spd_vhi

scripti, seri portlarinizin hizlarini, 56k icin uygun hale getirir.

MRU/MTU

Bu degerler bir seferde modemden gonderilecek ve alinacak paket buyulugunu belirtir. Eger servis saglayiciniz bir deger onermiyorsa, deneyerek bulabilirsiniz. 576 dan baslayabilirsiniz. (Bu genellikle en iyi verim alinan degerdir) pppd.options dosyasi icinden degistirilir.

HDPARM, Tanrim Burada da Mi ?

HDPARM ile ide interrupt ini unmask edin. Bu sayede ide interrupti olustugunda ayni anda seri port icin olusan interrupt ta process edilebilir. Aksi halde ide devredeyken seri port interrupt ina sistem aldirmayacak ve o an gelen paket iptal edilecektir.

irqTune, Modem Interrupt i Daha Muhim !

irqtune ile modem portunun irq priority sini artirin.

Apache Web Sunucusu

Statik kutuphaneleri kullanin.

AddModule modules/mod_mmap_static.o satirini httpd.conf dosyasina ekleyin.

Statik sayfalarinizi konfigurasyon dizinindeki mmap.conf dosyasina ekleyiniz.

Dinamik Modul Destegini Devre Disi Birakin

Eger dinamik modulleri yuklemiyorsaniz, Apache derlenirken derleyiciye -DDYNAMIC_MODULE_LIMIT=0 parametresini veriniz.

Ram Diskler Herzaman Hizlidir

Temel bilesenleri (ornegin web sunucusunun index.html dosyasi ve onda bulunan resimler) yaratilacak bir RAM disk uzerinde tutulabilir. Hatta, RAM uygunsa icindekiler sayfalarinin tumu bu disk uzerinde tutulabilir. Bu siteye ilk giriste istemci makinanin hizli bir erisime sahip olmasina ve o istemci icin acilacak yeni worker thread icin ilave zaman kazandiracaktir.

Sembolik Linkleri Takip Etmeyin

Eger mutlaka grekli degilse FollowSymLinks ozelliklerini devre disi birakin. Aksi halde apache her linkin dogrulanmasina calisacak ve bu zaman kaybina neden olacaktir. Ornegin /www/test/index.html dosyasina erismek icin once /www ye, sonra /www/test e ve en sonunda /www/test/index.html e lstat cekecek ve bunu asla cache etmeyecektir. Yogun sitelerde ciddi performans sorunlarina sebep olabilir.

Sembolik Linkleri Dogrulamayin

SymLinksIfOwnerMatch i cok gerekmedikce kullanmayin.
DocumentRoot /www/htdocs
<Directory />
Options SymLinksIfOwnerMatch
</Directory>
Yukaridaki gibi bir dizin icin, bu disinden alinan her dosyadaki linkler, nerde olursa olsun match edilecektir. Inanilmaz bir yavasliga neden olabilir.

AllowOverride Ozelligini Kapatin

Eger mutlaka gerekli degilse, httpd.conf icinden AllowOverride i none olarak atayin. Aksi halde dizin yapisi icinde en ustten en alta .htaccess dosyalarina tek tek bakilacaktir. Bu islem cache edilmediginden her baglantida ekstra disk islemleri gerektirecektir.

KeepAliveTimeout Degerini Ihtiyaciniza Gore Duzenleyiniz

Bu deger server isleminin baglantiyi ne kadar canli tutacagini gosteririr. Genellikle 15 sn oalrak gelir. Fakat eger e-commerce isi yapiliyorsa bu degeri buyuk vermek (Orn 60 sn) ciddi performans artisi saglayabilir.

StartServer, Web Sunucusunun Resepsiyonu !

StartServer, apache yuklenir yuklenmez kactane serverin birlikte yuklenecegini belirtir. Herbir server istemci cagrisi geldiginde ona cevap verir. Eger sitenizin yuksek bir hit i varsa 64 iyi bir baslangic olabilir. Eger hala bir yavaslik varsa, sizi tatmin edecek degere kadar 32 ser 32 ser arttirin.

MaxClient Degerini StartServer Degerine Gore Ayarlayin

Eger siteniz ayni anda StartServer'dan daha fazla hit almiyorsa bu degeri StartServer'a esitleyin. Eger site cok daha yukluyse MaxClient i daha fazla artirmaniz gerekecektir. Aksi halde StartServer asiri miktarda buyutulurse sistem performansinin dusmesine sebep olabilir.

SMP Makinalarda Derleme Sirasinda Asagidaki Parametreyi Tanimlayin

Eger SMP (Symmetric Multi Processor) bir sisteme sahipseniz, Makefile icindeki FLAGS bolumune -DSINGLE_LISTEN_UNSERIALIZED_ACCEPT i define edip tekrar derleme yapin.

HostName Lookup

HostName lookup off olmalidir, zira her istemci makina icin bir nsquery calistirdigindan sistem performansi dusecektir.

SAMBA - Super SMB Sunucu

OpLocks - %30 Servis Performansi

Oplocks, SMB istemcisinin kullandigi dosyayi kendi uzerinde yazma okuma cache islemlerini yapip yapmayacagini belirleyen bir ozelliktir. Eger server bu degeri true dondururse, istemci bu dosyayi sadece kendisinin kullandigina hukmedip tum islemlerinde kendi cache ini kullanacaktir. Oplocks ondeger olarak on konumunda gelmekte. Bu degeri Oplocks=false konumuna getirmek, sisteminizde %30 lara varan bir performans artisina neden olabilir. Fakat her paylastirilmis kaynak icin kontrol edilmeli, eger o kaynak icin sorun yaratiyorsa tekrar on konumuna getirilmelidir.

Level2 Oplocks (Read Only)

Eger sistem uzerinde ayni dosyalar (clipart kutuphaneleri, DLL ler gibi) cesitli istemciler tarfaindan yogun bir sekilde kullaniliyorsa, read only oplocks belirgin bir performans artisi saglayabilir. Bu degeri Level2 Oplocks = false yapin. Bu sayede istemci makinalar sadece okuma icin cache tutacaklardir.

Sadece Okunur Paylasimlarda Fake oplocks

Fake oplocks = true olmasi, istemcinin dosya uzerinde tum islemler icin kendi cache ini kullanmasina izin verir. Bu ise sadece okunabilen dosyalar uzerinde calisildigi icin onemli bir avantaj saglar. Burda dikkat edilmesi gerekn nokta bu paylasimin mutlaka sadece okunur olmasidir. Dikkat ! Eger readwrite bir paylasimsa ortak kullanilan dosyalarin bozulmasina neden olabilir.

Socket Options, Performans Merkezi !

Samba sunucusunun network seviyesindeki performansini encok etkileyen ozelliktir. Fakat her netwok icin farkli performans degisikliklerine neden olabilir.
TCP_NODELAY: okuma performansini nerdeyse %100 artiran bir parametredir.
READ SIZE: Veilecek deger, Samba nin diskten ayni anda ne kadar bilgiyi okuyup yazacagini belirtir. Bu deger 65536 ya kadar artirilabilir. Samba bir islem yuruturken eger o islem sirasinda gerekli veri buyuklugu, verilen bu degerden buyukse, iki seferde bir islemi tamamlayacaktir. Ornegin agdan gelen bir paketi diske yazmaya kalktiginda, eger gelen paketin buyuklugu bu degerden buyukse, networkten tum datayi almadan gelen miktari yazacak, sonra kalan tarafini networkten alip diske yazacaktir. Bu arada network performansi dusecektir. Bu nedenle bu degerin, sizin networkunuzde gelen paketlerin buyuklugune bagli olarak optimum bir degerde olmasi gerekir.
MAX XMIT: Samba, bir istemciyle baglanti kurdugunda, aralarinda ne kadar buyuklukte paketlerle iletisim kurcaklarina karar vermek icin bu degeri kullanirlar. Bu deger sadece Samba nin ne buyuklukte paketler kabul ettigini istemciye bildirdigi degerdir. Istemci tarafinda daha buyuk paketler kabul ediliyor da olabilir. Genellikle ilk basta istemci kendisinin ne buyuklukte paketler kullandigini Samba ya soyler, fakat bu deger herzaman optimum olmayabilir. Bazi istemci makinalar bunun icin 65536 degeri verirken bazilari da kucuk degerler verebilir. Samba sunucumuzun bu gibi durumlarda aldanmamasi icin bu degeri 65536 yapmak yavas calisan bazi istemcilerin daha hizli calismasina neden olabilir.
SHARE MODES: Bazi durumlarda dosyalarin acilmasi cok yavas olabilir. Bunun bir nedeni, Samba nin dos dosya acma modlarini desteklemeye calismasidir. Bu deger SHARE MODES = no seklinde verilirse, dosyayi ilk anda bir istemci read/write acabilir, sonra acanlar ise sadece read yetkilerine sahip olurlar. Not, dbase yada paradox gibi sadece wks db engine e sahip veritabanlari bu sekliyle calismaz. Ancak client/server (ornegin Pervasive.SQL gibi) uygulamalar bu paylasimi yapabilirler. Yani istemci tarafindan (eger o dosya daha once read/write baskasi tarafindan acilmissa) sopen(.....) seklinde bir dosya acilmaya kalkildiginda dosya read/write acilamayacaktir. Ne acidir ki Window uygulamalarinin bircogu veri alisverisi icin bu yontemi kullanirlar.
LOG LEVEL: Samba loglarinin hangi detayda tutulacagini belirtir. Eger 2 den buyukse bayagi bir disk islemi yaratacagindan performansi dusurur. O nedenle 2 den kucuk olmalidir.
READ RAW, WRITE RAW: eger bu degerler yes olarak tanimliysa, Samba disk islemlerini dusuk seviyede kendi yapar. Bazi sistemlerde performans kaybina neden olabilir. Her iki degerin read raw = no, write raw = no olarak ayarlanmalidir.
READ PREDICTION: Eger sadece okunur paylasimlariniz varsa, bu deger yes olmalidir. Boylelikle Samba bir data blogunu okuduktan sonra hemen ardindan gelen blogu da okuyup bekler. Boylelikle sirali okumalarda (ornegin dosya kopyalama) gozle gorulur bir performans artisi saglanabilir. Okunan deger READ SIZE dan buyuk degildir.
Unutmayin !, Samba performansi istemci makinalara da baglidir. Istemci makinalarinizin windowsize degerlerini kontrol edin.


Database Sunucularinin Ayarlanmasi

Pervasive.SQL 2000

Memory Usage

Pervasive Control Center bolumunden asagidaki ayarlar yapildiginda, bu veritabani sunucusundan maksimum verim elde edilebilmektedir. Denenmis olan kendi sistemimizde, TPC-B testinde 85.000-100000 transaction/second bir deger elde edilmistir. Ayni parametrelerle NT uzerinde 50000 transaction/second civarinda bir performan elde edilebiliyordu. (Ayni makinada bundan once NT vardi. Tipatip ayni konfigurasyon) Burada sistem henuz tam optimize edilmemis, sadece PSQL optimize edilmistir.
Allocate Resource At Startup : Yes
Back To Minimal State if Inactive: No

Performance Tuning

Cache Allocation Size: Sistemdeki bos RAM miktarin 2/3 miktari. (KB Olarak)
Index Balancing: On
Number of Communication Threads: 10 (Sistemde kullanici sayisi 100 e yakin yada fazlaysa 20)
Number of I/O threads: 8 (Is yuku fazlaysa maximum 64)

Progress

Progress icin en can alici nokta proserv edilecek database lerin toplami ve toplam bos alanda kullanilacak shared memory alanidir. Soyle bir hesapla herbir proserv edilecek database icin ne kadar blok kullanilacagi hesaplanabilir:
Blok Sayisi: ((DBS) / (TDB)) * (RAM / AU)
DBS: proserv edilecek database buyuklugu
TDB: Toplam database buyuklugu
RAM: Kullanilabilir fiziksel bellek
AU: Allocation Unit (UNIX lerde 4096, Novell icin 2048, MS Windows NT de 4096 default)
Sistemde bir database proserv edilirken,
proserv <databaseName> -H <hostname (gerekiyorsa) -N <protokol> -B <Blok Sayisi> -d dmy
seklinde bir kullanim yeterlidir. Aksi halde progress, shared bellegi, proserv edilen database ler arasinda esit paylastirmakta, boylelikle buyuk hacimdeki datalarin ihtiyac duydugu sort buffer kuculmekte ve cache de az geldiginden index update islemleri yavaslamaktadir.

Dogan ZORLU
Grup Yazilim Ltd,
Hasan Tahsin Caddesi No:21/12 Bahcelievler/IZMIR
(232) 255 4175
LINUX

GNOME Pencere Yöneticisi
Her gün Linux'un kapkara bir ekrandan ibaret olduğunu düşünenlere rastladıkça Mustafa ile birlikte şöyle bol renkli bir yazı yazalım, içine de bir tutam GNOME koyalım dedik. Linux'u bir süredir kullananlar bilirler, K Desktop Environment (KDE) ve GNOME pencere yöneticileri arasında amansız bir liderlik mücadelesi vardır. KDE'yi geliştiren 30 kişilik temel bir grup yanında KDE paketlerine dışarıdan da destek veren yüzlerce yazılımcı bulunuyor. GNOME ise büyük oranda Red Hat'ten aldığı yardımlarla geliştiriliyor. Red Hat Advanced Labs'ta 10 kişilik bir grup sadece GNOME üzerinde çalışıyor.
Red Hat, kütüphanesinin lisans sorunları nedeniyle KDE yerine GNOME'u seçince Linux ahalisinden biraz tepki gördü. Zira ortada KDE gibi kararlı bir pencere yöneticisi varken Red Hat bir anda GNOME gibi henüz hangi noktaya gittiği belli olmayan bir pencere yöneticisine destek veriyordu.
Red Hat, 6.0 sürümüne yetiştirmek için GNOME'u canla başla geliştirdi. İşin başına da Enlightenment'ı yaratan ekibin temel direği olan Rasterman'ı getirdi. Kısa zaman içinde Enlightenment ve GNOME birlikte çalışmak üzere tekrar yapılandırıldılar.
Şimdi GNOME tüm pencere yöneticileri altında çalışabilen ve kararlı bir yapıya doğru uzanan bir masaüstü ortamı. Hala eksikleri olmasına rağmen tutarlı bir seviyeye ulaştığını düşündüğümüzden GNOME ile tanışmanızı istedik. Önce, konuya yabancı olabileceğini düşünerek X Window'dan biraz bahsedelim.
X WINDOW
Açık sistemlerin kullanıcıya sunduğu en büyük özelliklerinden biri olan X Window, Linux'un doğduğu andan itibaren destek görmeye başladı ve Internet üzerinde bedava dağıtılmasıyla Linux dağıtımı altında bir standart olarak kendine yer edindi.
Pencere yöneticisi (denetleyicisi), X Window sunucu sistemi çalıştıktan sonra yönetimi ele alan katmandır. Bunların birinin farklı zevkten kullanıcılar için farklı özellikleri vardır. Bunlar, X Window'a açılan ve uygulama programları ile kullanıcı arasındaki bilgi alış-verişini sağlayan arabirimdir. X Window (veya kısaca X) istemci-sunucu modeline göre çalışır. Ana makine üzerinde çalışan X sunucusu, grafik donanımı üzerindeki tüm giriş-çıkış yetkilere sahiptir. Bir X istemcisi, sunucuya bağlanarak istediği işlemleri sunucuya yaptırır.
Yukarıda kısaca bahsedilen pencere yöneticisi, ekrandaki pencerelerin denetiminde söz sahibi olan tek programdır, her pencerenin nasıl görüneceğini, ne kadar büyük olduğunu bilir ve kullanıcı tarafından verilen küçültme, pencere kapatma gibi komutları yerine getirir.
X Window'un 386 ve yukarı tabanlı makineler için geliştirdiği sisteme XFree86 adı verilir. Hemen hemen tüm dağıtımlara XFree86 paketi eklenerek kullanıcıların hizmetine sunmuştur.
GNOME'UN ÇALIŞTIRILMASI
GNOME pencere yöneticisi şu anda SuSE 6.1, Red Hat 5.2 ve Red Hat 6.0 sürümleri ile birlikte geliyor. Caldera, Debian ve Slackware daha çok KDE'yi destekler bir görünümdeler.
GNOME'un en büyük özelliği kolayca yapılandırılabilir bir arayüzü kullanıcılara sunmasıdır. Modern bir masaüstü sistemde bulabileceğiniz tüm özellikler GNOME'a da aktarılmıştır.
GNOME sistemde kurulu ise, çalıştırmak için kullanıcı dizininde yeralan .xinitrc dosyasına aşağıdaki satırları eklemek yeterlidir.
gnome-session
Yukarıdaki komut, Enlightenment pencere denetleyicisini otomatik olarak çalıştıracak ve GNOME'u başlatacaktır. Yeri gelmişken diğer pencere yöneticilerini çalıştırmak için neler yapmanız gerektiğini de sırasıyla belirtelim. Aşağıda sözünü ettiğimiz .xinitrc dosyaları kullanıcı dizininde oluşturulmalıdır. Örneğin "gorkem" kullanıcısı, komutu /home/gorkem dizinine geçtikten sonra çalıştırmalıdır.
KDE (K Desktop Environment) çalıştırmak için
$ echo "startkde" > .xinitrc
Afterstep çalıştırmak için
$ echo "exec afterstep" > .xinitrc
fvwm çalıştırmak için
$ echo "exec fvwm2" > .xinitrc
Enlightenment çalıştırmak için
$ echo "exec enlightenment" > .xinitrc
komutlarını girmelisiniz. GNOME'a geri dönmek için
$ echo "gnome-session" > .xinitrc
yazmak yeterli.
.xinitrc dosyası üzerinde gerekli değişiklikleri yapmamızın ardından GNOME'u çalıştırmak için komut satırından "startx" yazın.
Herhangi bir nedenden dolayı X Window ile çalışırken konsol ekrana düşmek isterseniz Control-Alt ve Fonksiyon tuşları ile bu işlemi yapabilirsiniz. Örneğin birinci sanal ekrana geçmek için Control-Alt-F1, ikinci sanal ekrana geçmek için Control-Alt-F2 kullanılabilir. Tekrar X Window'a geri dönmek ve kaldığınız yerden devam etmek için Alt-F7'ye basın
GNOME'un en büyük özelliği kolayca yapılandırılabilir bir arayüzü kullanıcılara sunmasıdır. Modern bir masaüstü sistemde bulabileceğiniz tüm özellikler GNOME'a da aktarılmıştır.
GNOME Paneli
GNOME arayüzünün kalbi GNOME panelidir. Panel yardımıyla tüm uygulamalara ve appletler ulaşabilirsiniz. GNOME, diğer pencere yöneticileriyle birlikte (KDE, Windowmaker, Enlightenment) kullanılabilir ve bu sayede sevdiğiniz pencere yöneticinin özelliklerini size sunar.
Panele eklentiler yapabilir, yeni appletler koyabilirsiniz.
ANA MENÜ
Ana menüde yer alan GNOME logosuna fareyle tıkladığınız zaman bir menü yukarıya doğru açılır. GNOME ile birlikte gelen tüm uygulamaları bu menü ağacında bulabilirsiniz. Uygulamaları menüden seçerek ya da eğer uygulamanın adını biliyorsanız komut satırından çalıştırabilirsiniz.
PANELİN GİZLENMESİ
Saklama düğmesi yardımıyla panel sol ya da sağ tarafa doğru kaydırılabilir ve ekrandan çıkartılabilir. Tekrar aynı düğmeye basarsanız panel eski yerine gelecektir.

PANELE YENİ APPLET EKLENMESİ
Appletler, panel üzerinde duran ve belirli bir amaç için programlanmış küçük uygulamalardır. Panele yeni appletler ekleyebilir ya da çıkartabilirsiniz. Hangi appletleri kullanabileceğiniz daha ilerde yer alan bölümlerde detaylı olarak ele alınmıştır. Panele yeni bir applet eklenmesi için sırasıyla aşağıdaki işlemleri yapın:
l Panel üzerine farenin sağ tuşu ile tıklayın.
l "Add new applet" menü süne girin.
l Yeni menü ler karşınıza çıkacaktır. Örnek olarak Utility à Clock appletini seçin.
l Clock applet panele eklenecektir.
Yukarıdaki sıralamayı kullanarak panele dilediğiniz gibi applet eklemek mümkündür.
Örneğin clock applet, panel üzerinde gömülü bulunan ve o anki tarihi ve saati gösteren bir uygulamadır.
BİN UYGULAMANIN ÇALIŞTIRILMASI
GNOME yardımıyla Linux kullanıcılarının terminal ekranından kurtulmaları da planlanıyordu. Böylece kullanıcı (ya da sistem yönetici) komutların isimlerini ya da aldığı parametreleri bilmek zorunda kalmayacaktı.
Bir uygulamayı çalıştırmak için birden çok seçeneğiniz var:
l Yukarıda da belirtildiği gibi GNOME ile birlikte gelen uygulamaları menüden seçmek ve çalıştırmak
l Ana menü -> Launch Application menüsü tıklatılarak istediğiniz bir komutu çalıştırabilirsiniz.
l Eğer GNOME File Manager (GNOME dosya yöneticisi) kullanıyorsanız programın üzerine iki kere tıklamakla o programı çalıştırmış olursunuz.
GNOME MASAÜSTÜ
Panelden sonra göreceğimiz en önemli GNOME bileşeni, GNOME masaüstüdür. Masaüstün de çalışırken dosyaları bir yerden diğerine fareyle çekebilir, çalışan uygulamanın üzerine (örneğin Netscape) getirip bıraktığınız bir dosyayı (bir HTML belgesi) görüntüleyebilirsiniz.
GNOME açıldığı anda masaüstün de bulunan dosyalar /home/kullanıcı adı/Desktop dizininde yer alır. GNOME'un sürükle ve bırak yöntemini kullanabilmek için uygulamanın Motif ya da GNOME duyarlı olması gerekir.
GNOME FILE MANAGER
(DOSYA YÖNETİCİ)
GNOME dosya yöneticisi (gmc), dosyaların kolay bir şekilde yönetilebilmesine olanak tanıyan grafik tabanlı bir uygulamadır. GNOME dosya yönetici, pek çok kullanıcı tarafından bilinen mc (Midnight Commander) programına benzetilmiş ve üzerine gelişmiş bazı özellikler eklenmiştir.
GNOME dosya yöneticisini çalıştırdığınız zaman karşınıza üzerinde çalışabileceğiniz iki pencere gelecektir. Sol tarafta, sistemdeki tüm dizinleri hiyerarşik bir yapıyla gösterebilen pencere bulunur. Sağ tarafta ise seçilen dizinin içerdiği dosyaları görebilirsiniz. Herhangi bir dizini seçmek için bir fare tıklaması yeterlidir. Eğer seçilen dizinin içinde başka dizinler varsa, + işaretine basarak alt dizinleri de ekrana getirmeniz mümkündür. gmc yardımıyla, bir dizin yapısına 4 ayrı şekilde göz atabilirsiniz. Bunlar,
Icon (simge gösterim): Her dosya için, dosyanın adı ve karşılık gelen küçük bir simge ekranda yer alır.
l Brief (özet gösterim): En hızlı gösterim şeklidir. Sadece dosyanın adı belirtilir.
l Detailed (ayrıntılı gösterim): Dosyalar hakkında tüm bilgilere ulaşabilirsiniz (kullanıcı adı, grup adı, dosya boyutu, yaratılma tarihi gibi)
l Custom (özel gösterim): Kullanıcı, dosya bilgilerinin hangilerine ulaşmak istiyorsa sadece onu seçer.
Aynı masaüstün de birden çok gmc çalıştırabilirsiniz. Bunun için herhangi bir dizinin üzerine farenizin hem sağ, hem de sol tuşuyla aynı anda tıklayın. Eğer üç tuşlu fare kullanıyorsanız ortadaki tuşu deneyin.
gmc İLE Ftp ADRESLERİNE
BAĞLANILMASI
GNOME dosya yöneticisi, hem web, hem de ftp adreslerine bağlanma özelliğine sahiptir. Bunun için bir ağ ya da çevirmeli ağ üzerinden Internet ya da Internet bağlantınızın sağlanmış olması gerekiyor. Ardından ftp yardımıyla karşıdaki sisteme bağlanmak için ftp adresini gmc'ye girin:
ftp://ftp.gelecek.com.tr
Dosya yöneticisinin üzeride bulunan sol ok, daha önce bulunduğunuz dizine geçmenizi sağlar. Yukarı ok ise dizin hiyerarşisinde sizi bir üst dizine yollayacaktır.
DOSYALARIN SEÇİLMESİ
Masaüstün de ya da gmc altında gösterilen dosya ya da dizinin üzerine gidip farenin sol tuşu yardımıyla tıklayın. Birden çok dosyayı seçmek için masaüstün de herhangi bir noktaya farenin sol tuşu ile tıklayın ve basılı bırakın. Sonra tuş basılı haldeyken seçilmesini istediğiniz dosyaların üzerine gelin. İstediğiniz dosyalar farklı bir renkte gösterilecektir. Birden fazla dosyayı seçerken Control tuşunu kullanabilirsiniz. Control tuşu yardımıyla seçilen dosyalara, ek dosyalar eklenebilir. Bunun için dosyanın üzerine tıklarken Control tuşuna basılı tutun.
DOSYALARIN KOPYALANMASI VE TAŞINMASI
Dosyaları sürüklerken Shift tuşuna basılı tutmanız halinde dosyanın bir kopyası yaratılır ve sürüklediğiniz yere taşınır. Fareyle taşınırken Alt tuşuna basmanız halinde hangi işlemi yapacağı sorulur:
l Copy: Dosya kopyalanır.
l Move: Dosya taşınır.
l Link: Dosyaya sembolik bağlantı yapılır.
l Cancel Drag: Dosyanın sürüklenmesi iptal edilir.
DOSYA ADININ DEĞİŞTİRİLMESİ
Dosyanın üzerine sağ tuş ile tıklayın. Properties à Filename içinde, dosyanın adını değiştirin. Bir başka yol da dosya adının üzerine iki kere (yavaşça) tıklamaktır. İki tıklamanın arasını yaklaşık 1 saniye tutarak bu işlemi gerçekleştirebilirsiniz. Tıklamadan sonra dosyanın adının bulunduğu alana dosyanın yeni adını yazmak mümkün olur.
GNOME DENETİM MERKEZİ (GNOME CONTROL CENTER)
GNOME denetim merkezi yardımıyla bu pencere yöneticisini ihtiyacınıza ve zevkinize uygun şekilde yapılandırabilirsiniz. denetim merkezini açmak için Ana menüden GNOME control center menüsünü seçin.
Sol tarafta değişiklik yapmak istediğiniz konuları bulacaksınız. Örnek olarak arkaplan üzerinde değişiklik yapmak için "Background", ses özellikleriyle oynamak için "Sound" menüsüne tıklayın. Özellikle "Desktop à Theme Selector" menüsüne dikkat edin. Bu menüde istediğiniz bir dekoru (theme) masaüstünde kullanabileceksiniz, hem de X
Window'dan hiç çıkmadan. "Available Themes" başlığı altında 10'dan fazla farklı dekoru deneyebilirsiniz.
ENLIGHTENMENT PENCERE YÖNETİCİSİ
Daha önce de belirttiğimiz gibi GNOME herhangi bir pencere yöneticisiyle birlikte kullanılabilir. Enlightenment, GNOME ile en iyi şekilde anlaşan yöneticilerden birisidir. Bu nedenle Red Hat tarafından birlikte kullanılmak üzere seçildiler. Red Hat firması, açık gelişimlerinden dolayı Enlightenment ve GNOME'a destek vereceğini de ayrıca açıkladı.
Enlightenment ile birlikte gelen Imlib yapılandırma programını çalıştırmak için GNOME à Settings à Imlib menüsüne tıklayın. GNOME altında ayarlanamayan bir kaç
GNOME'UN
SÜRÜKLE-BIRAK ÖZELLİĞİ
GNOME'un gerçek sürükle-bırak özelliği sayesinde zamandan büyük tasarruf sağlarsınız. Masaüstünde yer alan herhangi bir dosyayı farenin sol tuşuyla tutup bir uygulama üzerine bıraktığınızda o dosya uygulama yazılımı tarafından açılacaktır.
GNOME'DAN AYRILMAK
GNOME'u kapatmak ve X Window'dan çıkmak için ana menü à Log out seçeneğine tıklayın. Kararı onaylamak için "Yes"e basın. GNOME ve X Window kapanacaktır. X Window'a tekrar girdiğiniz zaman sistemden çıktığınız anda çalışır halde bulunan tüm programlar tekrar çalışmaya başlayacaktır.
MASAÜSTÜNÜN DEĞİŞTİRİLMESİ
GNOME'un switchdesk özelliği yardımıyla halihazırdaki masaüstünden çıkıp herhangi bir pencere denetleyiciye atlamak olasıdır. Bunun için bir xterm penceresi açın ve switchdesk yazın. Eğer halihazırda GNOME kullanıyorsanız, ana menüden Run Programs menüsüne fareyle tıklayın. Ekrana gelen boşluğa "switchdesk" yazın. Şimdi GNOME altından çalıştırabileceğiniz bazı uygulamalardan örnekler verelim.
GIMP: GIMP (GNU Image Manipulation Program), Linux altında geliştirilen en kapsamlı görüntü işleme programı olma özelliğini taşımaktadır. Aşağıda ekran görüntüsü verilen GIMP, pek çok menüsüyle, araç takımı ve filtreleriyle komple bir masaüstü görüntü işleme programıdır.
Gimp kullanmak istiyorsanız, gimp ve gimp-data-extras paketlerini yüklemeniz gerekiyor. Bunun yanında gimp-manual paketi de eğer "sıkı" bir GIMP'çi olmak isterseniz olmazsa olmazlardan. Bu üç paket diskinizde 50 Mb kadar yer kaplayacaktır. Gimp'i kullanmak için mutlaka en azından 16 bit renk çözünürlüğü olan bir çözünürlük kullanmalısınız, aksi takdirde alacağınız görüntü kalitesi hiç de hoş olmayacaktır. Gimp çalıştırmak için X Window altında iken "gimp" yazmanız yeterlidir.
GIMP'İN BAZI ÖZELLİKLERİ
l Hemen hemen tüm işlemler görüntüye sağ fare tuşunun tıklatılmasıyla yapılır.
l Layer (katman) desteği
l 140'tan fazla araç
l Hata yapıldığı zaman sonsuz geri alma özelliği
l 24 ayrı grafik dosya yapısında kaydetme
l GIMP'e özgü programlama dili yardımıyla genişletme çok kolay
GIMP, sisteme kurulduğu zaman yaklaşık 30Mb'lık disk alanını işgal eder. GIMP, ilk defa çalıştırıldığı zaman ev dizininde .gimp adında bir dizin açar ve yapılandırma dosyalarını buraya kopyalar. Bu sayede her kullanıcının farklı GIMP ayarları bulunabilir.
Bilindigi gibi bilgisayar dunyasinda kullanilinan bir cok veritabani programi ve 
sunucusu mevcuttur.  Bunlarin cogu kullanisli olmasina ragmen cok pahali paket 
programlaridir.  MySQL in en buyuk ozelligi bedava olmasidir fakat ticari amacla 
kullanildigi takdirde kucuk bir ucret odemek suretiyle ticari amaclada 
kullanilabilir.  MySQL'in diger en buyuk ozelligi ise veritabani pazarindaki en 
buyuk rakiplerinden daha iyi, hizli ve kullanisli olamasidir.  MySQL halen daha 
gelistirilmekte olmasina ragmen mevcut haliyle zengin ve cok kullanilan 
fonksiyonlar sunmaktadir.  MySQL in yapilis nedeni, yaratildigi yerde 
kendilerine cok buyuk bir veritabanini isleyebilecek bir SQL sunucularina 
ihtiyaclari olmasiydi.  Kendileri 1996 dan beri MySQL'i 10,000 tablo iceren 40 
veritabanli bir ortamda kullanmaktadirlar ki bunlarin yaklasik 500 tanesi 7 
milyon sutun icermektedir.
 
Bu dokumanda anlatilacak konular sirasi ile :
 
MySQL'in belli basli ozellikleri
MySQL'in elde edilmesi
MySQL'in kurulumu
 
MySQL'in belli basli ozellikleri
+ Sistemde birden fazla CPU var ise bunlari kullanma.
+ Degisik isletim sistemlerinde calismasi.
+ Degisik sutun tipleri. Isaretli/Isaretsiz 1, 2, 3, 4 ve 8 byte uzunlugunda 
tamsayilar.
+ Ayni sorgulama icinde degisik veritabanlarindaki tablolari birlestirme.
+ Windows95 icin ODBC (Open-DataBase-Connectivity).  Yani Microsoft Access'i 
kullanarak MySQL server'a baglanabilirsiniz.
+ Buyuk veritabanlarini isleyebilme ozelligi.
+ C ve C++ dillerinde yazilmis olmasi.
+ Butun veriler ISO-8859-1 Latin 1 formatinda kayit ediliyor.
 
MySQL'in elde edilmesi
MySQL degisik isletim sistemleri icin mevcut olup http://www.tcx.se adresine 
baglanilip elde edilebilecek siteler sirasiyla ulkelerine gore listelenmistir.  
Bundan sonraki bolumde anlatilacak olan kurulum Linux (PC tabanli Unix isletim 
sistem) sistemine uyarlanmis olacaktir.
 
MySQL'in kurulumu
MySQL in kurulumu iki cesit olup asagida anlatilacak olan binary dagitim setinin 
kurulumu olacaktir.  Binary ve source kurulumlari arasindaki tek fark source 
larin kendi makinenizde derlenmesi olmasidir.  Eger sisteminize uygun binary 
dagitim seti var ise binary setini veya source setini kullanmak arasinda hic bir 
fark yoktur.  Asagida sirasi ile binary dagitim setini actiginizda belirecek 
olan dizinlerin ve bunlarin hangi dosyalari icerdigi gosterilmektedir.
 
 
 
Dizin
Dizin Içerigi
bin
Istemci programlari ve mysqld sunucusu
data
Log dosyalari ve veritabanlari
scripts
mysql_install_db
share
Hata mesaj dosyalari
sql-bench
Test dosyalari
 
 
MySQL in binary dagitim seti unix ortaminda sikistirilmis bir sekilde 
sunulmaktadir.  Bu sikisitirilmis halini acabilmeniz icin siteminizde GNU gunzip 
ve tar gibi programlarin mevcut olmasi gerekmektedir. Bunlardan gunzip programi 
uncompress edip tar ise unpack etmektedir.  Eger sisteminizde bunlar mevcut ise 
basamak basamak asagidakileri uygulamaya baslayin eger sisteminizde bunlar 
mevcut degil ise bunlari elde ediniz.
 
1)Ilk once sisteminizde MySQL'i kuracaginiz dizini belirleyiniz.  Linux uzerinde 
genelde programlar /usr/local dizini altinda bulunmaktadir.  Biz kurulumu 
yaparken yine standartlara uyarak binary dagitim setini /usr/local dizini altina 
kopyaladik.  Sizde eger Linux kullaniyorsaniz bu standarta uymaniz iyi olur.
 
2)/usr/local dizini altina kopyaladiktan sonra asagida belirtildigi gibi 
yukarida bahsettigimiz gunzip ve tar programlarini kullanarak binary dagitim 
setini acin.
 
        prompt> gunzip < mysql-SURUM-ISLETIMSISTEMI.tar.gz | tar xvf -
 
Bu komut girildiken sonra "mysql-SURUM-ISLETIMSISTEMI" seklinde /usr/local 
altinda bir dizin olusacaktir.
 
3)Dizini olusturduktan sonra bu dizin icin bir sembolik baglanti yaratabiliriz.  
Sembolik baglantiyi mysql olarak secersek eger /usr/local altinda binary dagitim 
setinin acilmis halinin bulundugu dizine girmek istedigimizde 
               prompt>cd mysql-SURUM-ISLETIMSISTEMI
yazmak zorunda kalacagiz ama mysql adi altinda bir sembolik baglanti 
olusturursak 
               prompt>cd mysql
yazmamiz yeterli olacak.  Bunuda asagida belirtilen sekilde yapabiliriz.    
        prompt>ln -s mysql-SURUM-ISLETIMSISTEMI mysql
 
4)Sembolik baglanti yaratildiktan sonra 
               prompt>cd mysql
komutu girilerek binary dagitim setinin acilmis halinin bulundugu dizine 
girilir.  Burda yukarida belirttigimiz dizinler mevcuttur.  Burda en onemli olan 
dizinler bin ve scripts dizinleridir.  Sistemin herhangi bir yerinden bin dizini 
altindaki programlara ulasmaniz icin sisteminizde PATH kismina bu dizini 
eklemelisiniz.  scripts dizini altinda bulunan mysql_install_db programi 
sunucuya erisim haklarinin baslatilmasi icin kullanilmaktadir.
 
5)Perl DBI/DBD arabirim destegini istiyorsaniz /usr/local/mysql dizini altinda 
bulunan perl dizinine
               prompt>cd perl
girin ve burdan yine bu dizin altinda bulunan DBI dizinine
               prompt>cd DBI
yazarak girin.  Bu destegi kullanabilmeniz icin sisteminizde Perl 5.004_03 veya 
daha yeni bir surumu bulunmasi mecburidir.Burda yapacaginiz tek sey asagida 
komutlari girerek bu dizin altindaki herseyi derlemektir.
               prompt>perl Makefile.PL
               prompt>make
               prompt>make install
5. islemden sonra sisteminize mysql kurulmustur.  Kurulumunuzun dogru ve calisip 
calismadigini ogrenmek icin yapmaniz gerekenler sirasi ilen :
(Bunlari yapmadan evvel yukarida belirttigimiz gibin mysql dizini altinda 
bulunan bin dizinini PATH inize eklemelisini.)
 
1)mysqld sunucu programini calistirip baslangic erisim tablosunu (kullanicilarin 
ne haklarla veritabanina erisebileceklerini gosteren tablo) kurun.  Bunuda 
scripts dizini altinda bulunan mysql_install_db programi ilen elde 
edebilirsiniz.
               prompt>scripts/mysql_install_db
Eger bunu kurmazsaniz
               mysqld: Can't find file: 'host.frm'
gibi bir hata ilen karsilasabilirsiniz ve bir onemli nokta daha bu programi 
calistirirken root kullanicisi olarak calismalisiniz.
 
2)Sunucunun calisip calismadigini mysqladmin programi ile kontrol edin. 
Asagidaki komut basit bir test olup sunucunun calisip calismadigini 
belirtmektedir.
        prompt>bin/mysqladmin version
Bu komutun sonucunda sistemden sisteme gore degisik sonuclar cikabilir ama genel 
olarak aynidir.  Ornek olarak asagida sonucu verilmistir.
 
mysqladmin  Ver 6.3 Distrib 3.22.9-beta, for pc-linux-gnu on i686
 
TCX Datakonsult AB, by Monty
 
Server version          3.22.9-beta
Protocol version        10
Connection              Localhost via UNIX socket
TCP port                3306
UNIX socket             /tmp/mysql.sock
Uptime:                 16 sec
 
Running threads: 1  Questions: 20  Reloads: 2  Open tables: 3
 
mysqladmin programi ilen daha neler yapabileceginiz ogrenmek istiyorsaniz
               prompt>mysqladmin --help
komutu girilerek bilgi alinabilir.
 
3)Sunucu kapatip kapatamadiginiza bakin.
        prompt>bin/mysqladmin -u root shutdown
 
4)Sunucuyu tekrardan calistirmaya bakin.
        prompt>bin/mysqld &
 
5)Sunucunun calisip calismadigina basit bir kac ornekle devam edinki sunucunuzun 
calismasindan emin olun.
 
        prompt>bin/mysqlshow
Sonuc :
 
Databases
mysql
 
        prompt>bin/mysqlshow mysql
Sonuc :
Database: mysql
 
 
Tables
Db
Host
User
        prompt>bin/mysql -e "select host,db,user from db" mysql
Sonuc :
 
 
Host
Db
User
%
%
Test
Test_%
 
 
 
 
Eger yukaridaki sonuclari ekraninizda goruyorsaniz MySQl sunucunuz mukemmel bir 
sekilde calismaktadir.
 
Sunucumuzda hic bir problem yok ise yapmamiz gereken en onemli nokta MySQL 
sunucusunda tanimli olan root kullanicisina sifre vermektir.  MySQL sunucusunda 
tanimli olan root kullanicisi sunucudaki en yetkili kullanicidir.  Yanliz bu 
root kullanicisini Linux sistemindeki root kullanicisi ile karistirmayalim.  
MySQL sunucusunun kendine ozgu kullanici ve buna bagli sifre listesi vardir.  
Yani sunucuda eger kullanici yaratmak istiyorsaniz kullanici yaratirken bu 
kullaniciya bir sifre ve erisim haklarini vermelisiniz.  root kullanicisi MySQL 
sunucusunda herseyi yapmaya yetkisi vardir.  Yukarida dedigimiz gibi root 
kullanicisina sifre vermeliyiz, bunuda asagidaki sekilde yapiyoruz.
        
               prompt>mysql -u root mysql
                mysql>UPDATE user SET Password=PASSWORD('yeni_sifre')
                       WHERE user='root';
Sunucunun yeni degerleri okumasi icin tekrar yuklenmesi lazim.
               prompt>mysqladmin -u root reload
 
Biraz oncede belirtmistikki root kullanicisi MySQL sunucusunda tanimli olan en 
yetkili kullanicidir.  Fakat veritabanini root kullanicisinin haricinde 
kullanacak kisiler olacaktir ve bunlarin bellirli veritabanlarina veya 
veritabanindaki tabloya erisim haklari olacak veya olmayacaktir.  Yine bu erisim 
haklari root tarafindan kisiye yaratilan kullanicinin erisim haklarina bagli 
olarak degisir.  Asagida ornek olarak MySQL sunucusunda bir kullanicinin nasil 
yaratildigi kisaca aciklanmistir.
 
1) Ilk olarak kullanici yaratmak icin MySQL sunucusuna root olarak 
baglanilmalidir.
        prompt> mysql --user=root mysql
2) Baglanti basarili oldu ise sira MySQL de sifresi MySqL98, kullanici adi 
personel ve tum haklara sahip olan bir kullanici yaratmaya geldi.  
        mysql> INSERT INTO user VALUES('%','personel',PASSWORD('MySqL98'),
               'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
3) Simdi MySQL in degerleri yeniden okuyabilmesi icin MySQL den cikilip yeni 
degerleri okumasi saglanir.
         mysql> quit
        prompt> mysqladmin --user=root reload
 
Sistemde simdi root kullanicisinin haricinde bir personel kullanicisi olusmustur 
ve bu kullanici root kullanicisi gibi her hakka sahip.  Siz sisteminizde 
kullanici yaratirken verdiginiz haklara dikkat ediniz. Erisim haklari ek olarak 
sunulmustur.
 
Veritabani ve Tablo Olusturma
Amacimiz siz MySQL kullanicilarina MySQL sunucusuna baglanip bildigimiz SQL 
(Yapisal Sorgulama Dili) ile veritabani olusturtmak ve bu veritabaninda tablolar 
yarattirtmaktir.  Ilerde'de bu tablolara web uzerinden ekleme ve sorgulama 
yaptirtmak olacaktir.  Simdi siz kullanicilara bir veritabani ve bu veritabani 
icinde tablo yaratma gosterilicektir.  Ornek olarak bir telefon defteri 
olusturulacaktir.
 
Bu ve bundan sonraki orneklerde islemleri MySQL sunucusuna yukarida yaratilan 
personel kullanicisi ile baglanilip yapilacaktir.
 
1)Sisteme personel kullancisi ile baglanilir.
        prompt>mysql -u personel -p MySqL98
2)Standart SQL kullanilarak bir phone_db adi altinda bir veritabani olusturlur.
        mysql>CREATE DATABASE phone_db;
3)Yaratilan phone_db veritabanini kullanabilmek icin
        mysql>use phone_db;
komutu girilir.
4)Veritabani olusturuldugundan ve bu veritabani icinde bulundugumuzdan dolayi 
artik tablo veya tablolarimizi olusturabiliriz.  Bu ornekte siz kullanicilara 
bir universitenin telefon defteri tablosu olusturulmasi gosterilecektir. Tabloyu 
yaratmak icin yine standart SQL kullanilarak asagidaki komutlar sirasi ile 
girilir.
        mysql>CREATE TABLE phone_table (
             > ad VARCHAR (20),
             > soyad VARCHAR (20),
             > unvan VARCHAR (20),
             > bolum VARCHAR (50),
             > email VARCHAR (50),
             > telefon VARCHAR (15));
 
5)phone_table adli tablo yukardaki komutlar yanlis girilmedi ise olusmustur.  
Artik bu tabloya standart SQL komutlari kullanilarak bilgi girilebilir.
        mysql> INSERT INTO phone_table VALUES
        mysql> ('Reha','MUHTAR','Spiker','Haber','rmuhtar@showtv.com',
        mysql> 0123456789);
Kayitlariniza artik Reha MUHTAR'in bilgileri girilmistir. Bu komutlar 
kullanilarak veritabaniniza bilgiler girilebilir veya degisik komutlar 
kullanilarak bilgiler cikarilabilir veya duzeltilebilir.
 
Bastan beri siz kullanicilara MySQL hakkinda bilgi verildi fakat esas amacimiz 
su internet caginda varolan datanizi bir sekilde internet kullanicilarina veya 
personellerinize acmak veya personellerinizin bir sekilde internet yoluyola 
bilgilerinize ulasmasini saglamak.  Ornegin mevcut veritabaninizda personellerin 
telefon numaralari ve isimleri gecmektedir.  Yurt ici veya disindaki bir 
kullanici personellerinizden birisinin telefon numarasina ihtiyac duydugunda 
sizin telefon numarasi iceren veritabanini internete actiginizda bu personelin 
telefon numarasini sagliyacaginiz sorgulama sayfasiyla elde edecektir.  Burda 
sizlere veritabaninizdaki bilgi basit bir ornekle internete nasil acacaginiz 
gosterilecek.  Yanliz belirtilmesi gereken onemli bir nokta, veritabaninizi 
internete acabilmeniz icin gerekli bir kac program olacak ve bunlarda 
kurulumlariyla beraber siz kullanicilara aciklanacaktir.
 
Internetin yayginlasmasindan once veritabanlarinin internete acilmasi size 
aciklanacak sekildekinden daha zordu.  Daha dogrusu her veritabani icin ayri bir 
arabirim programi kullanmak gerekiyordu.  Internet'te su siralar kullanilmaya 
baslanan PHP3 script dili ile bu zor islem cok basit bir hal aliyor.  PHP3 
programinin birden fazla ozelligi olmasina ragmen en buyuk ozelligi veritabanina 
internet ten erisim saglamak.  Su an MySQL, Oracle, Adabas, PostgresSQL, Sybase 
ve bunun gibi diger veritaban sunucularini desteklemektedir.  Su anda dunya 
uzerinde 150,000 sitede kullanilmaktadir. PHP3 ile HTTP uzerinden kullanici 
onaylama ve GIF formatinda resimler yapilabiliniyor.
 
Belirttigimiz gibi veritabaninizi internete acmak icin PHP3 ve PHP3 ile calisan 
Apache Web sunucusuna ihtiyaciniz olacak.  Bu programlari sirasi ile 
http://www.php.net ve http://www.apache.org adreslerinden temin edebilirsiniz.  
Bilinmesi gereken tek sey Apache Web sunucu programini temin ederken surumunun 
apache_1.3.x olmasina dikkat edin.  PHP3 bundan evvelkileri desteklememektedir.
 
Eger her sey yolunda gitti ise ve yukarida belirtilen adreslerden sirasi ilen 
php-3.0.x.tar.gz ve apache_1.3.x.tar.gz benzeri dosyalari elde ettiyseniz kurma 
islemlerine baslayabilirsiniz.
 
PHP3 ve Apache Web Sunucusunun Kurulumu
 
Ilk once apache_1.3.x.tar.gz adli dosya /usr/local dizininin altina tasinip 
gunzip ve tar komutlari kullanilarak acilir.
        prompt>gunzip apache_1.3.x.tar.gz
        prompt>tar xvf apache_1.3.x.tar
Ardindan php-3.0.x.tar.gz adli dosya /usr/local dizininin altina tasinip yine 
gunzip ve tar komutlari kullanilarak acilir.
        prompt>gunzip php-3.0.x.tar.gz
        prompt>tar xvf php-3.0.x.tar
Bundan sonra actigimiz apache_1.3.x.tar.gz dosyasinin olusturdugu apache_1.3.x 
adli dizine girilir.
        prompt>cd apache_1.3.x
Burda bakarsaniz bir configure dosyasi gorulmektedir.  Bu configure dosyasi 
asagidaki parametrelerle calistirilir.
        prompt>./configure --prefix=/www
Bu islem yapildiktan sonra php-3.0.x.tar.gz dosyasinin olusturdugu php-3.0.x 
adli dizine girilir.
        prompt>cd ../php-3.0.x
Girildiginde burdada yine Apache Web sunucusunun bulundugu dizindeki configure 
dosyasina benzer bir configure dosyasi mevcuttur.  Fakat bu configure dosyasi 
PHP3 ait bir configure dosyasidir.  Buda asagidaki sekilde parametreleriyle 
girilir.
 
prompt>./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-
vars
 
Bu islem basariyla sonuclandi ise sira bu programi derlemeye geldi. Bunuda 
asagida belirtilen komutlari sirasi ilen girerek elde edersiniz.
        prompt>make
        prompt>make install
Su anda PHP3 programiniz derlenmis durumdadir.  Sira Apache Web sunucusunu 
derlemeye geldi.  Bunuda tekrar apache_1.3.x dizinine girerek ilk once configure 
dosyasini tekrardan yeni parametrelerle calistirip, bunun sonucunda bir aksilik 
cikmadigi takdirde yukarida belirtilen make ve make install komutlani 
calistirarak elde edebilirsiniz.  Yani,
        prompt>./configure --prefix=/www --activate-
module=src/modules/php3/libphp3.a
        prompt>make
        prompt>make install
Eger islem sorunsuz bir sekilde sonuclandi ise apache_1.3.x dizini altinda 
bulunan src dizininin altinda httpd binary dosyasi olustugunu goreceksiniz.  Bu 
program Apache Web sunucusunu calistiran programdir.  Eger sisteminizde evvelden 
web sunucu programi yuklenmisti ise yenisini eskisinin uzerine kayit 
edebilirsiniz.  Programlarin ikiside calismaya hazir hale gelmistir fakat 
yapilmasi gereken bir kac dosya ayari var. Birincisi php-3.0.x dizini altinda 
bulunan php3.ini-dist dosyasini /usr/local/lib dizini altina php3.ini olarak 
kopyalayin.
        prompt>cp php3.ini-dist /usr/local/lib/php3.ini
Ikincisi Apache Web sunucusu programi kurulumu esnasinda kurulum programinin 
olusturdugu /www dizini goreceksiniz.  Bu dizin Apache Web sunucusu ile ilgili 
tum ayar dosyalarinin ve sayfalarinizin bulunacagi dizinleri icermektedir.  /www 
dizini altinda etc/apache dizinine
girdiginizde Apache Web sunucusu ile ilgili ayar dosyalari icermektedir. Bu 
dosylarin cogu kendi kendini aciklamaktadir.  Sadece burda size anlatilacak olan 
PHP3 un calismasi icin hangi dosyalarda hangi ayarlarin yapilacagi 
gosterilecektir.
Sadece /www/etc/apache dizini altinda bulunan srm.conf dosyasina alisik 
oldugunuz editorle girilerek uygun bolume
        
        AddType application/x-httpd-php3 .php3
 
satiri eklenecektir.
 
Bu eklendikten sonra diger dosyalara girerek web siteniz hakkindaki diger 
bilgileri ilgili alanlari okuyarak girebilirsiniz.  Belirtildigi gibi bu dosya 
ayarlarini yaparken zorlanmayacaginizdan emin olabilirsiniz.
 
Artik Linux sisteminizin Web ve MySQL sunucusu hazir durma gelmistir. Bundan 
sonra yapilmasi gereken tek sey sunacaginiz veritabanini internetten erisilmesi 
haline getirmektir.  Simdi sizlere asagida sunulacak iki bolum olacak bunlardan 
birinde yarattiginiz phone_table tablosuna bilgi girebilmek icin bir html ve 
birde php3 dosyasi olacak, digerinde ise yine yarattiginiz phone_table tablosu 
uzerinde sorgulama yapmak icin bir html ve birde php3 dosyasi olacak.
 
Bilgi Girmek Icin Gerekli Dosyalar
 
kayit.html
 
 
 
 
 
Lutfen yeni kayit icin gerekli alanlari doldurunuz.
 

Adi : 
Soyadi : 
Unvan : 
Bolum : 
Telefon : 
E-Mail : 


 
 
 
 
kayit.php3
 
 
 
 
Sorgulama Yapmak Icin Gerekli Dosyalar
 
sorgu.html
 
 
 
 
 
Lutfen yeni kayit icin gerekli alanlari doldurunuz.
 

Adi : 
Soyadi : 
Unvan : 
Bolum : 
Telefon : 
E-Mail : 

 
sorgu.php3
 
 0):
 
PRINT "Kaytilarimizda : $number kayit bulundu";
 
WHILE ($i < $number):
 
$name=mysql_result($result,$i,"ad");
$lastname=mysql_result($result,$i,"soyad");
$telephone=mysql_result($result,$i,"telefon");
 
PRINT "$name $lastname $telephone";
PRINT "



";
 
$i++;
 
ENDWHILE;
 
ENDIF;
 
?>
 
Yukaridaki html dosyalari sunucunuz dokumanlara baktigi yere konulup browserdan 
cagrildiginda girilen bilgi onaylandigi taktirde veritabaniniza eklenecektir.



LILO Mini-HOWTO
M. Vural ERKOC, vural@cclub.metu.edu.tr
surum 1.1 , 8.12.1996


Bu dosya bazı tipik LILO kurulumlarını anlatmaktadır. LILO kullanım
kılavuzuna ek olarak olarak hazırlanmıstır. Her ne kadar kurulumunuz
benimkine benzemese de, sanırım ornekler acıklayıcıdır. Umarım bu sizi
sorunlardan kurtarır.

Ornek 1:
--------
Iki IDE ve bir SCSI hard diskim var. SCSI surucu BIOS'tan gozukmuyor.
The Linux Yukleyici (LInux LOader), LILO, BIOS cagrılarını (calls) kullanır
ve sadece BIOS'un gordugu diskleri gorebilir. Benim Aptal AMI BIOS'um
sadece "A:" veya "C:" 'den acılıyor. Kok dosya sistemim ise SCSI
diskimdeki bir bolumde.

Cozum :
------- 
Cekirdegi (kernel), harita dosyasını (map file) ve zincir yukleyicisini
(chain loader) ilk IDE diskinde saklayın. Dikkat edilirse cekirdegi kok
bolumunde (partition) saklamanız gerekli degil.

Benim ilk IDE diskimdeki ikinci bolum (partition) (/dev/hda2) /u2 dizini
olarak baglanmıs (mounted). Benim kullandıgım /etc/lilo.conf dosyası
asagıdadır.


# LILO'nun acılıs (boot) kaydının, Ana Acılıs Kaydı (Master Boot Record, MBR)
# olarak ilk IDE diskinde oldugunu belirtir.
#
boot = /dev/hda
# /sbin/lilo (kurucu) LILO acılıs kaydını asagıdaki dosyadan
# MBR yerine kopyalar.
install = /u2/etc/lilo/boot.b
#
# Acıklayıcılı acılıs menusu yazdım. LILO onu burada bulur.
message = /u2/etc/lilo/message
# Kurucu asagıdaki dosyayı yaratacaktır.
# Bu acılıs-yukleyiciye(boot loader) cekirdek bloklarının nerede
# bulundugunu soyler.
map = /u2/etc/lilo/map
compact
prompt
# 10 saniye bekle, sonra 1.2.1 cekirdeginden ontanım olarak ac.
timeout = 100
# Asagıdakini yaparak cekirdek BIOS'un gorebilecegi yere saklanır.
# cp -p /usr/src/linux/arch/i386/boot/zImage /u2/z1.2.1
image = /u2/z1.2.1
label = 1.2.1
# LILO cekirdege ilk SCSI bolumunu kok olarak baglamasını soyler.
# BIOS'un bunu gormesine gerek yoktur.
root = /dev/sda1
# Bu bolumun /etc/rc.d/rc.S tarafından kontrol edilecek ve
# tekrar baglanacaktır.
read-only
# Aynı cekirdegin farklı bir bolumu de kok olarak baglaması
# saglanabilir. Benim /u2 uzerinde bir acil kurulumum var.
image = /u2/z1.2.1
label = 1.2.1-hda2
root = /dev/hda2
read-only
# Eski Slackware cekirdegini de gerektiginde calıstırılacak sekilde
# ortalıkta bıraktım. Dogrusu bir kere buna ihtiyacım olmustu.
image = /u2/z1.0.9
label = 1.0.9
root = /dev/sda1
read-only
# DR-DOS 6 bolumum.
other = /dev/hda1
loader=/u2/etc/lilo/chain.b
label = dos
alias = m

Ornek 2:
--------
Ofisimdeki sistemde 1GB IDE surucusu var. BIOS'um ilk IDE'min sadece 504
MB'lik bolumunu gorebiliyor (MB=2^10, 10^6 degil). Dolayısıyla 350 MB'lık
/dev/hda1 bolumunde MS-DOS ve 120 MB'lık /dev/hda2 bolumunde Linux kok var.

MS-DOS kendini dogru bir sekilde surucu yeniyken kuramamaktaydı. Novell
DOS 7'de de aynı problem vardı. Sansım varmıs ki,"Options by IBM" surucu
kutusunun icine "OnTrack" disketini koymayı unutmustu. Surucu "OnTrack
Disk Manager" adlı programlar gelmesi gerekiyordu. Eger sadece MSDOS'unuz
varsa, sanırım bu programı kullanmak zorundasınız.

Dolayısıyla bolum tablomu Linux'un fdisk'iyle olusturdum. MSDOS-6.2
kendini /dev/hda1'e kurmayı reddetti. Asagıdaki gibi bir mesaj cıktı.

'Bu MS-DOS dagıtımı yeni kurulumlar icindir.
Bilgisayarınızda MS-DOS var
[bu yanlıstı, surucu yeniydi]
dolayısıyla satıcınızdan guncelleme dagıtımını almanız gerek.'

Ne sacmalık! sonucta Linux'un fdisk'ini tekrar calıstırdım ve 1. bolumu
tablodan sildim. Bu MS-DOS 6.2 icin tatminkar olmustu ve biraz once
sildigim 1. bolumu tekrar yarattı ve kendini oraya kurdu. MS-DOS 6.2
surucudeki MBR'ye yazdı, fakat sistem acılmadı.

Sans eseri, diskette Slackware cekirdegi vardı (Slackware kurulum programı
tarafında yapılmıstı), dolayısıyla Linux'u actım ve LILO ile MS-DOS'un
bozuk MBR'si uzerine yazdım. Bu calıstı. Kullandıgım /etc/lilo.conf
dosyası asagıda:

boot = /dev/hda
map = /lilo-map
delay = 100
ramdisk = 0 # Slackware cekirdegindeki ramdisk'i kapatır.
timeout = 100
prompt
disk = /dev/hda # BIOS sadece ilk 500 MB'ı gorur.
bios=0x80 # Ilk IDE'yi belirler.
sectors = 63 # bu sayıları surucunun kılavuzundan alın.
heads = 16
cylinders = 2100
image = /vmlinuz
append = "hd=2100,16,63" # Bu gereksiz olabilir.
root = /dev/hda2
label = linux
read-only
vga = extended
other = /dev/hda1
label = msdos
table = /dev/hda
loader = /boot/chain.b

## son

Bu sistemleri kurduktan sonra, zImage, boot.b, map, chain b ve mesaj
dosyalarının bulundugu bolumun msdos dosya sistemini "stacker" veya
"doublespace" ile sıkıstırılmadıgı surece kullanabildigini dogruladım.
Dolayısıyla 500 MB'lik DOS /dev/hda1 bolumu olusturabilirdim.

Ayrıca "OnTrack" programınında surucunun hemen baslangıcına degilde birkac
duzine byte sonraya bolum tablosunu yazdıgını ve boylece Linux IDE
surucusunu kandırıp, bu sorunun etrafından dolasmanın mumkun oldugunu
ogrendim. Fakat onceden derlenmis Slackware cekirdegiyle bu imkansız.
Sonradan IBM "OnTrack" disketi yolladı. Bende OnTrack'ın teknik servisini
aradım. Bana Linux ile olmayacagını cunku Linux'un BIOS'u kullanmadıgını
soylediler. Ben de disketlerini geri verdim.


Ornek 3:
----- --
Sonra ofisimdeki sisteme Windows 95 kurdum. Benim guzel LILO MBR'mi
ucurdu, fakat Linux bolumlerime dokunmadı. Cekirdegin disketten yuklenmesi
uzun surdugunden, cekirdegi IDE'den yuklememi saglayan duzgun calısan bir
LILO ayarıyla bir disket olusturdum. LILO disketimi asagıdaki gibi
olusturdum.
fdformat /dev/fd0H1440 # yeni disketi formatlar.
mkfs /dev/fd0 1440 # dosya sistemini minix yapar.
mkdir /3 # baglayacak yer yaratır.
mount /dev/fd0 /3
cp -p /boot/chain.b /3 # zincir yukleyicisini kopyalar.
lilo -C /etc/lilo.flop # LILO'yu ve haritayı diskete kurar.
umount /3
Uyarı: LILO'nun haritasını duzgun yazabilmesi icin disketin, KURUCUYU
CALISTIRDIGINIZDA BAGLAMIS OLMASI GEREKIR.


Bu dosya /etc/lilo.flop 'dur. Son dosyayla hemen hemen aynıdır.

# Cekirdekleri HD'den acmak icin disketi olusturur.
boot = /dev/fd0
map = /3/lilo-map
delay = 100
ramdisk = 0 # Slackware cekirdegindeki ramdisk'i kapatır.
timeout = 100
prompt
disk = /dev/hda # 1 GB IDE, BIOS sadece ilk 500 MB'ı gorur.
bios=0x80
sectors = 63
heads = 16
cylinders = 2100
image = /vmlinuz
append = "hd=2100,16,63"
root = /dev/hda2
label = linux
read-only
vga = extended
other = /dev/hda1
label = msdos
table = /dev/hda
loader = /3/chain.b

## son

Son olarak, ofisteki sistemimde MS-DOS 6.2'ye ihtiyacım oldu, fakat ilk
surucume dokunmak istemiyordum. Sisteme bir SCSI denetleyicisi ve surucusu
ekledim; surucude Linux'un mkdosfs komutu ile msdos dosya sistemi
olusturdum. Dolayısıyla Windows 95 surucuyu "D:" olarak goruyor. Tabii ki
MSDOS D:'den acılmaz. Elinizde LILO oldugu zaman bu sorun degil. Ben de
asagıdakileri Ornek 2'deki lilo.conf'a ekledim.

other = /dev/sda1
label = d6.2
table = /dev/sda
loader = /boot/any_d.b


MS-DOS calısıyor ve kendini C:'de sanıyor ve Windows 95'ide D:

LINUX
Linux/X-Windows Pencere Yöneticisi AFTERSTEP
AFTERSTEP PENCERE YÖNETİCİSİ
Linux altındaki 20'den fazla pencere yöneticilerinden en sık kullanılanlardan iki tanesi Afterstep ve Windowmaker. Her iki pencere yöneticisini de "hastalık derecesinde" seven ve kendi beğenisine göre yapılandıran kullanıcılar var. İnternet üzerinde Afterstep ve Windowmaker sitelerine girin ve ne muhteşem masaüstünde çalışabileceğinizi görün.
Aslında bütün pencere yöneticileri az çok birbirine benziyorlar. Bir tanesiyle rahat çalıştıktan sonra diğer bir yöneticiyle çalışmak son derece kolaydır. Afterstep ve Windowmaker'ı kullanmaktan büyük zevk alacağınızı umuyoruz.
AFTERSTEP KURULUMU
http://www.afterstep.org adresinden indireceğiniz Afterstep-1.6.6.tgz dosyasını uygun bir yere (tercihan /usr/local) kopyalayın ve bu dizinde root haklarıyla aşağıdaki komutu çalıştırın
# tar -zxf AfterStep-1.6.6.tgz
Açılan Afterstep dizinine geçin ve
#./configure
komutunu verin. Bu komut sisteminizle ilgili bilgileri topladıktan sonra Makefile dosyalarını oluşturacaktır. Bu işlem bittikten sonra sırasıyla, root haklarıyla make ve make install yazın. X'in Afterstep ile başlamasını istiyorsanız, ev dizininizde .xinitrc dosyasına
exec afterstep
yazabilirsiniz.

AFTERSTEP KULLANIMI
VE YAPILANDIRILMASI
Afterstep'in bu yazı hazırlanırken en son sürümünde yapılandırma dosyası birçok dosya ve dizinden oluşmaktadır. Eğer kendinize ait yapılandırmaları yapmak istiyorsanız, /usr/local/share/afterstep dizinindeki tüm dosya ve alt dizinleri ~/GNUstep/Library/AfterStep dizinine kopyalamanız gerekmektedir.
Bu pencere yöneticisinin kullanıcıları çeken birçok yönü var. Bunların başında, artık modern pencere yöneticilerinin vazgeçilmez öğesi olan görev çubuğu modülüdür. Bu modül sayesinde daha önce açtığınız pencerelere tek tıklama ile erişebiliyorsunuz. Her pencere çubuğu öntanımlı olarak ekranınızın en üstünde ve yatay olarak konumlanıyor. İsterseniz dikey hale getirir veya an alta alabilirsiniz. Bu yapılandırmayı ~/GNUstep/Library/AfterStep/winlist dosyasından yapacaksınız. Görev çubuğunun dikey bir konumda olması için bu dosya içerisinde aşağıdaki satırı bizim yazdığımız gibi düzenleyin.
*WinListOrientation down
Çubuğun 800X600 ekranda en altta görünmesi için, adı geçen dosyada aşağıdaki değişikliği yapın.
*WinListGeometry +0+580
Eğer istiyorsanız görev çubuğundaki yazıtipini, rengini ve arkaplan rengini de değiştirebilirsiniz. Aşağıdaki değişikliği yaparsanız, arkaplan rengi kırmızı, yazıtipi Lucida Type writer olacaktır.
*WinListBack Red
*WinListFore Green
*WinListFont -b&h-lucidatypewriter-medium-r-normal-sans-10-100-75-75-m-60-iso8859-9
Aktif pencereler arasındaki geçişi sadece görev çubuğundan değil, [Alt - Tab] tuşları ile yapabileceğiniz gibi, bir sonraki pencereye, başlık çubuğunun en solunda bulunan düğmeye (aşağıdaki resimde 1 nolu düğme) farenizin sol tuşuna basarak geçer, pencereler arasındaki sürekli geçişi de aynı düğmeye farenizin sağ tuşuna basarak yapabilirsiniz.
Pencereleri küçültmek için farenizin sol düğmesi ile şekildeki 3 no'lu düğmeye, büyütmek için aynı düğmeye sağ tuşla tıklayınız. Pencerenizin başlık çubuğunun altına gizlenmesi için 4 no'lu düğmeye, açılması için aynı düğmeye tekrar tıklayınız. Her zaman olduğu gibi kapatmak için x ile gösterilen 5 no'lu düğmeye tıklamalısınız. Başlık çubuğunda yapabileceklerinizin hepsi bu kadar değil, 2 no'lu tuşa farenizin sol tuşu ile basarsanız pencere görüntülerinin alınması yanında, başka masaüstlerine taşıma gibi bir çok araç karşınıza çıkar. Aynı düğmeye sağ tuş ile tıklarsanız, açık pencerelerin bir listesini elde etmiş olursunuz ve istediğiniz pencereye geçiş yapabilirsiniz.

TUŞ KISAYOLLARI
Bu arada yukarıdaki tuş kısayollarının yanında, [Shift+Alt+Fx] kombinasyonlarına da yer verelim. Örnek olarak, [Shift+Alt+F2] aktif pencereyi küçültürken, [Shift+
Alt+F4] ise pencereyi kapatmaktadır. Pencerenizi hareket ettirmek için başlık çubuğundan tutup istediğiniz yere taşıyabilirsiniz. Bazı durumlarda başlık çubuğu ekranınızın dışına taşabilir, bu durumda ya [Shift+Alt+F3] tuşuna basıp pencere büyüklüğünü yeniden ayarlarsınız, ya da aynı işi yapmak için pencerenin en altında bulunan çubuğun sağ ve solundaki kulakçıklardan (yukarıdaki resimde 6 ile gösterilen çubuklar) tutup çekebilirsiniz. Pencerenizi 7 no'lu uzun çubuktan tutarak hareket ettirmek istiyorsanız, farenizin sağ tuşunu kullanmalısınız.
Aslında tüm bunların hangi durumlarda yapılacağını da belirleyebilirsiniz. Bununla ilgili yapılandırma dosyalarını ~/GNUstep/Library/AfterStep/feels dizinindeki dosyalardan seçin. Burada birçok dosyanın bulunduğunu görebilirsiniz. Her bir dosya pencerenizin davranış biçimleri ile ilgilidir. Davranış biçimlerini ayarlamak için, Farenizin sol tuşuna pencere üzerindeki herhangi bir boşlukta basın, o da ne? Start (Başlangıç menüsü). Şimdi Desktop --> Feel. Buradan da davranış biçimlerini seçebilirsiniz. Afterstep'çiler en çok ClickToFocus seçeneğini kullanırlar. Bu seçenekte, pencere üzerine tıkladığınızda pencere aktif hale geçer, AutoRaise seçeneğini kullanırsanız, fareyle herhangi bir pencere üzerine geldiğinizde tıklamaya gerek kalmadan pencere aktif hale geçer. Diğer seçenekleri deneyin ve zevkinize uygun olanını seçin. Yüzlerce seçenek arasından kaybolmamaya dikkat edin.
EK YAPILANDIRMA MENÜLERİ
Buraya kadar gelmişken diğer yapılandırmalara da bir göz atalım. Pencere çerçevesi başlık çubuğu rengi gibi düzenlemeleri Start --> Desktop --> Look menüsünden ayarlayabilirsiniz. Masaüstü duvar kağıdınızı Start --> Desktop --> Pictures menüsünden ayarlayabilirsiniz.
İyi de bu start menüsünu nasıl değiştireceğim? AfterStep pencere yöneticisinin ilgi çeken bir yönü de bu start menüsünün yapılandırmasının çok kolay olmasıdır. Başlangıç menüsünün yapılandırılması ~/GNUstep/Library/AfterStep/start dizinidir. Dizin diyoruz çünkü, yapılandırmanın esası dizin ve dosyalardan geçiyor. Alt menüler dizin, çalıştırılabilir programlar da birer dosyadan ibaret. Şimdi start menüsüne, bir "Sık kullanılanlar" alt menüsünü ekleyelim. Bunun için hemen /usr/share/afterstep/start dizini içerisine "Sık kullanılanlar" dizinini oluşurunuz (mkdir "Sık kullanılanlar"). Bu alt menüden GIMP programını çalıştırmak için ise bu dizin altında içerisinde içinde aşağıdaki satır bulunan 1_gimp adlı bir dosya oluşturunuz:
Exec "The GIMP" exec gimp &
MiniPixmap "mini-as.xpm"
Mantık oldukça basit, dosya adının başına bir sayı yazıyorsunuz, dosyayı oluştururken de ilk satırın başına "exec" komutu, daha sonra tırnak içerisinde menü ismi, "exec" komutundan sonra çalıştırılacak program geliyor. İkinci satır ise menüde görünecek minik resmin adı. Hazır resimleri kullanabileceğiniz gibi, kendi resimlerinizi de kullanabilirsiniz.
Yeni Menüyü görmek için Start --> Deskstop --> Update S-startmenu. Yeni Start menüsü aşağıda görünmektedir:
Eğer GIMP programını çalıştırıp küçültürseniz, buna ait bir simgenin masaüstünde oluşmadığını göreceksiniz. Bunu eklemek için ~/GNUstep/Library/AfterStep/start/database dosyasına (tercihen en sona) aşağıdaki satırı ekleyin
Style "The GIMP" Icon 3dpaint.xpm
Bu satırın mantığı ise şöyle: Style ile başlıyoruz, bir boşluk veya tab'dan sonra tırnak içerisinde programın başlık çubuğunda görünen adı ve daha sonra masaüstünde bu programı simgeleyecek resmin adını yazıyorsunuz. Elbette ki ~/GNUstep/Library/AfterStep/icons dizini içerisindeki dizinlerden herhangi birisinin içerisine kendi oluşturduğunuz resimleri kopyalamak kaydıyla, masüstünde istediğiniz programları istediğiniz resimlerle simgeleyebilirsiniz.
  
AFTERSTEP ÇEKMECELERİ
Son olarak bahsedeceğimiz konu ise çekmeceler. Bir çekmece, masüstünde başlangıç menüsünün yanısıra çok kullanılan programların, aynen bir çekmece usulü yerleştirilip başlatılmasını sağlar. Bunların yapılandırma dosyası ~/GNUstep/Library/AfterStep/wharf'tır. Gelin hemen şimdi Applications menüsüne (çekmecede dosyalar ile gösterilen menü) en çok kullandığımız programlardan birisi olan Star Office paketini ekleyelim. Bunun için smain.xpm resim dosyasını
~/GNUstep/Library/AfterStep/desktop/icons/16bpp dizinine kopyalayın. ~/GNUstep/Library/AfterStep/wharf dosyasında
*Wharf netscape netscape.xpm Exec "-" netscape &
satırının hemen altına (isterseniz üstüne) aşağıdaki satırı ekleyin,
*Wharf StarOffice smain.xpm Exec "-" soffice &
Şimdi Applications çekmecesindeki geri dönüşüm düğmesine tıklayarak, yeni yapılandırmanın aktif hale gelmesini sağlayın. Eğer Star Office uygulamasını küçülttüğünüzde, masaüstünde kendisine ait sembol ile simgelenmesini istiyorsanız ~/GNUstep/Library/AfterStep/start/database dosyasına aşağıdaki satırı ekleyebilirsiniz.
Style "Star*" Icon smain.xpm
AfterStep ile anlatılacaklar bu kadar değil, diğer yapılandırma dosyalarını da siz inceleyebilirsiniz. Eğer tüm ekranda çalışmak istiyorsanız (çekmecesiz ve/veya görev çubuksuz) ~/GNUstep/Library/AfterStep/autoexec dosyasında ilgili modüllerin başına (#) işaretini koyabilirsiniz. Örneğin çekmeceleri kaldırmak için
Module "I" Wharf
satırını
#Module "I" Wharf
şeklinde düzenleyebilirsiniz.

SES DESTEĞİ
Eğer ses kartınız var ise ve AfterStep pencere yöneticisinde ses modülünü aktif hale getirdiyseniz, masaüstündeki her olay için bazı sesler duymuş olacaksınız. Ses modülünü aktif yapmak için Start --> Modules --> Audio'yu kullanın. Durdurmak için aynı yerden, Stop Audio'yu çalıştırın. Hangi olay için hangi sesin çıkacağını yapılandıracağınız dosya ise ~/GNUstep/Library/AfterStep/audio.
AfterStep in en son sürümlerini ve diğer uygulamalarını (örneğin kontrol-panel) edinmek istiyorsanız http://www.afterstep.org adresini ziyaret edebilirsiniz. e-posta listeleri ve üyeliklerinin nasıl yapılacağına dair bilgileri http://www.
calderasystems.com/linuxcenter/forums/afterstep.html adresinden edinebilirsiniz.
Linux sizi mutlu yapmaya devam edecektir.

  

Web'de Linux Pencere Yöneticileri

Afterstep Web sayfası www.afterstep.org
Pencere dekorları Web sayfası www.themes.org
Afterstep dekorları as.themes.org
Afterstep uygulamaları www.tigr.net/afterstep/as-apps/
Windowmaker dekorları wm.themes.org

Dell, HP ve Compaq, Linux Treninde
Linux, dünyadaki Web sunucuların %30'unda kullanılıyor. GNU lisansı altında ücretsiz dağıtılan Linux ile servis veren firmalar hem büyük yazılım ve donanım masrafından kurtuluyorlar, hem de sağlam bir platform altında sorunsuz çalışan bir sunucuya sahip oluyorlar. Son iki yılda Linux'a Informix, Oracle, Sybase gibi yazılım devleri destek vermişlerdi. Her geçen gün daha geniş bir kitleye hitap eden Linux trenine geçtiğimiz haftalarda üç büyük vagon eklendi. Dell, HP ve Compaq firmaları, ürünlerini Linux ile donatacaklarını açıkladılar. Dell Poweredge 1300, 2300, Dell Precision 410, 610 sistemlerini; HP ise NetServer serisini Linux ile hazır kurulu vermeyi planlıyor. Compaq ise Alpha Server DS20 serisinde Linux desteğini vereceğini duyurdu. Artık kullanıcılar alternatif işletim sistemlerini sunucularına kurulmuş halde alabilecekler. Daha da önemlisi, HP, bu hizmetini bu yılın ortalarına doğru Avrupa ve Asya'ya doğru genişleteceğini de belirtti. Kimbilir, belki yarın, belki yarından da yakın, bilgisayar alırken "Ben Linux kurulu bilgisayar istiyorum" diyebileceksiniz.

Bu dokuman , cekirdegin konfigurasyonu, derlenmesi ve guncellestirilmesi icin gerekli bilgileri icerir .
3.1 Giriş
Cekirdek-NASIL dokumanı, cekirdek derlerken karsılanan sorunları en aza indirmek ve kullanıcının ihtiyacını da gozonunde bulundurarak derleme asamasını en kısa zamanda ve en uygun yoldan gerceklestirmek icin yazılmıstır. Linux cekirdegini derlemek uzun bir islem gerektirir ve kullanıcının onune pekcok secenekler sunar.
3.1.1 Gereksinimler
Linux cekirdek kurulum paketindeki birtakım programlar, makinanızda GNU tar, find ve xargs komutlarının bulundugunu farzeder. Bu komutlar neredeyse standartlasmıs olduklarından nadiren sorun cıkartırlar. Ayrıca bilgisayarınızdaki dosya yapısından da haberdar olmanız gerekir.
Bu dokuman guncellenirken son kararlı surum 2.0.31, gelistirme surumu 2.1.64 idi. Ama hazırlanırken son kararlı cekirdek surumu 2.0.23 oldugu icin orneklerin bazıları bu surume gore hazırlandı. Cekirdek surekli degisim ve gelisim icinde oldugundan yeni cekirdeklerdeki bir degisiklik,
dosyada verilen bilgilerin yanlıs olmasına neden olabilir. Bu durumu gozonunde bulundurunuz.
Karalı cekirdek, test asamalarından gecmis ve herhangi bir sorun cıkarma ihtimali cok az olan surum demektir.
Her linux cekirdegine bir surum kodu verilir :  1.0.9, 1.3.50 , 2.0.0, 2.1.64 gibi. Her kodun ikinci numarası, cekirdegin gelistirilme asamasında mı, yoksa kararlı mı oldugu konusunda fikir verir. Bu sayı cift ise, hataları ayıklanmıs ve onaylanmıs bir cekirdek anlamına gelir. Diger durumda, sayı eger tek ise cekirdek henuz gelistirilme asamasındadır ve kararlı olmayabilir.
3.2 Bazı önemli noktalar
3.2.1 Nedir bu çekirdek denilen şey ?
Genel anlamda cekirdek, programların ve donanımın arasında bekleyerek iletisimi saglayan arabirimdir. Calısan tum programların ve sureclerin hafıza ile olan iliskilerini duzenler. Islemcinin gucunun tum bu programlar arasında adil bir sekilde dagıtımını uzerine alır. Tum bu islemleri kullanıcının haberi olmadan, her an durmaksızın yapar. Kısaca cekirdek, isletim sisteminin bellekte surekli calısan ana parcasıdır.
3.2.2 Neden çekirdek sürümünü yükseltmem gerekiyor ?
Arastırma-gelistirme yapan binlerce kisi, surekli olarak mevcut Linux programları uzerinde calısırlar. Cekirdek ile ilgili her yeni dusunce, anında programa gecirilir. Artık daha hızlı calısan aygıt suruculeri,
daha hızlı hafıza yonetimi veya kararlılıgı yuksek bir cekirdek olusmustur . Hatalar surekli kapandıgından yukseltme islemi kullanıcının lehine olur.
3.2.3 Yeni çekirdekler benim donanımımı destekler mi ?
Donanım-NASIL dosyasında cekirdegin destekledigi tum donanımlar vardır . Ayrıca cekirdegin derlenmesi sırasında 'make config' komutunun ardından destek goren tum donanımın listesi ekrana sırayla gelir.  Bu listedeki bazı aygıt suruculeri ise slackware dagıtımından ayrı, modul olarak Linux ile ilgili ftp adreslerinden bulunabilir.
3.2.4 Modul nedir ?
Moduller, derleme sırasında cekirdek uzerine eklenmeyen programcıklardır . Kullanıcı bunları cekirdekten ayrı derler, istedigi zaman cekirdege ekleyip cıkartabilir. Bunlar yapılırken makinayı kapatmaya da gerek yoktur . Cok kullanılan ve populer bazı aygıt suruculeri (PCMCIA suruculeri gibi) genelde modul olarak derlenirler.
3.2.5 Sabit diskimde ne kadar boş yere ihtiyacım var ?
Bu, sisteminizde yapacagınız konfigurasyona baglıdır. Ornegin surum 2.0.10 yaklasık 6Mb disk alanı kaplar. Acıldıgı zaman ise toplam kapladıgı alan 24 Mb olur. Derleme asamasından sonra bu rakam 30 Mb'ı gecer. Her eklenen aygıt surucu destegi sabit diskten bir miktar daha yer alır. Genellikle
yeni cıkan cekirdek kaynak kodu bir onceki surumden daha buyuktur.
3.2.6 Çekirdeğin derlenmesi ne kadar sürer ?
Kullandıgınız sisteme gore bu sure degiskenlik gosterir. 16 Mb 486DX4/100 makinasında, 5 dosya sistemi destegi, ag destegi ve ses kartı surucusu ile yaklasık 20 dakika surer. Aynı konfigurasyonu iceren cekirdegin derlenmesi ise daha zayıf bir makina olan 8Mb 386DX/40 altında 1.5 saati bulur.
Derlerken gidip cayınızı icin, biraz televizyon seyredin. Makinanız 386 ise bir banyo alıp dısarı cıkın, alısveris yapın. Cok umitsiz bir durumdaysanız, yapılacak en iyi sey en yakın bilgisayar sirketine
ugrayarak yeni fiyatları sormaktır :-)
3.3 Ayarlar
3.3.1 Çekirdeğin alınması
Cekirdek kaynak kodu ,ftp://ftp.metu.edu.tr/ adresindeki /pub/linux/tsx/sources/system dizininden veya tsx-11.mit.edu adresinin arsivini tutan herhangi bir adresten alınabilir. Bu dizin altındaki linux
surumlerinin bir tanesini (v1.2, v2.0, v2.1 gibi) sectikten sonra altındaki dosyayı alabilirsiniz. Dosyanın ismi linux-x.y.z.tar.gz yapısındadır. Buradaki x.y.z sayısı surum sayısını gosterir. y sayısının
tek olması durumunda henuz cekirdegin test asmasında oldugu anlasılabilir. Bu sayı cift ise sozkonusu cekirdek kararlıdır.
Asagıdaki ornekte ftp.metu.edu.tr adresinden 2.0.20 surumunun alınısı gosterilmektedir:
$ ftp ftp.metu.edu.tr
Connected to ephesus.cc.metu.edu.tr.
220-
220-Welcome to METU Ftp Site !
220-
220-All logins and transfers are logged with your hostname.
220-If you do not agree with this policy, please cancel now.
220-
220 ephesus FTP server (Version wu-2.4(5) Wed Jan 10 18:06:56 EET 1996) ready.
Name (ftp.metu.edu.tr:gorkem): ftp
331 Guest login ok, send your complete e-mail address as password.
Password:
230-##########################################################################
230-##    Welcome to the Middle East Technical University Ftp Archive       ##
230-##########################################################################
230-
230-
230-Hello ftp@compclup.ceng.metu.edu.tr !
230-You are the 19. anonymous user.
230-Maximum number of users allowed is 100.
230-Local Time is Tue Nov  5 12:19:41 1996.
230-
230-Mirrored sites are placed under the directory /pub
230-This archive is maintained by ftpload@ftp.metu.edu.tr
230-You can reach this archive via FSP at port 21.
230-
230-You can reach public directories via "cd dirname"
230-command independent of your current location;
230-e.g. "cd linux" instead of "cd /pub/linux"
230-
230 Guest login ok, access restrictions apply.
ftp> cd /pub/linux/tsx/sources/system/
250-Please read the file README
250-  it was last modified on Mon Sep 16 11:36:00 1996 - 50 days ago
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 66
-rw-r--r--  1 ftpload  ftp-adm     36981 Sep 16 12:36 CREDITS
drwxr-xr-x  3 ftpload  ftp-adm       512 Oct 13 15:59 Historic
-rw-r--r--  1 ftpload  ftp-adm     12056 Sep 16 12:36 README
drwxr-xr-x  2 ftpload  ftp-adm       512 Oct 14 11:47 SillySounds
drwxr-xr-x  2 ftpload  ftp-adm       512 Oct 13 18:17 testing
drwxr-xr-x  2 ftpload  ftp-adm       512 Oct 14 11:47 v1.0
drwxr-xr-x  2 ftpload  ftp-adm      2048 Oct 31 21:55 v1.1
drwxr-xr-x  2 ftpload  ftp-adm      1024 Jun 25 11:34 v1.2
drwxr-xr-x  2 ftpload  ftp-adm      6656 Sep 27 04:24 v1.3
drwxr-xr-x  2 ftpload  ftp-adm      1536 Nov  2 00:05 v2.0
drwxr-xr-x  2 ftpload  ftp-adm       512 Nov  2 21:33 v2.1
226 Transfer complete.
ftp> cd v2.0
250 CWD command successful.
ftp> bin
200 Type set to I.
ftp> dir linux*
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 141009
-rw-r--r--  1 ftpload  ftp-adm   5859566 Jul  3 11:22 linux-2.0.1.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5940281 Jul 27 06:39 linux-2.0.10.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5952403 Aug  5 03:01 linux-2.0.11.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5954278 Aug  9 12:53 linux-2.0.12.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5981780 Aug 16 06:19 linux-2.0.13.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5984960 Aug 20 11:52 linux-2.0.14.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5986368 Aug 25 06:20 linux-2.0.15.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5990228 Aug 31 14:03 linux-2.0.16.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5991606 Sep  2 06:37 linux-2.0.17.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5993351 Sep  5 10:38 linux-2.0.18.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5997342 Sep 11 10:21 linux-2.0.19.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5861789 Jul  5 12:09 linux-2.0.2.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5997693 Sep 13 08:53 linux-2.0.20.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5999162 Sep 20 09:51 linux-2.0.21.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   6009488 Oct  8 13:02 linux-2.0.22.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   6010694 Oct 18 08:20 linux-2.0.23.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5931967 Jul  6 07:53 linux-2.0.3.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5926911 Jul  8 08:48 linux-2.0.4.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5927899 Jul 10 08:23 linux-2.0.5.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5929807 Jul 12 07:22 linux-2.0.6.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5931378 Jul 15 07:38 linux-2.0.7.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5936467 Jul 20 02:52 linux-2.0.8.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5939510 Jul 26 04:09 linux-2.0.9.tar.gz
-rw-r--r--  1 ftpload  ftp-adm   5843677 Jun  9 23:36 linux-2.0.tar.gz
226 Transfer complete.
ftp> get linux-2.0.20.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.0.20.tar.gz (5997693 bytes)
.
226 Transfer complete.
5997693 bytes received in 136 secs (43 Kbytes/sec)
ftp> quit
221 Goodbye.

3.3.2 Arşivi nasıl açarım ?
Sisteme root olarak giris yapın ve /usr/src dizinine gecin . Linux'un kurulması asamasında cekirdekleri de kurmus iseniz bu dizinde 'linux' isminde ve eski cekirdegin kaynak kodlarını kapsayan bir alt
dizin goreceksiniz. Genellikle her kullanıcının yaptıgı, bu dizinin ismini o an calısan cekirdegin surumune gore degistirmektir. Kurulu cekirdegin surumunu bulmak icin 'uname -r' komutunu kullanabilirsiniz.
 $ uname -r
   2.0.23
Bu komuttan cekirdegin 2.0.23 surumu oldugunu anlayabiliriz . Cekirdek kaynak kodlarının bulundugu dizinin ismine de , ornegin linux-2.0.23 verilebilir.
 # mv linux linux-2.0.23
Cekirdek kodunu iceren paketi acmadan once /usr/src dizinine kopyalayın , ve acmadan once bu dizinde 'linux' isimli bir dizinin olmadıgına emin olun. Simdi /usr/src icinde iken (tum kaynak kodunun bu dizinde oldugunu farzederek) arsivlenmis kodu 'tar' komutu yardımıyla acalım.
 # tar -zxf linux-x.y.z.tar.gz
Komutun isletimi bitince 'linux' dizini olusur. Ilk defa derleme islemi yapacaksanız asagıdaki komutları sırasıyla yazın.
 # cd /usr/include
 # rm -rf asm linux scsi
 # ln -s /usr/src/linux/include/asm-i386 asm
 # ln -s /usr/src/linux/include/linux linux
 # ln -s /usr/src/linux/include/scsi scsi
 # cd /usr/src/linux
 # make mrproper
3.3.3 Cekirdek konfigurasyonu
/usr/src/linux dizini altında iken 'make menuconfig' yazın . Bu komut , bir konfigurasyon dosyası yaratmak amacıyla donanımınıza gore secimler yapmanıza olanak saglar.
Bazı eski surum cekirdekler 'make menuconfig' desteklemeyebilir. Bu durumda 'make config' kullanmanız gerekir.
Karsınıza cıkan secenekleri 'y' (evet) veya 'n' (hayır) ile ayarlayabilirsiniz. Bazı aygıt suruculerde 'm' secenegi de olabilir. Bunun anlamı, sistem o programı 'modul' olarak derleyecek ve cekirdege dahil
etmeyecek demektir. Kullanıcı derleme asamasından sonra istedigi zaman bu modulu cekirdege dahil edebilir.
Bir secenek hakkında, o secenegin uzerindeyken  '?' tusuna basarak daha ayrıntılı bilgi alabilirsiniz.
 
3.3.3.0 Kod gelistirme duzeyi secenekleri (Code maturity level options)
Eger bir Linux gelistiricisi veya 'kernel hacker' degilseniz, bos gecin.

3.3.3.1 Modul yukleme destegi (Enable Loadable Module support)
Cekirdegin, daha sonra modul olarak sececeginiz secenekleri (suruculeri vb.) makina calısırken cekirdege ekleme-cıkarma ozelligi kazanmasını istiyorsanız , bu bolumdeki secenekleri ayarlamalı-
sınız .

3.3.3.2 Genel ayarlar (General setup)
3.3.3.2.1 Matematik islemci emulasyonu (Kernel math emulation)
Kullandıgınız makinanın islemcisi yardımcı matematik islemcisine sahip degilse (486SX, 386SX veya daha dusuk) bu secenege evet cevabını vermelisiniz. Matematik islemcisi olan bir makinada evet cevabını verilmesi durumunda yardımcı islemci kullanılır ve emulator hesaba katılmaz ama nasıl olursa olsun, cekirdegi gereksiz programlar ve modullerle sisirmemelidir.

3.3.3.2.2 Ag destegi (Networking support)
Makinanız herhangi bir ag uzerinde ise (Internet gibi), veya Internet'e baglanmak icin SLIP, PPP, term gibi programları kullanmak istiyorsanız bu bolume 'y' cevabı vermelisiniz. Fakat, ag uzerinde olmasanız bile her gecen gun yeni yeni uygulama programlarının ve paketlerin ag destegine ihtiyacı oldugunu dusunursek (X Window gibi) bu bolume 'y' cevabı vermeniz sart gorunuyor.

3.3.3.2.3 PCI BIOS destegi
PCI bios support - PCI desteginiz varsa, bunu secebilirsiniz. Dikkat etmeniz gereken bir husus var. Bazı eski PCI anakartları bu secenekle kullanıldıkları zaman sistemi kilitleyebilirler . Yeni cekirdeklerde PCI BIOS kullanmak istemeyen veya ihtiyac duymayanlar (Linux'un PCI BIOS kullanamadıgı hatasını alanlar) icin dogrudan PCI erisimi secenegi de sunulmustur. Bazı cipsetlerle calısmayabilir ama genelde sorun cıkarmaz. Hem BIOS'tan hem dogrudan PCI erisimi secenekleri
isaretlendigi zaman, cekirdek, BIOS kullanmayı tercih edecektir.

3.3.3.2.4 MCA destegi
Bazı IMB PS/2 makinalarda oldugu gibi anakartınızda MicroChannel Architecture varsa 'y' deyin. Bu ozellik az sayıda makinada oldugundan genelde 'n' denir.

3.3.3.2.5 System V IPC (System V IPC)
IPC (Interprocess Communication - Sureclerarası Iletisim) 'nin en iyi tanımı Perl kitaplarında bulunabilir. Bazı Perl programları ve oyunlar (DOOM gibi) bu secenek olmadan calısamazlar. Bu durumda ne yaptıgınızı iyi bilmiyorsanız bu secenege 'n' - hayır cevabı vermeyin.

3.3.3.2.6 Kernel support for a.out binaries
        Kernel support for ELF binaries
        Kernel support for MISC binaries (2.1.x ve ustu)
Calıstırılabilir dosyalar cesitlidir. En cok a.out ve ELF formatı kullanılır. Her iki cins ikililer de kullanımda oldugundan bu seceneklere 'y' deyin. Son surumlerde diger ikili bicimlerinin destegi de verilmeye calısılmıstır. Java, Phyton ve Emacs-Lisp gibi yorumlayıcı dilleri cok kullanıyorsanız, bu secenegi ozellikle isteyebilirsiniz. Bu secenegi secerseniz, Java ikilileri (Kernel support for Java binaries) ve Linux/Intel ELF ikilileri (Kernel support for Linux/Intel ELF binaries) icin cekirdek destegi secmenize gerek kalmaz . Ayrıntılı bilgi icin Documentation/binfmt_misc.txt okuyun.

3.3.3.2.7 Islemci tipi (386, 486, Pentium, PPro)
Burada, makinanızın merkezi islem biriminiz ne ise onu secin.

3.3.3.2.8 Goruntu mod secim destegi (Video mode selection support)
Makinanız metin modunda yuksek cozunurlukleri destekler durumdaysa ve bu ozelliginden yararlanmak isterseniz buraya 'y' deyin. Ama bununla beraber baska bir kac ayar daha yapmanız gerekecektir. Ayrıntılı bilgi icin ilgili Linux dokumanlarına basvurun.
3.3.3.2.9 Paralel port destegi
Yazıcınız paralel portu kullanıyorsa, zip-drive aletiniz varsa veya PLIP link yapıyorsanız bunu secin. Ayrıntılı bilgi edinmek isterseniz Documentation/parport.txt dosyasına gozatın.
3.3.3.3   Plug'n'Play destegi
PnP destegi (Tak ve calıstır) istiyorsanız, bu bolumdeki secenekleri inceleyin ve gereken secimleri yapın.

3.3.3.4   Floppy, IDE ve diger blok tanımlı donanımlar
Bu kısımda makinanızda bulunan donanımdan haberdar olmanız gerekir. Yanlıs secimler sonucu derleyeceginiz cekirdek bazı donanım parcaları ile sorun cıkarabilir. Ya da gereksiz yuklentilerle sisebilir . Donanımınızı ve tiplerini ogrenin. Disk, CDROM, ve anakartın cip setini isaretleyin. Ek blok tanımlı donanımlar kısmında ise (Additional Block Devices) bilgisi saglam Linux kullanıcılarına yonelik secimler oldugundan emin degilseniz bunları bos gecin.

3.3.3.4.1 Normal floppy disk destegi (Normal floppy disk support)
/drivers/block/README.fd dosyasını okumak isteyebilirsiniz . Ozellikle IBM Thinkpad kullanıcıları icin bu onemlidir.

3.3.3.4.2 Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
Hemen herkesin kullandıgı PC sabit disklerinin standart olması sebebiyle bu secenege 'y' cevabı verilebilir. Daha ileride SCSI sabit disk ve cdrom destegi secenekleri de gorulebilir.

3.3.3.4.3
'old disks-only' ve 'new IDE' suruculeri secenekleri arasındaki fark , ilkinde tek arabirim uzerinden iki adet diski desteklemesi , digerinde ise ikinci arabirim ile birlikte IDE/ATAPI cdrom'ları desteklemesidir . Yeni teknolojili surucu, ilkinden daha fazla yer kaplar (4 Mb fazla).

3.3.3.5 Ağ secenekleri (Networking options)
NET-2-NASIL dosyasında bu konuda detaylı bilgi bulabilirsiniz.

3.3.3.6 SCSI destegi (SCSI Support)
SCSI aygıtlarınız var ise bu secenek icin 'evet' deyin. Daha sonra da
karsınıza gelecek SCSI aygıtlar arasından size uygun olanları alın.
Daha genis bilgi icin SCSI-NASIL belgesi size yol gosterecektir.
 
3.3.3.7 Ağ kartı destegi (Network Device Support)
Aga baglanmak icin bir kart kullanacaksanız, veya SLIP, PPP baglantıları , ya da paralel port uzerinden yapacagınız her turlu islem icin bu secenegi isaretleyin. Ardından ekrana gelen kart tiplerinden ve protokollerden uygun olanları secin.

3.3.3.8 ISDN destegi
ISDN (Integrated Services Digital Networks) destegini veren bir telefon santraline baglıysanız, servis saglayıcınız destekliyorsa ve sizde de uygun donanım varsa bunu kullanabilirsiniz.

3.3.3.9 CDROM suruculeri (SCSI ve IDE/ATAPI olmayan suruculer)
SCSI veya IDE/ATAPI olmayan bir CDROM'unuz varsa buraya girip size uygun olan secenekleri bulun.

3.3.3.10 Dosya sistemleri (Filesystems)
Burada, asagıdaki dosya sistemlerinden kullanmak istediklerinizi secebilirsiniz .
* minix : Yeni dagıtımlar , artık tarih olmaya baslayan bu dosya sistemini desteklemiyor. Kurtarma disketleri yaratmak icin artık,  daha yaygın fakat daha az kararlı olan ext2 dosya sistemi tercih edilir.
* Genisletilmis dosya sistemi - Extended file system (ext) : Bu da artık kullanımı olmayan bir dosya sistemi. Destegini ekleyip eklememek size kalmıs.
* Genisletilmis dosya sistemi-2 - Second extended file system (ext2) : Linux'un kullandıgı en onemli dosya sistemi. Alınması gerekir.
* xiafs : Artık kullanılmıyor.
* msdos : Sabit diskinizde DOS bolumu varsa, ya da DOS disketi kullanmak istiyorsanız secin.
* umsdos : MS-DOS dosya sistemine bazı yenilikler (uzun dosya isimleri gibi) getirilerek olusturulan bir teknoloji. MS-DOS destegi almadıysanız buna da gerek yok.
* /proc : Bu aslında gercek bir dosya sistemi degil, cekirdek ve surecler arasında arabirim gorevi yapan bir yapıdır. Pek cok program bu dosya sistemini kullanır (ps, free gibi). 'y' cevabını vermeniz gerekir.
* NFS : Linux makinanız bir ag uzerinde kurulu iken ag uzerindeki diger makinaların dosya sistemlerini kullanabilmenizi saglar.
* ISO9660 : CD-ROM surucunuzu Linux altında kullanabilmek 'y' cevabı verin.
* OS/2 HPFS : Linux -henuz- OS/2 dosya sistemlerine yazamıyor. Bu destegi almak icin 'y' cevabı verin.
* System V : Bir UNIX surumu olan System V makinalarının dosya sistemleri uzerinde calısabilmeyi saglar.

3.3.3.10.1 Hangi dosya sistemlerine ihtiyacım olacagını nasıl anlarım ?
"Mount" komutu yardımıyla, o an sisteminizde kullanılan dosya sistemleri ve sabit disk bolumlendirmeleri hakkında bilgi sahibi olusunuz :
 # mount
 /dev/hda2 on / type ext2 (defaults,rw)
 /dev/hda4 on /home type ext2 (defaults)
 /dev/hda3 on /dos type msdos (defaults)
 none on /proc type proc (defaults)
 /dev/fd0 on /mnt type msdos (defaults)
Her satırdaki "type" sozcugunun yanındaki kelime, karsılık gelen sabit disk parcasındaki dosya sistemini gosterir. Bilgisayar Toplulugu makinasında bulunan sabit diski uzerindeki / ve /home dizini 'ext2', /proc dizini 'proc' ve  /dos dizini ise 'msdos' dosya sistemidir. Bunların dısında /mnt dizini altına bir disket surucu baglanmıs gorunmektedir.
Kullandıgınız cekirdegin destekledigi dosya sistemlerini gormek icin su komutu kullanabilirsiniz:
 $ cat /proc/filesystems
         ext2
         minix
         msdos
         vfat
 nodev   proc
 nodev   nfs
 nodev   smbfs
 nodev   ncpfs

3.3.3.11  Native Language Support
nls secenegi, FAT ve ISO9660 dosyasistemleri aktif hale getirilmisse kullanılabilir. Buna Joliet standardı destegi de denebilir. Joliet, Microsoft'un Unicode destekli CDROM eklentisidir. Degisik karakter setlerinin donusumu icin kullanılır.

3.3.3.12 Karakter aygıtları (Character devices)
Bu bolumde yazıcı, fare ve bazı teyp yedekleme suruculeri gibi karakter aygıtları icin suruculeri ekleyebilirsiniz.

3.3.3.13 Ses kartı
Linux, genis bir yelpazede ses kartlarını da destekliyor. Linux'un ses kapasitesini duyabilmek icin bu destegi ekleyin. Daha fazla bilgi Ses-NASIL belgesi altında bulunabilir.
NOT : Yukarıda tum konfigurasyon secenekleri isaretlenmemistir, zira surekli gelisme ve degisiklikler gosterirler.

3.3.3.14 Çekirdek işlemleri (Kernel Hacking)
Cekirdekten dogan hataların bulunmasını kolaylastıran bu secenek , programcılara yonelik . Fakat cekirdegin kararlılıgını azaltabilir. Secim size kalmıs.

Tum bu islemlerin ardından 'make menuconfig' komutunun gorevi bitmis olur . Exit secip, ayarlarınızı kaydedip cıkabilirsiniz.
Makefile dosyasına bir goz atın, degistirmeyi dusundugunuz bolumler varsa uzerinde dusunun.

3.3.3.15 Load an Alternate Configuration
Eger isterseniz, daha onceden elinizde olan bir ayar dosyasını kullanmanıza olanak saglar. Bu durumda yukarıdaki ayarların hic birini yapmanıza gerek kalmıyor.
3.3.3.16 Save Configuration to an Alternate File
Yukarıdaki ayarların hepsini yapıp degisik bir isimde saklamanızı saglar.

3.4 Cekirdegin derlenmesi

3.4.1 Temizlik
Fazla dosyaları temizlemek, gerekli olan dosyaların da yerinde olup olmadıgını kontrol etmek icin , sırasıyla
 # make dep
 # make clean
yazın. Ardından tum nesne dosyaları ve eski surumden kalan dosyalar silinecektir. Bu adımı es gecmeyin.

3.4.2 Cekirdegin derlenmesi
Temizlik isleminden sonra,
 # make zImage
veya
 # make zdisk
yazın. Ilk secenekte cekirdek derlenip arch/i386/boot dizini altına 'zImage' adı altında atılacaktır. Atılmadan once yerden kazanmak icin sıkıstırılır. Diger durumda ise yeni cekirdek sabit disk yerine A: disket surucusune yazılır. Disket uzerine yazmanın bir avantajı, kararlı olmayan ve sistemi acmayan cekirdek ile karsılasılması halinde, sistemi sabit disk uzerindeki eski cekirdekten acabilme imkanı bırakmasıdır.  Cekirdegin sabit diskten yanlıslıkla silinmesi durumunda disketten kopyalama sansı da
verir.
'make oldconfig' komutu , onceden derlenmis cekirdegin konfigurasyon dosyasını okur ve derlemeyi bu dosyayı baz alarak yapar. Eski bir cekirdeginiz ve bunun karsılıgı olan konfigurasyon dosyanız yoksa, sozkonusu komutu kullanmayın.

3.4.3 Cekirdegin kurulması
LILO (Linux Loader - Linux Yukleyici), bilgisayarın acılısı sırasında cekirdek ile ilgili duzenlemeleri okur, buna gore hangi cekirdekten acması gerektigini anlar. Konfigurasyon dosyası biraz karmasık olmasına ragmen kullanım asamasında buyuk yararlar saglar. /etc/lilo.conf dosyasının icinde gerekli olan kurulum bilgileri vardır. Bu dosyanın bir bolum asagıda goruluyor.
 image = /vmlinuz
          label = Linux
          root = /dev/hda1
          ...
'image =' ibaresi kurulu olan cekirdege isaret eder. Cogu kullanıcı bu kısma 'vmlinuz' yazar. 'label =' bolumunde hangi isletim sistemi veya cekirdek surumunun acılısta kullanılacagı yazılır. Hemen altındaki 'root' bolumunde ise 'label =' kısmında secilen isletim sisteminin hiyerarsik yapıda en ust dizin yapısı yazılır. Eski cekirdegin bir yedegini alın ve yeni derlediginiz cekirdegi 'image =' satırında belirtilen sekilde kopyalayın.
 # cp zImage /vmlinuz
veya
 # cp /usr/src/linux/arch/i386/boot/zImage /vmlinuz
Simdi LILO programını calıstırın. Komut satırında 'lilo' yazmak yeterlidir.
 # lilo
 Added linux *
 Added dos
LILO ve konfigurasyonu hakkında , asagıdaki adresten daha fazla bilgi alınabilir.
ftp.metu.edu.tr:/pub/linux/sunsite/docs/howto/mini/LILO
Yeni bir cekirdegi derledikten sonra LILO uzerinden ekleme yapmak ve acılıs anında kullanmak icin /etc/lilo.conf dosyasındaki
 image = /vmlinuz
          label = Linux
          root = /dev/hda1
          ...
satırlarının kopyasını cıkarın, 'image' , 'label' ve 'root' yerine sırasıyla yeni derlenen cekirdegin sabit disk uzerindeki yerini, ismini ve linux isletim sisteminizin kok dizinini yazın. Bunlara ek olarak, acılıs
anında bekleme saglamak ve secim yapabilmek icin konfigurasyon dosyasının basına 'delay = xxx' ekleyebilirsiniz. xxx sayısı, gecikme zamanını saniyenin onda biri olarak verilir. Bu sayede acılıs anında 'shift' tusuna basılarak istenen cekirdegin ismi (label = satırında yazılan isim) secilir ve calıstırılır.

3.5 Çekirdeğin yamanması (patch)
 
3.5.1 Yama uygulanması
Cekirdegin her yeni surumuyle birlikte bir onceki surumunun yaması da gelir. Yamayı uygulamak, tum cekirdegin tekrar derlenmesinden daha kolaydır. Ornek olarak, elinizde 2.0.10 cekirdegi var ve ftp adresinde 2.0.11 surumu cıkmıs. Halihazırdaki cekirdegi 2.0.11 surumune yukseltelim:
Yamayı once /usr/src dizinine kopyalayın. Bu dizin altında iken
 # zcat patch-2.0.11.gz | patch -p0     , veya
 # patch -p0 < patch-2.0.11   (eger sıkıstırılmıs degilse)
yazın. Bu komutun ardından satırlar ekrandan kaymaya baslayacak ve yama islemi tamamlanacaktır. Satırlar bazen o kadar hızlı kayar ki neler yazdıgını bile goremeyebilirsiniz. Yamanın basarılı bir sekilde tamamlandıgından emin olmak amacıyla, /usr/src/linux dizini altında .rej uzantılı dosyalara bakın.
 # find . -name '*.rej' -print
Komut, .rej uzantılı dosyalar bulunursa yama islemi tamamlanamamıs demektir. Eger yama islemi tamamlanırsa, sırasıyla
 # make clean
 # make config
 # make dep
komutlarını yazın. Bu komutlarla ilgili detaylı bilgi 4. konunun basında anlatılmıstır.
'patch' komutunun alabildigi bazı secenekler vardır. 'patch -s' komutu olusabilecek tum hata mesajlarını ekrana yazar. Diger yama secenekleri 'man patch' yazarak gorulebilir.
Yama uygulanan bir cekirdegi eski haline getirmek icin 'patch -R' komutunu kullanın.
Birkac yamanın ardından, .orig uzantılı dosyalar etrafta dolasmaya baslar . Bu dosyalar gereksizdir , buyuk yer kapladıkları icin ise silinmeleri gerekir. Asagıdaki komut yardımıyla /usr/src/linux dizini altında .orig uzantılı dosyaları silebilirsiniz.
      find .  -name '*.orig' -exec rm -f {} ';'
 
3.5.2  Diger yamalar
Standart olmayan ve Slackware ile dagıtılmayan bazı yamaların standart yamalarla cakısması olasılıgı buyuktur. Eger programınız calısmazsa kaynak programın uzerinde oynamanız gerekebilir. Bu nedenle yamanın calıstıgından emin olun. Daha once yama uzerinde deneyimi olan birisinden yardım isteyin veya cekirdeginizi yedekleyin.

3.6 Diger paketler
Cekirdegin, kaynak kodunda ayrıntılı olarak acıklanmayan, buna ragmen onemli oldugunu dusundugum bazı onemli ozellikler burada acıklanmıstır.

3.6.1.  Klavye (kbd)
Linux konsolunun ozelligi sonucu, font degisikligi, klavye tuslarının yeniden tanımlanması, video ekran modunun degistirilmesi gibi bazı ozellikler bu isletim sistemi altında kolayca yapılabilmektedir.  Hemen her dil icin font ve klavye tusları tanımı destegi bulunmaktadır.

3.6.2 Linux yardımcı programları (util-linux)
Rik Faith (faith@cs.unc.edu) , Linux yardımcı programlarından olusan buyuk bir paketi Internet uzerine koydu. Halen Nicolai Langfeldt (util-linux@math.uio.no) tarafından duzenlenen ve guncellenen bu paketin icinde setterm, rdev ve ctrlaltdel gibi, cekirdek ile ilgili programlar
bulunuyor. Fakat paketin once dusunulup sonra kurulması gerekiyor. Kullanıcı bazan sonradan ciddi problemlere yol acabilecek sorunlarla karsı karsıya gelebiliyor. Bu paketi kurmadan once iki kez dusunun.  
3.6.3  Sabit disk secenekleri (hdparm)
Diger paketlere benzer sekilde bu paket de onceden cekirdek yaması yapısındaydı. Ardından standart cekirdegin icine alınarak her surumde dagıtılmaya baslandı. Fakat hemen ardından, sabit diskin optimizasyonu icin kullanılan programlar ayrı olarak dagıtılmaya baslandı.

3.6.4  Standart fare - gpm (general purpose mouse)
Bu program gorsel ekranda (virtual console) fare ile harf-kelime-satır kesip yapıstırmanızı saglayan programı surer.

3.7 BAZI TUZAKLAR

3.7.1  make clean
Eger rutin bir cekirdek guncellemesinden sonra yeni cekirdeginiz gercekten garip seyler yapıyorsa, buyuk ihtimalle yeni cekirdeginizi derlemeden once "make clean" komutunu kullanmayı unutmussunuzdur. Belirtiler sisteminizin sık sık cokmesinden garip Giris/Cıkıs hatalarına veya dusuk
performansa kadar hersey olabilir. "make dep" komutunu calıstırdıgınızdan emin olun.

3.7.2  Büyük veya yavaş çekirdekler
Eger cekirdeginiz cok fazla bellek harcıyorsa, cok buyukse, ve/veya yeni 786DX6/440 makinanızda bile derlenmesi sonsuza kadar suruyorsa, buyuk ihtimalle ayarlanmıs bir cok gereksiz parca (aygıt suruculeri, dosya sistemleri, vb.) vardır. Eger bu parcaları kullanmıyorsanız, onları ayarlamayın, cunku hafıza harcayacaktır. Buyuk cekirdeklerin en belirgin ozelligi surekli hafızadan diske ve diskten hafızaya takas yapmalarıdır; eger diskiniz cok fazla ses yapıyorsa ve kapandıgında bir jetin inisine
benzer ses cıkaran eski Fujitsu Eagle'lardan degilse, cekirdek ayarlarınızı gozden gecirin.
Cekirdeginizin ne kadar hafıza kullandıgını makinanızın toplam hafızasından /proc/meminfo dosyasındaki "total mem" degerini cıkararak veya "free" komutunun cıktısından ogrenebilirsiniz. Ayrıca "dmesg" komutunu kullanarak (veya cekidek log dosyasına bakarak) da bu degere
ulasabilirsiniz.
Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k data)
seklinde bir satır goreceksiniz. Benim 386'ım (daha az ozellikle ayarlanmıs) sunu soyluyor.
Memory: 7000k/8192k available (496k kernel code, 384k reserved, 312k data)

3.7.3 Cekirdek derlenmiyor !
Eger cekirdek derlenmiyorsa, yama basarısız olmus veya kaynak kod bir sekilde bozulmus olabilir. Derleyicinizin surumu dogru olmayabilir veya bozulmus da olabilir (ornegin, "include" dosyaları hatalıdır). README dosyasında anlatılan sembolik baglantılar ın dogru kurulduguna emin olun.
Genelde, eger standart bir cekidek derlenmiyorsa, sistemle ilgili ciddi bir sorun vardır ve bazı uygulamaların (tools) yeniden yuklenmesi gerekli olabilir.
Belkide bir 1.2.x cekirdegini ELF derleyiciyle (gcc 2.6.3 veya ustu) derliyorsunuzdur. Eger derleme sırasında bir suru "... undefined" mesajı alıyorsanız, sizin probleminiz bu olabilir. Bircok durumda bunu duzeltmek cok kolaydır. Su satırları arch/i386/ Makefile dosyasının basına ekleyin:
  AS=/usr/i486-linuxaout/bin/as
  LD=/usr/i486-linuxaout/bin/ld -m i386linux
  CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include
Daha sonra yeniden "make dep" ve "make zImage" komutlarını calıstırın .
Cok nadir durumlarda gcc, donanım problemlerinden dolayı cokebilir. Hata mesajı "xxx exited with signal 15" benzeri birsey olacaktır ve genellikle size gizemli gozukecektir. Eger problemle karsılasırsanız once gcc'yi yeniden kurmayı deneyin. Eger cekirdek sadece dıssal cache kapatıldıgında, hafıza azaltıldıgında vb. durumlarda duzgun derleniyorsa kuskulanmalısınız.

3.7.4 Cekirdegin yeni surumu acılıs yapmıyor
LILO'yu calıstırmadınız veya LILO duzgun ayarlanmamıs. Bir seferinde soruna sebep olan ayar dosyasındaki bir problemdi; "boot=/dev/hda" yerine "boot=/dev/hda1" diyordu (Ilk basta sıkıcı olabilir, ama calısan bir ayar dosyasız olduktan sonra, onu degistirmeniz gerekmez).
{
You did not run LILO, or it is not configured correctly. One thing  that ``got'' me once was a problem in the config file; it said `boot= /dev/hda1' instead of `boot = /dev/hda' (This can be really annoying at first, but once you have a working config file, you shouldn't need  to change it.).
}

3.7.5  LILO'yu calıstırmayı unuttunuz, veya sistem hic acılmıyor
Bu durumda yapacagınız en iyi sey floppy diskten acılıs yapmak ve daha sonra acılıs yapabilen baska bir floppy hazırlamaktır (mesela "make zimage" isinizi gorur). Kok (/) dosyasisteminizin nerede oldugunu ve turunu (ornegin second extended, minix) bilmeniz gerekecek. Asagıdaki ornekte ayrıca /usr/src/linux kaynak agacının hangi dosyasistemi uzerinde oldugunu, dosyasisteminin turunu ve nereye baglandıgını bilmeniz gerekecek.
Izleyen ornekte, root /dev/hda1, ve normalde /usr 'a baglanmıs olan ve /usr/src/linux 'u kapsayan dosyasistemi ise /dev/hda3. Her ikiside second extended dosya sistemi /usr/src/linux/arch/i386/boot '
da yer alan, calısan cekirdek goruntusu ise zImage.
Mantık su; eger calısan bir zImage varsa, bunu yeni floppy icin kullanmak mumkundur. Daha iyi veya kotu calısabilecek (sisteminizin kurulumuna baglı olarak) baska bir alternatife ornekten sonra deginecegiz.
Oncelikle bir boot/root disk ikilisinden veya kurtarma diskiden acılıs yapın ve calısan cekirdek goruntusunun bulundugu dosya sistemini baglayın.
 # mkdir /mnt
 # mount -t ext2 /dev/hda3 /mnt
Eger mkdir size dizinin  zaten var oldugunu soylerse buna aldırmayın. Simdi cekirdek goruntusunun bulundugu dizine gecin.
 # /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot
Formatlanmıs bir disk'i "A:" surucusune yerlestirin (boot veya root diskini degil!), cekirdek goruntusunu disk'e aktarın ve kok dosyasisteminize gore ayarlayın:
 # cd /mnt/src/linux/arch/i386/boot
 # dd if=zImage of=/dev/fd0
 # rdev /dev/fd0 /dev/hda1
/ dizinine gecin ve normal /usr dosyasistemini "umount" edin:
 # cd /
 # umount /mnt
Artık sisteminizi bu disketten normal olarak yeniden acabilirsiniz. Yeniden acılıs yaptıktan sonra lilo'yu calıstırmayı (veya yanlıs yaptıgınız neyse onu) aklınızdan cıkarmayın!
Yukarıda bahsedildigi gibi baska bir genel alternatif var. Eger / icinde calısan bir cekirdek goruntunuz (ornegin /vmlinuz) varsa onu boot disk olarak kullanabilirsiniz. Yukarıdaki kosulların oldugunu ve cekirdek goruntusunun /vmlinuz oldugunu varsayarsak, sadece yukarıdaki ornekte su degisiklikleri yapın: /dev/hda3 'u /dev/hda1 (/ dosyasistemi) ile, /mnt/src/linux 'u /mnt ile, ve if=/zImage 'i de if=/vmlinuz ile degistirin. /mnt/src/linux 'un cıkarımıyla ilgili not gozardı edilebilir.
LILO'yu buyuk suruculerle (1024 silindirden fazla) kullanmak sorunlara yol acabilir. Bu konuda yardım icin bkz. LILO mini-NASIL.

3.7.6  `warning: bdflush not running'
Bu vahim bir durum olabilir. 1.0 'dan sonraki cekirdek surumlerinde (20 Nisan 1994 civarı) periyodik olarak dosyasistemi bufferlarını bosaltan "update" isimli program guncellestirildi/degistirildi. "bdflush" kaynak kodunu alın (cekirdek kaynak kodunu aldıgınız yerde olmalıdır) ve kurun (bunu yaparken sisteminizi eski cekirdek altında calıstırmak isteyebilirsiniz). Kendisini "update" olarak kuracak ve tekrar acılıstan sonra yeni cekirdek artık sikayet etmeyecektir.

3.7.7  undefinded symbols hakkında birseyler soyluyor ve derlenmiyor
Buyuk ihtimalle bir ELF derleyiciniz (gcc 2.6.3 ve sonrası) ve 1.2.x (veya oncesi) cekirdek kodunuz var. Bunu duzeltmenin olagan yolu su uc satırı arch/i386/Makefile dosyasının basına eklemektir:
  AS=/usr/i486-linuxaout/bin/as
  LD=/usr/i486-linuxaout/bin/ld -m i386linux
  CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include
Bu a.out kutuphaneleri ile 1.2.x cekirdegi derleyecektir.

3.7.8  IDE/ATAPI CD-ROM surucum calısmıyor
Sasırtıcı sekilde cok kisi belki de ters gidebilecek birkac seyden dolayı ATAPI suruculerini calıstıramıyor.
Eger CD-ROM surucunuz belirli bir IDE arabirim uzerindeki tek aygıtsa, jumper ayarları "master" ve "single" olmalıdır.
Creative ses kartlarının uzerinde IDE arabirimi bulunur. Ancak bu bazı ilginc problemlere yol acıyor. Bazı anakartlarda yerlestirilmis bir IDE arabirimi varken, diger bir cogunda iki tane IDE arabirimi bulunur (genelde IRQ15 'de). Bu durumda genel egilim soundblaster arabirimini ucuncu bir IDE kapısı (port) yapmaktır (genelde IRQ11). Ancak bu, ucuncu IDE arabirimini desteklemeyen linux surumleri 1.2.x 'de problemlere yol acar. Bu problemi gidermek icin birkac seceneginiz var.
Eger ikinci bir IDE kapınız varsa ve onu kullanmıyorsanız veya uzerinde iki surucu yoksa, ATAPI surucunuzu ses kartından alarak ikinci arabirime yerlestirin. Daha sonra ses kartı uzerindeki arabirimi iptal edebilirsiniz.
Eger ikinci bir arabiriminiz yoksa, ses kartınız uzerindeki arabirimin (Ama ses kartının ses bolumu degil) jumper ayarlarını IRQ15 ve ikinci arabirim olarak degistirin.
Eger herhangi bir nedenle surucunuz "ucuncu" arabirimde olmadıysa , veya baska problemler varsa, bir 1.3.x cekirdegi (ornegin 1.3.57) alın ve /drivers/block/README.ide dosyasını okuyun. Orada cok daha fazla bilgi bulabilirsiniz.

3.7.9 obsolete routing requests hakkında garip seyler soyluyor
Route programının ve route manipulation yapan diger programların yeni surumlerini alın. /usr/include/linux/route.h dosyası degistirildi.

3.7.10  Firewalling 1.2.0 'da calısmıyor
En az 1.2.1 surumune yukseltme yapın.

3.7.11  "Not a compressed kernel Image file"
/usr/src/linux dizininde yaratılan vmlinux dosyasını boot goruntusu olarak kullanmayın. Dogru dosya [..]/arch/i386/boot/zImage dosyasıdır.

3.7.12  1.3.x 'e yukselttikten sonra konsol problemleri
/etc/termcap dizininde bulunan console termcap girisindeki "dumb" kelimesini "linux" ile degistirin. Ayrıca bir terminfo tanımı da yapmanız gerekebilir.

3.7.13  Cekirdek yukseltmeden sonra derleme yapmıyor
Linux cekirdek kaynak kodunda, /usr/include dizinindeki standart baslık dosyaları (sonu .h ile biten) tarafından kullanılan bir takım baska baslık dosyaları bulunur. tipik olarak su sekilde kulanılırlar
(xyzzy.h , /usr/include/linux dizininde bir dosya olmak uzere):
 # include <linux/xyzzy.h>
Normalde, cekidek kaynak kodunun include/linux dizinine /usr/include isimli bir baglantı vardır. Eger bu link yoksa veya yanlıs bir yer gosteriyorsa, bircok sey derlenmiyecektir. Eger cekirdek kaynak kodunun diskinizde cok fazla yer kapladıgını dusunup onu sildiyseniz, bu problem olabilir. Problem yaratacak baska bir sey ise dosya izinleridir. Eger yetkili kullanıcının, diger kullanıcıların dosyaları gormesine izin vermeyen bir erisim maskesi (umask) varsa, ve cekirdek kaynak kodunu p (dosya modlarını koru) parametresi olmadan actıysanız, o kullanıcılar C derleyicisini kullanamayacaktır. 'chmod' komutu bu durumu duzeltmek icin kullanılır. Ancak include dosyalarını yeniden acmak daha kolay olacaktır. Bunu, baslangıcta tum kaynak kodu acarken kullandıgınız komuta su parametreleri ekleyerek yapabilirsiniz:
 # tar zxvpf linux.x.y.z.tar.gz linux/include
NOT: "make config", /usr/src/linux baglantısını mevcut degilse , yeniden yaratacaktır.

3.8  2.0.x surumune yukseltme hakkında notlar
Cekirdek surumu 2.0.x ile beraber cekirdek kurulumuna birkac degisiklik geldi. Surum 2.0.x'e yukselirken ihtiyacınız olacak bilgiler 2.0.x kaynak agacında bulunan Document/Changes dosyasında bulunmaktadır. Buyuk ihtimalle gcc, libc ve SysVInit gibi birkac anahtar paketi yukseltmeniz ve bazı sistem dosyalarında degisiklikler yapmanız gerekebilir. Dolayısıyla bu dosyayı okuyun.

3.9  MODÜLLER
Yuklenebilir cekirdek modulleri hafıza kullanımını azaltır ve ayar yapmayı kolaylastırır. Bu moduller dosyasistemlerini, ag suruculerini, teyp ve yazıcı suruculerini vb. icerecek sekilde genisliyor.

3.9.1  Modul yardımcılarını (utilities) yukleme
Modul yardımcıları cekirdek kaynak kodunu aldıgınız yerde modules-x.y.z.tar.gz dosyasında bulunabilir. Su an kullandıgınız cekirdek surumune esit veya altında olan en yuksek surumlu patchlevel x.y.z dosyasını alın. Dosyayı "tar zxvf modules-x.y.z.tar.gz" komutuyla acın, yarattıgı dizine gecin (modules-x.y.z), README dosyasını okuyun ve kurulum komutlarını uygulayın (genelde "make install" gibi kolay bir komuttur). Bu adımdan sonra, insmod, rmmod, ksyms, lsmod, genksyms , modprobe, ve depmod programları /sbin dizini icinde kurulmus olmalıdır. Eger istiyorsanız , yardımcı programları insmod icindeki "hw" ornek surucusuyle deneyebilirsiniz. Daha fazla bilgi, alt dizindeki INSTALL dosyasında bulunabilir.
insmod , calısan cekirdege modulleri ekler. Moduller genellikle .o eklentilidir. Yukarıda bahsedilen ornek surucunun ismi drv_hello.o . Dolayısıyla bu surucuyu eklemek icin girilmesi gereken komut, "insmod drv_hello.o". Cekirdegin kullandıgı modulleri gormek icin lsmod programını kullanın. Cıktı suna benzer birsey olacaktır:
      # lsmod
      Module:        #pages:  Used by:
      drv_hello          1
Cıktının anlamı, "drv_hello" isimli modul bir sayfa (4K) hafıza kullanıyor ve baska bir cekirdek modulu ona bagımlı degil demektir. Bu modulu kaldırmak icin "rmmod drv_hello" komutunu kullanın.
Burada dikkat edilmesi gereken husus rmmod programının parametre olarak lsmod'un cıktısı olan modul ismini istemesidir, dosya ismini degil. DIger modul yardımcılarının acıklamaları manual sayfalarında bulunabilir.

3.9.2  Cekirdek ile dagıtılan moduller
Surum 1.2.2'den beri bircok dosyasistemi, bazı SCSI suruculer, bir takım ag suruculeri ve benzeri bircok sey modul olarak yuklenebiliyor. Bunları kullanmak icin, normal cekirdekte bunları ayarlamadıgınıza emin olun (make config sırasında bunlar hakkındaki sorulara 'y' ile cevap vermeyin). Yeni bir cekirdek derleyin ve bununla yeniden acılıs yapın. Daha sonra /usr/src/linux dizinine gecin ve "make modules" komutunu calıstırın. Cekirdek ayarlarında belirtmediginiz tum modulleri derleyecek ve bunlara baglantıları /usr/src/linux/modules dizinine yerlestirecektir. Modulleri dogrudan bu dizinden veya onları x.y.z cekirdek surumu olmak uzere /lib/modules/x.y.z dizinine yerlestirecek "make modules_install" komutunu calıstırarak kullanabilirsiniz.
Moduller ozellikle dosyasistemlerinde yaralı olabilir. Minix veya msdos dosyasistemlerini cok sık kullanmıyor olabilirsiniz. Bu durumda msdos disketini kullanmak icin once "insmod /usr/src/linux/modules/msdos.o" komutunu, isiniz bitince de "rmmod msdos"  komutunu kullanmak normal isleyis sırasında cekirdekte 50K hafıza tasarrufu yapmanızı saglar.
Minix dosyasistemi icin kucuk bir not: "rescue" disklerinde kullanmak icin bunu herzaman dogrudan cekirdek icine ayarlamalısınız. 

3.10 Ipucları
3.10.1 make veya patch komutlarının cıktılarını gorme
Bu iki komutun hata mesajlarını bir dosyaya yonlendirebilirsiniz. Oncelikle hangi kabuk altında calıstıgınızı anlayın.
 # echo $SHELL
Eger sh veya bash kullanıyorsanız,
 # (komut) 2>&1 | tee (cıktı dosyası)
yardımıyla "komut" un cıktısını "cıktı dosyası" na yazabilirsiniz.
Csh veya tcsh ile,
 # (command) |& tee (output file)
3.10.2 Alternatif cekirdek kurmak
Eskisine dokunmadan yeni bir cekirdegi kurmak mumkundur. Diger UNIX benzeri isletim sistemlerinin aksine, LILO bir cekirdegi disk uzerindeki herhangi bir bolumden kurabilir. LILO konfigurasyon dosyasının sonuna
      image = /usr/src/linux/arch/i386/zImage
          label = yeni_cekirdek
gibi iki satır eklenirse, eski cekirdege dokunmadan yeni cekirdegi kullanarak sistem acılabilir. LILO ' ya yeni bir cekirdegi yuklemesini soylemek icin en iyi yol, sistem acılıs esnasında "shift" tusuna basmaktır. Bu sırada ekranda "LILO" yazacak ve siz yeni cekirdegin ismini yazdıktan sonra sistem bunu kullanarak acılacaktır.
Aynı anda birkac cekirdek kaynak kodunu sistemde bulundurmayı dusunuyorsanız, izlenecek en guvenilir yol, her birine /usr/src/linux-x.y.z ismini vermektir (x.y.z halihazırdaki cekirdek surumunu gosterir). Ardından sembolik bir baglantı yardımıyla istediginiz kaynak dizinini secebilirsiniz, ornegin
 # ln -sf linux-1.2.2 /usr/src/linux
komutu, linux-1.2.2 dizinini aktif hale getirir. Artık kaynak dosyalarının bulundugu dizin linux-1.2.2 dizinidir.
3.10.3 Yeni cekirdekler hakkında
Russell Nelson (nelson@crynwr.com) yeni cekirdek surumleri hakkında kısa bilgiler verior. Bu belgelere , ftp://ftp.emlist.com/pub/kchanges veya http://www.crynwr.com/kchanges adreslerinden erisilebilir.


Gorkem Cetin, gorkem@linux.org.tr
Sertan Girgin, sertan@cclub.metu.edu.tr, v1.0, 4.12.1996
Serkan Hamarat, hamarat@efes.net.tr, v2.0, 15.11.1997



Bu dokuman, cekirdegin konfigurasyonu, derlenmesi ve guncellestirilmesi
icin gerekli bilgileri icerir.

1. Giris

Cekirdek-NASIL dokumanı, cekirdek derlerken karsılanan sorunları en aza
indirmek ve kullanıcının ihtiyacını da gozonunde bulundurarak derleme
asamasını en kısa zamanda ve en uygun yoldan gerceklestirmek icin
yazılmıstır. Linux cekirdegini derlemek uzun bir islem gerektirir ve
kullanıcının onune pekcok secenekler sunar.

1.1 Gereksinimler

Linux cekirdek kurulum paketindeki birtakım programlar, makinanızda
GNU tar, find ve xargs komutlarının bulundugunu farzeder. Bu komutlar
neredeyse standartlasmıs olduklarından nadiren sorun cıkartırlar.
Ayrıca bilgisayarınızdaki dosya yapısından da haberdar olmanız gerekir.

Bu dokuman guncellenirken son kararlı surum 2.0.31, gelistirme surumu
2.1.64 idi. Ama hazırlanırken son kararlı cekirdek surumu 2.0.23 oldugu
icin orneklerin bazıları bu surume gore hazırlandı. Cekirdek surekli
degisim ve gelisim icinde oldugundan yeni cekirdeklerdeki bir degisiklik,
dosyada verilen bilgilerin yanlıs olmasına neden olabilir. Bu durumu
gozonunde bulundurunuz.

Karalı cekirdek, test asamalarından gecmis ve herhangi bir sorun cıkarma
ihtimali cok az olan surum demektir.

Her linux cekirdegine bir surum kodu verilir : 1.0.9, 1.3.50 , 2.0.0,
2.1.64 gibi. Her kodun ikinci numarası, cekirdegin gelistirilme asamasında
mı, yoksa kararlı mı oldugu konusunda fikir verir. Bu sayı cift ise,
hataları ayıklanmıs ve onaylanmıs bir cekirdek anlamına gelir. Diger
durumda, sayı eger tek ise cekirdek henuz gelistirilme asamasındadır
ve kararlı olmayabilir.

2. Bazı onemli noktalar

2.1 Nedir bu cekirdek denilen sey ?

Genel anlamda cekirdek, programların ve donanımın arasında bekleyerek
iletisimi saglayan arabirimdir. Calısan tum programların ve sureclerin
hafıza ile olan iliskilerini duzenler. Islemcinin gucunun tum bu
programlar arasında adil bir sekilde dagıtımını uzerine alır. Tum bu
islemleri kullanıcının haberi olmadan, her an durmaksızın yapar. Kısaca
cekirdek, isletim sisteminin bellekte surekli calısan ana parcasıdır.

2.2 Neden cekirdek surumunu yukseltmem gerekiyor ?

Arastırma-gelistirme yapan binlerce kisi, surekli olarak mevcut Linux
programları uzerinde calısırlar. Cekirdek ile ilgili her yeni dusunce,
anında programa gecirilir. Artık daha hızlı calısan aygıt suruculeri,
daha hızlı hafıza yonetimi veya kararlılıgı yuksek bir cekirdek olusmustur.
Hatalar surekli kapandıgından yukseltme islemi kullanıcının lehine olur.

2.3 Yeni cekirdekler benim donanımımı destekler mi ?

Donanım-NASIL dosyasında cekirdegin destekledigi tum donanımlar vardır.
Ayrıca cekirdegin derlenmesi sırasında 'make config' komutunun ardından
destek goren tum donanımın listesi ekrana sırayla gelir. Bu listedeki
bazı aygıt suruculeri ise slackware dagıtımından ayrı, modul olarak
Linux ile ilgili ftp adreslerinden bulunabilir.

2.4 Modul nedir ?

Moduller, derleme sırasında cekirdek uzerine eklenmeyen programcıklardır.
Kullanıcı bunları cekirdekten ayrı derler, istedigi zaman cekirdege
ekleyip cıkartabilir. Bunlar yapılırken makinayı kapatmaya da gerek yoktur.
Cok kullanılan ve populer bazı aygıt suruculeri (PCMCIA suruculeri gibi)
genelde modul olarak derlenirler.

2.5 Sabit diskimde ne kadar bos yere ihtiyacım var ?

Bu, sisteminizde yapacagınız konfigurasyona baglıdır. Ornegin surum 2.0.10
yaklasık 6Mb disk alanı kaplar. Acıldıgı zaman ise toplam kapladıgı alan
24 Mb olur. Derleme asamasından sonra bu rakam 30 Mb'ı gecer. Her eklenen
aygıt surucu destegi sabit diskten bir miktar daha yer alır. Genellikle
yeni cıkan cekirdek kaynak kodu bir onceki surumden daha buyuktur.

2.6 Cekirdegin derlenmesi ne kadar surer ?

Kullandıgınız sisteme gore bu sure degiskenlik gosterir. 16 Mb 486DX4/100
makinasında, 5 dosya sistemi destegi, ag destegi ve ses kartı surucusu ile
yaklasık 20 dakika surer. Aynı konfigurasyonu iceren cekirdegin derlenmesi
ise daha zayıf bir makina olan 8Mb 386DX/40 altında 1.5 saati bulur.
Derlerken gidip cayınızı icin, biraz televizyon seyredin. Makinanız 386
ise bir banyo alıp dısarı cıkın, alısveris yapın. Cok umitsiz bir
durumdaysanız, yapılacak en iyi sey en yakın bilgisayar sirketine
ugrayarak yeni fiyatları sormaktır :-)

3. Ayarlar

3.1 Cekirdegin alınması

Cekirdek kaynak kodu ,ftp://ftp.metu.edu.tr/ adresindeki
/pub/linux/tsx/sources/system dizininden veya tsx-11.mit.edu adresinin
arsivini tutan herhangi bir adresten alınabilir. Bu dizin altındaki linux
surumlerinin bir tanesini (v1.2, v2.0, v2.1 gibi) sectikten sonra
altındaki dosyayı alabilirsiniz. Dosyanın ismi linux-x.y.z.tar.gz
yapısındadır. Buradaki x.y.z sayısı surum sayısını gosterir. y sayısının
tek olması durumunda henuz cekirdegin test asmasında oldugu anlasılabilir.
Bu sayı cift ise sozkonusu cekirdek kararlıdır.

Asagıdaki ornekte ftp.metu.edu.tr adresinden 2.0.20 surumunun alınısı
gosterilmektedir:

$ ftp ftp.metu.edu.tr
Connected to ephesus.cc.metu.edu.tr.
220-
220-Welcome to METU Ftp Site !
220-
220-All logins and transfers are logged with your hostname.
220-If you do not agree with this policy, please cancel now.
220-
220 ephesus FTP server (Version wu-2.4(5) Wed Jan 10 18:06:56 EET 1996) ready.
Name (ftp.metu.edu.tr:gorkem): ftp
331 Guest login ok, send your complete e-mail address as password.
Password:
230-##########################################################################
230-## Welcome to the Middle East Technical University Ftp Archive ##
230-##########################################################################
230-
230-
230-Hello ftp@compclup.ceng.metu.edu.tr !
230-You are the 19. anonymous user.
230-Maximum number of users allowed is 100.
230-Local Time is Tue Nov 5 12:19:41 1996.
230-
230-Mirrored sites are placed under the directory /pub
230-This archive is maintained by ftpload@ftp.metu.edu.tr
230-You can reach this archive via FSP at port 21.
230-
230-You can reach public directories via "cd dirname"
230-command independent of your current location;
230-e.g. "cd linux" instead of "cd /pub/linux"
230-
230 Guest login ok, access restrictions apply.
ftp> cd /pub/linux/tsx/sources/system/
250-Please read the file README
250- it was last modified on Mon Sep 16 11:36:00 1996 - 50 days ago
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 66
-rw-r--r-- 1 ftpload ftp-adm 36981 Sep 16 12:36 CREDITS
drwxr-xr-x 3 ftpload ftp-adm 512 Oct 13 15:59 Historic
-rw-r--r-- 1 ftpload ftp-adm 12056 Sep 16 12:36 README
drwxr-xr-x 2 ftpload ftp-adm 512 Oct 14 11:47 SillySounds
drwxr-xr-x 2 ftpload ftp-adm 512 Oct 13 18:17 testing
drwxr-xr-x 2 ftpload ftp-adm 512 Oct 14 11:47 v1.0
drwxr-xr-x 2 ftpload ftp-adm 2048 Oct 31 21:55 v1.1
drwxr-xr-x 2 ftpload ftp-adm 1024 Jun 25 11:34 v1.2
drwxr-xr-x 2 ftpload ftp-adm 6656 Sep 27 04:24 v1.3
drwxr-xr-x 2 ftpload ftp-adm 1536 Nov 2 00:05 v2.0
drwxr-xr-x 2 ftpload ftp-adm 512 Nov 2 21:33 v2.1
226 Transfer complete.
ftp> cd v2.0
250 CWD command successful.
ftp> bin
200 Type set to I.
ftp> dir linux*
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 141009
-rw-r--r-- 1 ftpload ftp-adm 5859566 Jul 3 11:22 linux-2.0.1.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5940281 Jul 27 06:39 linux-2.0.10.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5952403 Aug 5 03:01 linux-2.0.11.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5954278 Aug 9 12:53 linux-2.0.12.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5981780 Aug 16 06:19 linux-2.0.13.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5984960 Aug 20 11:52 linux-2.0.14.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5986368 Aug 25 06:20 linux-2.0.15.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5990228 Aug 31 14:03 linux-2.0.16.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5991606 Sep 2 06:37 linux-2.0.17.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5993351 Sep 5 10:38 linux-2.0.18.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5997342 Sep 11 10:21 linux-2.0.19.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5861789 Jul 5 12:09 linux-2.0.2.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5997693 Sep 13 08:53 linux-2.0.20.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5999162 Sep 20 09:51 linux-2.0.21.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 6009488 Oct 8 13:02 linux-2.0.22.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 6010694 Oct 18 08:20 linux-2.0.23.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5931967 Jul 6 07:53 linux-2.0.3.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5926911 Jul 8 08:48 linux-2.0.4.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5927899 Jul 10 08:23 linux-2.0.5.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5929807 Jul 12 07:22 linux-2.0.6.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5931378 Jul 15 07:38 linux-2.0.7.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5936467 Jul 20 02:52 linux-2.0.8.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5939510 Jul 26 04:09 linux-2.0.9.tar.gz
-rw-r--r-- 1 ftpload ftp-adm 5843677 Jun 9 23:36 linux-2.0.tar.gz
226 Transfer complete.
ftp> get linux-2.0.20.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.0.20.tar.gz (5997693 bytes).
226 Transfer complete.
5997693 bytes received in 136 secs (43 Kbytes/sec)
ftp> quit
221 Goodbye.



3.2 Arsivi nasıl acarım ?

Sisteme root olarak giris yapın ve /usr/src dizinine gecin.
Linux'un kurulması asamasında cekirdekleri de kurmus iseniz bu dizinde
'linux' isminde ve eski cekirdegin kaynak kodlarını kapsayan bir alt
dizin goreceksiniz. Genellikle her kullanıcının yaptıgı, bu dizinin ismini
o an calısan cekirdegin surumune gore degistirmektir. Kurulu cekirdegin
surumunu bulmak icin 'uname -r' komutunu kullanabilirsiniz.

$ uname -r
2.0.23

Bu komuttan cekirdegin 2.0.23 surumu oldugunu anlayabiliriz. Cekirdek
kaynak kodlarının bulundugu dizinin ismine de , ornegin linux-2.0.23
verilebilir.

# mv linux linux-2.0.23

Cekirdek kodunu iceren paketi acmadan once /usr/src dizinine kopyalayın,
ve acmadan once bu dizinde 'linux' isimli bir dizinin olmadıgına emin
olun. Simdi /usr/src icinde iken (tum kaynak kodunun bu dizinde oldugunu
farzederek) arsivlenmis kodu 'tar' komutu yardımıyla acalım.

# tar -zxf linux-x.y.z.tar.gz

Komutun isletimi bitince 'linux' dizini olusur. Ilk defa derleme islemi
yapacaksanız asagıdaki komutları sırasıyla yazın.

# cd /usr/include
# rm -rf asm linux scsi
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi
# cd /usr/src/linux
# make mrproper

3.3 Cekirdek konfigurasyonu

/usr/src/linux dizini altında iken 'make menuconfig' yazın. Bu komut,
bir konfigurasyon dosyası yaratmak amacıyla donanımınıza gore secimler
yapmanıza olanak saglar.

Bazı eski surum cekirdekler 'make menuconfig' desteklemeyebilir. Bu durumda
'make config' kullanmanız gerekir.

Karsınıza cıkan secenekleri 'y' (evet) veya 'n' (hayır) ile
ayarlayabilirsiniz. Bazı aygıt suruculerde 'm' secenegi de olabilir. Bunun
anlamı, sistem o programı 'modul' olarak derleyecek ve cekirdege dahil
etmeyecek demektir. Kullanıcı derleme asamasından sonra istedigi zaman bu
modulu cekirdege dahil edebilir.

Bir secenek hakkında, o secenegin uzerindeyken '?' tusuna basarak daha
ayrıntılı bilgi alabilirsiniz.


3.3.0 Kod gelistirme duzeyi secenekleri (Code maturity level options)

Eger bir Linux gelistiricisi veya 'kernel hacker' degilseniz, bos gecin.


3.3.1 Modul yukleme destegi (Enable Loadable Module support)

Cekirdegin, daha sonra modul olarak sececeginiz secenekleri (suruculeri vb.)
makina calısırken cekirdege ekleme-cıkarma ozelligi kazanmasını istiyorsanız,
bu bolumdeki secenekleri ayarlamalısınız.


3.3.2 Genel ayarlar (General setup)

3.3.2.1 Matematik islemci emulasyonu (Kernel math emulation)

Kullandıgınız makinanın islemcisi yardımcı matematik islemcisine sahip
degilse (486SX, 386SX veya daha dusuk) bu secenege evet cevabını
vermelisiniz. Matematik islemcisi olan bir makinada evet cevabını
verilmesi durumunda yardımcı islemci kullanılır ve emulator hesaba
katılmaz ama nasıl olursa olsun, cekirdegi gereksiz programlar ve
modullerle sisirmemelidir.


3.3.2.2 Ag destegi (Networking support)

Makinanız herhangi bir ag uzerinde ise (Internet gibi), veya Internet'e
baglanmak icin SLIP, PPP, term gibi programları kullanmak istiyorsanız bu
bolume 'y' cevabı vermelisiniz. Fakat, ag uzerinde olmasanız bile her
gecen gun yeni yeni uygulama programlarının ve paketlerin ag destegine
ihtiyacı oldugunu dusunursek (X Window gibi) bu bolume 'y' cevabı vermeniz
sart gorunuyor.


3.3.2.3 PCI BIOS destegi

PCI bios support - PCI desteginiz varsa, bunu secebilirsiniz. Dikkat
etmeniz gereken bir husus var. Bazı eski PCI anakartları bu secenekle
kullanıldıkları zaman sistemi kilitleyebilirler.
Yeni cekirdeklerde PCI BIOS kullanmak istemeyen veya ihtiyac duymayanlar
(Linux'un PCI BIOS kullanamadıgı hatasını alanlar) icin dogrudan PCI
erisimi secenegi de sunulmustur. Bazı cipsetlerle calısmayabilir ama
genelde sorun cıkarmaz. Hem BIOS'tan hem dogrudan PCI erisimi secenekleri
isaretlendigi zaman, cekirdek, BIOS kullanmayı tercih edecektir.


3.3.2.4 MCA destegi

Bazı IMB PS/2 makinalarda oldugu gibi anakartınızda MicroChannel
Architecture varsa 'y' deyin. Bu ozellik az sayıda makinada oldugundan
genelde 'n' denir.


3.3.2.5 System V IPC (System V IPC)

IPC (Interprocess Communication - Sureclerarası Iletisim) 'nin en iyi
tanımı Perl kitaplarında bulunabilir. Bazı Perl programları ve oyunlar
(DOOM gibi) bu secenek olmadan calısamazlar. Bu durumda ne yaptıgınızı
iyi bilmiyorsanız bu secenege 'n' - hayır cevabı vermeyin.


3.3.2.6 Kernel support for a.out binaries
Kernel support for ELF binaries
Kernel support for MISC binaries (2.1.x ve ustu)

Calıstırılabilir dosyalar cesitlidir. En cok a.out ve ELF formatı
kullanılır. Her iki cins ikililer de kullanımda oldugundan bu seceneklere
'y' deyin. Son surumlerde diger ikili bicimlerinin destegi de verilmeye
calısılmıstır. Java, Phyton ve Emacs-Lisp gibi yorumlayıcı dilleri cok
kullanıyorsanız, bu secenegi ozellikle isteyebilirsiniz. Bu secenegi
secerseniz, Java ikilileri (Kernel support for Java binaries) ve
Linux/Intel ELF ikilileri (Kernel support for Linux/Intel ELF binaries)
icin cekirdek destegi secmenize gerek kalmaz.
Ayrıntılı bilgi icin Documentation/binfmt_misc.txt okuyun.


3.3.2.7 Islemci tipi (386, 486, Pentium, PPro)

Burada, makinanızın merkezi islem biriminiz ne ise onu secin.


3.3.2.8 Goruntu mod secim destegi (Video mode selection support)

Makinanız metin modunda yuksek cozunurlukleri destekler durumdaysa ve
bu ozelliginden yararlanmak isterseniz buraya 'y' deyin. Ama bununla
beraber baska bir kac ayar daha yapmanız gerekecektir. Ayrıntılı bilgi
icin ilgili Linux dokumanlarına basvurun.

3.3.2.9 Paralel port destegi

Yazıcınız paralel portu kullanıyorsa, zip-drive aletiniz varsa veya
PLIP link yapıyorsanız bunu secin. Ayrıntılı bilgi edinmek isterseniz
Documentation/parport.txt dosyasına gozatın.

3.3.3 Plug'n'Play destegi

PnP destegi (Tak ve calıstır) istiyorsanız, bu bolumdeki secenekleri
inceleyin ve gereken secimleri yapın.


3.3.4 Floppy, IDE ve diger blok tanımlı donanımlar

Bu kısımda makinanızda bulunan donanımdan haberdar olmanız gerekir.
Yanlıs secimler sonucu derleyeceginiz cekirdek bazı donanım parcaları
ile sorun cıkarabilir. Ya da gereksiz yuklentilerle sisebilir.
Donanımınızı ve tiplerini ogrenin. Disk, CDROM, ve anakartın cip setini
isaretleyin. Ek blok tanımlı donanımlar kısmında ise (Additional Block
Devices) bilgisi saglam Linux kullanıcılarına yonelik secimler oldugundan
emin degilseniz bunları bos gecin.


3.3.4.1 Normal floppy disk destegi (Normal floppy disk support)

/drivers/block/README.fd dosyasını okumak isteyebilirsiniz. Ozellikle
IBM Thinkpad kullanıcıları icin bu onemlidir.


3.3.4.2 Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

Hemen herkesin kullandıgı PC sabit disklerinin standart olması sebebiyle
bu secenege 'y' cevabı verilebilir. Daha ileride SCSI sabit disk ve cdrom
destegi secenekleri de gorulebilir.


3.3.4.3

'old disks-only' ve 'new IDE' suruculeri secenekleri arasındaki fark,
ilkinde tek arabirim uzerinden iki adet diski desteklemesi, digerinde
ise ikinci arabirim ile birlikte IDE/ATAPI cdrom'ları desteklemesidir.
Yeni teknolojili surucu, ilkinden daha fazla yer kaplar (4 Mb fazla).


3.3.5 Ag secenekleri (Networking options)

NET-2-NASIL dosyasında bu konuda detaylı bilgi bulabilirsiniz.


3.3.6 SCSI destegi (SCSI Support)

SCSI aygıtlarınız var ise bu secenek icin 'evet' deyin. Daha sonra da
karsınıza gelecek SCSI aygıtlar arasından size uygun olanları alın.
Daha genis bilgi icin SCSI-NASIL belgesi size yol gosterecektir.


3.3.7 Ag kartı destegi (Network Device Support)

Aga baglanmak icin bir kart kullanacaksanız, veya SLIP, PPP baglantıları,
ya da paralel port uzerinden yapacagınız her turlu islem icin bu secenegi
isaretleyin. Ardından ekrana gelen kart tiplerinden ve protokollerden
uygun olanları secin.


3.3.8 ISDN destegi

ISDN (Integrated Services Digital Networks) destegini veren bir telefon
santraline baglıysanız, servis saglayıcınız destekliyorsa ve sizde de
uygun donanım varsa bunu kullanabilirsiniz.


3.3.9 CDROM suruculeri (SCSI ve IDE/ATAPI olmayan suruculer)

SCSI veya IDE/ATAPI olmayan bir CDROM'unuz varsa buraya girip size uygun
olan secenekleri bulun.


3.3.10 Dosya sistemleri (Filesystems)

Burada, asagıdaki dosya sistemlerinden kullanmak istediklerinizi
secebilirsiniz.
* minix : Yeni dagıtımlar , artık tarih olmaya baslayan bu dosya
sistemini desteklemiyor. Kurtarma disketleri yaratmak icin artık,
daha yaygın fakat daha az kararlı olan ext2 dosya sistemi tercih
edilir.
* Genisletilmis dosya sistemi - Extended file system (ext) : Bu da artık
kullanımı olmayan bir dosya sistemi. Destegini ekleyip eklememek size
kalmıs.
* Genisletilmis dosya sistemi-2 - Second extended file system (ext2) :
Linux'un kullandıgı en onemli dosya sistemi. Alınması gerekir.
* xiafs : Artık kullanılmıyor.
* msdos : Sabit diskinizde DOS bolumu varsa, ya da DOS disketi kullanmak
istiyorsanız secin.
* umsdos : MS-DOS dosya sistemine bazı yenilikler (uzun dosya isimleri
gibi) getirilerek olusturulan bir teknoloji. MS-DOS destegi
almadıysanız buna da gerek yok.
* /proc : Bu aslında gercek bir dosya sistemi degil, cekirdek ve
surecler arasında arabirim gorevi yapan bir yapıdır. Pek cok program
bu dosya sistemini kullanır (ps, free gibi). 'y' cevabını
vermeniz gerekir.
* NFS : Linux makinanız bir ag uzerinde kurulu iken ag uzerindeki
diger makinaların dosya sistemlerini kullanabilmenizi saglar.
* ISO9660 : CD-ROM surucunuzu Linux altında kullanabilmek 'y' cevabı
verin.
* OS/2 HPFS : Linux -henuz- OS/2 dosya sistemlerine yazamıyor. Bu
destegi almak icin 'y' cevabı verin.
* System V : Bir UN*X surumu olan System V makinalarının dosya
sistemleri uzerinde calısabilmeyi saglar.


3.3.10.1 Hangi dosya sistemlerine ihtiyacım olacagını nasıl anlarım ?

"Mount" komutu yardımıyla, o an sisteminizde kullanılan dosya sistemleri
ve sabit disk bolumlendirmeleri hakkında bilgi sahibi olusunuz :

# mount
/dev/hda2 on / type ext2 (defaults,rw)
/dev/hda4 on /home type ext2 (defaults)
/dev/hda3 on /dos type msdos (defaults)
none on /proc type proc (defaults)
/dev/fd0 on /mnt type msdos (defaults)

Her satırdaki "type" sozcugunun yanındaki kelime, karsılık gelen sabit
disk parcasındaki dosya sistemini gosterir. Bilgisayar Toplulugu
makinasında bulunan sabit diski uzerindeki / ve /home dizini 'ext2',
/proc dizini 'proc' ve /dos dizini ise 'msdos' dosya sistemidir.
Bunların dısında /mnt dizini altına bir disket surucu baglanmıs
gorunmektedir.

Kullandıgınız cekirdegin destekledigi dosya sistemlerini gormek icin su
komutu kullanabilirsiniz:

$ cat /proc/filesystems
ext2
minix
msdos
vfat
nodev proc
nodev nfs
nodev smbfs
nodev ncpfs



3.3.11 Native Language Support

nls secenegi, FAT ve ISO9660 dosyasistemleri aktif hale getirilmisse
kullanılabilir. Buna Joliet standardı destegi de denebilir. Joliet,
Microsoft'un Unicode destekli CDROM eklentisidir. Degisik karakter
setlerinin donusumu icin kullanılır.


3.3.12 Karakter aygıtları (Character devices)

Bu bolumde yazıcı, fare ve bazı teyp yedekleme suruculeri gibi karakter
aygıtları icin suruculeri ekleyebilirsiniz.


3.3.13 Ses kartı

Linux, genis bir yelpazede ses kartlarını da destekliyor. Linux'un ses
kapasitesini duyabilmek icin bu destegi ekleyin. Daha fazla bilgi
Ses-NASIL belgesi altında bulunabilir.

NOT : Yukarıda tum konfigurasyon secenekleri isaretlenmemistir, zira
surekli gelisme ve degisiklikler gosterirler.


3.3.14 Cekirdek islemleri (Kernel Hacking)

Cekirdekten dogan hataların bulunmasını kolaylastıran bu secenek,
programcılara yonelik. Fakat cekirdegin kararlılıgını azaltabilir. Secim
size kalmıs.


Tum bu islemlerin ardından 'make menuconfig' komutunun gorevi bitmis olur.
Exit secip, ayarlarınızı kaydedip cıkabilirsiniz.

Makefile dosyasına bir goz atın, degistirmeyi dusundugunuz bolumler varsa
uzerinde dusunun.


3.3.15 Load an Alternate Configuration
Eger isterseniz, daha onceden elinizde olan bir ayar dosyasını kullanmanıza
olanak saglar. Bu durumda yukarıdaki ayarların hic birini yapmanıza gerek
kalmıyor.

3.3.16 Save Configuration to an Alternate File
Yukarıdaki ayarların hepsini yapıp degisik bir isimde saklamanızı saglar.



4. Cekirdegin derlenmesi


4.1 Temizlik

Fazla dosyaları temizlemek, gerekli olan dosyaların da yerinde olup
olmadıgını kontrol etmek icin , sırasıyla

# make dep
# make clean

yazın. Ardından tum nesne dosyaları ve eski surumden kalan dosyalar
silinecektir. Bu adımı es gecmeyin.


4.2 Cekirdegin derlenmesi

Temizlik isleminden sonra,

# make zImage

veya

# make zdisk

yazın. Ilk secenekte cekirdek derlenip arch/i386/boot dizini altına
'zImage' adı altında atılacaktır. Atılmadan once yerden kazanmak icin
sıkıstırılır. Diger durumda ise yeni cekirdek sabit disk yerine A: disket
surucusune yazılır. Disket uzerine yazmanın bir avantajı, kararlı olmayan
ve sistemi acmayan cekirdek ile karsılasılması halinde, sistemi sabit disk
uzerindeki eski cekirdekten acabilme imkanı bırakmasıdır. Cekirdegin
sabit diskten yanlıslıkla silinmesi durumunda disketten kopyalama sansı da
verir.

'make oldconfig' komutu , onceden derlenmis cekirdegin konfigurasyon
dosyasını okur ve derlemeyi bu dosyayı baz alarak yapar. Eski bir
cekirdeginiz ve bunun karsılıgı olan konfigurasyon dosyanız yoksa,
sozkonusu komutu kullanmayın.


4.3 Cekirdegin kurulması

LILO (Linux Loader - Linux Yukleyici), bilgisayarın acılısı sırasında
cekirdek ile ilgili duzenlemeleri okur, buna gore hangi cekirdekten acması
gerektigini anlar. Konfigurasyon dosyası biraz karmasık olmasına ragmen
kullanım asamasında buyuk yararlar saglar. /etc/lilo.conf dosyasının
icinde gerekli olan kurulum bilgileri vardır. Bu dosyanın bir bolum
asagıda goruluyor.

image = /vmlinuz
label = Linux
root = /dev/hda1
...

'image =' ibaresi kurulu olan cekirdege isaret eder. Cogu kullanıcı bu
kısma 'vmlinuz' yazar. 'label =' bolumunde hangi isletim sistemi veya
cekirdek surumunun acılısta kullanılacagı yazılır. Hemen altındaki 'root'
bolumunde ise 'label =' kısmında secilen isletim sisteminin hiyerarsik
yapıda en ust dizin yapısı yazılır. Eski cekirdegin bir yedegini alın ve
yeni derlediginiz cekirdegi 'image =' satırında belirtilen sekilde
kopyalayın.

# cp zImage /vmlinuz
veya
# cp /usr/src/linux/arch/i386/boot/zImage /vmlinuz

Simdi LILO programını calıstırın. Komut satırında 'lilo' yazmak
yeterlidir.

# lilo
Added linux *
Added dos

LILO ve konfigurasyonu hakkında , asagıdaki adresten daha fazla bilgi
alınabilir.

ftp.metu.edu.tr:/pub/linux/sunsite/docs/howto/mini/LILO

Yeni bir cekirdegi derledikten sonra LILO uzerinden ekleme yapmak ve
acılıs anında kullanmak icin /etc/lilo.conf dosyasındaki

image = /vmlinuz
label = Linux
root = /dev/hda1
...

satırlarının kopyasını cıkarın, 'image' , 'label' ve 'root' yerine
sırasıyla yeni derlenen cekirdegin sabit disk uzerindeki yerini, ismini ve
linux isletim sisteminizin kok dizinini yazın. Bunlara ek olarak, acılıs
anında bekleme saglamak ve secim yapabilmek icin konfigurasyon dosyasının
basına 'delay = xxx' ekleyebilirsiniz. xxx sayısı, gecikme zamanını
saniyenin onda biri olarak verilir. Bu sayede acılıs anında 'shift' tusuna
basılarak istenen cekirdegin ismi (label = satırında yazılan isim) secilir
ve calıstırılır.



5. Cekirdegin yamanması (patch)


5.1 Yama uygulanması

Cekirdegin her yeni surumuyle birlikte bir onceki surumunun yaması da
gelir. Yamayı uygulamak, tum cekirdegin tekrar derlenmesinden daha
kolaydır. Ornek olarak, elinizde 2.0.10 cekirdegi var ve ftp adresinde
2.0.11 surumu cıkmıs. Halihazırdaki cekirdegi 2.0.11 surumune yukseltelim:

Yamayı once /usr/src dizinine kopyalayın. Bu dizin altında iken

# zcat patch-2.0.11.gz | patch -p0 , veya
# patch -p0 < patch-2.0.11 (eger sıkıstırılmıs degilse)

yazın. Bu komutun ardından satırlar ekrandan kaymaya baslayacak ve yama
islemi tamamlanacaktır. Satırlar bazen o kadar hızlı kayar ki neler
yazdıgını bile goremeyebilirsiniz. Yamanın basarılı bir sekilde
tamamlandıgından emin olmak amacıyla, /usr/src/linux dizini altında .rej
uzantılı dosyalara bakın.

# find . -name '*.rej' -print

Komut, .rej uzantılı dosyalar bulunursa yama islemi tamamlanamamıs
demektir. Eger yama islemi tamamlanırsa, sırasıyla

# make clean
# make config
# make dep

komutlarını yazın. Bu komutlarla ilgili detaylı bilgi 4. konunun basında
anlatılmıstır.

'patch' komutunun alabildigi bazı secenekler vardır. 'patch -s' komutu
olusabilecek tum hata mesajlarını ekrana yazar. Diger yama secenekleri
'man patch' yazarak gorulebilir.

Yama uygulanan bir cekirdegi eski haline getirmek icin 'patch -R' komutunu
kullanın.

Birkac yamanın ardından, .orig uzantılı dosyalar etrafta dolasmaya baslar.
Bu dosyalar gereksizdir, buyuk yer kapladıkları icin ise silinmeleri
gerekir. Asagıdaki komut yardımıyla /usr/src/linux dizini altında .orig
uzantılı dosyaları silebilirsiniz.

find . -name '*.orig' -exec rm -f {} ';'


5.2 Diger yamalar

Standart olmayan ve Slackware ile dagıtılmayan bazı yamaların standart
yamalarla cakısması olasılıgı buyuktur. Eger programınız calısmazsa kaynak
programın uzerinde oynamanız gerekebilir. Bu nedenle yamanın calıstıgından
emin olun. Daha once yama uzerinde deneyimi olan birisinden yardım isteyin
veya cekirdeginizi yedekleyin.


6. Diger paketler

Cekirdegin, kaynak kodunda ayrıntılı olarak acıklanmayan, buna ragmen
onemli oldugunu dusundugum bazı onemli ozellikler burada acıklanmıstır.


6.1. Klavye (kbd)

Linux konsolunun ozelligi sonucu, font degisikligi, klavye tuslarının
yeniden tanımlanması, video ekran modunun degistirilmesi gibi bazı
ozellikler bu isletim sistemi altında kolayca yapılabilmektedir. Hemen
her dil icin font ve klavye tusları tanımı destegi bulunmaktadır.


6.2 Linux yardımcı programları (util-linux)

Rik Faith (faith@cs.unc.edu) , Linux yardımcı programlarından olusan buyuk
bir paketi Internet uzerine koydu. Halen Nicolai Langfeldt
(util-linux@math.uio.no) tarafından duzenlenen ve guncellenen bu paketin
icinde setterm, rdev ve ctrlaltdel gibi, cekirdek ile ilgili programlar
bulunuyor. Fakat paketin once dusunulup sonra kurulması gerekiyor.
Kullanıcı bazan sonradan ciddi problemlere yol acabilecek sorunlarla
karsı karsıya gelebiliyor. Bu paketi kurmadan once iki kez dusunun.


6.3 Sabit disk secenekleri (hdparm)

Diger paketlere benzer sekilde bu paket de onceden cekirdek yaması
yapısındaydı. Ardından standart cekirdegin icine alınarak her surumde
dagıtılmaya baslandı. Fakat hemen ardından, sabit diskin optimizasyonu
icin kullanılan programlar ayrı olarak dagıtılmaya baslandı.


6.4 Standart fare - gpm (general purpose mouse)

Bu program gorsel ekranda (virtual console) fare ile harf-kelime-satır
kesip yapıstırmanızı saglayan programı surer.



7. Bazı tuzaklar


7.1 make clean

Eger rutin bir cekirdek guncellemesinden sonra yeni cekirdeginiz gercekten
garip seyler yapıyorsa, buyuk ihtimalle yeni cekirdeginizi derlemeden
once "make clean" komutunu kullanmayı unutmussunuzdur. Belirtiler
sisteminizin sık sık cokmesinden garip Giris/Cıkıs hatalarına veya dusuk
performansa kadar hersey olabilir. "make dep" komutunu calıstırdıgınızdan
emin olun.


7.2 Buyuk veya yavas cekirdekler

Eger cekirdeginiz cok fazla bellek harcıyorsa, cok buyukse, ve/veya yeni
786DX6/440 makinanızda bile derlenmesi sonsuza kadar suruyorsa, buyuk
ihtimalle ayarlanmıs bir cok gereksiz parca (aygıt suruculeri, dosya
sistemleri, vb.) vardır. Eger bu parcaları kullanmıyorsanız, onları
ayarlamayın, cunku hafıza harcayacaktır. Buyuk cekirdeklerin en belirgin
ozelligi surekli hafızadan diske ve diskten hafızaya takas yapmalarıdır;
eger diskiniz cok fazla ses yapıyorsa ve kapandıgında bir jetin inisine
benzer ses cıkaran eski Fujitsu Eagle'lardan degilse, cekirdek
ayarlarınızı gozden gecirin.

Cekirdeginizin ne kadar hafıza kullandıgını makinanızın toplam
hafızasından /proc/meminfo dosyasındaki "total mem" degerini cıkararak
veya "free" komutunun cıktısından ogrenebilirsiniz. Ayrıca "dmesg"
komutunu kullanarak (veya cekidek log dosyasına bakarak) da bu degere
ulasabilirsiniz.

Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k
data)

seklinde bir satır goreceksiniz. Benim 386'ım (daha az ozellikle
ayarlanmıs) sunu soyluyor.

Memory: 7000k/8192k available (496k kernel code, 384k reserved, 312k data)


7.3 Cekirdek derlenmiyor

Eger cekirdek derlenmiyorsa, yama basarısız olmus veya kaynak kod bir
sekilde bozulmus olabilir. Derleyicinizin surumu dogru olmayabilir veya
bozulmus da olabilir (ornegin, "include" dosyaları hatalıdır). README
dosyasında anlatılan sembolik baglantılar ın dogru kurulduguna emin olun.
Genelde, eger standart bir cekidek derlenmiyorsa, sistemle ilgili ciddi
bir sorun vardır ve bazı uygulamaların (tools) yeniden yuklenmesi gerekli
olabilir.

Belkide bir 1.2.x cekirdegini ELF derleyiciyle (gcc 2.6.3 veya ustu)
derliyorsunuzdur. Eger derleme sırasında bir suru "... undefined" mesajı
alıyorsanız, sizin probleminiz bu olabilir. Bircok durumda bunu duzeltmek
cok kolaydır. Su satırları arch/i386/ Makefile dosyasının basına ekleyin:

AS=/usr/i486-linuxaout/bin/as
LD=/usr/i486-linuxaout/bin/ld -m i386linux
CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include

Daha sonra yeniden "make dep" ve "make zImage" komutlarını calıstırın.

Cok nadir durumlarda gcc, donanım problemlerinden dolayı cokebilir. Hata
mesajı "xxx exited with signal 15" benzeri birsey olacaktır ve genellikle
size gizemli gozukecektir. Eger problemle karsılasırsanız once gcc'yi yeniden
kurmayı deneyin. Eger cekirdek sadece dıssal cache kapatıldıgında, hafıza
azaltıldıgında vb. durumlarda duzgun derleniyorsa kuskulanmalısınız.


7.4 Cekirdegin yeni surumu acılıs yapmıyor

LILO'yu calıstırmadınız veya LILO duzgun ayarlanmamıs. Bir seferinde
soruna sebep olan ayar dosyasındaki bir problemdi; "boot=/dev/hda"
yerine "boot=/dev/hda1" diyordu (Ilk basta sıkıcı olabilir, ama
calısan bir ayar dosyasız olduktan sonra, onu degistirmeniz gerekmez).

{
You did not run LILO, or it is not configured correctly. One thing
that ``got'' me once was a problem in the config file; it said `boot=
/dev/hda1' instead of `boot = /dev/hda' (This can be really annoying
at first, but once you have a working config file, you shouldn't need
to change it.).
}


7.5 LILO'yu calıstırmayı unuttunuz, veya sistem hic acılmıyor

Bu durumda yapacagınız en iyi sey floppy diskten acılıs yapmak ve daha
sonra acılıs yapabilen baska bir floppy hazırlamaktır (mesela "make
zimage" isinizi gorur). Kok (/) dosyasisteminizin nerede oldugunu ve
turunu (ornegin second extended, minix) bilmeniz gerekecek. Asagıdaki
ornekte ayrıca /usr/src/linux kaynak agacının hangi dosyasistemi uzerinde
oldugunu, dosyasisteminin turunu ve nereye baglandıgını bilmeniz gerekecek.

Izleyen ornekte, root /dev/hda1, ve normalde /usr 'a baglanmıs olan ve
/usr/src/linux 'u kapsayan dosyasistemi ise /dev/hda3. Her ikiside second
extended dosyasistemi. /usr/src/linux/arch/i386/boot'da yer alan, calısan
cekirdek goruntusu ise zImage.

Mantık su; eger calısan bir zImage varsa, bunu yeni floppy icin kullanmak
mumkundur. Daha iyi veya kotu calısabilecek (sisteminizin kurulumuna baglı
olarak) baska bir alternatife ornekten sonra deginecegiz.

Oncelikle bir boot/root disk ikilisinden veya kurtarma diskiden acılıs
yapın ve calısan cekirdek goruntusunun bulundugu dosya sistemini baglayın.

# mkdir /mnt
# mount -t ext2 /dev/hda3 /mnt

Eger mkdir size dizinin zaten var oldugunu soylerse buna aldırmayın.
Simdi cekirdek goruntusunun bulundugu dizine gecin.

# /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot

Formatlanmıs bir disk'i "A:" surucusune yerlestirin (boot veya root
diskini degil!), cekirdek goruntusunu disk'e aktarın ve kok
dosyasisteminize gore ayarlayın:

# cd /mnt/src/linux/arch/i386/boot
# dd if=zImage of=/dev/fd0
# rdev /dev/fd0 /dev/hda1

/ dizinine gecin ve normal /usr dosyasistemini "umount" edin:

# cd /
# umount /mnt

Artık sisteminizi bu disketten normal olarak yeniden acabilirsiniz.
Yeniden acılıs yaptıktan sonra lilo'yu calıstırmayı (veya yanlıs
yaptıgınız neyse onu) aklınızdan cıkarmayın!

Yukarıda bahsedildigi gibi baska bir genel alternatif var. Eger / icinde
calısan bir cekirdek goruntunuz (ornegin /vmlinuz) varsa onu boot disk
olarak kullanabilirsiniz. Yukarıdaki kosulların oldugunu ve cekirdek
goruntusunun /vmlinuz oldugunu varsayarsak, sadece yukarıdaki ornekte su
degisiklikleri yapın: /dev/hda3 'u /dev/hda1 (/ dosyasistemi) ile,
/mnt/src/linux 'u /mnt ile, ve if=/zImage 'i de if=/vmlinuz ile
degistirin. /mnt/src/linux 'un cıkarımıyla ilgili not gozardı edilebilir.

LILO'yu buyuk suruculerle (1024 silindirden fazla) kullanmak sorunlara yol
acabilir. Bu konuda yardım icin bkz. LILO mini-NASIL.


7.6 `warning: bdflush not running'

Bu vahim bir durum olabilir. 1.0 'dan sonraki cekirdek surumlerinde (20
Nisan 1994 civarı) periyodik olarak dosyasistemi bufferlarını bosaltan
"update" isimli program guncellestirildi/degistirildi. "bdflush" kaynak
kodunu alın (cekirdek kaynak kodunu aldıgınız yerde olmalıdır) ve kurun
(bunu yaparken sisteminizi eski cekirdek altında calıstırmak isteyebilirsiniz).
Kendisini "update" olarak kuracak ve tekrar acılıstan sonra yeni cekirdek
artık sikayet etmeyecektir.


7.7 undefinded symbols hakkında birseyler soyluyor ve derlenmiyor

Buyuk ihtimalle bir ELF derleyiciniz (gcc 2.6.3 ve sonrası) ve 1.2.x (veya
oncesi) cekirdek kodunuz var. Bunu duzeltmenin olagan yolu su uc satırı
arch/i386/Makefile dosyasının basına eklemektir:

AS=/usr/i486-linuxaout/bin/as
LD=/usr/i486-linuxaout/bin/ld -m i386linux
CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include

Bu a.out kutuphaneleri ile 1.2.x cekirdegi derleyecektir.


7.8 IDE/ATAPI CD-ROM surucum calısmıyor

Sasırtıcı sekilde cok kisi belki de ters gidebilecek birkac seyden dolayı
ATAPI suruculerini calıstıramıyor.

Eger CD-ROM surucunuz belirli bir IDE arabirim uzerindeki tek aygıtsa,
jumper ayarları "master" ve "single" olmalıdır.

Creative ses kartlarının uzerinde IDE arabirimi bulunur. Ancak bu bazı
ilginc problemlere yol acıyor. Bazı anakartlarda yerlestirilmis bir IDE
arabirimi varken, diger bir cogunda iki tane IDE arabirimi bulunur
(genelde IRQ15 'de). Bu durumda genel egilim soundblaster arabirimini
ucuncu bir IDE kapısı (port) yapmaktır (genelde IRQ11). Ancak bu, ucuncu
IDE arabirimini desteklemeyen linux surumleri 1.2.x 'de problemlere yol
acar. Bu problemi gidermek icin birkac seceneginiz var.

Eger ikinci bir IDE kapınız varsa ve onu kullanmıyorsanız veya uzerinde
iki surucu yoksa, ATAPI surucunuzu ses kartından alarak ikinci arabirime
yerlestirin. Daha sonra ses kartı uzerindeki arabirimi iptal
edebilirsiniz.

Eger ikinci bir arabiriminiz yoksa, ses kartınız uzerindeki arabirimin
(Ama ses kartının ses bolumu degil) jumper ayarlarını IRQ15 ve ikinci
arabirim olarak degistirin.

Eger herhangi bir nedenle surucunuz "ucuncu" arabirimde olmadıysa, veya
baska problemler varsa, bir 1.3.x cekirdegi (ornegin 1.3.57) alın ve
/drivers/block/README.ide dosyasını okuyun. Orada cok daha fazla bilgi
bulabilirsiniz.


7.9 obsolete routing requests hakkında garip seyler soyluyor

Route programının ve route manipulation yapan diger programların yeni
surumlerini alın. /usr/include/linux/route.h dosyası degistirildi.


7.10 Firewalling 1.2.0 'da calısmıyor

En az 1.2.1 surumune yukseltme yapın.


7.11 "Not a compressed kernel Image file"

/usr/src/linux dizininde yaratılan vmlinux dosyasını boot goruntusu olarak
kullanmayın. Dogru dosya [..]/arch/i386/boot/zImage dosyasıdır.


7.12 1.3.x 'e yukselttikten sonra konsol problemleri

/etc/termcap dizininde bulunan console termcap girisindeki "dumb"
kelimesini "linux" ile degistirin. Ayrıca bir terminfo tanımı da
yapmanız gerekebilir.


7.13 Cekirdek yukseltmeden sonra derleme yapmıyor

Linux cekirdek kaynak kodunda, /usr/include dizinindeki standart baslık
dosyaları (sonu .h ile biten) tarafından kullanılan bir takım baska baslık
dosyaları bulunur. tipik olarak su sekilde kulanılırlar
(xyzzy.h , /usr/include/linux dizininde bir dosya olmak uzere):

# include <linux/xyzzy.h>

Normalde, cekidek kaynak kodunun include/linux dizinine /usr/include
isimli bir baglantı vardır. Eger bu link yoksa veya yanlıs bir yer
gosteriyorsa, bircok sey derlenmiyecektir. Eger cekirdek kaynak kodunun
diskinizde cok fazla yer kapladıgını dusunup onu sildiyseniz, bu problem
olabilir. Problem yaratacak baska bir sey ise dosya izinleridir. Eger
yetkili kullanıcının, diger kullanıcıların dosyaları gormesine izin
vermeyen bir erisim maskesi (umask) varsa, ve cekirdek kaynak kodunu
p (dosya modlarını koru) parametresi olmadan actıysanız, o kullanıcılar
C derleyicisini kullanamayacaktır. 'chmod' komutu bu durumu duzeltmek
icin kullanılır. Ancak include dosyalarını yeniden acmak daha kolay
olacaktır. Bunu, baslangıcta tum kaynak kodu acarken kullandıgınız
komuta su parametreleri ekleyerek yapabilirsiniz:

# tar zxvpf linux.x.y.z.tar.gz linux/include

NOT: "make config", /usr/src/linux baglantısını mevcut degilse,
yeniden yaratacaktır.


8. 2.0.x surumune yukseltme hakkında notlar

Cekirdek surumu 2.0.x ile beraber cekirdek kurulumuna birkac degisiklik
geldi. Surum 2.0.x'e yukselirken ihtiyacınız olacak bilgiler 2.0.x kaynak
agacında bulunan Document/Changes dosyasında bulunmaktadır. Buyuk
ihtimalle gcc, libc ve SysVInit gibi birkac anahtar paketi yukseltmeniz ve
bazı sistem dosyalarında degisiklikler yapmanız gerekebilir. Dolayısıyla
bu dosyayı okuyun.


9. Moduller

Yuklenebilir cekirdek modulleri hafıza kullanımını azaltır ve ayar yapmayı
kolaylastırır. Bu moduller dosyasistemlerini, ag suruculerini, teyp ve yazıcı
suruculerini vb. icerecek sekilde genisliyor.


9.1 Modul yardımcılarını (utilities) yukleme

Modul yardımcıları cekirdek kaynak kodunu aldıgınız yerde
modules-x.y.z.tar.gz dosyasında bulunabilir. Su an kullandıgınız cekirdek
surumune esit veya altında olan en yuksek surumlu patchlevel x.y.z dosyasını
alın. Dosyayı "tar zxvf modules-x.y.z.tar.gz" komutuyla acın, yarattıgı
dizine gecin (modules-x.y.z), README dosyasını okuyun ve kurulum komutlarını
uygulayın (genelde "make install" gibi kolay bir komuttur). Bu adımdan
sonra, insmod, rmmod, ksyms, lsmod, genksyms, modprobe, ve depmod
programları /sbin dizini icinde kurulmus olmalıdır. Eger istiyorsanız,
yardımcı programları insmod icindeki "hw" ornek surucusuyle
deneyebilirsiniz. Daha fazla bilgi, alt dizindeki INSTALL dosyasında
bulunabilir.

insmod , calısan cekirdege modulleri ekler. Moduller genellikle .o
eklentilidir. Yukarıda bahsedilen ornek surucunun ismi drv_hello.o .
Dolayısıyla bu surucuyu eklemek icin girilmesi gereken komut, "insmod
drv_hello.o". Cekirdegin kullandıgı modulleri gormek icin lsmod programını
kullanın. Cıktı suna benzer birsey olacaktır:

# lsmod
Module: #pages: Used by:
drv_hello 1

Cıktının anlamı, "drv_hello" isimli modul bir sayfa (4K) hafıza
kullanıyor ve baska bir cekirdek modulu ona bagımlı degil demektir.
Bu modulu kaldırmak icin "rmmod drv_hello" komutunu kullanın.
Burada dikkat edilmesi gereken husus rmmod programının parametre
olarak lsmod'un cıktısı olan modul ismini istemesidir, dosya ismini
degil. DIger modul yardımcılarının acıklamaları manual sayfalarında
bulunabilir.


9.2. Cekirdek ile dagıtılan moduller

Surum 1.2.2'den beri bircok dosyasistemi, bazı SCSI suruculer, bir
takım ag suruculeri ve benzeri bircok sey modul olarak yuklenebiliyor.
Bunları kullanmak icin, normal cekirdekte bunları ayarlamadıgınıza
emin olun (make config sırasında bunlar hakkındaki sorulara 'y' ile
cevap vermeyin). Yeni bir cekirdek derleyin ve bununla yeniden acılıs
yapın. Daha sonra /usr/src/linux dizinine gecin ve "make modules"
komutunu calıstırın. Cekirdek ayarlarında belirtmediginiz tum
modulleri derleyecek ve bunlara baglantıları /usr/src/linux/modules
dizinine yerlestirecektir. Modulleri dogrudan bu dizinden veya onları
x.y.z cekirdek surumu olmak uzere /lib/modules/x.y.z dizinine
yerlestirecek "make modules_install" komutunu calıstırarak
kullanabilirsiniz.

Moduller ozellikle dosyasistemlerinde yaralı olabilir. Minix veya msdos
dosyasistemlerini cok sık kullanmıyor olabilirsiniz. Bu durumda msdos
disketini kullanmak icin once "insmod /usr/src/linux/modules/msdos.o"
komutunu, isiniz bitince de "rmmod msdos" komutunu kullanmak normal
isleyis sırasında cekirdekte 50K hafıza tasarrufu yapmanızı saglar.

Minix dosyasistemi icin kucuk bir not: "rescue" disklerinde kullanmak
icin bunu herzaman dogrudan cekirdek icine ayarlamalısınız.



10. Ipucları

10.1 make veya patch komutlarının cıktılarını gorme

Bu iki komutun hata mesajlarını bir dosyaya yonlendirebilirsiniz.
Oncelikle hangi kabuk altında calıstıgınızı anlayın.

# echo $SHELL

Eger sh veya bash kullanıyorsanız,

# (komut) 2>&1 | tee (cıktı dosyası)

yardımıyla "komut" un cıktısını "cıktı dosyası" na yazabilirsiniz.

Csh veya tcsh ile,

# (command) |& tee (output file)

10.2 Alternatif cekirdek kurmak

Eskisine dokunmadan yeni bir cekirdegi kurmak mumkundur. Diger UNIX
benzeri isletim sistemlerinin aksine, LILO bir cekirdegi disk uzerindeki
herhangi bir bolumden kurabilir. LILO konfigurasyon dosyasının sonuna

image = /usr/src/linux/arch/i386/zImage
label = yeni_cekirdek

gibi iki satır eklenirse, eski cekirdege dokunmadan yeni cekirdegi
kullanarak sistem acılabilir. LILO'ya yeni bir cekirdegi yuklemesini
soylemek icin en iyi yol, sistem acılıs esnasında "shift" tusuna basmaktır.
Bu sırada ekranda "LILO" yazacak ve siz yeni cekirdegin ismini yazdıktan
sonra sistem bunu kullanarak acılacaktır.

Aynı anda birkac cekirdek kaynak kodunu sistemde bulundurmayı
dusunuyorsanız, izlenecek en guvenilir yol, her birine
/usr/src/linux-x.y.z ismini vermektir (x.y.z halihazırdaki cekirdek
surumunu gosterir). Ardından sembolik bir baglantı yardımıyla istediginiz
kaynak dizinini secebilirsiniz, ornegin

# ln -sf linux-1.2.2 /usr/src/linux

komutu, linux-1.2.2 dizinini aktif hale getirir. Artık kaynak dosyalarının
bulundugu dizin linux-1.2.2 dizinidir.

10.3 Yeni cekirdekler hakkında

Russell Nelson (nelson@crynwr.com) yeni cekirdek surumleri hakkında kısa
bilgiler verior. Bu belgelere , ftp://ftp.emlist.com/pub/kchanges veya
http://www.crynwr.com/kchanges adreslerinden erisilebilir.


Linux-WindowsNT NASIL
H.ilker TEMiR, i-temir@bi.net.tr,
Surum 1.0 , 4 Aralik 1996

"You hear maniacal laughter..."

HP Vectra bilgisayarimda NT ve Linux'u sorunsuz calistirmak icin karsi
karsiya kaldigim yazilim ve donanim problemleri beni dehsete dusuruyordu.

Hic bir sart altinda bolumleri formatlamak icin NT 3.51 altindaki Disk
Yoneticisi'ni (Disk Administrator) kullanmayin. Size "hic bir zarar
vermeyecegini soyledigi" bir imza yazip yazamayacagini soracaktir. Bana
bunu yaptiginda bolum tablomu, onu ileride anlatacagim 3. ve 7.
basamaklari uygulayincaya kadar askiya almisti. Bu sorunlar yuzunden, bir
FAT NT bolumu ile sinirli kalmistim. Disk Yoneticisi'ni (Disk
Administrator) dogru bir sekilde calistirabilseniz dahi Linux NTFS
dosyasistemine sahip oluncaya kadar Linux ve NT arasinda dosya transferi
yapabilmek icin kucuk de olsa bir FAT bolumune ihtiyaciniz olacaktir.

Ben once Linux'u sonra da NT'yi kurdum, ancak edindigim tecrubelere gore
su anda once NT'yi ardindan da Linux'u kurabilecegimi dusunuyorum.

NOT : Altinci madde yalnizca Debian Linux 1.1, Linux 2.0.0, HP Vectra XU
6/150, Adaptec AIC 7880 Ultra (BIOS1.2S-HP), Quantum Fireball 1080S,
Phoenix uyumlu BIOS GG.06.02. NT 3.51 ile alakalidir. Bu ornekler bir SCSI
disk (/dev/sda) icin yazilmistir; IDE suruculer icin /dev/hda
kullanabilirsiniz.

1. Linux'u kurun. NT bolumleri de (NT bolumunu FAT olarak yapin) dahil
olmak uzere tum disk bolumlemesini Linux altinda yapin. Birden fazla NT
bolumu acma denemelerimin hic birinde basarili olamadim, ayrica NT'yi ilk
bolum olarak tanimladim, ancak bunun gerekli olup olmadigini bilmiyorum.

2. /etc/lilo.conf dosyasini duzenleyin ve boot=/dev/sda (Linux
Yukleyicisini (LILO) Linux bolumune kurmakta basarili olamadim - benim
icin /dev/sda idi) ve Linux Yukleyicisini calistirin ("lilo"). "ae"
editorunu kullanmak zorunda kalacaksiniz. Merak etmeyin olmezsiniz.

3. MBR'yi dd if=/dev/sda of=/dev/fd0 bs=512 count=1 seklinde kayit edin.
Bu is icin disket kullanin, bana guvenin ayrica bunu disk bolumleme
tablosunu (partition table) her degistirdiginizde tekrarlayin.

4. NT, bolum 1'i kurun. islemin ortasinda makineyi acip kapattiginda
bilgisayariniz Linux acacaktir.

5. /etc/lilo/conf dosyasina asagidaki gibi bir NT satiri ekleyin :

other=/dev/sda1
label=NT
table=/dev/sda

ve yine Linux Yukleyecisini calistirin (lilo). Eger linux yukleyecisini
buna itiraz ederse (Mesaji tam olarak hatirlayamiyorum) "linear"
secenegini /etc/lilo.conf dosyasinda "compact" anahtarinin yanina
yerlestirin. Hatta eger bolumleme tablonuz NT tarafindan ise yaramaz hale
getirildi ise, ya "ignore-table" kullanin ya da 7. maddede soylenenleri
uygulayin. Ayrica "fix-table"a bir goz atin. LILO HOWTO size yardimci
olabilir.

6. Makinanizi kapatip acin, Linux Yukleyicisinden NT'yi secin ve NT'nin
kurulumunu tamamlayin. Ag suruculerini yuklemek icin "Boot Disk XU, HP
Vectra AIC 7880 Driver A.01.02" disketine ve Matrox MGA Millennium ekran
suruculerini yuklemek icin "XU/VT Drivers and Documentation" CD'sine
(Yanlis hatirlamiyorsam video/disk4 dizini) ihtiyaciniz olacaktir.

7. Linux'a dondugunuzde, "fdisk"'i calistirin ve Linux bolumleri uzerinde
"partition doesn't end on cylinder boundary" (Bolum silindir sinirlarinda
bitmiyor) mesajlari almadiginizdan emin olun. Bu mesaj NT bolumleri
uzerinde gorulebilir, bu normal bir durumdur.

/dev/sda1 1 1 322 329301 6 DOS 16-bit >=32M
Partition 1 does not end on cylinder boundary:
(Bolum silindir sinirlarinda bitmiyor)
phys=(321, 39, 9) should be (321, 63, 32)

Cfdisk sistemde "ilginclik" oldugunu soyleyebilir, bunu dikkate almayin.

Unusable 0.04*
/dev/sda1 Primary DOS 16-bit >=32Mb 321.59*
Unusable 0.39*

Eger Linux bolumleri uzerinde benzer hata mesajlari aliyorsaniz, cfdisk'i
kullanarak "boot sector" gibi birkac yerde degisiklik yapmaniz
gerekebilir.

Ancak, eger NT bilgisayarinizi cfdisk'i bile (/dev/sda'yi goremedigini
iddia ederek) calistiramayacak bir hale getirdiyse daha once kayit etmis
oldugunuz bolumleme tablosuna (MBR) ihtiyaciniz olacaktir. Bunu asagidaki
sekilde yapabilirsiniz :

dd if=/dev/zero of=/dev/sda bs=512 count=1
dd if=/dev/fd0 of=/dev/sda bs=510 count=1

8. Linux'un kalan kurulumunu tamamlayin, ne kadar kolay degil mi ?

Eger NT'yi tercih ediyorsaniz, linux yukleyicisi yerine bolumleme
tablosunu (MBR) yazabilirsiniz. Bolumleme tablosunu temizlemek icin
asagidaki islemleri uygulayabilirsiniz.

a) dd if=/dev/zero of=/dev/sda bs=446 count=1 (Linux'da) yazin veya SCSI
yardimci programlarini kullanarak sabit diskinizi dusuk duzeyli (low-level
format)formatlayin. IDE bir diski bu sekilde formatlamanin zararli
oldugunu duydum bu yuzden IDE disk kullaniyorsaniz bunu yapmayin.

b) fdisk /mbr (tabii ki herseyden once icerisinde fdisk bulunan bir DOS
disketi hazirlamistiniz) yazin.

c) NT bolumunu silin ve NT kurulum programi ile yeniden olusturun.

d) NT kurulumuna devam edin.

Not : Bu mesaji postaladiktan sonra, birkac kisiden NT'nin disk
yoneticisini (Disk Administrator) kullandiklarini ve NT'yi ve Linux'u ilk
olarak sorunsuz bir sekilde kurduklarini duydum. Umarim siz de bu gruptan
olurunuz ancak, belki bu yazi bu sansli gru bun icinde olmayanlara
yardimci olabilir.

Buraya kadar yazdiklarim Linux paketinde yeralan Linux-NT Nasil'dan
(HOW-TO) cevirdiklerimdi, simdi de NT ile Linux'u beraber kurmak icin
-kendi yaptiklarimdan yola cikarak- yapmaniz gerekenleri maddeler halinde
aciklayayim. Yalniz bu yaptiklarimda OS/2'n in sistem disketini kullandim,
boyle bir alternatifi olmayanlara ancak fikir vermek acisindan faydali
olabilir.

1. Diskim icin OS/2 Warp 3.0'in fdisk programini kullandim, bence ilk is
olarak (elinizde yoksa, bir arkadasinizdan odunc alabilirsiniz ;-)) bir
OS/2 sistem disketi bulun.

2. Bilgisayari acip fdisk'i calistirin, OS/2'nin Acilis Duzenleyicisini
(Boot Manager) kurun, Acilis Duzenleyici 2MB'lik bir yer kaplayacaktir.
Daha sonra, iki adet birincil (primary) bolum olusturun. Bunlardan biri NT
icin digeri de Linux icin olacaginda n buyukluklerini istediginiz gibi
ayarlayabilirsiniz. Burada her iki bolumu de "Add to Boot Manager Menu"
ile - birer isim vererek, Linux, WinNT gibi - Acilis duzenleyicisinin
menusune ekleyin. Ve yaptiklarinizi kayit edip cikin. OS/2'nin fdisk'i ile
isin iz bitti.

3. Bilgisayarinizi actiginizda karsiniza acilis duzenleyicisi cikacaktir.
Burada hicbir bolum formatli olmadigi icin, herhangi biri ile acilis yapma
sansiniz olmayacaktir.

4. Bu yuzden NT'yi kurmadan, once acilis duzenleyicisinden NT bolumunu
secerek Linux bolumunu "hidden" yapin.

5. Daha sonra bir sistem disketi ile acarak NT'nizi kurun. Goreceksiniz ki
sorun cikmayacaktir (En azindan bende cikmadi).

6. Linux'u kurmak icin Linux bolumunu aktif hale getirmenize gerek yok,
ancak linux'u kurmadan fdisk ile "linux native" yapacaginiz bolumu NT'nin
bolumu ile karistirmamaya ozen gosterin ;-)

7. Linux yukleyicinsinin (lilo) ayarlarini yaparken de -mesaji tam
hatirlamiyorum ancak- kendini MBR yerine kendi kullandigi bolumun basina
(boot sector) kurmasini saglayin. Bu sayede linux'un OS/2'nin acilis
yukleyicisini etkisiz hale getirmesini engelle mis olursunuz, ayrica
acilistaki bekleme suresini kaldirmak da (0 yapmak) iyi bir fikir
olabilir, cunku tum islemler OS/2 acilis duzenleyicisi tarafindan
yapilacaktir.

8. Linux'un kurulumunu da tamamladiginizda, eksik kalan hic birsey
olmayacak, acilistaki acilis duzenleyicisi ile istediginiz bolumu acmaniz
mumkun.

Ben bu sistemi -gerek var mi bilmiyorum ama !- RHINO9 ana kartli bir
pentium-100'de 1 GB'lik Seagate disk uzerinde kurdum ve diski uc (Linux,
Windows NT Server 4.0, DOS+OS/2) olmak uzere) bolume ayirdim, ve halen de
sorunsuz olarak kullaniyorum. Ayrica NT 'yi FAT uzerine kurdum, NT dosya
sistemini (NTFS) kullanmadim ancak bu durumda da sorun cikacagini
sanmiyorum.

NOT : Sanirim, tum bunlar OS/2 acilis duzenleyicisi kullanilmadan linux
yukleyicisi (lilo) ile de yapilabilir, ancak denemedigim icin su asamada
birsey soylemem guc.

4.1 GİRİŞ
Bu belge Albert M.C. Tam tarafindan (bertie@scn.org) copyleft edilmistir. Belgenin ticari olmayan amaclarla kullanilmasi , kopyalanmasi , dagitilmasi izni , yazarin/editorun ismi ve bu notun
tum kopyalarin ve/veya destekleyen dokumanlarda bulunmasi sartiyla mumkundur.Bu belge yararli olmasi umuduyla dagitilmaktadir ancak acikca soylenmese ya da ima edilmese dahi HICBIR BICIMDE GARANTISI YOKTUR.Buradaki bilgilerin dogrulugundan emin olunabilmesi icin tum
gucun sarfedilmesine ragmen yazar / editor / bakim sorumlusu hatalar icin ya da bu bilgilerin kullanilmasindan olusacak hatalar icin HICBIR SORUMLULUK kabul etmez.

Bu belge Linux sunucusu uzerinde,kullanici ve gruplara kota koyarak nasil dosya sistemi kotasi olusturulacagini ve ayrica diger kota komutlarinin kullanimini anlatir. 2.x.x surumu cekirdek kullanan kullanicilar icin gecerlidir(Son olarak 2.0.27 cekirdek kullanan RedHat 4.1 uzerinde test edilmistir). Daha eski surum cekirdek kullanan kullanicilar kota avantajlarindan yararlanmak icin cekirdek yenileme yolunu secmelidirler.
Belgeye iliskin hata ve yorum bildirimleri icin yazara bertie@scn.org adresinden, ceviri konusunda yorum ve elestiriler icin ise cevirenlere burak@linux.org.tr ve caglar@linux.org.tr adreslerinden ulasabilirsiniz.

4.2 Kota nedir ?

Kota disk depolama konusunda iki cesit limit belirlemenizi saglar : bir kullanici ya da kullanci grubu icin inode sayisi; ve de bir kullanici yada kullanici grubu icin ayrilabilecek disk blok sayisi.
Kotanin altinda yatan dusunce kullnicilarin sistem uzerinde limitsiz haklarini sinirlayarak disk kullanim limitlerinin altinda kalmalarini saglamaktir.
Kota dosya sistemi tabanli olarak kullanici basina belirlenir. Eger kullanicinin dosya olusturabilecegi birden fazla dosya sistemi varsa kota her dosya sistemi icin ayri ayri belirlenmelidir.
4.3 Linux Üzerinde Şu Anki Kota Durumu 

Bildigim kadariyla cekirdegin 1.3.8x surumlerinden sonra kota destegi eklenmistir. Su anda Linux cekirdeginin 2.0 surumunun bir parcasidir . Eger sisteminiz kota destegi saglamiyorsa cekirdek yenilemesi onerilir.
Su anda kota sadece _ext2_ dosya sistemi icin calisir.
4.4 Linux Uzerinde Kota Kullanmak Icin Gerekenler
4.4.1 Çekirdek
2.x cekirdek kaynak kodu asagidaki adresten temin edilebilir : http://sunsite.unc.edu/pub/Linux/kernel/v2.0 (sunsite sitesinin Bilkent yansisindan da elde edinilebilir)

4.4.2 Kota Yazılımı

Kota yazilimlari, kullandiginiz Linux dagitimina gore sisteminizde yuklenmis veya yuklenmemis olabilir. Eger yuklu yaziliminiz yoksa asagidaki adresten temin edebilirsiniz:
   ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz.
4.5 Linux Üzerinde Kota Kurulumu
1. Cekirdeginizi yeniden yapilandirin.
Cekirdeginizi yeniden yapilandirin ve asagidaki soruya y cevabi vererek kota destegini ekleyin.
     Quota support (CONFIG_QUOTA) [n] y
2.Kota yazilimlarinin derlenmesi ve yuklenmesi
Kota yazilim kaynagi asagidaki adresten temin edilebilir :
   ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
3.Sistemin acilis betiklerini degistirerek, acilis esnasinda kotalarin denetlenmesini ve baslatilmasini saglamalisiniz.
Iste bir ornek :
        # Kotayi konrol et ve baslat.
        if [ -x /usr/sbin/quotacheck ]
        then
                echo "Kotalar kontrol ediliyor. Bu zaman alabilir"
                /usr/sbin/quotacheck -avug
                echo " Tamamlandi."
        fi
        if [ -x /usr/sbin/quotaon ]
        then
                echo "Kotalar baslatiliyor."
                /usr/sbin/quotaon -avug
        fi
Altin kural kotanin _her zaman_ /etc/fstab dosyasindaki dosya sistemleri baglandiktan _sonra_ baslatilmasidir, diger durumlarda kota calismaz. Ben kotanin, sistem baslatma betiginin en sonunda ya da dosya sistemlerinin baglandigi yerin hemen sonrasinda calistirilmasini oneririm.
4./etc/fstab dosyasinin duzenlenmesi
Kotayi aktif hale getirmediginiz bolumlemeler asagidaki gibi gorunecektir:
 
        /dev/hda1       /       ext2    defaults        1       1
        /dev/hda2       /usr    ext2    defaults        1       1
Bir dosya sisteminde kullanici kota destegini calisir duruma getirmek icin "defaults" kelimesini iceren dorduncu alana "usrquota" kelimesini ekleyin . (ayrintilar icin _man fstab_)
        /dev/hda1       /       ext2    defaults        1       1
        /dev/hda2       /usr    ext2    defaults,usrquota       1       1
Kullanici kotalari yerine grup kotalarini calistirmak icin "usrquota" yerine "grpquota" koymaniz yeterli olacaktir :
        /dev/hda1        /        ext2    defaults                     1       1
        /dev/hda2       /usr    ext2    defaults,grpquota       1       1
Bir dosya sisteminde hem kullanici hem de grup kotasi mi istiyorsunuz ?
        /dev/hda1        /        ext2    defaults                                   1       1
        /dev/hda2       /usr    ext2    defaults,usrquota,grpquota       1       1
5."quota.user" ve "quota.group" Kayitlarinin Olusturulmasi
quota.user ve quota.group kayitlarinin ikisinin de sahibi root kullanici olmalidir. Root kullanici okuma ve yazma hakkina sahip olmali ve diger kisilerin hicbir hakki olmamalidir.

Root olarak sisteme girin.Kota koymak istediginiz bolumun kok dizinine gidin ve asagidaki komutlarla quota.user ve quota.group dosyalarini olusturun :
        touch /partition/quota.user
        touch /partition/quota.group
        chmod 600 /partition/quota.user
        chmod 600 /partition/quota.group
6.Yeniden Acmak
Yaptiginiz degisikilklerin etkili olmasi icin sisteminizi yeniden baslatin.
Ayrica kota koymak istediginiz diger bolumlerin sadece 4,5 ve 6 numarali adimlari gerektirdigini unutmayin.
4.6 Linux Üzerinde Kota Kurulumu - Bölüm 2
Bu islem edquota komutuyla gerceklestirilir(ayrintilar icin _man edquota_).
Kisisel bir tercih olmasi ve zorunlu olmamasina ragmen ben normalde _quotacheck_ komutunu _-avug_ parametresiyle kullanarak degisiklik yapmadan once son bilgileri alirim.
4.6.1 Belli Bir Kullanici Icin Kota Belirlenmesi
Iste bir ornek. Sistemimde _bob_ kullanici ismine sahip bir kullanicim var. "edquota -u bob" komutu beni vi'a (yada $EDITOR cevre degiskeni ile belirtilen baska bir editote) kullanici _bob_ icin kota belirlenmis her bolumde degisiklik yapmak amaciyla goturur.
        Quotas for user bob:
        /dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500)
                inodes in use: 356, limits (soft = 1000, hard = 1500)
"blocks in use" bir kullanicinin o bolumde kapladigi blok sayisini kilobayt cinsinde verir.
"inodes in use" kullanicinin sahibi oldugu toplam dosya sayisini verir.
4.6.2 Belli Bir Grup Icin Kota Belirlenmesi
Sistemde _games_ adinda bir grup oldugunu varsayalim. "edquota -g games" komutu beni _games_ grubu icin degisikliklar yapmak amaciyla editore goturur :

        Quotas for group games:
        /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000)
                inodes in use: 1454, limits (soft = 3000, hard = 4000)
4.6.3 Ayni Degerdeki Kullanicilar Icin Kota Belirlenmesi
_bob_ ile ayni degerdeki 100 kullanici icin kota belirlemek icin, _bob_'un
kotasi elle belirlendikten sonra su yontem kullanilabilir :
        edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`
csh kullanildigi ve kullanici numaralarinin 500'den basladigi varsayilmistir.
edquota'ya ek olarak Soft Limit, Hard Limit, ve Grace Period terimleri de bilinmelidir.
4.6.4 Soft Limit
_Soft Limit_ bir kullanicinin bir bolum uzerinde maksimum disk kullanim haklarini belirtir. _grace period_ ile birlestirildigi zaman kullanicinin , kota sinirlamalarini gectigi zaman mesaj verilecek bir sinir olusturur.
4.6.5 Hard Limit
_Hard Limit_ _sadece_ _grace period_ belirlendigi zaman calisir. Disk kullaniminda kullanicinin uzerine cikamayacagi tam siniri belirler.
4.6.6 Grace Period
"edquota -t" komutuyla ile birlikte kullanildiginda, _grace period_, kota belirlenmis bir dosya sisteminde _soft limit_'in zorlanmasi icin beklenecek zamani belirler.Zaman birimi olarak saniye(ler), dakika(lar), saat(ler), gun(ler), hafta(lar), ay(lar) kullanilabilir. Asagidaki "edquota -t" komutuyla goreceklerinizdir :

       Time units may be: days, hours, minutes, or seconds
        Grace period before enforcing soft limits for users:
        /dev/hda2: block grace period: 0 days, file grace period: 0 days
"0 days" bolumunu gereksiniminize gore degistirin. Ben kisisel olarak 7
gun (ya da 1 hafta) secerim.

4.7 Diğer Kota Komutları
4.7.1 Quotacheck
Quotacheck dosya sistemini, disk kullanimi icin tarar ve kota kayit dosyasi "quota.user"i en son hale gunceller. Ben quotacheck'i her sistem acilisinda ya da cronjob sayesinde periyodik (mesela her hafta) olarak calistirmayi oneririm.
4.7.2 Repquota
Repquota bir dosya sistemi icin ozet kota bilgisi verir. Asagida ornek bir repquota ciktisi vardir :
        # repquota -a
                                            Block limits                             File limits
        User               used        soft    hard grace         used     soft   hardgrace
        root       --   175419        0          0                 14679     0         0
        bin         --    18000         0          0                   735       0         0
        uucp      --      729           0          0                    23        0         0
        man       --       57            0          0                    10        0         0
        user1     --     13046   15360   19200               806    1500    2250
        user2     --      2838      5120    6400                377    1000    1500

4.7.3 Quotaon ve Quotaoff
Quotaon kota hesaplamayi acmayi, quotaoff kapatmayi saglar. Aslinda iki dosya da benzerdir. Sistem baslangici ve kapatilisi sirasinda calistirilirlar.
xxxxxx