Linux’ta her dizinin kendi amacı vardır. Aynısı sysfs dizini için de geçerlidir. Sysfs girişleri, bilgileri kullanıcı etki alanındaki işlemlere aktarmak ve kullanıcıdan girdi almak için çekirdek tarafından kullanılır. Bu girişler, dosya sistemi içinde, onun için kayıtlı olan gösteri ve depolama fonksiyonlarını bulmak için dolaşır.
sysfs’deki girişler, veri yolu tipine, nesne tipine, cihaz tipine, üst/alt ilişkilere vb. göre sıralanabilir. Sembolik bağlantılar fazlalıkların azaltılmasına yardımcı olur.
sysfs Dosya Sistemine Genel Bakış
Sysfs, Linux’ta ilk kez çekirdek sürüm 2.6.0’da tanıtıldı.
Sysfs, Linux’ta sanal bir dosya sistemidir. Bu, sysfs’deki dosyaların bir diskte veya herhangi bir fiziksel ortamda bulunmadığı anlamına gelir. Ancak, dosya sistemlerinin içeriği bellekte saklanır. Başlangıçta, sysfs ramfs’e dayanıyordu ve ddfs (Aygıt Sürücüsü Dosya Sistemi) olarak adlandırılıyordu.
Sysfs, sanal dosyaları kullanarak verileri kullanıcı alanına gönderir. Bu veriler, çeşitli çekirdek alt sistemleri, donanım aygıtları ve ilgili aygıt sürücüleri hakkındaki verileri içerir.
Genellikle, sysfs /sys bölümüne bağlanır ve bu bağlama işlemi sistem tarafından otomatik olarak yapılır. Ayrıca, fstab dosyası kullanılarak önyükleme sırasında manuel olarak da mbağlanabilir:
$ mount -t sysfs sysfs /sys
Yukarıdaki komuttan, sysfs’nin /sys’ye bağlandığını görüyoruz. Bu, sysfs’nin bağlandığı standart konumdur.
Sysfs Hiyerarşisi
Sysfs, bir dosya, klasör ve sembolik bağlantı kümesidir. /sys içindeki dosyaların çoğu salt okunurdur. Bazı dosyalar da yazılabilir, bu da çekirdek değişkenlerinin değiştirilmesine yardımcı olur. Sembolik bağlantılar, dosya sistemi ağacı boyunca girişleri bağlamak için yaygın olarak kullanılır.
Bu dizinin tam bir görünümünü görmek için “ağaç” komutunu kullanmanızı öneririz. Sistemimizde “ağaç” komutu toplam 9480 dizin ve geniş bir dosya ve dizin koleksiyonu olan 38635 dosya gösterir.

En üst düzeyde, sistem açılışında 11 ana alt dizin oluşturulur. Bu alt dizinler, sysfs’ye kayıtlı ana alt sistemlerin temsilleridir. Açılışta, bu alt sistemler kobject çekirdeğine kaydedilir. Başlatma tamamlandığında, ilgili dizinlerinde kayıtlı nesneleri bulmaya başlarlar.
/sys Dosya Sisteminin Dosyaları ve Alt Dizinleri
Şimdi /sys dosya sisteminin birkaç dosyasını ve alt dizinini görelim ve temel amaçlarını tartışalım. /sys’nin en üst seviyesindeki en önemli sanal alt dizinler blok, veri yolu, hiper yönetici, sınıf, aygıtlar, çekirdek, bellenim, modül ve güçtür.
1. /sys/block: Sistemde keşfedilen her blok cihaz için bir sembolik bağlantı ve dizinleri vardır. Bu sembolik bağlantılar /sys/devices dizini altındaki ilgili dizinlere işaret eder. Burada birçok alt dizin var:

Camgöbeği rengiyle gösterilen bu blok aygıtlar, bölümler hakkında bilgi içeren niteliklere sahiptir. Bu alt dizinlere örnek olarak sda, sdb, vb. verilebilir.
2. /sys/bus: Veri yolu, bir işlemci ile bir aygıt veya aygıtlar arasındaki bir ortam/kanaldır. Veri yolu türlerinin örnekleri arasında PCI, PCMCIA, SCSI veya USB bulunur. Çekirdekteki her veri yolu türü için /sys/bus dizininde bulunan bir alt dizin vardır. Bu tür her bir alt dizinin iki alt dizini daha vardır: aygıtlar ve sürücüler.
i) cihazlar: Veri yolunda keşfedilen her cihaz için /sys/devices (genel cihaz ağacı) içindeki girişlere sembolik bağlantılar içerir.
ii) sürücü: Bus’a yüklenen her aygıt sürücüsü için bir alt dizin içerir. Bu alt dizinler, sürücü parametrelerini ve sembolik bağlantıları yönetmek için öznitelikler içerir.
3. /sys/class: Sınıf, bir cihazın üst düzey görünümüdür. Bu dizin ayrıca sistemde kayıtlı her aygıt sınıfı için bir alt dizin düzeyi daha içerir. Bu sınıflar, terminaller, ağ cihazları, ses cihazları vb. olabilir. Bu alt dizinler, bir sınıftaki her cihaz için sembolik bağlantılar içerir. Bu sembolik bağlantılar /sys/devices dizinindeki girişleri gösterir.
4. /sys/class/net: Bu dizindeki her sembolik bağlantı, dizine erişen işlemin ağ ad alanında görünen gerçek veya sanal ağ aygıtlarından birini temsil eder. Bu tür her sembolik bağlantı, /sys/devices dizinindeki girişlere işaret eder.
5. /sys/devices: /sys/device dizini, dosya sistemi görünümündeki tüm çekirdek aygıt ağacını içerir. Çekirdeğe kayıtlı veri yolu türleri tarafından bulunan her fiziksel aygıtı içerir.

6. /sys/firmware: Ürün yazılımına özgü nesneleri ve nitelikleri yönetmek için arabirimler içerir. Burada bellenim, sistem açılışında yürütülen bir koddur. Örneğin, platform x86 bios, OpenFirmware ve ia64 olabilir. Örnek olarak EFI klasöründe birçok dosya var.
Örnek çıktı:
$ ls firmware/efi/
config_table esrt fw_vendor runtime systab
efivars fw_platform_size mok-variables runtime-map vars
Bu dosyaların her biri bir parametre için bir miktar değer içerir.
7. /sys/kernel: Bu alt dizinde aktif çekirdek hakkında veri veren birçok dosya ve klasör vardır.
8. /sys/module: Çekirdeğe yüklenen her modül için bu dizinde bulunan bir alt dizin vardır. Bu alt dizinlerin adlandırılması, ilgili çekirdeğin adına dayanmaktadır. Her modül dizininin içinde, modül bölümleriyle ilgili öznitelikleri içeren bölümler adı verilen bir alt dizin vardır. Benzer şekilde, sürücüler, tutucular, notlar, parametreler vb. gibi birçok alt dizin vardır.

9. /sys/power: Güç alt sistemini temsil eder ve yalnızca iki özniteliği vardır: disk ve durum. Sistemin uyku/askıya alma durumuna geçme yöntemi “disk” tarafından kontrol edilir. “State”, bir gücün düşük güçlü bir durum kazanmasına izin verir.
Yazının orijinalini buradan okuyabilirsiniz.