[B]# shutdown -hf now
komutunu kullanabilirsiniz. Burada yer alan h parametresi sistemin "halt" edeceğini (tamamen kilitlenme) ve bir daha acılmayacağını belirtecektir.
Eğer herşey yolunda giderse makinanızın başında oturup calışmaya başlayabilirsiniz.
Sistemde calışmaya başlamak uzere ilk iş olarak kendinize calışmak amacıyla bir kullanıcı tanımlayın. Sistemde başka kullanıcı olacaksa, onlar icin de hesap acacaksınız. Kullanıcı hesabı acmak icin
# adduser
komutu size bu konuda yardımcı olacaktır. adduser (veya useradd) komutu , kullanıcı ismi, isim ve soyad, GID (grup kimliği), UID (kullanıcı kimliği) gibi birtakım sorular soracaktır. Bu komut hakkında detaylı bilgiyi Sistem Yonetimi bolumu altında bulabilirsiniz. root kullanıcısı sistem uzerinde sınırsız yetkiye sahip olduğundan sistem dosyalarını kazara değiştirmenize veya silmenize sebep olabilir.
Şimdi yeni hesabınızla sisteme girebilirsiniz. Alt F1 den Alt F6 ya kadar olan tuşlarla birden cok ekranda (sanal ekranlar) aynı anda calışabilirsiniz.
Bu noktadan sonra bazı uygulamaların ayarlamalarını yapmanız gerekecektir. Artık Linux yuklemek ile ilgili bir sorunuzunun kalmamış olmasını umuyorum. DOS kullanıcılarına Linux hakkında bilgi veren sevimli bir dokuman icin DOS2Linux Mini-HOWTO iyi bir başlangıc olabilir.
Acılış esnasında makinanızın ismi /etc/rc.d/rc.M dosyasında belirlenir. Bu dosyayı uygun şekilde değiştirerek makinanızın ismini de yeniden tanımlayabilirsiniz. Makinanızın ilk ismi darkstar olacaktır. Eğer TCP/IP ağ uzerinde calışıyorsanız, /etc/HOSTNAME dosyasının iceriğini değiştirerek veya hostname komutu kullanılara makina ismi de değiştirilebilir.
Bunların dışında konfigurasyon gerektiren bircok durum vardır. Bunlar icin NET-3 HOWTO dosyasını iyice okumalısınız.
2.5 Sorun Cıktığında
Tabii ki temennimiz sorun cıkmaması, ama her nedense her zaman bu satırları okuyacak birkac kişi olacaktır. Linux uzerinde kendi ihtiyacınıza gore ayarlanamayacak bir parametre yok gibidir. Bu ozelliği sayesinde son derece esnek bir calışma ortamı haline gelebilir. Aynı ozellik kişilerin coğu zaman kendi cozumlerini bulmalarını da beraberinde getirmektedir. Kendi bilgisayarınızda Linux calışmak icin bir miktar dokuman karıştırmanız kacınılmazdır.
Cıkabilecek en onemli sorun bilgisayarın acılmamasıdır. Bunun bircok sebebi olabilir. Acılış esnasında
İlk olarak LILO calışır.
Cekirdek yuklenir.
Hizmet veren yazılımlar teker teker calışmaya başlarlar.
Her aşama bircok satırda durumunu belirtecektir. Calışan yazılımlar veya yazılım parcalarının her biri birbirinden bağımsız olduğu icin acılış sırasında geldiğiniz nokta cok onemlidir. LILO calışmadığında veya cekirdek yuklenirken takılırsa boot disketi ile rahatlıkla sistemi acabilirsiniz. Ornek olarak Linux yuklu disk bolumunuzun /dev/hda2 olduğunu varsayalım. Boot disketi parametre istediğinde
mount root=/dev/hda2
yazmanız yeterli olacaktır. Bu durumda boot disketinde yer alan cekirdek ile belirttiğiniz bolumde yer alan Linux hiyerarşisi acılacaktır. Calışan bu sisteminiz icerisinde artık hatanın kaynağını daha rahat bulabilirsiniz.
Cekirdeğin yukleme esanasında takılması buyuk olcude cekirdeğin donanımı doğru belirleyememesinden cıkar. Mesela ethernet kartınızı yanlış tanımış olabilir. Bunu cozmenin temel yontemi cekirdek icerisinde kullanmayacağınız donanımlara ilişkin destekleri kaldırmak (Tum ethernet kartlarını destekleyen bir cekirdek yerine sadece kullanmanızın muhtemel olduğu ethernet kartlarına destek veren bir cekirdek derlemek) veya cekirdeğe yardımcı olabilecek acılış parametreleri vermek.
Cekirdek derlemek hakkında Kernel-HOWTO ve boot parametreleri hakkında BootPromt-HOWTO yardımcı olabilirler. Calışan sisteminizde bir arıza meydana gelip de makina aniden calışmamaya başlarsa en son yaptığınız değişiklikleri gozden gecirin.
Ve son olarak, sistemin calışmaması her zaman Linuxtan kaynaklanmayabilir, donanım ile ilgili sorunlar da yaşayabilirsiniz. Rasgele davranışlar, durup dururken cakılmalar, panik mesajları altında, bozuk sabit diskler, normalden yuksek frekansta calıştırılan işlemciler ve sistem saatine gore yavaş kacan veya bozuk RAMlar yatabilir.
2.6 Başlangıcta
Bu satırları okuduğunuza gore calışır durumda bir Linux sisteminiz var demektir. Hala silmediniz mi yoksa? Şaka bir yana, buyuk badireler atlattınız. Onunuze sayısız engeller cıkabilirdi. Kurarken elektrikler kesilebilirdi, sabit disk cizilebilirdi veya yanlış bolumu formatlayabilirdiniz. Ozellikle Linux Slackware dağıtımını kurmak, dokumantasyon olmadan veya hatırlı bir arkadaşın yardımı olmaksızın gercekten zordur.
Bu bolumde Linuxa kucuk bir giriş yapılacak, daha sonra da UNIX kullanmayanlar sistemle tanıştıracaktır. Bolum boyunca yapmanız gereken korkmadan sistem uzerinde kolaylıkla gezinti yapmak ve dosyaları kurcalamaktır.
Onceki bolumde sisteme girebilmek icin şifresi olmayan "root" kullanıcıyı kullanmıştınız. Bu kullanıcı sistemde en fazla yetkiye sahip kullanıcı olup sistem gorevlisi (sorumlusu) adını alır. Eğer root dışında bir kullanıcı hesabı tanımlanmışsa onu kullanın. Şifre yazıldıktan sonra komut istemcisine, yani kısaca kabuk dediğimiz programa girilir. Şifre yazılırken, başkalarının gormemesi icin ekrana basılmaz.
Kullanıcı isimleri veya şifrelerde buyuk ve kucuk harfler arasında fark vardır. Root, root ve ROOT, farklı kullanıcılara işaret eder. Klavyenin en sağındaki Caps Lock tuşunun yanmadığına emin olun.
Sisteme ilk girişte, aşağıdaki gibi bir satırla karşılaşacaksınız.
Welcome to Linux 1.2.13.
linux login: root
password:
Last login: Thu Feb 13 12:46:35 on tty1
Linux 1.2.13.
You have mail.
linux:~#
Genellikle komut istemcisinin sonundaki karakter, root kullanıcısı icin #, diğer kullanıcılar icin $ olur. Bu karakterden once de makina ismi yeralır. MS-DOSta olduğu gibi burada UNIX komutlarını girebileceğiniz kabuk (shell) uzerindesiniz.
Şifreyi değiştirmek icin kullanılan komut passwd dir. Bir kullanıcı sadece kendi şifresini değiştirirken roota herkesin şifresini değiştirme yetkisi verilmiştir. Herhangi bir sistemde hesap şifrenizi unutursanız, bunu sadece root değiştirebilir. Root iken passwd yazın ve enter tuşuna basın.
linux:~# passwd
Changing password for root
Enter new password: *******
Re-type new password: ******
Password changed.
linux:~#
Şifrenizi iyi saklayın. Root şifresini ele geciren birisi sistemde istediği değişikliği yapabilir. Şifre secimi icin Linux İşletim Sisteminde Guvenlik konu başlığına goz gezdirin.
Linux komutları hakkında bilgi almak icin man komutu kullanılır. Eğer kurulum aşamasında man dosyalarının kopyalanması sorusuna olumlu yanıt verilmişse bunlar /usr/man dizini altında bulunurlar. Orneğin passwd komutu hakkında daha detaylı bilgi almak icin
$ man passwd
yazın. Tum man sayfaları /usr/man dizini altında 8 ayrı dizinde saklanır (man1 .. man8). Bazı komutların man dosyaları birden fazla dizin altında bulunur, bir dosya komut hakkında temel bilgi verirken diğeri sistem programcılarına yonelik olabilir. Ornek olarak mount komutu, hem 2, hem de 8 numaralı man dosyalarıyla birlikte arşivlenmiştir. C programlayıcısı, mount komutuna ulaşmak icin
$ man 2 mount
yazarken normal kullanıcı,
$ man 8 mount
yazmalıdır. Bunun yanında başlığında belirli bir anahtar sozcuğu iceren tum man dosyalarını araştırmak icin apropos komutu kullanılır.
Her komut, bir veya birden cok parametre alabilir. Ornek olarak,
find . -name "*.txt" -print
komutu, bulunduğunuz yerden itibaren tum dosyaları araştıracak ve bunların arasından sonu .txt ile bitenleri ekrana basacaktır. Parametreler genel olarak "-" işaretleri ve bu işaretten sonra gelen parametre ismi ile belirtilirler.
2.7 Linux Komut Yapısı
UNIX ve benzeri işletim sitemlerinde kullanıcının komut yazmasını sağlayan, bu komutları yorumlayarak gerekli işlemleri yapan programlara kabuk (shell) adı verilir. UNIXte bir kullanıcı bir dizi kabuktan istediğini secebilir. Kabuklar ile ilgili ayrıntılı bilgi ileride verilecektir. Kullandığınız kabuk ne olursa olsun, gerek kabuktan kaynaklanan, gerekse UNIX komutlarının hepsinin uyduğu bazı standartlardan kaynaklanan bazı geleneksel yapılar vardır. Bunları bilmeniz ilk kez duyduğunuz bir komutun kullanımını bile kolayca cıkarabilmenizin yanı sıra, bir dizi genel hatadan kacınmanızı da sağlayacaktır.
· · · UNIXte (ve Linuxta) butun komutlar ve dosya isimlerinde buyuk/kucuk harf ayrımı onemlidir. Sistem komutlarının ve dosyaların coğu kucuk harfle yazılır.
· · · Komut ve dosya adlarında kullanacağınız bazı karakterlerin gerek dosya ve dizin yapısı, gerekse kabuk ve diğer komutlar nedeniyle bazı ozel anlamları vardır. Bu karakterlerden yeri geldikce soz edilecektir. Orneğin, `/ karakteri hicbir dosya adında bulunamaz (dosya ve dizinler icin ayrac olarak kullanıldığından). `- ile başlayan bir dosya oluşturulabilir olsa da silmeye kalktığında yeni bir UNIX kullanıcısının başına dert acabilir.
· · · UNIXte komutlara secenek verirken secenekten once `- karakteri kullanılır. Orneğin ls -l
· · · UNIX komutları tersi istenmedikce girdilerini standart girdiden (klavye) alır, cıktılarını standart cıktıya (ekran) yazar. Bu ozellik ileride anlatılacak olan yonlendirme ve boru (pipe) operatorleri ile birlikte komut satırından bircok işlemi kolayca yapmanızı sağlar.
UNIX kabukları komut satırından verilen komutu calıştırmadan once bir dizi karakteri yorumlayarak dosya ad(lar)ına cevirirler. Bu karakterler:
o o o * 0 dahil herhangi bir sayıda karakter yerine gecer. Orneğin rm * komutu butun dosyaları siler, ls -l a* komutu `a ile başlayan dosyaların listesini verir.
o o o ? tek bir karakter yerine gecer. Orneğin ?? adı iki karakterden oluşan butun dosyalar anlamına gelir.
o o o [] karakterleri arasında yazılan liste icindeki herhangi bir harfe donuşturulur. Orneğin cp *[abc] /tmp komutu `a, `b ya da `c ile biten butun dosyaları /tmp dizinine kopyalayacaktır. liste icinde aralarına `- işareti koyarak aralıklar verebilirsiniz. Orneğin, [A-Z]* buyuk harfle başlayan butun dosyalar anlamına gelir. Liste icindeki `^ karakteri sonrasında belirtilen liste dışındaki butun karakterler anlamına gelir. Orneğin *[^0-9]* adında rakam olmayan herhangi bir dosya anlamına gelecektir.
2.8 Dosya ve Dizin Yapısı
UNIX altında bazı karakterlerin ozel anlamları vardır. Dizin ve dosya isimlerinin başında nokta olması durumunda bu dosyalar gizli dosya haline gelir ve parametresiz yazılan ls komutuyla gorunmez.
Dosya ve dizin isimleri 255 karakteri aşamazlar.
Sisteme girince onceden tanımlanmış bir dizin altında bulunursunuz. Bu dizin normal kullanıcılar icin genellikle /home/ ve ardından gelen kullanıcı dizini ismidir. Bulunduğunuz dizinin ismini gormek icin pwd (print working directory) yazın. Temel dosya ve dizin kavramları hakkında detaylı bilgi alabilmek icin MS-DOS veya, en iyisi bir UNIX kitabı edinin.
$ pwd
/home/gorkem
$
UNIX komut yapısı DOSa cok benzer. Dizin değiştirmek icin cd , dizin yaratmak icin mkdir komutlarını sistemde sıkca kullanılır.
$ cd
$ pwd
Hiyerarşik bir sıraya sahip olan UNIXte en ustte / dizini (kok dizin) yeralır. Sistemdeki tum diğer dosya ve dizinler bunun altında toplanırlar.
~
işareti, kullanıcının ev dizinini gosterir. Ev dizinine gecin ve mkdir komutu ile benim isimli bir dizin yaratın. Dizini patikasını, bir başka deyişle kok dizininden itibaren ismini vererek de yaratabilirsiniz.
$ cd ~
$ pwd
/home/gorkem
$ mkdir /home/gorkem/benim
3. Kabuk İşlemleri
Sisteme girdiğiniz anda kabuk programının calıştırıldığından bahsetmiştik. Bu andan sonra yapacağınız tum işlemler bu kabuk programı tarafından yonetilir ve denetlenir. Kabuk, klavyeden girilen komutları calıştırarak bir arabirim gorevi yapar. UNIX (ve Linux) altında geliştirilen sayısız kabuk ceşidi ve bunların herbirinin kendine ait ozelliği vardır. Her programcı kendi zevkine hitap eden kabuğu secebilir, sistemde yeralan kullanıcılar farklı kabuklar uzerinde calışabilirler.
O an hangi kabuk uzerinde yeraldığınızı oğrenmek icin echo $SHELL yazın.
$ echo $SHELL
/bin/bash
Sıkca kullanılan kabuklar,
sh (Shell ya da Bourne Shell): İlk UNIX kabuğu.
ksh (Korn Shell): sh uyumlu, bircok ek programlama ozelliği iceren bir kabuk. Bu kabuk da yaygın bir kitle tarafından kullanılıyor.
bash(Bourne Again Shell): Kullanım kolaylığı bakımından en cok rağbet goren bash, GNU tarafından kaynak kodu olarak dağıtılıyor. bash sh ve ksh uyumluluğunu korurken, ozellikle etkileşimli kullanıma yonelik (komut tamamlama, gibi) bircok yenilik de icerir. Bu yazının hazırlandığı 1997 Temmuz ayı başlarında Bash 2.0.1 surumu cıkmıştı.
csh (C shell): Berkeley Universitesinde geliştirilen cshin C diline benzer bir programlama yapısı vardır.
tcsh: cshın biraz geliştirilmiş hali.
Yukarıdaki kabuk programlarından sh, ksh ve bash birbirleriyle uyumludur ve yukarıda en ilkelden en gelişmişe gore sıralanmışlardır. Aynı durum csh ve tcsh icin de gecerlidir. Kullanılan shell genellikle kişisel bir tercih nedeni olsa da, butun sistem scriptleri sh ile yazıldığından, sistem yoneticilerine sh ailesinden bir kabuk kullanmaları onerilir.
Kabuk programları genellikle /bin dizini altında yeralır. Kullanıcının sisteme girerken hangi kabuğu kullanacağı /etc/passwd dosyasında yeralır. Bunu değiştirmek icin chsh (change shell) komutunu kullanabilirsiniz.
$ chsh
Password:
Changing the login shell for cagri
Enter the new value, or press return for the default
Login Shell [/bin/sh]: /bin/bash
$
Sisteminizde NIS kullanılıyorsa chsh yerine yppasswd -s komutunu kullanmalısınız.
3.1 Yonlendirme
Kullanıcı, ekrana yazdığı bir komutun neler yaptığını en rahat şekilde komut tarafından ekrana yonlendirilen bilgilerden anlayabilir. Program, kullanıcıyı bilgilendirme amacıyla mumkun olduğu kadar cok, fakat ortalığı fazla karıştırmamak icin de mumkun olduğu kadar az bilgiyi ekrana vermelidir.
3.2 Standart Girdi, Cıktı ve Hata
Linuxta, programın ekrana yazılan bilgiyi iki sınıf altında toplayabiliriz. Birincisi, olağandışı bir durumu bildiren standart hata, diğeri de her turlu verinin yazıldığı standart cıktı. Program calıştığı andan itibaren bu iki kanal uzerinden akan bilgiler, programın calıştığı sanal terminale yazılırlar. Program girdilerini ise standart girdi aracı olan klavyeden alır.
Eğer bu bilgiler bir ekran boyundan (25 satır) fazla tutuyorsa bazı satırlar programcının gozunden kacabilir. Bunu onlemek amacıyla standart cıktı ve hata bir dosyaya yazılacak şekilde ayarlanabilir. Yonlendirme olarak da bilinen bu işlem UNIX altında (DOSta olduğu gibi) > karakteri ile gercekleştirilir.
Ornek olarak o an bulunduğunuz dizinde yeralan dosyaları ekrana getirin :
$ ls -al
Bu komut, standart cıktı olarak dosyaların bilgilerini ekrana getirecektir. Bu cıktıyı, bir dosyaya yonlendirelim ve dosyanın iceriğine goz atalım:
linux:~$ ls -al > liste
linux:~$ cat liste
total 16
drwxr-xr-x 5 gorkem users 1024 Feb 13 13:10 .
drwxr-xr-x 4 root root 1024 Jan 7 1980 ..
-rw-r--r-- 1 gorkem users 390 Feb 13 12:56 .Xdefaults
-rw-r--r-- 1 gorkem ftpadm 2016 Feb 13 13:09 .bash_history
-rw-r--r-- 1 gorkem users 1 Feb 13 12:57 .bashrc
-rw-r--r-- 1 gorkem users 163 Nov 24 1993 .kermrc
-rw-r--r-- 1 gorkem users 34 Nov 24 1993 .less
-rw-r--r-- 1 gorkem users 114 Nov 24 1993 .lessrc
drwxr-xr-x 2 gorkem users 1024 Jan 7 1980 .term
-rw-r--r-- 1 gorkem users 87 Feb 13 12:56 .xinitrc
-rw-r--r-- 1 gorkem users 2795 Feb 13 13:06 adres
-rw-r--r-- 1 gorkem users 0 Feb 13 13:10 liste
drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 mail
drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 perl
-rw-r--r-- 1 gorkem users 0 Feb 13 13:10 typescript
linux:~$
> karakteri standart hatayı dosyaya yonlendirmez. Bu işlem icin 2> kullanılır. Ama hatayı gorebilmek icin, hata yaratan bir komut yazmalıyız, değil mi ?
$ ls /deneme
/deneme : No such file or directory
$ ls /deneme 2> hata
$ cat hata
/deneme : No such file or directory
Aşağıdaki komutun işletilmesinin ardından standart cıktı oku1 dosyasına, standart hata ise oku2 dosyasına yazılacaktır. Bu dosyaları komutu calıştırdıktan sonra incelemek suretiyle neler olup bittiğini anlamak mumkun olur.
$ mkdir ~/deneme (deneme isimli bir dizin yarat)
$ touch ~/deneme/gecici (gecici isimli bir dosya yarat)
$ cat ~/deneme 2>oku2 >oku1
Kabuk, standart cıktı ve standart girdi icin sırayla 2 ve 1 numaralarının kullanımına izin verir. Yukarıda yeralan son komutta, standart hata mesajları icin 2 kullanılarak hataların oku2 dosyasına yazılmıştır. Aşağıda, cekirdek derlemek icin surekli kullandığım program yeralıyor. Yonlendirme sayesinde ekrana gelmesi gereken mesajlar kullanılmayan 9. sanal konsola yonlendiriliyor.
# make config
# make dep > /dev/tty9
# make clean > /dev/tty9
# time make zImage > /dev/tty9
Son satırdaki time komutu, kendinden sonra gelen komutun ne kadar zaman icinde calıştırıldığını gosterir. Cekirdek derlemede gecen zaman, makinanın gucu hakkında bir fikir verebilir. Peki ne hata, ne de cıktıyı ekranda gormek istemiyorsam ne yapmalıyım ? Bunun icin standart cıktı ve hatayı biraraya getirerek yonlendirilen her cıktının kaybolduğu ``kara deliğe atmak yeterlidir:
$ ls /deneme > /dev/null 2>&1
Yukarıdaki komutun yazılış sırasına dikkat edin.
Standart cıktı ya da standart hatayı yonlendirirken, > işareti kullanırsanız: dosya yoksa, oluşturulur ve komutun cıktısı dosyaya yazılır. Dosya varsa, iceriği yok olur, ve komutun cıktısı dosyanın yeni iceriği olur. Var olan bir dosyayının eski iceriğini tamamen silmek değil de komutun cıktısını dosyaya eklemek istiyorsanız >> kullanmalısınız. Bu durumda dosya varsa komutun cıktısı dosyanın eski iceriği korunarak sonuna eklenir, dosya yoksa oluşturulur ve komutun cıktısı dosyaya yazılır. Orneğin:
$ echo deneme1 >>deneme.txt
$ cat deneme.txt
deneme1
$ echo deneme2 >>deneme.txt
$ cat deneme.txt
deneme1
deneme2
$
Ornekte goruldugu gibi ilk komut deneme.txt dosyasını oluşturdu. İkincisi ise oluşan dosyanın iceriğini koruyarak ikinci komutun cıktısını bu dosyanın sonuna ekliyor.
Standart hata ve cıktıya ek olarak UNIXin desteklediği bir yonlendirme daha vardır: Standart girdi sayesinde bir dosyayı oluşturan satırlar, bir komut veya programa yonlendirilebilir. Daha once bir metin editor kullanarak hazırlamış olduğumuz raporu patrona kısa yoldan gondermek icin,
$ mail -s "rapor" patron < rapor.txt
Dosyanın iceriği, mail komutuna girdi olmuş ve rapor.txt dosyası patron kullanıcısına ``rapor konu başlığıyla e-posta ile gonderilmiştir.
3.3 Cok gorevlilik
UNIXin en buyuk silahlarından biri sureclerdir. Her surec sistemde bağımsız calışan, birbirini etkilemeyen ve herbiri kendi kaynağını kullanan programdır. Surecler arkaplanda veya kabuğun kontrolunde calışabilir. Cekirdek, her surecin kullandığı sistem kaynağından haberdar olur ve bu kaynakların surecler arasında adilce paylaşılmasından sorumludur.
Bir surec, aksi belirtilmedikce calıştığı sure icinde klavyeden bilgi alır ve ekrana bilgi verir.
Kullanıcıların haberi bile olmadan calışan surecler, Linux makinasındaki G/C işlemlerini gercekleştirebilmek icin surekli faaliyet icinde bulunurlar. Onlarca surecten bazıları kullanıcıların sisteme girmesini sağlarken (getty) bazıları da WWW ve FTP gibi İnternet tabanlı istekleri yerine getirir (httpd, ftpd).
4. Dosya ve Dizin İşlemleri
Tıpkı MS-DOSta olduğu gibi Linux dosya yapısının da hiyerarşik bir yapıya sahip olduğunu soylemiştik. Temel dosya bilgisi onceki konularda anlatıldığından burada sadece dosya ve dizinlerle ilgili ozelliklere değinilecektir.
4.1 Erişim Hakları
Erişim hakları, Linux dosya sistemi guvenliğinin belkemiğini oluşturur. Her dosyaya ayrı verilebilen erişim izinleri sayesinde cok daha rahat bir sistem yonetimi gercekleştirilebilir. Bu, konuya sadece sistem gorevlisi tarafından yaklaşıldığı zaman cıkartılabilecek bir sonuctur. Kullanıcı bazında erişim hakları bazen daha da anlamlı olabilir. Yanlış kullanıldığında hoş olmayan suprizlere yol acabilir. Linux altında uc ceşit erişim hakkı vardır :
· · · Okuma izni : Dosyanın okuma izni varsa iceriği gorulebilir, dizinin okuma izni varsa icerdiği dosyaların listesi alınabilir.
· · · Yazma izni : Dosyanın yazma izni varsa dosyayı değiştirebilir veya silebilirsiniz. Dizine yazma izni verildiğinde dizin altındaki dosyalar yazılabilir veya silinebilir.
Calıştırma izni : Dosyayı calıştırma hakkını verir.
Bir dosya veya dizin ilk yaratıldığı anda Linux tarafından ontanımlı bazı izinler verilir. Genellikle bu izin calıştırma ve okumadır. Dosyanın oluşma anında verilen izini değiştirmek icin erişim yetki kalıbı olarak da bilinen umask komutu kullanılır. Daha fazla bilgi icin komuta ait man dosyasına bakın.
Erişim haklarının dışında bir dosyanın uc izin duzeyi daha vardır. Bunlar, dosyanın sahibi, dosyanın grubu ve diğer kullanıcılardır. Dosyanın sahibi, o dosyayı oluşturan kişidir. Her kullanıcının bir grubu da olduğu icin, dosya oluşturulurken kullanıcı hangi grupta ise dosya da o gruba ait olacaktır. Dosyanın sahibi olmayan ve grubu da dosyanın grubuyla uyuşmayan sistemdeki kullanıcılar ``diğer sınıfına girerler.
4.2 Dosyanın Sahibinin ve Grubunun Değiştirilmesi
Bir dosyanın sahibini sadece sistemdeki root kullanıcı değiştirebilme yetkisine sahiptir. Dosya sahibinin değiştirilmesi icin chown komutu kullanılabilir. Yukarıdaki dosyanın sahibini ozgur isimli kullanıcı yapalım.
# chown ozgur deneme
Dosyanın yeni hali şoyle olur :
-rwxr-xr-x 2 ozgur users 182 Feb 12 03:58 deneme
chgrp komutu yardımıyla da dosyanın grubunu değiştirilebilir. Yukarıdaki dosyanın grubunu www yapmak icin
# chgrp www deneme
komutu kullanılabilir. chown komutu, dosyanın hem kullanıcısını, hem de grubunu değiştirme ozelliğine sahiptir. chown komutundan sonra kullanıcı ve grup isimlerini aralarında bir nokta kalacak şekilde yazın.
$ chown ozgur.www deneme
$ ls -l deneme
-rwxr-xr-x 2 ozgur www 182 Feb 12 03:58 deneme
4.3 Diğer Dosya Sistemlerinin Kullanılması
Bir Linux işletim sisteminde dosyaların ve dizinlerin herbirisi sabit disk, CDROM veya diğer bilgi saklamaya yarayan cihazların birer parcası olan "dosya sistemlerinde" tutulur. Linuxun desteklediği pek cok dosya sistemi vardır ve bunların her birisinin veri depolarken kullandıkları yontem birbirinden farklıdır.
Linuxta her dosya sistemi farklı bir dizinde tutulur ve bu dizinlerin bilgisi /etc/fstab dosyasında yeralır. Acılış anında bu dosyada hangi dosya sistemlerinin hangi dizinler altına yerleştirileceği okunur ve buna gore makina acılır. Linux, kendisi icin ozel olarak geliştirilen ext2 dosya sistemini kullanır.
Bir sistem gorevlisi olarak ceşitli dosya sistemlerini tanımalı, bu dosya sistemleri uzerinde hata oluşması durumunda zararı en aza indirecek yolu bilmelisiniz. Bilgisayar başında gecireceğiniz zamanınızın buyuk bir bolumunu dosya sistemleri uzerinde harcayacaksınız.
4.4 Sembolik Bağlantılar
Bazı durumlarda, bir dosyayı oluşturup bu dosyanın başka bir dosyayı işaret etmesi istenebilir. Genellikle sistem yoneticileri tarafından kullanılan sembolik bağlantı yardımıyla bir dosya veya dizin, bunlara karşılık gelen başka bir dosya veya dizin olarak gosterilir.
Aşağıda bir sembolik bağlantı orneği yeralıyor. Sistem gorevlisi, /root dizini altındayken /usr/src/linux dizinine gecmek istiyor. /usr/src/linux dizinine işaret eden bir bağlantı kurmak icin ln komutu kullanılır. -s parametresi, bu bağlantının sembolik olacağına işaret eder.
ln -s
linux:~# ls -l
total 116
drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel
-rw-r--r-- 1 root root 115695 Sep 15 1994 lodlin15.zip
drwx------ 2 root root 1024 Jan 7 1980 mail
-rw-r--r-- 1 root root 0 Feb 15 08:14 typescript
linux:~# ln -s /usr/src/linux linux
linux:~# ls -l
total 116
drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel
-rw-r--r-- 1 root root 115695 Sep 15 1994 lodlin15.zip
drwx------ 2 root root 1024 Jan 7 1980 mail
lrwxrwxrwx 1 root root 9 Feb 15 08:14 linux -> /usr/src/linux
-rw-r--r-- 1 root root 0 Feb 15 08:14 typescript
Bu işlemden sonra kullanıcının /usr/src/linux dizinine gecmesi icin cd linux" yazması yetecektir. Sembolik bağlantı dosyasını diğerlerinden ayıran, satırın en solundaki l karakteridir.
4.5 Dosya Arşivleme ve Sıkıştırma
Linux altında dosya arşivlenmesi ve sıkıştırılması neredeyse belirli ve standartlaşmış birkac komut ile gercekleştiriliyor. tar komutu yardımıyla istenilen dosyaları arşivleyebilir, bunların uzerine yenilerini ekleyebilir, istediğiniz zaman da tekrar acıp eski haline getirebilirsiniz. GNU gzip komutu ise dosyaların sıkıştırılması (zip) ve sıkıştırılmış dosyaların acılması (unzip) işlemlerini yapabiliyor. Fazla disk alanınız yoksa bu iki komut her zaman yardımınıza koşacaktır.
4.6 Dizin Tarama
Linux işletim sistemini ilk kurduğunuz anda, yuzlerce dizin altında binlerce dosyanız olacaktır. find komutu, bu dosyaların arasında tarama yapabilmek icin geliştirilmiştir. Bu komutla sadece dosya isimlerine değil, dosyanın sahibi, erişim hakları, son erişim tarihi gibi verilere de ulaşmak mumkundur. find komutunun en sık kullanış şekli şudur :
find -name
dizin-ismi yerine taranacak olan dosyanın bulunduğu dizin ismi yazılır. -name parametresinden sonra ise aranan dosyanın ismini girin. Burada "*" ve "?" gibi joker karakterlerini de kullanabilirsiniz. (Bu gibi ozel karakterler hakkında daha geniş bilgi Bash kabuğu konusu altında bulunabilir)
Aşağıda, find komutunun kullanımına ilişkin birkac ornek yeralıyor.
$ find . -name "*.html"
(bulundugunuz dizinden itibaren sonu .html ile biten dosyalari arar)
$ find /home/halil -name "screen"
(/home/halil dizininden itibaren screen isimli dosyalari arar)
Bu komut, -type d parametresi yardımıyla sadece dizin isimleri arasında arama yapar.
$ find /usr/ -name "linux" -type d
find komutuna bir alternatif olan locate komutu ile dosyalar cok kısa bir surede taranabiliyor. update komutu, her sabah belirli bir saatte sistemdeki tum dosya ve dizin isimlerini bir veri tabanına yukler. Daha sonra bu dosyada yeralan belirli bir dosya veya dizin ismini locate ile arayabilirsiniz:
# locate pico
/usr/bin/pico
/usr/man/man1/pico.1.gz
Yukarıdaki komut ile icinde pico kelimesi gecen dosyaları bulduk.
4.7 mtools MSDOS Arabirimi
Linux altından, MS-DOS formatlı disketlere ulaşmayı kolaylaştıran paketin ismi mtools olarak biliniyor. Bu isim, paketin tum komutlarının ilk harfinin "m" olmasından kaynaklanmış. Paketle birlikte gelen ceşitli yardımcı programlar sayesinde MS-DOS formatlı diskette yeralan dosyalar listelenebilir, silinebilir, disket formatlanabilir, hatta disketin kimliği değiştirilebilir.
Son cıkan mtools paketi, 2MB formatlı disketleri de tanıyabiliyor. Aşağıda, mtools paketinden cıkan bazı komutlar ve ornek kullanımları gosteriliyor.
mdir : disketin iceriğini goruntuler.
linux:~# mdir a:
Volume in drive A is SYSTEM_BT
Directory for A:
IO SYS 40566 9-30-93 6:20a
MSDOS SYS 38138 9-30-93 6:20a
AUTOEXEC BAT 91 3-29-95 10:23a
NDD
3-29-95 10:26a
CHKLIST MS 81 11-07-96 7:00p
VGA_45
3-29-95 10:28a
YARDIM
3-29-95 10:17a
UTIL
3-29-95 10:17a
VIRUS
3-29-95 10:17a
9 File(s) 291328 bytes free
linux:~#
mcopy : Bir dosyayı Linuxtan diskete, disketten Linuxa aktarır.
linux:~# mcopy a:/autoexec.bat .
Copying AUTOEXEC.BAT
mdel : DOS dosyasını siler
mformat : Disketi formatlar.
mmd : Disket uzerinde dizin oluşturur.
MSDOS mtools arabirimi aynı zamanda VFAT tipi uzun dosya isimlerini de ekranda gosterebilir. Eğer dosya ismi, tek bir DOS ismi icine sığmıyorsa ve 8+3 kuralını bozuyorsa uygun bir kısa isim yaratılır.
Bunun yanında mtoolsun 2 Mblık disketleri okuyabilme ozelliği de vardır. mtools paketinin konfigurasyon dosyası /etc/mtools.conftur. Bu dosyanın kullanımı icin mtools(1) man dosyasından yararlanabilirsiniz.
5. Linux Sistem Yonetimi
Bir işletim sistemi, marka ve modeli ne olursa olsun bakım isteyen bir aractır. Yapılacak kucuk bir hata, veya hatayı gosteren bir işaretin gozardı edilmesi, zaten değerli olan zamanın boşa gitmesine neden olur. Linux da acık bir işletim sistemi olduğundan, sorumluluk sahibi sistem yoneticisi tarafından acık tutulduğu sure icinde verimli ve duzgun calışması icin gerekli ozen gosterilmelidir. İnternet uzerinde uzerinde 500 kullanıcı olan , veya ftp.linux.org adresi gibi her hafta onbinlerce ziyaretcisi olup ağır sorumluluklar yuklenen Linux makinaları vardır. Bunların bir saat boyunca bile kapalı kalması, o anda bağlanmayı bekleyen pek cok kullanıcıyı mağdur durumda bırakacaktır.
Performansı etkileyen unsurların başında, onlemek pek de elinizde olmasa da elektrik kesintileri ve makinanın kapalı olduğu zamana denk gelen cekirdek değişimleridir. Bu tur donanımsal etkileri bir tarafa bırakırsak sistem yoneticisinin uyması gereken ve İnternet etikleri dediğimiz davranış kuralları vardır. Bu kurallara oncelikle sistem sorumlusu uymalı ve kullanıcıları da uymaya zorlamalıdır. Acık işletim sistemlerinin en buyuk sorunlarından biri olan guvenlik konusuna sistem yoneticisi belirli gunler zamanının bir bolumunu ayırmalıdır. Kullanıcılardan gelebilecek her turlu saldırı, sisteme onarılması cok zor olabilecek zararlar verebilir. Bunun icin duzenli olarak dosyaları kontrol edin ve şupheli durumlarda araştırma yapmaktan cekinmeyin.
Yukarıdaki tabloya bakarak işinizin zor olduğu kanısına kapılmayın, zira tum bu denetleme mekanizmasını basitleştirebilirsiniz. Yapılacak tum rutin işleri bir programa yazıp gunun veya haftanın belirli saatlerinde bu programı calıştırın ve olabilecek tum hata mesajlarını bir dosyaya yazın. Bu dosyayı boş bir vakitte inceleyerek programın ne kadar duzgun calıştığını gozlemleyebilirsiniz. Bunun yanında sistem yonetimini 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 (OReilly) bu yonde tavsiye edilebilecek kitaplar. Piyasada bulunan Turkce kitapların hicbirisinde sistem yonetimine ciddi olarak değinilmediği icin Turkce yayın bulmak gayet zor.
5.1 Yetkili Kullanıcı ve Diğer Kullanıcılarla İlişkiler
Sistemin en buyuk sorumlusu root şifresini bilen kullanıcıdır. Yukarıda da belirtildiği gibi bu şifrenin sorumluluğu buyuktur. Sistem yoneticisi, makinadaki kullanıcıların isteklerini ve şikayetlerini yonelttikleri tek merci durumundadır. Burada karşılıklı guven sozkonusudur, bunu da sistem gorevlisi herkese hissettirmelidir. root kullanıcısının, başkalarından gozunuz gibi sakladığınız e-posta ve dosyaları sizden habersiz okuduğunu oğ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 hicbir dosyayı silmeyin veya iceriğ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 Linuxa olan ilgilerini percinleyebilir. Orneğin /etc/motd ve /etc/issue dosyalarına periyodik olarak cekirdek değişimlerini ve eklenen uygulama programlarını haber veren birkac satır iliştirebilirsiniz. Sistemde acılan her kullanıcı hesabına Linux Cokca Sorulan Sorular (Linux CSS), ceşitli UNIX belgeleri ve İnternet hakkında bilgilendirici dokumanları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ı acmadan once birkac basit kuralı tanımlayıp kullanıcılardan bunlara uymalarını istemelisiniz. En basitinden birkac kural, bir hesabın birden fazla kişi ile kullanılmaması, sistemin guvenliğini zedeleyecek *****, cops, satan gibi programların diğer kullanıcıların zararına calıştırılmaması ve sistem kaynaklarının sorumsuzca tuketilmemesi olarak sayılabilir.
Siz, en iyisi yukarıda yeralan kuralları birkac madde halinde yazın ve sistemdeki herkesin bu maddelere uyacağını taahhut eden imzasını alın. Tatsız durumların cıkmaması icin de onlem almayı ihmal etmeyin.
5.3 Sistemin Yedeklenmesi
Makinanızın belirli aralıklarla yedeklenmesi, sistem guvenliğinin bir parcası sayılabilir. Donanımdan meydana gelen bir hata sonucu veya yanlışlıkla girilen bir komut, sistemi acılamaz hale getirebilir. Ancak yedekleme ile bu tur kullanıcı hatalarının onune gecebilirsiniz. Yedekleme genellikle tum sistem uzerinde yapılmaz. Sadece onemli sistem bilgilerini iceren dizinler yedekleme aşamasına girmelidir.
Yedekleme uniteleri olarak teyp, disket veya başka diskler kullanılabilir. Teypler, buyuk miktarda yedekleme işlemleri icin on plana cıksa da birkac dosyadan oluşan paketlerin korunması soz konusu olacaksa disketler daha pratiktir. İnternet uzerinde ise bağımsız bir makina, kendi rutin gorevi dışında yerel ağda bulunan makinaların yedeklerini belirli gun ve saatlerde almak uzere programlanabilir.
Sistemde fazla miktarda kullanıcı varsa yedekleme işlemi ciddi bir duzene oturtulmalıdır. Sistemdeki hayati dosyalar orneğin her hafta, uzerinde kullanıcıların bulunmadığı akşam saatlerinde yedeklemeye sokulabilir.
Yedekleme icin birkac yol onerilebilir. Kullanışlı olması icin yedeklemeyi yapan program, yedeklenen dosyalar arasındaki belirli bir dosyayı kolayca acabilmelidir. Bunun yanında, yedek bilginin de bozulması ihtimali vardır. Yedeğin icindeki tek baytın bozulması, bazı durumlarda tum yedeğin cop yığını haline gelmesine yol acabilir. Doğru yedekleme programının kullanılması bu anda onem kazanır.
Yedeklenecek olan dizinlerden en onemlileri, sistem konfigurasyon 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 icin yeriniz bolsa /tmp dizinini de koyabilirsiniz.
Elektronik postaları ( /var/spool/mail) da unutmamak gerekir. Yoksa, cok meşhur olan "e-meyılım cyber-spacede kayboldu" cumlesini sıkca 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 icin z seceneğini vermek yeterli olur. Sıkıştırarak yedekleme disket ya da teypte yer kazandıracaktır, ancak hata olduğunda verilerin kurtarılması daha zor olacaktır. Acmak icin
$ tar xf /dev/fd0
komutu yeterlidir. Sıkıştırılarak diskete atılan yedekler icin acarken de "z" kullanın. Disketleri sıra ile numaralandırmayı ihmal etmeyin, yoksa bir disketten fazla yer kaplayan arşivleri acamazdınız.
Linuxta gerek SCSI, gerek floppy teyp desteği vardır. Ozellikle cok veri yedekleyecekseniz teypler kacınılmaz olur. Teyplere yedek alırken de yukarıdaki floppy orneklerindeki gibi tar kullanabilirsiniz. tarın yanı sıra sıkca kullanılan yedekleme komutları arasında dump ve restore, cpio ve dd gosterilebilir. Linuxta ilk SCSI teyp surucuye /dev/st0, ikinciye /dev/st1 ... kullanarak, PClerde sıkca kullanılan ``floppy teyplere de /dev/ftape uzerinden 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 surucunun yeteneğine ve teybinizin uzunluğuna gore değişir. Ornek olarak, butun sistemin tar kullanarak ilk SCSI teybe yedeklemek icin,
# 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 surucu ile butun makinalarınızın, hatta Windows makinalarınızın bile (Linuxun yardımıyla) yedeğini alabilirsiniz. Bu iş icin amanda gibi daha ozelleşmiş ve yedekleme işlemini otomatikleştiren bir program kullanabileceğiniz gibi, GNU tardan da yararlanabilirsiniz. Orneğin tar ile, cclub.metu.edu.tr makinasından, linux.org.tr makinasındaki floppy teybe yedek almak icin,
cclub:~# tar cvf linux.org.tr:/dev/ftape /home
yukarıdaki komutun calışması icin linux.org.tr makinasının rootunun .rhosts dosyasında cclub makinasının rootuna izin verilmiş olması gerekir. Bu işlem guvenlik icin sakıncalı olduğundan, bu iş icin ozel bir kullanıcı acmak gibi bir yonteme başvurulabilir. Orneğin linux.org.trda yedek adlı bir kullanıcı actığımızı duşunelim. Bu durumda yukarıdaki komutu,
cclub:~# tar cvf [email protected]:/dev/ftape /home
şeklinde yazabiliriz.
5.4 Sistemin Guncellenmesi
Tekrar Linux yuklenecek olan makina uzerinde 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 bolumu değiştirmektir. Takas alanının ayrılması, kullanıcı alanının ayrılması gibi işlemler bu durumda onceden yapılmış oluyorlar. Ancak yeni işletim sisteminin yuklenmesinin bazı zararları da var.
Herşeyden once calıştığı bilinen bir işletim sistemi yenisi ile değiştiriliyor. Gercekten bunu gerektirecek bir sebep olmadıkca bu tur guncellemelerden kacınılması veya en aza indirilmesi gerekir. Yeni bir sistem, yeni bilinmeyenler ve az da olsa bile calışmama riski getirecektir.
Eğer sistem uzerinde belirli hizmetler veriliyorsa o hizmetlere ilişkin verilerin bu guncelleme 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 yuklenmiş paketlerin onceden yedeklenmesi gerekir. Yoksa herşeye yeniden başlamak gerekebilir.
Guncelleme icin iki yontem akla gelebilir, doğrudan yeni sistemi eskisinin uzerine bindirmek veya eskisini silerek yeniden yuklemek. Slackware surumu icin en sağlıklısı eski sistemi silmektir. Cunku değişik dağıtımlarda dosya dağılımı farklılıklar gostere bilmektedir. Bunun sonucunda bazı dosyalar birden fazla yerde gozukebilmektedirler. Bir diğer sakınca ise setup yazılımının bazen bu durumda şaşırabilmesi ve hata vermesi. Bazı ticari Linux surumleri (Red-Hat, Debian, Caldera gibi) eski surumu silmeye gerek bırakmadan sistemi guncelleme ozelliğine sahipler.
Guncellemeniz gerekebilecek dizinler, /var/spool/mail, kullanıcı dizinleri (root dahil), /usr altında gerekli dizinler,/var/adm/ ve /etc olarak sayılabilir. Bazen /etc icinde yer alan dosyaların yeri veya şekli değişmiş olabilir. Onun icin en guvenlisi teker teker dosyaları inceleyip kopyalamaktır. Belirli dosyaları yeni sistemi kurduktan sonra hemen kopyalayabilirsiniz :
/etc/group
/etc/printcap
/etc/hosts ...
Daha once shadow kullanmayan bir sistemden shadow sistemine geciyorsanız, /etc/passwd ve /etc/shadow dosyalarında gerekli değişiklikleri yapmadan yeni yerine kopyalamayın.
5.5 Cekirdeğin Derlenmesi
Bu bolumde, cekirdeğin konfigurasyonu ve derlenmesi icin gerekli bilgiler vardır. Cekirdek derleme uzun ve zahmetli bir işlemdir. Derleme aşamasını en kısa zamanda ve en uygun yoldan gercekleştirmek gerekir. Derleme işlemi, kullanıcının onune kafasını karıştıracak kadar cok secenek sunar.
Nedir bu cekirdek? Genel anlamda cekirdek, yazılımın ve donanımın arasında bekleyerek iletişimi sağlayan bir arabirimdir. Calışan tum programların ve sureclerin hafıza ile olan ilişkilerini duzenler. İşlemcinin gucunun tum bu programlar arasında adil bir şekilde dağıtımını uzerine alır. Bu işlemleri kullanıcının haberi olmadan her an durmaksızın yapar.
Cekirdek kaynak dosyaları diskte hatırı sayılır bir alan tutar. Orneğin surum 2.0.20 yaklaşık 6Mb disk alanı kaplar. Acıldığı zaman ise toplam kapladığı alan 24 Mb olur. Derleme aşamasından sonra bu rakam 30 Mbyi gecer. Her eklenen aygıt surucu desteği bir miktar daha yer alır.
Kullandığınız sisteme gore cekirdeğin derlenme suresi değişkenlik gosterir. 12 Mb 486DX4/100 makinasında, 5 dosya sistemi desteği, ağ desteği ve ses kartı surucusu ile yaklaşık 30 dakika surer. Aynı konfigurasyonu iceren cekirdeğin derlenmesi ise daha gucsuz bir makina olan 8Mb 386DX/40 altında 1.5 saati bulur. Derlerken gidip cayınızı icin, biraz televizyon seyredin. Makinaniz 386 ise bir banyo alıp dışarı cıkın, alışveriş yapın. Cok umitsiz bir durumdaysanız, yapılacak en iyi şey en yakın bilgisayar satıcısına uğrayarak yeni fiyatları sormak :-)
Cekirdek kaynak kodu , ODTU ftp arşivindeki adresinden veya tsx-11.mit.edu adresinin yansısını 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.
Aşağıdaki ornekte ODTU ftp arşivinden 2.0.20 surumunun alınışı 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 [email protected] !
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 [email protected]
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.
Sisteme root olarak giriş yapın ve /usr/src dizinine gecin. Linuxun kurulması aşamasında cekirdekleri de kurmuş iseniz bu dizinde linux isminde ve eski cekirdeğin kaynak kodlarını kapsayan bir alt dizin goreceksiniz. Genellikle her kullanıcının yaptığı, bu dizinin ismini o an calışan cekirdeğin surumune gore değiştirmektir. Cekirdek surumunu bulmak icin ise uname -r komutunu kullanabilirsiniz.
$ uname -r
2.0.23
Bu komuttan cekirdeğin 2.0.23 surumu olduğunu anlayabiliriz.
Cekirdek kodunu iceren paketi acmadan once /usr/src dizinine kopyalayın, ve acmadan once bu dizinde linux isimli bir dizinin olmadığına emin olun. Şimdi /usr/src icinde iken sıkıştırılmış cekirdek kodunu tar komutu yardımıyla acı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
Cekirdeğin Kurulması
LILO, bilgisayarın acılışı anında cekirdek ile ilgili duzenlemeleri okur, buna gore hangi cekirdekten acması gerektiğini anlar. Konfigurasyon dosyası biraz karmaşık olmasına rağmen kullanım aşamasında buyuk yararlar sağlar. /etc/lilo.conf dosyasının icinde gerekli olan kurulum bilgileri vardır. Bu dosyanın bir bolum aşağıda goruluyor.
image = /vmlinuz
label = linux
root = /dev/hda1
other = /dev/hda1
label = dos
table = /dev/hda
image = ibaresi kurulu olan cekirdeğe işaret eder. Coğu kullanıcı bu kısma vmlinuz yazar. label = bolumunde hangi işletim sistemi veya cekirdek surumunun acılışta kullanılacağı yazılır. Hemen altındaki root bolumunde ise label = kısmında secilen işletim sisteminin hiyerarşik sırada en ust dizin yapısı yazılır. Eski cekirdeğin bir yedeğini alın ve yeni derlediğiniz cekirdeği image = satırında belirtilen yere kopyalayın.
# cp zImage /vmlinuz
Şimdi LILO programını calıştırın. Komut satırında lilo yazmak yeterlidir. `* karakteri, calıştırılacak ilk cekirdeği veya sistemi gosterir.
# lilo
Added linux *
Added dos
LILO ve konfigurasyonu hakkında , daha fazla bilgi LILO-NASIL cevirisinden alınabilir.
Yeni bir cekirdeği derledikten sonra LILO uzerinden ekleme yapmak ve acılış 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 cekirdeğin sabit disk uzerindeki yerini, ismini ve Linux işletim sisteminizin kok dizinini yazın. Bunlara ek olarak, acılış anında bekleme sağlamak ve secim yapabilmek icin konfigurasyon dosyasının başına delay = xxx ekleyebilirsiniz. xxx sayısı, gecikme zamanı saniyenin onda biri olarak verilir. Bu sayede acılış anında , orneğin shift tuşuna basılarak istenen cekirdeğin ismi (label = satırında yazılan isim) secilir ve calıştırılır.
Cekirdeğin Yamanması (patch)
Cekirdeğin her yeni surumuyle birlikte bir onceki surumunun yaması da gelir. Yamayı uygulamak, tum cekirdeğin tekrar derlenmesinden daha kolaydır. Ornek olarak, elinizde 2.0.10 cekirdeği var ve ftp adresinde 2.0.11 surumu bekliyor. Halihazırdaki cekirdeği 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 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 goremeyebilirsiniz. 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 onceki konuda anlatılmıştır.
patch komutunun alabildiği bazı secenekler vardır. patch -s komutu oluşabilecek tum hata mesajlarını ekrana yazar. Diğer yama secenekleri man patch yazarak gorulebilir.
Birkac yamanın ardından, .orig uzantılı dosyalar etrafta dolaşmaya başlar. Bu dosyalar gereksizdir, buyuk yer kapladıkları icin 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 ;
5.6 Moduller (Yuklenebilir Cekirdek Parcaları)
Linux işletim sistemi cekirdeğinin boyu genellikle 400-600Kb arasındadır. Hantal cekirdeklerde bu sayı 800Kblara kadar cıkabilir. Cekirdeğin boyunun buyumesi, sistemin performansını olumsuz yonde etkiler. Ozellikle bilgisiz kullanıcıların gerekli gereksiz tum desteği cekirdeğe yuklemesi sıkca gorulur. Bunun onune gecmek de deneyim ister.
Linuxa ozgu ozelliklerden birisi modullerdir (yuklenebilir cekirdek parcaları). Moduller sayesinde nadiren gerekli duyulan bir cekirdek parcası sadece gerektiği zaman cekirdeğe eklenir. Orneğin Java programlarını her zaman calıştırmak istemiyorsanız, bu desteği modul olarak derleyip bir kenara koyarsınız. Ne zaman bir Java programı calıştırılacaksa bu modul hafızaya yuklenecektir.
Bir modul, cekirdeğin derleme aşamasında `M parametresiyle tanımlanır. Her desteğin modulu henuz geliştirilmemiş olmasına rağmen bu sayı gun gectikce artmaktadır. İlginizi cekebilecek moduller arasında disket desteği, yazıcı desteği, minix dosya sistemi desteği veya SCSI aygıt surucu desteği sayılabilir.
Bir modulu derledikten sonra module ait dosya /lib/modules dizini altında yeralır. Burada istenilen bir modul
# insmod modul-ismi
komutuyla cekirdeğe eklenir. Modulu hafızadan cıkarmak icin
# rmmod modul-ismi
yazın. Hafızadaki modullerin bir listesini gorebilmek icin de lsmod komutu kullanılabilir.
kerneld komutu, arkaplanda calışarak gerekli olan modulleri anında yukler. Bu sayede cekirdeğe eklemek icin insmod komutuna gerek kalmaz. Ayrıca belirli bir sure icinde kullanılmayan modulleri de cekirdekten atar.
5.7 Yeni Yazılımların Yuklenmesi
Linux işletim sistemi, benzerlerine nazaran cok buyuk bir hızla genişliyor. Her an yeni bir program, yeni bir yazılım piyasaya cıkıyor ve bunları takip etmek de gittikce zorlaşıyor. Bir ftp adresini kontrol ettikten iki gun sonra tekrar bakıyorsunuz ki uc-beş yeni yazılım gelivermiş.
Tabi ki her an her programı makinanıza indirip acmak zorunda değilsiniz. Buna ne zamanınız, ne de sabit diskiniz yeter (Linuxun sunsite arşivi 20GBtan fazla yer kaplıyor!). Oyleyse tespih ceker gibi program indirmek veya varolan yazılımları guncellemek komik olur. Sadece gereken zamanda gereken dosyaları makinanıza kurmalı veya guncellemelisiniz.
Bu işlem cekirdek icin de gecerlidir. Bazı cekirdek fanatikleri cekirdeği cıktığı anda makinalarına indirir ve derlerler. Linuxa cok onemli bir fonksiyon kazandırmayacaksa her an cekirdek 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 cok buyuk ihtimalle tar ve gzip ile arşivlenip s
Linux-2
Linux0 Mesaj
●40 Görüntüleme