1.3. Bir UNIX sisteminde temel hizmetler
Bu bölüm fazla ayrıntıya girmeden bazı önemli Unix hizmetlerini anlatmaktadır. Daha sonraki bölümlerde daha ayrıntılı açıklanmaktadır.
1.3.1. init
Bir Unix işletim sistemindeki en önemli hizmet tek başına init tarafından sağlanmaktadır. Açılış esnasında ilk başlayan ve önyükleme sonrasında son kapanan hizmet init hizmetidir. init açılışta; artalan süreçlerinin başlatılması, dosya sisteminin bağlanması ve denetlenmesi gibi bazı ufak tefek işlerin yapılmasını sağlar.
init'in yaptığı işlerin tam listesi init'in açılış kipinde yapılan seçime bağlıdır.
Tek kullanıcılı kip: root haricinde hiç kimse bağlanamaz ve root, konsolda bir kabuk kullanır.
Çok kullanıcılı kip:aynı anda pek çok kullanıcının bağlanabildiği kiptir. Linux sistemleri genelde bu kipte açılır.
Bazı sürümlerde bu iki kip genel konumlar olarak alındıktan sonra X kipi de eklenerek bunlar üçlenmiştir. Bunlara çalışma seviyeleri (runlevel) denir.
Linux 0-9 arasında 10 adet çalışma seviyesine izin verir. Ama çoğu dağıtımda bunları bazıları tanımlıdır. Diğerleri kullanılmaz.
0
: sistemi kapatır.1
: tek kullanıcılı kip2
: çok kullanıcılı ancak NFS kapalı3
: çok kullanıcılı kip5
: çok kullanıcılı kip, açılışta X'e geçiş yapılır.6
: sistemi yeniden başlatır.
/etc/inittab
dosyasının içeriği bu seviyeler
hakkında bilgi içermektedir ve açılışta hangi kipte çalışmaya
başlanılacağı yine bu dosya içinde tanımlanmıştır. Bu dosya
sayesinde dağıtımınızda hangi çalışma seviyelerinin tanımlı
olduğunu bulabilirsiniz.
Normal bir açılışta init, agetty(8) sürecinin çalışmasını sağladıktan sonra sistemdeki öksüz süreçleri evlat edinir. (Unix işletim sisteminde bütün süreçler tek bir ağaç altında olmak zorundadır. Bu yüzden bağımsız süreçler init'e bağlanır.)
Sistem kapatıldığı zaman init, süreçleri öldürür, dosya sistemlerini ayırır, işlemciyi durdurur ve yapılması istenen tanımlı diğer işlevleri yerine getirir. Bir Unix işletim sisteminde ilk gelen ve en son giden her zaman init'tir.
1.3.2. Uçbirimlerden bağlanmak
Seri hatlar üzerinden uçbirimden ve X window oturumu kapalı iken konsoldan bağlanmak için agetty(8) kullanılır. init her uçbirimden ayrı ayrı bağlanabilmek için agetty(8) sürecinin bağımsız örneklerinin oluşturulmasını sağlar. agetty(8) kullanıcı isimlerini okur ve parolaları okumak üzere login(1) uygulamasını çalıştırır. Şayet kullanıcı ismi ve parolası doğru ise login(1) kullanıcının çalışması için bir kabuk açar. Her hangi bir sebepten dolayı kabuk kapatılırsa (kullanıcının ayrılması, vb...) veya kullanıcı ismi ile parola uyuşmaz ve login(1) uygulaması kapatılırsa, init bunu fark eder ve yeni bir agetty(8) sürecini devreye sokar. Çekirdeğin kullanıcıların sisteme bağlanması ile bir alakası yoktur. Bunlar tamamen sistem yazılımları tarafından düzenlenir.
1.3.3. Syslog
Çekirdek ve bir çok sistem yazılımı hata, uyarı ve buna benzer pek çok ileti üretir. Bu iletilerin daha sonra (fazla geç olmadan) incelenmesi çok önemlidir. Bu nedenle bu iletiler bir dosya içerisine yönlendirilmelidir. Bunu syslog(3) yapar. Şayet istenirse iletilerin içerik ve önemlerine göre ayrı ayrı dosyalama yapmak da, bu uygulamanın ayarları sayesinde mümkündür. Örneğin; çekirdek iletileri içeriklerinin önemli olmasından dolayı ayrı bir dosyaya yönlendirilmekte ve oraya yazılmaktadır. Oluşabilecek sorunların çözümü için bu iletiler düzenli olarak izlenmelidir.
1.3.4. Süreli komut uygulamaları: cron ve at
Sistem yöneticileri ve kullanıcılar sık sık belli komutları düzenli
olarak kullanmak zorundadır. Örneğin; sistem yöneticisi, geçici
dosya ve dizinlerin tutulduğu /tmp
ve
/var/tmp
dizinlerinin içerisini, disk üzerinde yer açmak -eski dosyalardan
kurtulmak- çalışması bittikten sonra kendini temizleyemeyen
dosyalardan kurtulmak amacıyla silmek isteyebilir.
cron(8) hizmeti bu tür işleri yapar. Her kullanıcı, kendi istediği zamanda istediği komutların çalışmasını sağlayacak bir crontab(5) dosyasına sahip olabilir ve içeriğini düzenleyebilir. cron(8) bu tanımlanmış komutların çalıştırılmasından sorumludur.
at hizmeti de cron hizmetine benzer, ama aralarında temel bir farklılık vardır. at hizmetinde komutlar verildiği anda sadece bir kez çalıştırılır ve daha sonra tekrar edilmezler.
Daha ayrıntılı bilgi için cron(8), crontab(1), crontab(5), at(1) ve atd(8) man sayfalarına bakabilirsiniz.
1.3.5. Grafik kullanıcı arayüzü
Unix ve Linux işletim sistemleri kullanıcı arayüzlerini çekirdeğe dahil etmezler onun yerine, bu arayüzlerin kullanıcı seviyesi uygulamalar tarafından yönlendirilmesine izin verir.
Bu hem metin hem de grafik arayüzler için geçerlidir. Bu düzen; sisteme geniş bir esneklik sağlamasının yanı sıra, kullanıcı arayüzlerinin eklenmesinin kolaylığından kaynaklanan, sistemi öğrenme zorluğunu da yanında getirmektedir.
Linux ile kullanılan bu grafik ortam ilk önceleri X Pencere Sistemi olarak adlandırılmıştır. Kısaca X sistemi de denir. X bir kullanıcı arayüzü eklemez, sadece kullanıcı ara yüzüne geçiş sağlayan araçlardan oluşur. Bazı popüler pencere yöneticileri şunlardır: fvwm, icewm, blackbox ve windowmaker. KDE ve GNOME ise popüler masaüstü yöneticileri olarak bilinir.
1.3.6. Ağ İşlemleri
Ağ, iki ya da daha fazla sayıda bilgisayarı birbirine bağlayarak, onlar arasında iletişim sağlanmasıdır. Bu bağlama ve iletişimin sağlanması biraz karmaşık bir olaydır, ama sonuçlar son derece faydalı ve kullanışlı olmaktadır.
Unix işletim sistemi pek çok ağ özelliğine sahiptir. Pek çok basit hizmet (yedekleme, yazıcıya gönderme, dosya sistemleri işlevleri ,vb..) ağ üzerinden yapılabilir. Bu özellikler sistem yönetimi kolaylaştırmaktadır. Hem merkezi hem de yayılmış bir yönetim olanağı sunmasından dolayı; ucuz maliyet ve hatalara karşı dayanıklılık imkanlarını sağlamaktadır.
Bu kılavuz, network konusunu kısaca anlatmakta, sadece nasıl çalıştığını açıklamaktadır. Daha ayrıntılı bilgi için Linux Ağ Yöneticisinin Kılavuzu (Linux Network Administrator's Guide) isimli kılavuza http://www.tldp.org/LDP/nag2/index.html adresinden ulaşabilirsiniz.
1.3.7. Ağdan sisteme bağlanma
Ağ bağlantıları, normal kullanıcı bağlantılarından biraz farklıdır. Üzerinden bağlanılması mümkün olan çeşitli fiziksel seri bağlantıları mevcuttur. Ağ üzerinden bağlanan her kişi için ayrı bir sanal ağ bağlantısı mevcuttur ve bu bağlantı sayısı bant genişliğinin elverdiği ölçüde çok çeşitli olabilir. Bu yüzden muhtemel her sanal bağlantıda bağımsız bir agetty(8) çalıştırmak mümkün değildir. Bir ağa bağlanmak için çok çeşitli yollar mevcuttur; TCP/IP ağlarında, telnet ve rlogin gibi temel uygulamlar kullanılabilmektedir.
Son zamanlarda ssh güvenlik gerekçesi ile sistem yöneticileri tarafından daha çok tercih edilir olmaktadır. Ağ bağlantılarında her bağlantı için bağımsız bir artalan süreci mevcuttur (telnet ve rlogin ayrı birer artalan sürecine sahiptir). Bir bağlantı istemi geldiğinde; bağımsız bir girişim için kendinin bir örneğini oluşturur ve bu sırada orjinal örnek diğer girişimleri dinlemeye devam eder. Oluşturulan yeni örnek agetty(8) gibi çalışır.
1.3.8. Ağ Dosya Sistemleri
Bir ağ sistemi üzerinden yapılabilecek en faydalı işlerden birisi Ağ Dosya Sistemi üzerinden yapılacak dosya aktarımları ve dosya paylaşımıdır. Genellikle Sun firması tarafından geliştirilmiş olan ağ dosya sistemi Network File System (NFS) kullanılmaktadır. Bir ağ dosya sistemi ile bir makine üzerinde her hangi bir uygulama tarafından yapılmış olan herhangi bir dosya işlemi ağ üzerinden başka bir makineye gönderilebilir. Bu çalışan uygulamanın, karşı makinedeki dosyaları, sanki kendi çalıştığı makinede bulunan dosyalar olarak görmesinden kaynaklanır ve bu sayede bu işlevler yerine getirilir. Bu sayede bilgi paylaşımı her hangi bir uygulama değişikliğine gerek kalmadan basit bir şekilde sağlanmış olur. Diğer bir popüler dosya paylaşım sistemi ise http://www.samba.org/ adresinde bulunabilecek olan Samba dosya sistemidir. Bu protokol MS Windows makineleri üzerinden dosya ve yazıcı paylaşımına izin verir (Ağdaki Komşular üzerinden).
1.3.9. Eposta
Bilgisayarlar üzerinden haberleşmede en popüler yöntem elektronik postadır. Elektronik mektup özel uygulamalar aracılığıyla dosyalar içine depolanır ve göndermek/almak/okumak için özel uygulamalar kullanılır.
Bütün kullanıcılar yeni epostalarının depolandığı, özel bir biçeme sahip olan gelen postalar kutusu olarak adlandırılabilen bir dosyaya sahiptir. Birisi size eposta gönderdiği zaman, eposta uygulaması bunu sizin posta kutunuza yerleştirir ve gelen mektubu gelen postaların tutulduğu dosyaya ekler. Şayet posta kutunuz başka bir makine üzerinde ise posta bu makineye gönderilir ve burada saklanır.
Posta sistemleri pek çok uygulama ile kullanılabilir. Kullanıcılar
pek çok çeşitteki uygulamaları kullanırken (Eposta istemcisi - Mail
User Agent - MUA; örneğin: pine, mutt, elm) postaların yerel ya da
uzaktaki makinelerin posta kutularına dağıtımını başka bir uygulama
(Eposta Aktarım Aracısı - Mail Transfer Agent - MTA; örneğin:
sendmail veya qmail) yapar. Posta kutuları genellikle
/var/spool/mail
'de depolanır.
1.3.10. Yazdırma
Aynı anda bir yazıcıyı sadece bir tek kullanıcı kullanabilir. Yazıcıların paylaşılması oldukça ekonomik bir çözümdür. Bütün yazım işleri bir yazılım olan bir yazdırma kuyruğu tarafından yönetilir. Burada bütün işler sıraya konur ve sırası gelen iş kuyruktan alınıp yazılmak üzere otomatik olarak yazıcıya gönderilir. Bu kullanıcının, bütün bu işleri organize etmek için büyük bir çaba ve zaman harcamasını önler.
Bu yazılım çıktı işlemlerini disk üzerinde ayrı bir dosya haline getirir ve bu sayede bir uygulama işleri parçalayarak yazıcıya gönderme şansına sahip olur. Böylece uygulama, çıktı işlemi bitene kadar beklemek zorunda kalmaz. Bu son derece kullanışlı bir olaydır. Çünkü bu sayede birisi bir basım işini bitirmek için, diğerinin bütün işlerinin bitmesini beklemek zorunda kalmaz. Kendi işinin kuyruk sırası gelince, işleri otomatik olarak işleme konur ve yazıcıdan çıktı alınır.
1.3.11. Dosya Sisteminin Yerleşim Düzeni
Bir dosya sistemi kök dosya sisteminin kolları boyunca çeşitli
bölümlere ayrılır: /bin, /lib, /etc, /dev
ve
birkaç benzeri; uygulama ve değişmeyen verilerden oluşan
/usr
dosya sistemi; değişen verilerden oluşan /var
dosya sistemi; ve herkesin kişisel
dosyalarının bulunduğu /home
dosya sistemi.
Donanım yapılandırmasına ve sistem yöneticisinin kararlarına göre
bu dosya sistemleri farklı olabilir. Hepsi tek bir dosya sistemi
halinde de olabilir.
Dizin Yapısına Genel Bakış bölümünde dosya sisteminin yerleşim düzeni daha ayrıntılı bir biçimde anlatılmıştır. En ayrıntılı bilgi Dosya Sistemi Hiyerarşisi Standardında bulunabilir.