3. Aygıt Dosyaları
Ön Bilgi
Bu bölümde aygıt dosyalarının ne olduğu ve nasıl yaratılacağı temel
bilgiler eşliğinde anlatılmaktadır. Ayrıca daha genel aygıt
dosyaları listelenmiştir. Şayet Linux çekirdeğinin kaynak kodlarına
sahipseniz genel olarak aygıt listelerini
/usr/src/linux/Documentation/devices.txt
içerisinde bulabilirsiniz.
3.1. MAKEDEV
Betiği
Aygıt dosyalarının pek çoğu sistem yüklemesi sırasında kurulmuş
ve kullanıma hazır bir biçimde beklemektedir. Şayet sisteminizde
olmayan bir aygıt dosyası yaratmak zorunda kalırsanız MAKEDEV
betiğini kullanmalısınız. Bu betik /dev/MAKEDEV
olarak bulunabir. Fakat /sbin/MAKEDEV
'e de
sembolik bir bağ verilmiş olabilir. Şayet PATH içerisinde
tanımlanmamışsa, bu betiği kullanabilmek için yolunu PATH içeriğinde
tanımlamalısınız. Betiğin genel kullanımı şu şekildedir:
#
/dev/MAKEDEV -v ttyS0
create ttyS0 c 4 64 root:dialout 0660
Burada 4. anadüğüm, 64. altdüğümde sahibi root ve grubu dialout için
erişim izni 660 olan /dev/ttyS0
karakter
aygıtı yaratılmış oldu.
ttyS0
bir seri porttur. Anadüğüm ve altdüğüm
numaraları, çekirdek tarafından algılanacak olan numaralardır.
Çekirdek donanım aygıtlarına numaralar aracılığı ile ulaşır.
Bizim için bunu yapmak çok zor olduğundan biz dosya isimlerini
kullanırız. Erişim izinleri kullanıcı için (root) okuma ve yazma;
grubu (dialout) için okuma ve yazma şeklindedir. Başka hiçbir
kimse bu aygıta erişemez.
3.2. mknod
komutu
MAKEDEV halihazırda var olmayan aygıt dosyalarını
yaratmak için kullanılır. Bununla beraber bazı zamanlar
MAKEDEV yaratmak istediğiniz aygıta ilişkin
dosyayı tanımayabilir. Burada mknod(1) komutu
devreye girer. Bu komutu kullanabilmek için anadüğüm ve altdüğüm
numaralarını bilmek zorundasınız. Çekirdek içerisindeki
devices.txt
dosyası, bu bilgilerin yer aldığı
temel kaynaktır.
Diyelim ki bizim elimizdeki MAKEDEV istediğimiz
/dev/ttyS0
aygıt dosyasını nasıl yapacağını
bilmiyor. Bu durumda mknod komutunu kullanmak
zorundayız. devices.txt
dosyasından bakarak
4. anadüğüm ve 64. altdüğümde bir karakter aygıt yapmamız
gerektiğini öğreniriz.
#
mknod /dev/ttyS0 c 4 64
#
chown root.dialout /dev/ttyS0
#
chmod 0644 /dev/ttyS0
#
ls -l /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 Oct 23 18:23 /dev/ttyS0
Gördüğünüz gibi bir dosyayı çok fazla adımda yaratmak durumundayız.
Bu örnekte gereken süreçleri görebilmekteyiz. Burada
/dev/ttyS0
aygıt dosyasının
MAKEDEV komutu tarafından yaratılamamış
olması uç bir örnektir.
3.3. Aygıt Listesi
Aşağıdaki aygıt listesinde çok fazla ayrıntıya girilmemiştir. Bu aygıt dosyalarının pek çoğu çekirdekte derlenmiş halde bulunmakta ve donanımları doğrudan desteklemektedir. Daha fazla ayrıntı için çekirdek belgelerini okuyabilirsiniz.
Şayet burada bulunması gerektiğini düşündüğünüz ama burada olmayan aygıt dosyaları var ise lütfen bana bildirin. Onları da diğer sürümde bu listeye ekleyeceğim.
-
/dev/dsp
-
Digital Signal Processor - Sayısal Sinyal İşlemci. Ses kartı ile ses üreten yazılım arasındaki arayüz olarak tanımlanabilir. 14. anadüğüm, 3. altdüğümde bulunan bir karakter aygıtıdır.
-
/dev/fb0
-
Birinci karetamponu (framebuffer) aygıtı. Karetamponu grafik donanımı ile yazılımı arasındaki soyut bir katmandır. Uygulamalar, ne tür grafik donanımı kullandığınızı bilmek zorunda kalmadan, sadece açıkça tanımlanmış ve standart haline getirilmiş olan karetamponu sürücüsünün uygulama geliştirme arayüzü (API - Application Programming Interface) ile nasıl haberleşeceklerini bilir. Birinci karetamponu 29. anadüğüm, 0. altdüğümde bir karakter aygıtıdır.
-
/dev/hda
-
/dev/hda
birincil IDE denetleyicisine bağlı ana IDE sürücüdür. Birinci IDE kablosuna bağlımaster
olarak ayarlanmış sabit disk olarak da tanımlanabilir./dev/hdb
birincil IDE denetleyicisine bağlı yardımcı sürücüdür./dev/hdc
/dev/hdd
ise ikincil IDE denetleyicisine bağlı ana ve yardımcı IDE sürücüleridir. Her disk bölümlere ayrılmıştır. 1-4 arası bölümler birincil bölümler, 5 ve üzeri bölümler ise ek bölüm içindeki mantıksal bölümlerdir. Bu yüzden her bölüm için yapılmış aygıt dosyaları çeşitli bölümlerden meydana gelmişlerdir. Örneğin;/dev/hdc9
ikincil IDE denetleyicisine takılmış bir ana IDE sabit diskinin ek bölümü içerisindeki bir mantıksal bölümü işaret eder. Ana ve alt düğüm numaraları biraz karmaşıktır. Birincil IDE denetleyicisi için bütün bölümler 3. anadüğümdeki blok aygıtlarıdır. Ana sürücühda
için altdüğüm 0, yardımcı sürücühdb
için altdüğüm 64'tür. Sürücü içindeki her bölümün, bölüm numarası bu altdüğüm numarasına eklenir. Örneğin;/dev/hdb5
için anadüğüm 3, altdüğüm ise 69 (64+5) dur. İkincil IDE sürücüye bağlı sürücünün hesaplamaları da aynı yöntemle yapılır. Tek fark anadüğüm numarası 22 dir. -
/dev/ht0
-
Birinci IDE teyp sürücüdür. Sonraki sürücüler
ht1
,ht2
şeklinde sıralanır. 37. anadüğümdeki karakter aygıtlarıdır veht0
için altdüğüm 0,ht1
için 1,ht2
için 2 olarak sıralanır. -
/dev/js0
-
Birinci analog oyun çubuğu. Sonraki oyun çubukları
js1
,js2
,js1
, ... şeklinde sıralanır. 15. ana düğümdeki karakter aygıtlarıdır. Analog oyun çubukları 0. alt düğümden 127. alt düğüme kadar sıralanır. Sayısal oyun çubukları ise 128. alt düğümden başlar. -
/dev/lp0
-
Birinci paralel yazıcı aygıtı. Diğer yazıcılar
lp1
,lp2
,lp3
, ... şeklinde sıralanır. 6. ana düğümdeki karakter aygıtlardır. Alt düğümler 0 dan başlar ve her aygıt için ardışık şekilde devam eder. -
/dev/loop0
-
Birinci geridönüş (loopback) aygıttır. Geridönüş aygıtları diskler üzerinde bulunmayan blok aygıtlarındaki dosya sistemlerini bağlamak için kullanılır. Şayet bir iso9660 CD ROM'u bir CD'yi okumadan bağlamak istiyorsak geridönüş aygıtlarını kullanmalıyız. Bu genellikle kullanıcıya açıktır ve mount komutu tarafından kullanılır. mount(8) ve losetup(8) kılavuz sayfalarına göz atmanız bu kavramları anlamak için oldukça faydalı olacaktır. Geri dönüş aygıtları 7. ana düğümdeki blok aygıtlarıdır. Alt düğümler 0 dan başlar ve ardışık devam eder.
-
/dev/md0
-
Birinci meta disk grubu. Meta diskler RAID (Redundant Array of Independent Disk - Birleştirilmiş Bağımsız Disk Dizisi) aygıtları ile bağlantılıdır. Daha ayrıntılı bilgi için LDP'deki (Linux Document Project - Linux Belgelendirme Projesi) RAID-HOWTO belgelerine başvurabilirsiniz. Meta diskler 6. ana düğümdeki blok aygıtlarıdır. 0. alt düğümden başlar ve ardışık devam eder.
-
/dev/mixer
-
Bu OSS'nin ( Open Sound Driver - Açık Ses Sürücüsü) bir parçasıdır. http://www.opensound.com/ adresindeki OSS belgelerinden daha ayrıntılı bilgi edinebilirsiniz. 14. ana düğüm, 0. alt düğümdeki karakter aygıtıdır.
-
/dev/null
-
Gönderilen her verinin bir daha tekrar geri dönmemek üzere yok edildiği bir kara deliktir.
/dev/null
'a gönderilen her şey görünmez olur. Bu, bir komut çalıştırmak ama uçbirimde her hangi bir geri bildirim almamak istediğiniz durumlarda faydalı olabilir. 1. ana düğüm, 3. alt düğümdeki bir karakter aygıtıdır. -
/dev/psaux
-
PS/2 fare portudur. 10. ana düğüm, 1. alt düğümdeki bir karakter aygıtıdır.
-
/dev/pda
-
Paralel port IDE diskleri. Dahili IDE denetleyicileri gibi isimlendirilir. Blok aygıtlardır ve anadüğüm numarası 45 dir. Alltdüğüm numaraları için biraz daha fazla açıklamaya ihtiyaç vardır. İlk aygıt
/dev/pda
'dır ve aldüğüm numarası 0 dır. Bölüm numaraları altdüğüm numarasına eklenerek bu aygıttaki bölümler bulunur. Her aygıt 15 bölüm ile sınırlandırılmıştır. Dahili IDE aygıtlarında bu 63 dür./dev/pdb
için aldüğüm numarası 16'da başlar,/dev/pdc
için 32'de,/dev/pdd
için 48'de başlar. Örneğin;/dev/pdc6
için altdüğüm numarası 38 (32+6) dir. Bu düzen her biri 15 bölümlü 4 paralel disk ile bizi sınırlar. -
/dev/pcd0
-
Paralel port CD ROM sürücüsü. 0'dan başlayarak numaralandırılır. 46. anadüğümdeki blok aygıtlarıdır. Altdüğümler
/dev/pcd0
için 0 dan başlar ve ardışık devam eder (/dev/pcd1
için 1,/dev/pcd2
için 2,/dev/pcd3
için 3, ...). -
/dev/pt0
-
Paralel port teyp sürücüsü. Teyplerin bölümleri olmadığı için sadece ardışık biçimde numaralandırılır. Karakter aygıtlardır ve anadüğüm numarası 96 dır. Altdüğümi
/dev/pt0
için 0,/dev/pt1
için 1,/dev/pt2
için 2, ... şeklinde sıralanır. -
/dev/parport0
-
İşlenmemiş paralel port. Paralel porta bağlanan pek çok aygıt kendi sürücülerini kullanır. Bu ise porta doğrudan ulaşmak için kullanılan bir aygıttır. Anasüğüm numarası 99 olan karakter aygıtıdır. Alltdüğüm numarası 0'dan başlar ve ardışık olarak her bir aygıt için birer artarak devam eder.
-
/dev/random
veya/dev/urandom
-
Bunlar çekirdeğin rasgele sayı üreteçleridir.
/dev/random
rasgele sayı üreten ve o an için üretilmiş sayıya bakıp gelecek sayısı tahmin edilebilen üreteçlere benzemez. Sayı üretmek için sistem donanımlarının arabirimlerinin ürettiği ganimetler (entropy)[51] kullanır. Kullanılacak ganimet kalmadığında daha fazlasının toplanması için beklemek zorunda kalır. Bu durumda iken daha fazla sayı okunmasına izin vermez./dev/urandom
da buna benzer şekilde çalışır. İlk olarak sistem donanımlarının ganimetlerini kullanır ama ganimetler bitince karışık rasgele sayı üreten bir formül üzerinden çalışmaya ve sayı vermeye devam eder. Şifrelenmiş çift anahtar üreteçleri gibi çok önemli amaçlar için bu sistem biraz güvensiz görünebilir. Şayet güvenlik birinci planda önemli ise/dev/random
'u kullanın, eğer hız önemli ise/dev/urandom
'u kullanın. Rasgele sayı üreteçleri ana düğüm numarası 1 olan karakter aygıtlarındandır./dev/random
için alt düğüm numarası 8,/dev/urandom
/dev/urandom için ise 9'dur. -
/dev/zero
-
Pek çok sıfır elde etmenin en kolay yoludur. Bu aygıttan her okuduğunuzda veri sıfıra dönüşür. İçeriği önemli olmayan sabitlenmiş uzunluktaki bir dosya ile ilgilendiğiniz zamanlarda bu aygıt yararlı olabilir. 1. ana düğümün 5. alt düğümündeki karakter aygıtıdır.
[51] Ç.N.: Burada entropy ile ifade edilen şey, farenin ekran koordinatları, diskin okunan ya da yazılan sektör numarası, klavyede basılan tuş numarası gibi sayılardır. Olay bir oyunda oyuncunun ganimet toplamasına benzetilebilir.