Tekil Mesaj gösterimi
Alt 06-09-2008, 01:57   #2
Constantin
ยŦยк
 
Constantin - ait Kullanıcı Resmi (Avatar)
 

Unix İşlemleri (processes)

Unix işletim sistemi çalıştırdığımız her program veya iş için bir işlem (process) yaratıyor ve yaratılan işlem e bir numara (PID) veriyor. Sistemde belirli bir öncelik sırasına CPU zamanını kullanır. Sistemdeki kullanıcı bu işlemleri izleyebilir ve eğer gerekli ise çalışmalarını durdurabilir veya öncelik sırasını değiştirebiliriz. Bellek üzerinde işlemlerin yönetimi UNİX yönetici programı UNİZ SCHEDULER tarafından yapılıyor.
* [u]w komutu : Sistemde çalışmakta olan kullanıcıları, hangi terminalden veya sistemden ve hangi tarihte girdikleri, ne kadar süredir her hangi bir işlem yapmadan bekledikleri gibi bilgileri gösterir.
$ w¿
10:35 up 4 days, 1:14, 10 users load average:0.00,0.01,0.03
User tty from login idle JCPU PCPU what
emre console 08:47 4days /usr/sbin/get
ahmet p4 :0.0 09:45 14 12 -tcsh
tuba p5 harcar:0.0 10.05 -ksh
aydin P6 harcar:0 09:14 w

* ps komutu : İşlemler hakkında değişik formatta bilgiler alınabilir. Bu komutun değişik parametreleri vardır. Örneğin ps –u semih komutu semih kullanıcısına ait işlemleri gösteriyor.

Motd Dosyası:
kullanıcılara düzenli olarak mesaj göndermenin bir yolu /etc/motd dosyasıdır. Bu dosyanın içeriği, kullanıcı sisteme girdiğinde kullanıcı ekranında gösterilir. Dolayısıyla tüm kullanıcılara iletilmesi gereken bilgiler var ise motd dosyası edit edilerek bu gerçekleştirilebilir.





İşlemlerin önceliğini değiştirme ve durdurma
Sistemde kimi zaman yapılan işlemlerin önceliğini değiştirmek gerekebilir. İstenirse nice ve renice komutları ile işlemlerin öncelik sırası değiştirilebilir. ps komutu ile alınan listede, PRI ve NICE kolonları işlemlerin çalışma özelliğini göstermektedir. PRI kolonundaki değer ne kadar küçük ise işlemin çalışma özelliği o kadar yüksek yani öncedir. Root kullanıcısı sistemdeki tüm işlemlerin önceliğini değiştirebilir. Normal kullanıcılar ise sadece kendi yaptıkları işlemlerin öncelik seviyesini düşürebilir fakat yükseltemez. Yani yapmış olduğu bir işlemi daha önceye alabilir fakat daha sonraya alamaz.
* nice komutu : Bir işlemin yaratıldığı anda önceliği değiştirilebilir. öncelik seviyesi olarak verilen değer 1 ile 19 (-1 ile -19) arasında değişe bilmektedir. Komutun genel formatı aşağıdaki gibidir.
nice - öncelik değeri komut¿
$ nice –10 cc test.c & ¿
Bu örnegimizde test.c adlı c programı yüksek öncelikle arka planda c derleyicisi tarafından derlenmektedir.
* renice komutu :Bu komut ile çalışmakta olan bir işlemin önceliği değiştirilebilir.
renice öncelik seviyesi PID numarası¿ şeklinde kullanılır.
$Renice +10 253 Çalışmakta olan 253 nolu işlem in önceliği azaltılır.
İşlemleri Durdurma veya öldürme:
Herhangi bir sebeple işlemleri durdurmak veya öldürmek gerekebilir. Bunun için ise kill komutu kullanılır. Kill komutunda verilen sinyal parametresi işlemi durdurmak (17) veya tümüyle öldürmek (9) mümkündür.
Kill -deger Pıd numarası¿
$ kill -9 243 Bu komutla 243 numaralı işlem öldürülür.
$ kill -17 243 Bu komutla 243 numaralı işlem durdurulur.
Yedekleme
Bir sistemde yapılması gereken en önemli işlerden birisi düzenli olarak verileri yedeklemektir. Herhangi bir sebeple veri kaybı olduğunda tek çare yedeklediğimiz veriyi tekrardan kullanmaktır. Eğer yedekleme işlemini yapmamış isek herhangi bir sebeple kaybolan bir veriye ulaşmak imkansız olabilir. Unıx işletim sisteminde de dosyaların yedekleme işleminin yapılması gerekmektedir. File set ler gelişmiş dosya sisteminde (ADVFS) diskler üzerinde yaratılan mantıksal dosya sistemleridir. Her bir file set fiziksel olarak bir veya daha fazla disk veya disk parçasına karşılık gelir. File set lerin yedeklerini aldığımızda disklerin de yedeklerini almış oluruz. Bu nedenle sistemimizdeki bütün fileset lerin düzenli olarak yedeğini almamız gerekir. df komutu ile sisteme yüklenmiş fileset ler listelenebilir.
Incremental Yedekleme: Fileset deki dosyalardan sadece son yedekleme seviyesinden sonra değişikliğe uğrayan dosyaların yedeği alınır. Unix işletim sisteminde 9 yedekleme seviyesi mevcuttur. Her bir level farklı zaman aralıklarına karşılık gelir
Full yedekleme: File set deki bütün dosyaların yedeği alınır.
Yedeklemek için vdump komutunu kullanırız. Genel formatı aşağıdaki gibidir.
vdump -0uvf yedekleme_birimi Fileset_ismi ¿
0: Full yedekleme olacağını gösterir. 1-9 arasındaki sayılar incremental yedekleme seviyelerine karşı gelir.
u: Yedeklemenin alındığı tarih ve fileset ismi/ etc/vdumpdates dosyasına yazılır. Böylece incremental yedekleme alındığında bu dosya tespit edilerek, o tarihten itibaren değişikliğe uğrayan dosyalar belirlenir.
v: Yedekleme alınan dosyalar ekranda listelenir.
f: Yedeklemenin default teybe birimi başka bir teybe birimine veya diske alınması durumunda bunu belirtmek için kullanılır.
$vdump -0uvf/dev/rmt1h /usr ¿ Usr File set in yedeği bir nolu teyb ünitesine alınmaktadır.
Aynı teyb kartuşuna başka bir yedek alınacak ise bu durumda -n opsiyonu kullanılabilir


Unix de Yazıcı Kullanımı
Unix işletim sisteminde yazıcılardan çıktı almak için iki aşamalı bir yapı söz konusudur. Herhangi bir kullanıcı bir yazıcıya çıktı göndermek istediğinde ilk önce o yazıcı için tanımlanmış kuyruk (queue) adı verilen özel bir dosyaya gider. Daha sonra yazıcı müsait oldukça diğer kullanıcıların işleri ile birlikte sıraya koyarak yazıcıya gönderilir.
Sistemde tanımlı olan tazıcıların isim ve özellikleri /etc/printcap dosyasına saklanır. Sisteme yeni bir yazıcı eklediğimizde veya çıkardığımızda bu dosya güncelleşir.
Yazıcı ekleme, silme veya değiştirme işlemleri için Lprsetup komutu kullanılabilir. Aşağıdaki örnekte lprsetup komutu ile sistem üzerindeki paralel porta bağlı bir yazıcı sisteme tanıtılmaktadır.
$ lprsetup¿
Command < add modify delete exit view quit help >:a¿
Adding printer entry, type ‘?’ for help
Enter printer name to add [0] : ¿
Enter printer synontm :yeni yazıcı¿
Set device path neme ‘lp’[/dev/ttyo1] ? /dev/lp0
Set accounting file ‘af’ [/usr/adm/lpacct]? ¿
Set spooler directory ‘sd’ [/usr/spool/lpd]? ¿
Set yazıcı error kog file ‘lf ’[/usr/spool/lpd ]? ¿
Set yazıcı connection type ‘ct’ [dev]? ¿
Enterthe name of the printcap symbol to modify. Other valid entries are:
‘q’ to quit
‘p’ to print the symbols you have specified so far
‘l’ to list all of the posible symbols and defaults
Enter symbol name :q ¿
Printer #0

Unix de Yazıcı Kullanımı
Symbol Type Value
af STR /usr/adm/lpacct
ct STR dev
lf STR /usr/adm/lperr
sd STR / dev /lp0
Are these final values for printer 0 ? [y] ¿
do you want to add comments to printcap file [n]?: ¿
command< add modify delete exit view quit help>:e
* lpr komutu:
Sistemde ki herhangi bir yazıcıya bir çıktı göndermek için lpr komutu kullanılır. Genel kullanılış formatı aşağıdaki gibidir.
lpr-P yazıcı_ismi Dosya ismi¿
$ lpr -Pyeniyazıcı /usr/users/nizip/fatura¿
*İstersek bir yazıcıdaki işleri izleyebiliriz. Bunun için lpq komutu kullanılır. Genel kullanılış formatı aşağıdaki gibidir.
Lpq -Pyazıcı_ismi¿
* yazıcı kuyruğunda bekleyen herhangi bir işi silmek için lprm komutu kullanılır. Genel kullanılış formatı aşağıdaki gibidir.
lprm -Pyazıcı_ismi iş_no¿
$Lprm -Plp0 3¿
Yazıcı Yönetimi
İstenirse lpc komutu ile root kullanıcısı sistemde tanımlı yazıcıları yönetebilir. Aşağıdaki tabloda Lpc komutunun seçenekleri görülmektedir.
Lpc komutu Fonksiyonu
abort Takılı kalmış bir yazıcıyı durdurmak için kullanılır.
disable Kuyruğa çıktı gönderilmesini engeller.
enable Kuyruğa çıktı gönderilmesine izin verir.
stop Kuyruktan yazıcıya çıktı gönderilmesini engeller.
start Kuyruktan yazıcıya çıktı gönderilmesine izin verir.
status Yazıcıların durumunu gösterir.
up Yazıcıyı yeniden aktif hale getirmek için kullanılır.
topq Kuyrukta bekleyen herhangi bir işi en öne alır.
* lpc komutu ile birlikte yazıcı ismi de verilebilir. Aşağıda yazcı kullanımına dair değişik örnekler görülmektedir.
$ lpc¿
lpc >start lp 0
lp0: printer is on remote host foca with name deneme
queuing is enabled
kuyruktan yazıcıya çıktı gönderilmesine izin verildi.
Lpc>abort lp0¿
lp0: printing is disabled
daemon (pid 19151) killed
witing for deamon (pıd 19151)to die....
daemon Pıd 19151 numaralı işlem takılı kalmış idi, yazıcı durduruldu.
TCP/IP ve Ağ
Ağ yazılım ve donanım ile birbirine bağlı bilgisayarlar grubu olarak tanımlanabilir. Network protokolü ise aynı ağdaki bilgisayarların anlaşabilmeleri için gerekli olan ortak dil veya kurallar bütünüdür. Unix işletim sistemi için standart ağ protokolü TCP/IP dir. TCP/IP aslında birden fazla alt protokolden oluşan protokol kümesidir. Unix sistemleri 2 şekilde birbirine bağlanabilir. Yakın sistemleri goğrudan doğruya birbirine bağlamak ve uzak sistemlere modem ile bağlantı kurmak.
IP Adresleme ve Adres Sınıfları
Bir TCP/IP ağında her bilgisayar mutlaka diğer bilgisayarlardan farklı bir adrese sahip olmalıdır. IP adresi olarak adlandırdığımız bu adres 32 bitten oluşur ve noktalarla ayrılmış 4 parçaya bölünerek ondalık sayı sisteminde gösterilir. IP adresleme mantıksal olarak ise iki bölümden oluşur; Ağ adresi ve bilgisayar adresi.
Ağ adresi aynı Ağ üzerindeki Tüm bilgisayarlar için ortaktır.
Bilgisayar adresi ise bir ağ üzerindeki her bilgisayar için diğerlerinden farklı yani tek olmak zorundadır.
Ağ adresi NIC (Network Informatıon Center: Ağ bilgi merkezi) tarafından tahsis edilir. Bilgisayar adresleri ise ağ yöneticileri tarafından verilir.
Ip adresleri 32 bitin kaç Byte ının ağ kaç byte ının bilgisayar adresi olarak kullanıldığına göre adres sınıflarına ayrılır.
A sınıfı adresler ilk 8 biti ağ, kalan bitleri ise bilgisayar adreslemek için kullanılır.
B sınıfı adresler ilk iki byte ı ağ kalan iki byte ı ise bilgisayarları adreslemek için kullanılır.
C sınıfı adresler ilk üç byte ı ağ kalan bir byte ı ise bilgisayarları adreslemek için kullanılır.
D ve E sınıfı adresler özel amaçlar için kullanılır.
Ağ yönetimi, Host Dosyası
Ağ yönetimi :
Unix işletim sistemin de ağı konfigüre etmek için netsetup komutu kullanılır. netsetup komutunun ana menüsünün aracılığı ile ağ arabirimlerini konfigüre etmek, konfigürasyonu listelemek ve diğer bazı yönetim işleri yapılabilir.
$ netsetup¿
***MAIN MENU ***
1 Configure Network Interface
2 Enable/Disable Network Daemons Abd Add Static Routes
3 Add/Delete Host Information
4 Display Network Configuration
5 Exit
Host Dosyası :
/etc/hosts dosyası sistemimiz için lokal bir adres defteri olarak düşünülebilir. Bu dosyada çevremizdeki bilgisayarların isimleri ve buna karşılık gelen IP adresleri yer alır Aşağıda host dosyasına bir örnek görülmektedir.
$more /etc/hosts¿
#
# Host Database
#
localhost
bodrum
Pc1
Pc2
Pc3
Unixte ağlar ile ilgili kullanılan bazı önemli komutlar şunlardır.
Uuname:ana sistem ismi ve sisteme tanıtılmış karşı sistemlerin isimlerini öğrenebiliriz. –l parametresi ile kullanılırsa ana sistemin ismini görüntüler. –c parametresi ise cu komutuyla kullanılabilecek sistemlerin tümünü listeler.
Uucp:iki sistem arasında bağlantının sağlanması için kullanılan programlar topluluğudur. İki bilgisayar arasında dosya transferini , karşı sistemde belli bir komutun ve programın çalıştırılabilmesini,bu sistemlere mesaj gönderilebilmesini sağlar.
Standart Shell Değişkenleri
Shell de kullanılan standart değişkenler vardır. Bu değişkenler iki türlüdür. Bunlar yerel ve çevresel değişkenlerdir. Yerel değişkenler yalnızca tanımlandıkları shell içinde geçerliliğini korur. Çevresel değişkenler ise tüm program ve alt shelllerde geçerlidir. Aşağıdaki komutlar standart shell değişkenleridir.

HOME : Home dizininin adres yolunu gösterir.
$home¿ /usr/users/aydin
LOGNAME : Kullanıcı ismini içerir.
$logname¿ Aydin
MAİL : Kullanıcıya ait gelen maillerin saklandığı dizinin adres yolunu gösterir.
$mail¿ /usr/mail/aydin
PATH : Shell de verilen komutları çalıştırabilmek için sırasıyla bakacağı dizinlerin adres yolunu gösterir.
$path¿ bin:/usr/bin:/usr/lbin
SHELL:Kullanıcının kullanmakta olduğu shellin hangisi olduğuna ilişkin bilgiyi gösterir.
$shell¿ /bin/shell
TERM : Çalışmakta olunan terminalin adını gösterir.
$term¿ hw72
TERMİNFO: Terminalin özelliklerinin tanımlandığı dosyanın adres yolunu gösterir.
$terminfo ¿ /usr/lib/terminfo
Standart Shell Değişkenleri
PS1: Shell in işaretinin ne olduğunu gösterir.
PS2: Shell in ikinci işaretinin ne olduğunu gösterir.
SET: Bu komut argümansız olarak kullanıldığında yerel değişkenlerin değerlerini ekranda gösterir.
$set ¿
Home =/usr/users/aydin
Logname =aydin
Mail=/usr/mail/aydin
Mailcheck=600
Path= :/bin:/usr/bin:/usr/lbin:
PS1=$
PS2= >
Shell =/bin/sh
Term=hw72
Terminfo=/usr/lib/terminfo

ENV: Bu komut ile çevresel değişkenlerin neler olduğu ekranda gösterilir.
$env¿
HOME=/usr/aydin
LOGNAME =aydin
MAIL=/usr/maıl/sydin
PATH= :/bin:/usr/bin:/usr/lbin
SHELL=/bin/sh
TERM=hw72
TERMİNFO=/usr/lib/terminfo

İşletim Sisteminin Yüklenmesi
İşletim sisteminin yüklenmesi sırasıyla aşağıdaki gibi olur.

Sistem power on yapıldığında sistem diskinin 0. Bloğundaki boot programı okunur. Bu program “bootstrap loader” olarak bilinir.(Diskin 0. Bloğu özel bir yerdir. Bu bloğa işletim sistemi komutları ile ulaşılamaz.
Bu program daha sonra disk üzerindeki boot programını belleğe yükler ve boot programı çalışmaya başlar.
Boot programı “UNIX kernel” i belleğe yükler. Böylece işlemci Id si (=PID) olan işlemci yani UNIX kernel çalışmaya başlar.
Kernel daha sonra PID = 1 olan “init” işlemini yaratır. Bundan sonraki işlemlerin tümünü init işlemi gerçekleştirir.
İnit işlemi her bir terminal sayısı kadar “getty” işlemlerini yaratır. Bu işlemin çalışmasıyla birlikte terminallere “login” mesajı gelir.(İşlem yaratma işlemi “fork system call” ile gerçekleştirilir.)
Ekranlara gelen login mesajının karşısına geçerli bir kullanıcı ismi yazıldığında getty işlem i “exec system call” ile login programına dönüşür. (“exec system call” işle yeni bir işlem yaratılamaz.)
Login programı kullanıcı ismini alır ve gerekli kontrolleri yaptıktan sonra yine exec system call ı ile “ shell” i yapar. Böylece ekrana “shell prompt” u gelir.

NOT: CTRL-D ile logout olunduğunda, getty işlemi sonlanmış olur. Bu durumda “father process” (baba işlem) olan init işlemi aynı terminal için yeni bir getty process i yaratır.
İşletim Sisteminin Yüklenmesi

BOOT
/exec/inittab
PID=0 Initialization
UNIX Table
PID=1 /etc/rc
INIT Shell Script
Fork
/etc/getty/defs
GETTY GETTY Terminal Settings
Exec
/etc/passwd
LOGIN Password File

Exec
/etc/profile
Shell Script
$HOME/.profile
Shell Shell Script
Constantin Ofline   Alıntı ile Cevapla