/ proc / sys / / sys / modülleri / mod / parametre


10

Son birkaç gündür tam olarak nasıl çalıştığını merak ediyorum. Çekirdek çalışma zamanları parametrelerini sysctl kullanarak ayarlayabiliriz, echo boolen 1> /proc/sys/module/exactParameterancak /sys/modules/module/parameters/parameterdeğerleri de ayarlayabiliriz.

Modüller için parametreler /proc/sys/yalnızca çekirdeğe uymakla mı ilgili? ya da Yüklenebilir Çekirdek Modülleri için parametreler olabilir mi?

LKM, çekirdeği yükledikten sonra parametrelerini gösterir /sys/modules/module/paraeter/params. Çekirdeğe derlenen modüller için parametre olmadığı anlamına mı geliyor?

Her iki dizin arasındaki fark nedir?

Yanıtlar:


5

Her ikisi de çekirdek arayüzleri ve bir isim tesadüfü olmasından başka /proc/sysve çok az bir ilişki vardır /sys.

/proc/sysçekirdek yapılandırma parametreleri olan sysctl'e bir arabirimdir . Okuma veya değiştirme /proc/sys/foo/bar, foo.barsysctl'i almaya veya ayarlamaya eşdeğerdir . Sysctl değerleri semantik kategorilere göre düzenlenir, özünde çekirdeğin yapısı ile ilgili değildir. Birçok sysctl değeri, hangi sürücülerin veya özelliklerin derlendiğine bakılmaksızın her Linux sisteminde bulunan ayarlardır; bazıları isteğe bağlı özelliklerle (örneğin bazı ağ protokolleri) ilişkilidir, ancak hiçbir zaman belirli donanım aygıtlarıyla ilgili değildir.

/sys/moduleadından da anlaşılacağı gibi çekirdek modüllerine bir arabirimdir. Her dizin bir çekirdek modülüne karşılık gelir. Modülün parametrelerini fooyazarak okuyabilir ve bazen değiştirebilirsiniz /sys/module/foo/parameters/*.

Çekirdeğe yüklenen bileşenler, parametrelerini çekirdek komut satırından okur. Bu parametreler çalışma zamanında ayarlanamaz (en azından şunun gibi otomatik olarak oluşturulan bir arabirim yoluyla değil /sys/module: bileşen bunun için özel bir arabirim gösterebilir).


Bu nedenle, Çekirdeğe derlenen modüller için, yalnızca çekirdek komut satırından parametreler ekleyebilirim (örneğin: / proc / cmdline). Bunları çalışma zamanında değiştirmenin başka bir yolu yok mu? Doğru mu anladım? Peki bu çekirdek (yapılandırma) parametreleri tam olarak nedir? Bunların Çekirdek'e derlenen bazı modüllerin değiştirilebilir parametreleri olduğunu düşündüm
ast

@ast sysctl parametreleri Documentation/sysctl/*.txtLinux çekirdek belgelerinde belgelenmiştir. Belirli bir çekirdeğe hangi özelliklerin ve sürücülerin derlendiğine bakılmaksızın, çoğunlukla uygulanan bir dizi parametredir.
Gilles 'SO- kötü olmayı kes

Çok teşekkürler, bu ilişkiyi tam olarak anlamaya çalışıyordum ve cevap bulmak için çok fazla şey okumak için 3 gün geçirdim.
ast

3

Kağıt " sysfs Dosya Sistemi Patrick Mochel'den tarafından" Size amacı ve tarihin çok daha iyi bir bakış verecektir /sysbu kutuya sığmayacak kadar çok. Bildiri Özeti:

sysfs, Linux 2.6 çekirdeğinin, çekirdek kodunun bir bellek içi dosya sistemi aracılığıyla kullanıcı işlemlerine bilgi vermesine olanak tanıyan bir özelliğidir. Dosya sistemi dizin hiyerarşisinin organizasyonu katıdır ve çekirdek veri yapılarının dahili organizasyonunu temel alır. Dosya sisteminde yaratılan dosyalar (çoğunlukla) dosya başına (genellikle) bir değer içeren ASCII dosyalarıdır. Bu özellikler dışa aktarılan bilgilerin doğru ve kolay erişilebilir olmasını sağlayarak sysfs'yi 2.6 çekirdeğin en sezgisel ve kullanışlı özelliklerinden biri haline getirir.

Özel soruya yanıt olarak "Yüklenebilir çekirdek modülü temsil ediliyor /sysmu?" cevap "evet, eğer modülün yazarı bir arayüz sağlıyorsa". Bu, kaç yüklü modülün ilgili girişlere sahip olduğunu göstererek kolayca gösterilebilir./sys/module

$ lsmod | awk '{print $1}' | sort > /tmp/lsmod
$ cd /sys/module ; ls > /tmp/sysmodule
$ comm -12 /tmp/lsmod /tmp/sysmodule
ahci
arc4
ath
ath9k
ath9k_common
ath9k_hw
bluetooth
bnep
cfg80211
…

sistemimde 73 yüklenebilir modülün 73'ünün buna karşılık gelen bir girişi olduğunu gösteriyor /sys/module.


Özellikle / sys / modules / hakkında her zaman her bir LKM ve module_param (name, type, perm) dizin parametrelerinin görünümünü etkilediğine dair bilgiler buldum. Ama hala Çekirdek Çalışma Zamanı Parametrelerini ayarlayabileceğimiz sysctl ve / proc / sys hakkında sorularım var. / Sys / modüllerini kullanmak neden mümkün değildir? Ve Çekirdek derlenmiş modülleri (/ sys / modules / veya / proc / sys / için de) parametrelerimizi nerede ayarladık? Belki de çekirdek seçeneklerini modül parametreleriyle karıştırıyorum (aynı olduklarını düşündüm) sysctl kullanarak modül parametresini veya bazı çekirdek işlevlerini ayarlamalıyım
ast
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.