Linux Sistem Yönetimi
Bir i?letim sistemi, marka ve modeli ne olursa olsun bak?m isteyen bir
araçt?r. Yap?lacak küçük bir hata, veya hatay? gösteren bir i?aretin
gözard? edilmesi, zaten de?erli olan zaman?n bo?a gitmesine neden olur.
Linux da aç?k bir i?letim sistemi oldu?undan, sorumluluk sahibi sistem
yöneticisi taraf?ndan aç?k tutuldu?u süre içinde verimli ve düzgün
çal??mas? için gerekli özen gösterilmelidir. ?nternet üzerinde üzerinde
500 kullan?c? olan , veya
ftp.linux.org adresi gibi her hafta onbinlerce
ziyaretçisi olup a??r sorumluluklar yüklenen Linux makinalar? vard?r.
Bunlar?n bir saat boyunca bile kapal? kalmas?, o anda ba?lanmay?
bekleyen pek çok kullan?c?y? ma?dur durumda b?rakacakt?r.
Performans? etkileyen unsurlar?n ba??nda, önlemek pek de elinizde olmasa
da elektrik kesintileri ve makinan?n kapal? oldu?u zamana denk gelen
çekirdek de?i?imleridir. Bu tür donan?msal etkileri bir tarafa
b?rak?rsak sistem yöneticisinin uymas? gereken ve ?nternet etikleri
dedi?imiz davran?? kurallar? vard?r. Bu kurallara öncelikle sistem
sorumlusu uymal? ve kullan?c?lar? da uymaya zorlamal?d?r. Aç?k i?letim
sistemlerinin en büyük sorunlar?ndan biri olan güvenlik konusuna sistem
yöneticisi belirli günler zaman?n?n bir bölümünü ay?rmal?d?r.
Kullan?c?lardan gelebilecek her türlü sald?r?, sisteme onar?lmas? çok
zor olabilecek zararlar verebilir. Bunun için düzenli olarak dosyalar?
kontrol edin ve ?üpheli durumlarda ara?t?rma yapmaktan çekinmeyin. Bu
konuda daha fazla bilgiyi Linux ??letim Sisteminde Güvenlik ba?l???
alt?nda bulabilirsiniz.
Yukar?daki tabloya bakarak i?inizin zor oldu?u kan?s?na kap?lmay?n, zira
tüm bu denetleme mekanizmas?n? basitle?tirebilirsiniz. Yap?lacak tüm
rutin i?leri bir programa yaz?p günün veya haftan?n belirli saatlerinde
bu program? çal??t?r?n ve olabilecek tüm hata mesajlar?n? bir dosyaya
yaz?n. Bu dosyay? bo? bir vakitte inceleyerek program?n ne kadar düzgün
çal??t???n? gözlemleyebilirsiniz. Bunun yan?nda sistem yönetimini zevkli
k?lacak uygulama programlar? da vard?r. Bu uygulama yaz?l?mlar?ndan
baz?lar? o kadar geli?mi?tir ki yapamad?klar? tek i? yemek pi?irmektir.
Yabanc? kaynakl? yay?nlardan Essential System Management (Frisch) ve
Essential System Administration (O'Reilly) bu yönde tavsiye edilebilecek
kitaplar. Piyasada bulunan Türkçe kitaplar?n hiçbirisinde sistem
yönetimine ciddi olarak de?inilmedi?i için Türkçe yay?n bulmak gayet
zor.
5.1 Yetkili Kullan?c? ve Di?er Kullan?c?larla ?li?kiler
Sistemin en büyük sorumlusu root ?ifresini bilen kullan?c?d?r. Yukar?da
da belirtildi?i gibi bu ?ifrenin sorumlulu?u büyüktür. Sistem
yöneticisi, makinadaki kullan?c?lar?n isteklerini ve ?ikayetlerini
yönelttikleri tek merci durumundad?r. Burada kar??l?kl? güven
sözkonusudur, bunu da sistem görevlisi herkese hissettirmelidir. root
kullan?c?s?n?n, ba?kalar?ndan gözünüz gibi saklad???n?z e-posta ve
dosyalar? sizden habersiz okudu?unu ö?renseydiniz tepkiniz ne olurdu ?
root kullan?c?s?n?n sahibinin haberi olmaks?z?n sistem kullan?c?lar?na
ait dosyalar?n yerini ve izinlerini de?i?tirmesi de uygun de?ildir.
Zorda kalsan?z bile, ba?kalar?na ait hiçbir dosyay? silmeyin veya
içeri?ini de?i?tirmeyin. Belki de s?k???k bir durumdan kurtulman?n ba?ka
bir yolu vard?r ?
Temel olarak zaman zaman kullan?c?lar? bilgilendirmek ho? bir davran??
olarak kar??lan?r ve onlar?n Linux'a olan ilgilerini perçinleyebilir.
Örne?in /etc/motd ve /etc/issue dosyalar?na periyodik olarak çekirdek
de?i?imlerini ve eklenen uygulama programlar?n? haber veren birkaç sat?r
ili?tirebilirsiniz. Sistemde aç?lan her kullan?c? hesab?na Linux Çokça
Sorulan Sorular (Linux ÇSS), çe?itli UNIX belgeleri ve ?nternet hakk?nda
bilgilendirici dökümanlar?n?n yerald??? bir dizi e-posta da
yollanabilir. Bu konuda yarat?c?l???n?z? konu?turun.
5.2 Sistem Kurallar?
Kullan?c? hesab? açmadan önce birkaç basit kural? tan?mlay?p
kullan?c?lardan bunlara uymalar?n? istemelisiniz. En basitinden birkaç
kural, bir hesab?n birden fazla ki?i ile kullan?lmamas?, sistemin
güvenli?ini zedeleyecek crack, cops, satan gibi programlar?n di?er
kullan?c?lar?n zarar?na çal??t?r?lmamas? ve sistem kaynaklar?n?n
sorumsuzca tüketilmemesi olarak say?labilir.
Siz, en iyisi yukar?da yeralan kurallar? birkaç madde halinde yaz?n ve
sistemdeki herkesin bu maddelere uyaca??n? taahhüt eden imzas?n? al?n.
Tats?z durumlar?n ç?kmamas? için de önlem almay? ihmal etmeyin.
5.3 Kullan?c? ??lemleri
A?a??da yeralan konularda, kullan?c? hesaplar?n?n aç?lmas? ve
kapat?lmas? anlat?l?yor.
Kullan?c? Hesab? Açmak (adduser)
Kullan?c? hesab? açmak iki yoldan yap?labilir. Birincisi, adduser komutu
yard?m?yla, di?eri de bu komutun yapt??? i?lemleri s?ras?yla elden
yapmak. root olarak sisteme girin ve komutu çal??t?r?n :
# adduserLogin name for new user (8 characters or less) []: mehmetUser
id for mehmet [ defaults to next available]
nitial group for mehmet
[users]:Additional groups for mehmet []:mehmet's home directory
[/home/mehmet]:mehmet's shell [/bin/bash]:mehmet's account expiry date
(MM/DD/YY) []:OK, I'm about to make a new account. Here's what you
entered so far:New login name: mehmetNew UID: [?leri available]Initial
group: usersAdditional groups: [none]Home directory: /home/mehmetShell:
/bin/bashExpiry date: [no expiration]This is it... if you want to bail
out, hit Control-C. Otherwise, pressENTER to go ahead and make the
account.Making new account...Changing the user information for
mehmetEnter the new value, or press return for the default Full Name []:
linux kullanicisi Room Number []: Work Phone []: Home Phone []: Other
[]:Changing password for mehmetEnter the new password (minimum of 6,
maximum of 8 characters)Please use a combination of upper and lower case
letters and numbers.New password:Bad password: too simple.Warning: weak
password (enter it again to use it anyway).New password:Re-enter new
passwordassword changed.Done...
Kullan?c?n?n isminin 3 karakterden az, 8 karakterden fazla olmamas?na
özen gösterin. Sistem sizden kullan?c?n?n gerçek ismini, ev dizinini,
(genellikle /home içinde olur), grubunu isteyecektir. adduser komutu,
e?er özel olarak de?i?tirmek istemezseniz her kullan?c?n?n grup
numaras?n? GID = Group ID) 100 olarak tan?mlayacakt?r. Bu gruba kar??l?k
gelen isim (Group Name) users d?r. Kullan?c? kimli?i (UID = User ID)
ise genellikle 500'den sonra gelen ve kullan?lmayan ilk say? olarak
atan?r. E?er UID olarak 0 girerseniz sistemde sizinle beraber bir
süper-kullan?c? daha yaratm?? olursunuz
Sisteme giri?te çal??t?r?lacak olan kabuk için seçimi ister kullan?c?ya
b?rak?n, isterseniz öntan?ml? olarak bash verin. Bash'in sistemdeki tam
patikas?n? (/bin/bash) yazmal?s?n?z. Bu alana sadece kabuk ismi girmek
?art de?ildir.
Yukar?da sistem bizi güçlü bir ?ifre seçmedi?imiz için uyard?. ?ifre
olarak, herkesin kolayca tahmin edemeyece?i zorlukta, fakat kullan?c?n?n
bir yere yazmas?n? önleyici kolayl?kta bir kelime bulun. Kullan?c?,
hesab?n?n aç?lmas?ndan hemen sonra sisteme girecekse ve ?ifresini
de?i?tirecekse k?sa ve kolay bir ?ifre yeterli olacakt?r.
Her ?eyin do?ru oldu?una eminseniz, sorulan soruya "y" ile, de?ilseniz
"n" ile cevap verin. Hemen ard?ndan /etc/skel dizini alt?nda yeralan tüm
dosyalar bu kullan?c?n?n dizinine kopyalanacakt?r. Buraya, her
kullan?c?n?n ev dizinine önceden yüklenmesini istedi?iniz sistem
dosyalar?n? yerle?tirebilirsiniz. Bu andan itibaren yeni kullan?c?
sisteme girebilir.
Sisteme kullan?c? ekleme i?lemini el yordam?yla yapmak isterseniz,
/etc/passwd ve /etc/shadow dosyalar?na birer sat?r eklemelisiniz.
/etc/passwd'de aralar?nda birer ':' karakteri olmak kayd?yla s?rayla
hesap ismi, "x", grup kimli?i, kullan?c? kimli?i, kullan?c? isim ve
soyad?, ev dizini ve kabuk program? yeral?r. /etc/passwd içine bu sat?r?
ekleyin:
ozgur
100:502:Misafir Sanatci:/home/ozgur:/bin/bash
/etc/shadow içine ise a?a??daki sat?r? yerle?tirin, tabi di?er sat?rlara
dokunmadan.
ozgur::9990:0:99999:::
Bu sat?rda yeralan ikinci girdi mirkelam kullan?c?s?n?n ?ifresini
belirtiyor. /etc/shadow dosyas?na yaz?lacak olan ?ifreyi önce bo?
b?rak?p, ard?ndan passwd ozgur komutuyla bir ?ifre atay?n.
/etc/shadow dosyas?nda kullan?labilecek parametreler için shadow(5) man
dosyas?na göz gezdirin.
Ard?ndan /home/ozgur dizinini olu?turun. Dizinin grubunu da ayarlay?n.
Çok gerekli olmasa da gelen e-postalar için /var/spool/mail dizininde
bir dosya tan?mlay?n ve /etc/skel içinde yeralan dosyalar? kullan?c?n?n
dizinine kopyalay?n.
# mkdir /home/ozgur# chown -R ozgur.users /home/ozgur# touch
/var/spool/mail/ozgur# chown ozgur.mail /var/spool/mail/ozgur
Yukar?da yaz?lan elle kullan?c? girme i?lemi, shadow kullanan Linux
makinalar? için geçerlidir. Shadow için Güvenlik bölümüne göz at?n.
Kullan?c? Grubu
E?er Linux makinan?z birkaç yo?un görev üstlenmi?se (örne?in www veya
ftp sunucusu olarak kullan?l?yorsa) her bir i?lem için birden fazla grup
tan?mlanabilir. users grubuna ba?l? kalmadan wwwadm veya ftpadm gibi
grup isimleri belirtebilir, bu gruplar? da bir veya birkaç kullan?c?ya
ait olacak ?ekilde de?i?tirebilirsiniz.
users grubunun d???nda birden fazla grup tan?mlanmas?, sistemin
denetlenmesini bir miktar güçle?tirse de sistem güvenli?ini art?r?r.
Baz? kullan?c?lar?n birden fazla grubunun olmas?yla bu kullan?c?lar
rahatl?kla sistemde root kullan?c?s?n?n üstlenmesi gereken i?leri
yapabilirler.
Grup kimli?inin de?i?tirilmesi veya yeni grubun eklenmesi için
/etc/group dosyas? kullan?l?r. Bu dosyaya grubun ismi, numaras?, grup
?ifresi ve gruba ait kullan?c?lar yaz?l?r. Her kullan?c?n?n en az bir
grubu vard?r.
/etc/group dosyas?n?n iki sat?r?nda yeralan parametreler,
root::0:root sys:root,bin,sys,adm
gibidir. S?rayla ":" karakteri ile ayr?lm?? her kolon,
Grup ismi
Grup ?ifresi
Grup numaras?
Gruba ait kullan?c?lar
?eklinde özetlenebilir. ?lk sütun grup ismini belirtir. Grup ismi, ls -l
komutunu i?letince kullan?c? isminin hemen sa??nda görülen kelimedir.
Grup ?ifresi, gruba ait olmayan kullan?c?lar?n dosyalar?na eri?im
sa?lamak için kullan?l?r.
Grup ?ifresi nadiren kullan?l?r. Grup numaras?, kullan?c?n?n ait oldu?u
grubun kar??l???d?r. Son sütunda ise gruba ait kullan?c?lar, her biri
birer virgülle ayr?lm?? olarak yaz?l?r. Kullan?c? sisteme girdi?i zaman
otomatik olarak /etc/passwd dosyas?nda yeralan grup ismi aktif olur, bu
yüzden her kullan?c?n?n ismi /etc/groups dosyas?na yaz?lmaz. Sistem ilk
kuruldu?u anda birkaç grup halihaz?rda zaten vard?r. Örne?in root
grubunun grup numaras? 0'd?r ve pekçok sistem dosyas?n?n sahibidir, bin
grubunun numaras? is 2 olup /usr/bin ve /bin dizinlerindeki ço?u
dosyan?n grubudur.
Hangi grubun (veya tan?mlanm??sa gruplar?n) içinde oldu?unuzu ö?renmek
için groups komutunu kullanabilirsiniz.
$ groups gorkem users
Kullan?c?n?n Hesab?n?n Silinmesi
Bir kullan?c?ya ait hesab? silmek için /etc/passwd dosyas?nda bu
kullan?c?ya ait olan sat?rdaki ?ifre kolonunun ba??na * i?areti koyun.
Bir ?ifrelenmi? bir parolan?n içinde * karakteri olamayaca??ndan bu
kullan?c? bir daha sisteme giremez.
Hesab? tamamen silmek için, kullan?c?n?n ev dizinini ve e-postalar?n?
yedekledikten sonra sistemde kullan?c?ya ait olan dosyalar? (/tmp
alt?nda) ve ev dizinini silin.
/etc/passwd ve /etc/group dosyas?ndan kullan?c?n?n isminin geçti?i
sat?rlar? kald?r?n.
Sistemde kullan?c?ya ait olabilecek tüm dosyalar? da silmeniz
gerekebilir. Bunun için find kullanabilirsiniz.
$ find / -user gorkem -ls -exec rm {} \;
Bu komutu /etc/passwd dosyas?ndan kullan?c? ismine ait olan sat?r?
kald?rmadan önce yapmal?s?n?z.
5.4 Sistemin Yedeklenmesi
Makinan?z?n belirli aral?klarla yedeklenmesi, sistem güvenli?inin bir
parças? say?labilir. Donan?mdan meydana gelen bir hata sonucu veya
yanl??l?kla girilen bir komut, sistemi aç?lamaz hale getirebilir. Ancak
yedekleme ile bu tür kullan?c? hatalar?n?n önüne geçebilirsiniz.
Yedekleme genellikle tüm sistem üzerinde yap?lmaz. Sadece önemli sistem
bilgilerini içeren dizinler yedekleme a?amas?na girmelidir.
Yedekleme üniteleri olarak teyp, disket veya ba?ka diskler
kullan?labilir. Teypler, büyük miktarda yedekleme i?lemleri için ön
plana ç?ksa da birkaç dosyadan olu?an paketlerin korunmas? söz konusu
olacaksa disketler daha pratiktir. ?nternet üzerinde ise ba??ms?z bir
makina, kendi rutin görevi d???nda yerel a?da bulunan makinalar?n
yedeklerini belirli gün ve saatlerde almak üzere programlanabilir.
Sistemde fazla miktarda kullan?c? varsa yedekleme i?lemi ciddi bir
düzene oturtulmal?d?r. Sistemdeki hayati dosyalar örne?in her hafta,
üzerinde kullan?c?lar?n bulunmad??? ak?am saatlerinde yedeklemeye
sokulabilir.
Yedekleme için birkaç yol önerilebilir. Kullan??l? olmas? için
yedeklemeyi yapan program, yedeklenen dosyalar aras?ndaki belirli bir
dosyay? kolayca açabilmelidir. Bunun yan?nda, yedek bilginin de
bozulmas? ihtimali vard?r. Yede?in içindeki tek bayt?n bozulmas?, baz?
durumlarda tüm yede?in çöp y???n? haline gelmesine yol açabilir. Do?ru
yedekleme program?n?n kullan?lmas? bu anda önem kazan?r.
Yedeklenecek olan dizinlerden en önemlileri, sistem konfigürasyon
dosyalar?n?n yerald??? /etc, kullan?c? dizinlerinin yerald??? /home,
baz? X Window dosyalar?n?n bulundu?u /usr/X11/lib/X11 dizini alt?ndaki
baz? dosya ve dizinler, /usr ve /usr/local dizinde yeralan baz? dizin ve
dosyalar ile /root dizinidir. ?art olmasa da yedekleme için yeriniz
bolsa /tmp dizinini de koyabilirsiniz.
Elektronik postalar? ( /var/spool/mail) da unutmamak gerekir. Yoksa, çok
me?hur olan "e-mey?l?m cyber-space'de kayboldu" cümlesini s?kça duymaya
ba?lars?n?z.
A?a??daki komut, /usr ve /home dizinlerini diskete yedekler.
$ tar cvMf /dev/fd0 /usr /home
tar komutununa verilen M parametresi yard?m?yla bir disket doldu?u zaman
ba?ka bir diskete devam etmenizi sa?lar. Dizinleri s?k??t?rarak atmak
için z seçene?ini vermek yeterli olur. S?k??t?rarak yedekleme disket ya
da teyp'te yer kazand?racakt?r, ancak hata oldu?unda verilerin
kurtar?lmas? daha zor olacakt?r. Açmak için
$ tar xf /dev/fd0
komutu yeterlidir. S?k??t?r?larak diskete at?lan yedekler için açarken
de "z" kullan?n. Disketleri s?ra ile numaraland?rmay? ihmal etmeyin,
yoksa bir disketten fazla yer kaplayan ar?ivleri açamazd?n?z.
Linux'ta gerek SCSI, gerek floppy teyp deste?i vard?r. Özellikle çok
veri yedekleyecekseniz teypler kaç?n?lmaz olur. Teyplere yedek al?rken
de yukar?daki floppy orneklerindeki gibi tar kullanabilirsiniz. tar'?n
yan? s?ra s?kça kullan?lan yedekleme komutlar? aras?nda dump ve restore,
cpio ve dd gösterilebilir. Linux'ta ilk SCSI teyp sürücüye /dev/st0,
ikinciye /dev/st1 ... kullanarak, PC'lerde s?kça kullan?lan ``floppy
teyp''lere de /dev/ftape üzerinden eri?ebilirsiniz. Piyasada bulaca??n?z
ortalama floppy teyplerin kapasiteleri 120M, 4mm SCSI teyplerin 4G, 8mm
SCSI teyplerin ise 7G kadar olacakt?r. Teybin kapasitesi kulland???n?z
sürücünün yetene?ine ve teybinizin uzunlu?una göre de?i?ir. Örnek
olarak, bütün sistemin tar kullanarak ilk SCSI teybe yedeklemek için,
# tar cvf /dev/st0 /
Bir TCP/IP a??n?z varsa, ve birden fazla Linux ya da UNIX makinas?
kullan?yorsan?z, tek bir teyp sürücü ile bütün makinalar?n?z?n, hatta
Windows makinalar?n?z?n bile (Linux'un yard?m?yla) yede?ini
alabilirsiniz. Bu i? için amanda gibi daha özelle?mi? ve yedekleme
i?lemini otomatikle?tiren bir program kullanabilece?iniz gibi, GNU
tar'dan da yararlanabilirsiniz. Örne?in tar ile, cclub.metu.edu.tr
makinas?ndan, linux.org.tr makinas?ndaki floppy teybe yedek almak için,
cclub:~# tar cvf linux.org.tr:/dev/ftape /home
yukar?daki komutun çal??mas? için linux.org.tr makinas?n?n root'unun
.rhosts dosyas?nda cclub makinas?n?n root'una izin verilmi? olmas?
gerekir. Bu i?lem güvenlik için sak?ncal? oldu?undan, bu i? için özel
bir kullan?c? açmak gibi bir yönteme ba?vurulabilir. Örne?in
linux.org.tr'da yedek adl? bir kullan?c? açt???m?z? dü?ünelim. Bu
durumda yukar?daki komutu,
cclub:~# tar cvf
yedek@linux.org.tr:/dev/ftape /home
?eklinde yazabiliriz.
5.5 Sistemin Güncellenmesi
Tekrar Linux yüklenecek olan makina üzerinde halihaz?rda Linux
bulunmas?n?n yararlar? oldu?u gibi baz? sak?ncalar? vard?r. ?lk olarak
yararlar?na de?inmek gerekirse, yap?lacak asl?nda sadece i?letim
sisteminin bulundu?u bölümü de?i?tirmektir. Takas alan?n?n ayr?lmas?,
kullan?c? alan?n?n ayr?lmas? gibi i?lemler bu durumda önceden yap?lm??
oluyorlar. Ancak yeni i?letim sisteminin yüklenmesinin baz? zararlar? da
var.
Her?eyden önce çal??t??? bilinen bir i?letim sistemi yenisi ile
de?i?tiriliyor. Gerçekten bunu gerektirecek bir sebep olmad?kça bu tür
güncellemelerden kaç?n?lmas? veya en aza indirilmesi gerekir. Yeni bir
sistem, yeni bilinmeyenler ve az da olsa bile çal??mama riski
getirecektir.
E?er sistem üzerinde belirli hizmetler veriliyorsa o hizmetlere ili?kin
verilerin bu güncelleme esnas?nda yok olmamas?na dikkat edilmeli. Mesela
makina bir web sunucu olarak kullan?l?yorsa web dosyalar?n?n bir
?ekilde yeni sisteme aktar?lmas? gerekecektir .
Benzer bir ?ekilde makinaya ait tan?mlar?n (/etc) ve standart da??t?m
d???nda yüklenmi? paketlerin önceden yedeklenmesi gerekir. Yoksa her?eye
yeniden ba?lamak gerekebilir.
Güncelleme için iki yöntem akla gelebilir, do?rudan yeni sistemi
eskisinin üzerine bindirmek veya eskisini silerek yeniden yüklemek.
Slackware sürümü için en sa?l?kl?s? eski sistemi silmektir. Çünkü
de?i?ik da??t?mlarda dosya da??l?m? farkl?l?klar göstere bilmektedir.
Bunun sonucunda baz? dosyalar birden fazla yerde gözükebilmektedirler.
Bir di?er sak?nca ise setup yaz?l?m?n?n bazen bu durumda ?a??rabilmesi
ve hata vermesi. Baz? ticari Linux sürümleri (Red-Hat, Debian, Caldera
gibi) eski sürümü silmeye gerek b?rakmadan sistemi güncelleme özelli?ine
sahipler.
Güncellemeniz gerekebilecek dizinler, /var/spool/mail, kullan?c?
dizinleri (root dahil), /usr alt?nda gerekli dizinler,/var/adm/ ve /etc
olarak say?labilir. Bazen /etc içinde yer alan dosyalar?n yeri veya
?ekli de?i?mi? olabilir. Onun için en güvenlisi teker teker dosyalar?
inceleyip kopyalamakt?r. Belirli dosyalar? yeni sistemi kurduktan sonra
hemen kopyalayabilirsiniz :
/etc/group/etc/printcap /etc/hosts ...
Daha önce shadow kullanmayan bir sistemden shadow sistemine
geçiyorsan?z, /etc/passwd ve /etc/shadow dosyalar?nda gerekli
de?i?iklikleri yapmadan yeni yerine kopyalamay?n.
Ayr?ca ne olur ne olmaz diye çal??t???n? bildi?iniz bir çekirde?i de
yede?e almay? ihmal etmeyin.
5.6 Çekirde?in Derlenmesi
Bu bölümde, çekirde?in konfigürasyonu ve derlenmesi için gerekli
bilgiler vard?r. Çekirdek derleme uzun ve zahmetli bir i?lemdir. Derleme
a?amas?n? en k?sa zamanda ve en uygun yoldan gerçekle?tirmek gerekir.
Derleme i?lemi, kullan?c?n?n önüne kafas?n? kar??t?racak kadar çok
seçenek sunar.
Nedir bu çekirdek? Genel anlamda çekirdek, yaz?l?m?n ve donan?m?n
aras?nda bekleyerek ileti?imi sa?layan bir arabirimdir. Çal??an tüm
programlar?n ve süreçlerin haf?za ile olan ili?kilerini düzenler.
??lemcinin gücünün tüm bu programlar aras?nda adil bir ?ekilde
da??t?m?n? üzerine al?r. Bu i?lemleri kullan?c?n?n haberi olmadan her an
durmaks?z?n yapar.
Çekirdek kaynak dosyalar? diskte hat?r? say?l?r bir alan tutar. Örne?in
sürüm 2.0.20 yakla??k 6Mb disk alan? kaplar. Aç?ld??? zaman ise toplam
kaplad??? alan 24 Mb olur. Derleme a?amas?ndan sonra bu rakam 30 Mb'yi
geçer. Her eklenen ayg?t sürücü deste?i bir miktar daha yer al?r.
Kulland???n?z sisteme göre çekirde?in derlenme süresi de?i?kenlik
gösterir. 12 Mb 486DX4/100 makinas?nda, 5 dosya sistemi deste?i, a?
deste?i ve ses kart? sürücüsü ile yakla??k 30 dakika sürer. Ayn?
konfigürasyonu içeren çekirde?in derlenmesi ise daha güçsüz bir makina
olan 8Mb 386DX/40 alt?nda 1.5 saati bulur. Derlerken gidip çay?n?z?
için, biraz televizyon seyredin. Makinaniz 386 ise bir banyo al?p d??ar?
ç?k?n, al??veri? yap?n. Çok ümitsiz bir durumdaysan?z, yap?lacak en iyi
?ey en yak?n bilgisayar sat?c?s?na u?rayarak yeni fiyatlar? sormak :-)
Çekirdek kaynak kodu , ODTÜ ftp ar?ivindeki adresinden veya
tsx-11.mit.edu adresinin yans?s?n? tutan herhangi bir adresten
al?nabilir. Bu dizin alt?ndaki Linux sürümlerinin bir tanesini (v1.2,
v2.0, v2.1 gibi) seçtikten sonra alt?ndaki dosyay? alabilirsiniz.
Dosyan?n ismi linux-x.y.z.tar.gz yap?s?ndad?r.
A?a??daki örnekte ODTÜ ftp ar?ivinden 2.0.20 sürümünün al?n???
gösterilmektedir:
$ ftp
ftp.metu.edu.trConnected 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): ftp331 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 1241 1996.230-230-Mirrored
sites are placed under the directory /pub230-This archive is maintained
by
ftp.metu.edu.tr" class="postlink" target="_blank" rel="nofollow">
ftpload@ftp.metu.edu.tr230-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 README250- it was
last modified on Mon Sep 16 11:36:00 1996 - 50 days ago250 CWD command
successful.ftp> dir200 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 CREDITSdrwxr-xr-x 3 ftpload ftp-adm 512 Oct 13 15:59
Historic-rw-r--r-- 1 ftpload ftp-adm 12056 Sep 16 12:36 READMEdrwxr-xr-x
2 ftpload ftp-adm 512 Oct 14 11:47 SillySoundsdrwxr-xr-x 2 ftpload
ftp-adm 512 Oct 13 18:17 testingdrwxr-xr-x 2 ftpload ftp-adm 512 Oct 14
11:47 v1.0drwxr-xr-x 2 ftpload ftp-adm 2048 Oct 31 21:55 v1.1drwxr-xr-x 2
ftpload ftp-adm 1024 Jun 25 11:34 v1.2drwxr-xr-x 2 ftpload ftp-adm 6656
Sep 27 04:24 v1.3drwxr-xr-x 2 ftpload ftp-adm 1536 Nov 2 00:05
v2.0drwxr-xr-x 2 ftpload ftp-adm 512 Nov 2 21:33 v2.1226 Transfer
complete.ftp> cd v2.0250 CWD command successful.ftp> bin200 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.gz226 Transfer
complete.ftp> get linux-2.0.20.tar.gz200 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> quit221 Goodbye.
Sisteme root olarak giri? yap?n ve /usr/src dizinine geçin. Linux'un
kurulmas? a?amas?nda çekirdekleri de kurmu? iseniz bu dizinde 'linux'
isminde ve eski çekirde?in kaynak kodlar?n? kapsayan bir alt dizin
göreceksiniz. Genellikle her kullan?c?n?n yapt???, bu dizinin ismini o
an çal??an çekirde?in sürümüne göre de?i?tirmektir. Çekirdek sürümünü
bulmak için ise uname -r komutunu kullanabilirsiniz.
$ uname -r 2.0.23
Bu komuttan çekirde?in 2.0.23 sürümü oldu?unu anlayabiliriz.
Çekirdek kodunu içeren paketi açmadan önce /usr/src dizinine kopyalay?n,
ve açmadan önce bu dizinde 'linux' isimli bir dizinin olmad???na emin
olun. ?imdi /usr/src içinde iken s?k??t?r?lm?? çekirdek kodunu 'tar'
komutu yard?m?yla aç?n.
# tar -zxf linux-x.y.z.tar.gz
Komutun i?letimi bitince 'linux' dizini olu?ur. ?lk defa derleme i?lemi
yapacaksan?z a?a??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
Çekirdek Konfigürasyonu
/usr/src/linux dizini altinda iken make config yaz?n. Bu komut, bir
konfigürasyon dosyas? yaratmak amac?yla sorular sorar.
Kar??n?za ç?kan sorulara 'y' (evet) veya 'n' (hay?r) ile cevap vermeniz
gerekir. Baz? ayg?t sürücülerde 'm' seçene?i de olabilir. Bunun anlam?,
sistem o program? modül olarak derleyecek ve çekirde?e dahil etmeyecek
demektir. Kullan?c? derleme a?amas?ndan sonra istedi?i zaman bu modülü
çekirde?e dahil edebilir, i?ini bitirdikten sonra da ç?karabilir.
2.0.x ve daha yukar? sürümlerde '?' tu?una basmakla daha ayr?nt?l? bilgi
alabilirsiniz. A?a??da baz? konfigürasyon parametreleri verilmi?tir.
Matematik i?lemci emülasyonu (Kernel math emulation)
Kulland???n?z makinan?n i?lemcisi yard?mc? matematik i?lemcisine sahip
de?ilse (486SX, 386SX veya daha dü?ük makinalar) bu seçene?e evet
cevab?n? vermelisiniz.
Normal (MFM/RLL) disk ve IDE disk/cdrom deste?i (Normal disk and IDE
disk/cdrom support)
Hemen herkesin kulland??? PC sabit disklerinin standart olmas? sebebiyle
bu seçenege 'y' cevab? verilebilir. Daha ileride SCSI sabit disk ve
cdrom deste?i de sorulacakt?r. Ard?ndan gelecek olan 'old disks-only' ve
'new IDE' sürücülerinden birini seçerken, aralar?ndaki fark?n ilkinde
tek arabirim üzerinden iki adet diski desteklemesi, di?erinde ise ikinci
arabirim ile birlikte IDE/ATAPI cdrom'lar? desteklemesidir.
A? deste?i (Networking support)
Makinan?z herhangi bir a? üzerinde ise (?nternet gibi), veya ?nternet'e
ba?lanmak için SLIP, PPP gibi programlar? kullanmak istiyorsan?z bu
bölüme 'y' cevab? vermelisiniz. Fakat, a? üzerinde olmasan?z bile her
geçen gün yeni yeni uygulama programlar?n?n ve paketlerin a? deste?ine
ihtiyac? oldu?unu dü?ünürsek (X Window gibi) bu bölüme 'y' cevab?
vermeniz ?art görünüyor.
En fazla 16Mb haf?za (Limit memory to low 16Mb)
Baz? hatal? 386 DMA denetleyicileri haf?zan?n 16Mb'tan yüksek
bölümlerine ula?amazlar. Çok nadir görülen bu durum makinan?zda varsa bu
seçene?i 'y' ile geçin.
System V IPC (System V IPC):
IPC (Interprocess Communication) deste?i verir. Baz? Perl programlar? ve
oyunlar (DOOM gibi) bu seçenek olmadan çal??amazlar. Bu durumda ne
yapt???n?z? iyi bilmiyorsan?z bu seçene?e 'y' -evet- cevab? verin.
??lemci tipi (386, 486, Pentium, PPro):
Burada, çekirde?inizi hangi tür makina için derliyorsan?z, o makinan?n
tipini giriniz.
SCSI deste?i (SCSI Support):
SCSI ayg?tlar?n?z var ise bu seçenek için 'evet' deyin. Daha sonra da
kar??n?za gelecek SCSI ayg?tlar aras?ndan size uygun olanlar? al?n.
A? kart? deste?i (Network Device Support):
A?a ba?lanmak için bir kart kullanacaksan?z veya SLIP, PPP ba?lant?lar?,
ya da paralel port üzerinden yapaca??n?z her türlü i?lemler için bu
seçene?i i?aretleyin. Ard?ndan ekrana gelen kart tiplerinden uygun
olanlar?n? seçin.
Dosya sistemleri (Filesystems):
Burada, a?a??daki dosya sistemlerinden kullanmak istediklerinizi
seçebilirsiniz.
minix: Yeni da??t?mlar , artik tarih olmaya ba?layan bu dosya sistemini
desteklememekte. Baz? kurtarma disketleri yaratmak için daha yayg?n,
fakat daha az kararl? olan ext2 dosya sistemine tercih edilirler.
Extended file system (ext): Bu da art?k kullan?m? olmayan bir dosya
sistemi. Deste?ini ekleyip eklememek size kalm??.
Second extended file system (ext2): Linux'un kulland??? en önemli dosya
sistemi. Al?nmas? ?art.
xiafs: Art?k kullan?lm?yor.
msdos: Sabit diskinizde DOS bölümü varsa, ya da DOS disketi kullanmak
istiyorsan?z, al?n.
umsdos: MS-DOS dosya sistemine baz? yenilikler (uzun dosya isimleri
gibi) getirilerek olu?turulan bir teknoloji. MS-DOS deste?i almad?ysan?z
buna da gerek yok.
proc: Bu asl?nda gerçek bir dosya sistemi de?il, çekirdek görüntüsüdür.
`y' cevab?n? vermezseniz ileride ba??n?z çok a?r?r.
NFS: Linux makinaniz bir a? üzerinde kurulu iken a? üzerindeki di?er
makinalar?n dosya sistemlerini kullanabilmenizi sa?lar.
ISO9660: CD-ROM sürücünüzü Linux alt?nda kullanabilmek için 'y' cevab?
verin.
OS/2 HPFS: OS/2 dosya sistemlerini okuyabilmek için 'y' cevab? verin.
System V: Bir UN*X sürümü olan System V makinalar?n?n dosya sistemleri
üzerinde çal??abilmeyi sa?lar.
Karakter ayg?tlar (Character devices):
Bu bölümde yaz?c?, fare ve baz? teyp yedekleme sürücüleri gibi karakter
ayg?tlar? (ileti?imini karakter karakter sa?layan ayg?tlar) için
sürücüleri ekleyebilirsiniz.
Ses kart? (Sound Card Support):
Linux'un ses kapasitesini "duyabilmek" için bu deste?i ekleyin.
Çekirdek i?lemleri (Kernel Hacking):
Çekirdekten do?an hatalar?n bulunmas?n? kolayla?t?ran bu seçenek,
programc?lara yönelik.
Tüm bu i?lemlerin ard?ndan make config komutunun görevi bitmi? olur.
Temizlik
Fazla dosyalar? temizlemek, gerekli olan dosyalar?n da yerinde olup
olmad???n? kontrol etmek için , s?ras?yla
# make dep # make clean
yaz?n. Ard?ndan tüm nesne dosyalar? ve eski sürümden arta kalan dosyalar
silinecektir. Bu ad?m? es geçmemelisiniz.
Temizlik i?leminden sonra,
# make zImage , veya # make zdisk
yaz?n. E?er bir ki?isel bilgisayarda çal???yorsan?z, ilk seçenekte
çekirdek derlenip /usr/src/linux/arch/i386/boot dizini alt?na zImage
ad?yla yerle?tirilecektir. Buraya yerle?tirilmeden önce yerden kazanmak
için çekirdek s?k??t?r?l?r. Di?er durumda ise yeni çekirdek sabit disk
yerine A: disket sürücüsüne yaz?l?r. Disket üzerine yazman?n bir
avantaj?, kararl? olmayan ve sistemi açmayan çekirdek ile kar??la??lmas?
halinde, sistemi sabit disk üzerindeki eski çekirdekten açabilme imkan?
b?rakmas?d?r.
Çekirde?in Kurulmas?
LILO, bilgisayar?n aç?l??? an?nda çekirdek ile ilgili düzenlemeleri
okur, buna göre hangi çekirdekten açmas? gerekti?ini anlar.
Konfigürasyon dosyas? biraz karma??k olmas?na ra?men kullan?m a?amas?nda
büyük yararlar sa?lar. /etc/lilo.conf dosyas?n?n içinde gerekli olan
kurulum bilgileri vard?r. Bu dosyan?n bir bölüm a?a??da görülüyor.
image = /vmlinuz label = linux root = /dev/hda1 other = /dev/hda1 label =
dos table = /dev/hda
image = ibaresi kurulu olan çekirde?e i?aret eder. Ço?u kullan?c? bu
k?sma vmlinuz yazar. label = bölümünde hangi i?letim sistemi veya
çekirdek sürümünun aç?l??ta kullan?laca?? yaz?l?r. Hemen alt?ndaki root
bölümünde ise label = k?sm?nda seçilen i?letim sisteminin hiyerar?ik
s?rada en üst dizin yap?s? yaz?l?r. Eski çekirde?in bir yede?ini al?n ve
yeni derledi?iniz çekirde?i image = sat?r?nda belirtilen yere
kopyalay?n.
# cp zImage /vmlinuz
?imdi LILO program?n? çal??t?r?n. Komut sat?r?nda lilo yazmak
yeterlidir. `*' karakteri, çal??t?r?lacak ilk çekirde?i veya sistemi
gösterir.
# lilo Added linux * Added dos
LILO ve konfigürasyonu hakk?nda , daha fazla bilgi LILO-NASIL
çevirisinden al?nabilir.
Yeni bir çekirde?i derledikten sonra LILO üzerinden ekleme yapmak ve
aç?l?? an?nda kullanmak için /etc/lilo.conf dosyas?ndaki
image = /vmlinuz label = Linux root = /dev/hda1
sat?rlar?n?n kopyas?n? ç?kar?n, image , label ve root yerine s?ras?yla
yeni derlenen çekirde?in sabit disk üzerindeki yerini, ismini ve Linux
i?letim sisteminizin kök dizinini yaz?n. Bunlara ek olarak, aç?l??
an?nda bekleme sa?lamak ve seçim yapabilmek için konfigürasyon
dosyas?n?n ba??na delay = xxx ekleyebilirsiniz. xxx say?s?, gecikme
zaman? saniyenin onda biri olarak verilir. Bu sayede aç?l?? an?nda ,
örne?in shift tu?una bas?larak istenen çekirde?in ismi (label =
sat?r?nda yaz?lan isim) seçilir ve çal??t?r?l?r.
Çekirde?in Yamanmas? (patch)
Çekirde?in her yeni sürümüyle birlikte bir önceki sürümünun yamas? da
gelir. Yamay? uygulamak, tüm çekirde?in tekrar derlenmesinden daha
kolayd?r. Örnek olarak, elinizde 2.0.10 çekirde?i var ve ftp adresinde
2.0.11 sürümü bekliyor. Halihaz?rdaki çekirde?i 2.0.11 sürümüne
yükseltelim:
Yamay? önce /usr/src dizinine kopyalay?n. Bu dizin alt?nda iken
# zcat patch-2.0.11.gz | patch -p0
veya e?er s?k??t?r?lm?? de?ilse
# patch -p0 < patch-2.0.11
yaz?n. Bu komutun ard?ndan sat?rlar ekrandan kaymaya ba?layacak ve yama
i?lemi tamamlanacakt?r. Sat?rlar bazen o kadar h?zl? kayar ki neler
yazd???n? bile göremeyebilirsiniz. Yaman?n ba?ar?l? bir ?ekilde
tamamland???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 bulursa yama i?lemi tamamlanamam??
demektir. E?er yama i?lemi tamamlan?rsa, s?ras?yla
# make clean # make config # make dep
komutlar?n? yaz?n. Bu komutlarla ilgili detayl? bilgi önceki konuda
anlat?lm??t?r.
patch komutunun alabildi?i baz? seçenekler vard?r. patch -s komutu
olu?abilecek tüm hata mesajlar?n? ekrana yazar. Di?er yama seçenekleri
man patch yazarak görülebilir.
Birkaç yaman?n ard?ndan, .orig uzant?l? dosyalar etrafta dola?maya
ba?lar. Bu dosyalar gereksizdir, büyük yer kaplad?klar? için silinmeleri
gerekir. A?a??daki komut yard?m?yla /usr/src/linux dizini alt?nda .orig
uzant?l? dosyalar? silebilirsiniz.
# find /usr/src/linux -name '*.orig' -exec rm -f {} ';'
Ç?kabilecek Sorunlar
Eger rutin bir çekirdek güncellemesinden sonra yeni çekirde?iniz
gerçekten garip ?eyler yap?yorsa, büyük ihtimalle yeni çekirde?inizi
derlemeden önce "make clean" komutunu kullanmay? unutmu?sunuzdur.
E?er çekirdek çok fazla haf?za harc?yorsa, çok büyükse, veya yeni
786DX6/440 makinan?zda bile derlenmesi sonsuza kadar sürüyorsa, büyük
ihtimalle ayarlanm?? bir çok gereksiz parça (ayg?t sürücüleri, dosya
sistemleri, vb.) vard?r. Büyük çekirdeklerin en belirgin özelli?i
sürekli haf?zadan diske ve diskten haf?zaya takas yapmalar?d?r.
Çekirde?inizin ne kadar haf?za kulland???n? makinan?n toplam
haf?zas?ndan /proc/meminfo dosyas?ndaki total mem de?erini ç?kararak
veya free komutunun ç?kt?s?ndan ö?renebilirsiniz. Ayr?ca dmesg komutunu
kullanarak (veya çekirdek kay?t dosyas?na bakarak) da bu de?ere
ula?abilirsiniz.
Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k
data)
LILO'yu çal???t?rmay? unuttunuz, veya sistem hiç aç?lm?yorsa bu durumda
yapaca??n?z en iyi ?ey disketten aç?l?? yapmak ve daha sonra aç?l??
yapabilen ba?ka bir disket haz?rlamakt?r.
E?er eski çekirdek 1.2.X ve daha dü?ükse ve bunu 2.0.x sürümüne
yükseltmek istiyorsan?z, 2.0.x çekirdek kurulumunda getirilen baz?
de?i?iklikler sorun ç?kartabilir. /usr/src/linux/Documentation/Changes
dosyas?nda yapman?z gereken de?i?klik listesi vard?r. gcc, libc gibi
birkaç paketi yeniden kurman?z gerekebilir.
Ayn? anda birkaç çekirdek kaynak kodunu sistemde bulundurmay?
dü?ünüyorsan?z, izlenecek en güvenilir yol, her birine
/usr/src/linux-x.y.z ismini vermektir (x.y.z halihaz?rdaki çekirdek
sürümünü gösterir). Ard?ndan sembolik bir ba?lant? yard?m?yla
istedi?iniz kaynak dizinini seçebilirsiniz, örne?in
# ln -sf linux-2.0.2 /usr/src/linux
komutu, linux-2.0.2 dizinini aktif hale getirir. Art?k kaynak
dosyalar?n?n bulundu?u yer linux-2.0.2 dizinidir.
5.7 Modüller (Yüklenebilir Çekirdek Parçalar?)
Linux i?letim sistemi çekirde?inin boyu genellikle 400-600Kb
aras?ndad?r. Hantal çekirdeklerde bu say? 800Kb'lara kadar ç?kabilir.
Çekirde?in boyunun büyümesi, sistemin performans?n? olumsuz yönde
etkiler. Özellikle bilgisiz kullan?c?lar?n gerekli gereksiz tüm deste?i
çekirde?e yüklemesi s?kça görülür. Bunun önüne geçmek de deneyim ister.
Linux'a özgü özelliklerden birisi modüllerdir (yüklenebilir çekirdek
parçalar?). Modüller sayesinde nadiren gerekli duyulan bir çekirdek
parças? sadece gerekti?i zaman çekirde?e eklenir. Örne?in Java
programlar?n? her zaman çal??t?rmak istemiyorsan?z, bu deste?i modül
olarak derleyip bir kenara koyars?n?z. Ne zaman bir Java program?
çal??t?r?lacaksa bu modül haf?zaya yüklenecektir.
Bir modül, çekirde?in derleme a?amas?nda `M' parametresiyle tan?mlan?r.
Her deste?in modülü henüz geli?tirilmemi? olmas?na ra?men bu say? gün
geçtikçe artmaktad?r. ?lginizi çekebilecek modüller aras?nda disket
deste?i, yaz?c? deste?i, minix dosya sistemi deste?i veya SCSI ayg?t
sürücü deste?i say?labilir.
Bir modülü derledikten sonra modüle ait dosya /lib/modules dizini
alt?nda yeral?r. Burada istenilen bir modül
# insmod modul-ismi
komutuyla çekirde?e eklenir. Modülü haf?zadan ç?karmak için
# rmmod modul-ismi
yaz?n. Haf?zadaki modüllerin bir listesini görebilmek için de lsmod
komutu kullan?labilir.
kerneld komutu, arkaplanda çal??arak gerekli olan modülleri an?nda
yükler. Bu sayede çekirde?e eklemek için insmod komutuna gerek kalmaz.
Ayr?ca belirli bir süre içinde kullan?lmayan modülleri de çekirdekten
atar.
5.8 Yeni Yaz?l?mlar?n Yüklenmesi
Linux i?letim sistemi, benzerlerine nazaran çok büyük bir h?zla
geni?liyor. Her an yeni bir program, yeni bir yaz?l?m piyasaya ç?k?yor
ve bunlar? takip etmek de gittikçe zorla??yor. Bir ftp adresini kontrol
ettikten iki gün sonra tekrar bak?yorsunuz ki üç-be? yeni yaz?l?m
gelivermi?.
Tabi ki her an her program? makinan?za indirip açmak zorunda de?ilsiniz.
Buna ne zaman?n?z, ne de sabit diskiniz yeter (Linux'un sunsite ar?ivi
20GB'tan fazla yer kapl?yor!). Öyleyse tespih çeker gibi program
indirmek veya varolan yaz?l?mlar? güncellemek komik olur. Sadece gereken
zamanda gereken dosyalar? makinan?za kurmal? veya güncellemelisiniz.
Bu i?lem çekirdek için de geçerlidir. Baz? çekirdek fanatikleri
çekirde?i ç?kt??? anda makinalar?na indirir ve derlerler. Linux'a çok
önemli bir fonksiyon kazand?rmayacaksa her an çekirdek derlemek hem
zaman kayb? olur, hem de derleme esnas?nda sistemi yava?latarak di?er
kullan?c?lar? k?zd?r?r.
Kurmak istedi?iniz ve ftp adresinden bulup getirilen dosya çok büyük
ihtimalle tar ve gzip ile ar?ivlenip s?k??t?r?lm??t?r. Bu dosyan?n sonu
genellikle tar.gz, tgz veya tar.Z ile biter. Dosya kaynak koduyla veya
çal??t?r?labilir program olarak da??t?l?yor olabilir . Her iki durumda
da yap?lacak i?lemler birbirine benzer.
Öncelikle yaz?l?m?n aç?ld??? zaman hangi dizine kendini yerle?tirece?ine
bakmak gerekir. Bunu tar komutunun -t seçene?i ile kontrol edin.
compress ve gzip ile s?k??t?r?lm?? dosyalar için,
# tar -ztvf dosya.tar.gz
komutu kullan?labilir. Çok nadir durumlarda dosya, kendine ait bir dizin
yaratmaz, onlarca program? ve konfigürasyon dosyas?n? bulundu?unuz
dizine yazar. Karma??kl?k yaratan bu durumdan ancak ar?ivi ayr? bir
dizin alt?nda açmakla kurtulabilirsiniz.
Linux'çular yeni bir yaz?l?m? denemek istediklerinde ar?ivi genellikle
/usr/src veya /usr/local/src dizini alt?na kopyalarlar ve burada açarak
biraz sonra anlat?lacak konfigürasyon i?lemini uygularlar. Derleme
gerektirmeyen baz? programlar?n ise do?rudan kök dizinde aç?lmalar?
gerekebilir. Bu programlar aç?ld?klar? anda çal??maya haz?rd?rlar.
/usr/src veya /usr/local/src dizini alt?na dosyay? açt?ktan sonra bol
miktarda dosya ve dizinle kar??la?abilirsiniz. Buna en iyi örnek Linux
çekirde?idir. Burada yeralan baz? anahtar dosyalar yaz?l?m?n kurulmas?
için hayati önem arzeder.
Öncelikle README, README.linux ve varsa INSTALL dosyalar?n?n gözden
geçirilmesi gerekir. Bunlar s?rayla bir kullan?c? olarak dosyalar? nas?l
kuraca??n?z? ayr?nt?lar?yla söyler. Kurma a?amas?nda dikkat edilecek
dosyalardan ilki Makefile veya makefile dosyas?d?r. Bu dosyan?n içinde
(nadiren) küçük birkaç de?i?iklik yapmak gerekebilir. Di?er kontol
edilmesi gereken dosya ise varsa config.h dosyas?d?r. Bunu da sistem
gereksinimize göre de?i?tirmelisiniz.