module_init
ve subsys_initcall
arasındaki fark nedir?Sürücü başlatılırken module_init ile subsys_initcall arasındaki fark nedir? Sürücüyü başlatılırken
Sürücü başlatılırken module_init ile subsys_initcall arasındaki fark nedir? Sürücüyü başlatılırken
cevap
fark zamanlama ya da yürütme daha kesin olarak, düzen ile de ilgilidir. Yani, subsys_initcall
olarak beyan edilen prosedürün, module_init
olarak beyan edilen prosedürden önce yürütülmesi garanti edilir. Bu sıralama, aygıt sürücülerinin aygıtın işlevini kullanmadan önce alt sistem ve platform sürücülerinin başlatılmasını sağlar (örneğin, bir aygıt sürücüsü bir alt sistem aygıtı olarak kaydeder). Çekirdek (yüklenebilir) modüller ya da değil yapılandırılmışsa
her biri için gerçek makro tanımı bağlıdır. Bu makrolar (ve diğer init makroları) tanımı include/linux/init.h
'da bulunabilir. subsys_initcall()
sadece yerleşik (statik bağlantılı) bir modül tarafından kullanılabilir.
module_init
ya yerleşik veya yüklenebilir modüller tarafından kullanılabilir.
Çok açık .. teşekkürler .. yüklenebilen '* .ko' modüllerinde – kzs
,' subsys_initcall() 'module_init' aynı eşleştirilmiş() 'yani' device_initcall() 'Referans: http : //lxr.free-electrons.com/source/include/linux/init.h#L298 – TheCodeArtist
man sayfalarına kontrol ettin mi? – rekire
Bunun için el ile bir sayfa girişi yok. – kzs
Her zaman kaynakları gözden geçirebilirsiniz. Sadece kaynaklara bakarak büyük bir şey açıklanabilir. pointer için –