லினக்ஸ் / யூனிக்ஸ் கட்டளை: Insmod

லினக்ஸ் / யூனிக்ஸ் கட்டளை Insmod இயங்கும் கர்னலில் ஒரு ஏற்றக்கூடிய தொகுதி நிறுவலை நிறுவும் . கர்னலின் ஏற்றுமதி குறியீட்டு அட்டவணையிலிருந்து எல்லா குறியீட்டையும் தீர்க்கும் கர்னலுக்கு ஒரு தொகுதி இணைக்க Insmod முயற்சிக்கிறது.

தொகுதி கோப்பு பெயர் அடைவுகள் அல்லது நீட்டிப்பு இல்லாமல் வழங்கப்பட்டால், Insmod சில பொதுவான இயல்புநிலை அடைவுகளில் தொகுதிக்கு தேடும். சூழல் மாறி MODPATH இந்த இயல்புநிலையை மேலெழுத பயன்படுத்தலாம். /etc/modules.conf போன்ற ஒரு தொகுதி கட்டமைப்பு கோப்பு இருந்தால், இது MODPATH இல் வரையறுக்கப்பட்ட பாதைகள் மேலெழுதப்படும் .

இயல்புநிலை /etc/modules.conf (அல்லது /etc/conf.modules (நீக்கப்பட்டது)) இலிருந்து வேறுபட்ட கட்டமைப்பு கோப்பினைத் தேர்ந்தெடுக்க சூழல் மாறி MODULECONF பயன்படுத்தப்படலாம். இந்த சூழல் மாறி மேலே உள்ள அனைத்து வரையறைகள் மீறப்படும்.

சுற்றுச்சூழல் மாறி UNAME_MACHINE அமைக்கப்பட்டிருந்தால், unum () syscall இலிருந்து இயந்திர புலத்திற்குப் பதிலாக modutils அதன் மதிப்பைப் பயன்படுத்தும். 32-பிட் பயனர் இடைவெளியில் 64-பிட் தொகுதிகள் தொகுக்கப்படும் போது இது முக்கியமாக பயன்படுகிறது , இது UPE_MACHINE ஐ தொகுதிகள் வகைக்கு அமைக்கிறது. தொகுதிகள் மாற்றியமைக்க முழு கண்ட்ரோல் முறைமையை ஆதரிக்காத தற்போதைய modutils ஆதரவு இல்லை, இது 32- மற்றும் 64-பிட் பதிப்பை ஹோஸ்டிங் கட்டமைப்பிற்கு இடையே தேர்வு செய்வதில் மட்டுமே.

விருப்பங்கள்

-e persist_name , --persist = persist_name

தொகுப்பின் எந்த உறுதியான தரவு சுமை இருந்து படிக்க மற்றும் தொகுதி இந்த உடனடி இயக்கம் ஏற்றப்படும் போது எழுதப்பட்ட எங்கே குறிப்பிடுகிறது. இந்த உறுப்பு மாறாவிட்டால், இந்த விருப்பம் அமைதியாக புறக்கணிக்கப்படும். இந்த விருப்பம் இருந்தால், நிரந்தர தரவு மட்டும் Insmod மூலம் வாசிக்கப்படுகிறது, இயல்புநிலை Insmod தொடர்ந்து தரவு செயலாக்க முடியாது.

ஒரு சுருக்கெழுத்து வடிவமாக , -e "" (ஒரு வெற்று சரம்) இன்ஸ்மோடினால் வரையறுக்கப்படுகிறது, இது தொடர்ந்து தொகுக்கப்பட்டு , modules.conf இல் வரையறுக்கப்பட்டு, தொகுதி தேடல் பாதையில் ஒப்பீட்டு தொகுப்பின் கோப்பு பெயர், இது எந்த இடத்தில் பின்வருமாறு ". gz", ".o" அல்லது ". mod". Modules.conf குறிப்பிடுகிறது என்றால் " persistdir = " (அதாவது persistdir என்பது ஒரு வெற்று புலம்) பின்னர் இந்த சுருக்கெழுத்து வடிவம் அமைதியாக புறக்கணிக்கப்படுகிறது. ( Modules.conf (5) ஐ காண்க.)

-f , --force

இயங்கும் கர்னலின் பதிப்பு மற்றும் தொகுதி தொகுக்கப்பட்ட கர்னலின் பதிப்பு பொருந்தவில்லை என்றால் தொகுதி ஏற்றத்தை முயற்சிக்கவும். இது கர்னல் பதிப்பு காசோலை மேலெழுதும்போது, ​​அது குறியீட்டு பெயர் காசோலைகளில் எந்த விளைவையும் ஏற்படுத்தாது. மாடலில் உள்ள குறியீட்டு பெயர்கள் கர்னலுடன் பொருந்தவில்லை என்றால், தொகுதிகளை ஏற்றுவதற்கு Insmod ஐ கட்டாயமாக்க எந்த வழியும் இல்லை.

-h , --help

விருப்பங்களின் சுருக்கம் காட்டவும் உடனடியாக வெளியேறவும்.

-k , --autoclean

தொகுதி மீது தானாக சுத்தமான கொடி அமைக்கவும். சில நேரங்களில் பயன்படுத்தப்படாத தொகுப்பை அகற்றுவதற்கு kerneld (8) இந்த கொடியைப் பயன்படுத்தும் - பொதுவாக ஒரு நிமிடம்.

-L , - தடு

ஒரே மாதிரியான ஒரே நேரத்தில் சுமைகளைத் தடுக்க மந்தையை (2) பயன்படுத்துங்கள்.

-m , --map

ஸ்டௌட்டில் ஒரு சுமை வரைபடத்தை வெளியீடு, ஒரு கர்னல் பீதி ஏற்பட்டால், தொகுதிகளை எளிதாக சரிசெய்ய உதவுகிறது.

-n , --noload

கர்னலுக்கு மாற்றி ஏற்றுவதைத் தவிர எல்லாவற்றையும் செய்க. ஒரு -m அல்லது -O ஆல் கோரப்பட்டால், ரன் வரைபடம் அல்லது குமிழ் கோப்பை உருவாக்கும். தொகுதி ஏற்றப்படவில்லை என்பதால், உண்மையான கர்னல் சுமை முகவரி தெரியவில்லை, எனவே வரைபடம் மற்றும் குமிழ் கோப்பு 0x12340000 இன் தன்னிச்சையான சுமை முகவரியை அடிப்படையாகக் கொண்டவை.

-o module_name , --name = module_name

மூல பொருள் கோப்பின் அடிப்படை பெயரிடமிருந்து பெயரைப் பெறுவதற்கு பதிலாக, தொகுதிக்கு பெயரிடுக.

-O blob_name , --blob = blob_name

பைனரி பொருள் உள்ள இருமை பொருள் சேமிக்கவும். இதன் விளைவாக ஒரு பைனரி குமிழ் (எல்எஃப்எஃப் தலைப்புகள் இல்லை) என்பது கர்னலில் ஏற்றப்பட்டதை சரியாக காட்டும்போது, ​​பிரிவு கையாளுதல் மற்றும் இடமாற்றம் செய்யப்படுகிறது. விருப்பம் -m பொருள் ஒரு வரைபடத்தை பெற பரிந்துரைக்கப்படுகிறது.

-p , --probe

தொகுதி வெற்றிகரமாக ஏற்றப்பட்டதா என பார்க்கவும் . தொகுதி பாதையில் உள்ள பொருள் கோப்பினை கண்டுபிடித்தல், பதிப்பு எண்கள் சரிபார்க்கிறது மற்றும் சின்னங்களைத் தீர்ப்பது. இது இடமாற்றங்களை சரிபார்க்கவில்லை அல்லது வரைபட அல்லது குமிழ் கோப்பை உருவாக்குகிறது.

-P முன்னொட்டு , --prefix = முன்னொட்டு

இந்த விருப்பத்தை ஒரு SMP அல்லது bigmem கர்னலுக்கான பதிப்புடனான தொகுதிகள் மூலம் பயன்படுத்தலாம், ஏனெனில் அத்தகைய தொகுதிக்கூறுகள் அவற்றின் குறியீட்டு பெயர்களில் கூடுதல் கூடுதல் முன்னொட்டைக் கொண்டுள்ளன. கர்னல் சின்னங்களைக் கொண்டு கட்டப்பட்டிருந்தால், பின்வருவனவற்றில் முன்னுரை "get_module_symbol" அல்லது "inter_module_get" இன் வரையறையிலிருந்து தானாக பிரித்தெடுக்கப்படும், இதில் ஒன்று தொகுதிகள் ஆதரிக்கும் எந்த கர்னலிலும் இருக்க வேண்டும். கர்னல் எந்த குறியீட்டு பதிப்பையும் கொண்டிருக்கவில்லை, ஆனால் தொகுதி பதிப்புகள் குறியீட்டு பதிப்புகளுடன் கட்டப்பட்டிருந்தால் பயனர் பயனர் -P வழங்க வேண்டும்.

-q , --quiet

எந்த தீர்க்கப்படாத சின்னங்களின் பட்டியலை அச்சிடாதே. பதிப்பு பொருந்தாமை பற்றி புகார் செய்யாதீர்கள். இந்த சிக்கல் வெளியேறியின் வெளியேறும் நிலையில் மட்டுமே பிரதிபலிக்கப்படும்.

-r , - ரூட்

சில பயனர்கள் ஒரு அல்லாத ரூட் பயனர் கீழ் தொகுதிகள் தொகுக்க பின்னர் ரூட் என தொகுதிகள் நிறுவ. ரூட் உரிமத்தின் அடைவு அடைவு இருந்தாலும் கூட, இந்த செயல்முறை ரூட் அல்லாத பயனாளியின் சொந்தமான தொகுதிகளை விட்டுவிடும். ரூட் அல்லாத பயனாளர் சமரசம் செய்திருந்தால், அந்தத் தடையின்றி அந்த பயனர் உரிமையாளர் சொந்தமான இருக்கும் தொகுதிகள் மேலெழுதலாம் மற்றும் ரூட் அணுகலை பூட்ஸ்ட்ராப் செய்ய இந்த வெளிப்பாட்டைப் பயன்படுத்தலாம்.

இயல்பாக, modutils ரூட் சொந்தமாக இல்லை என்று ஒரு தொகுதி பயன்படுத்த முயற்சிகள் நிராகரிக்க வேண்டும். குறிப்பிடும் -ஆர் காசோலை மாற்றுகிறது மற்றும் ரூட் சொந்தமாக இல்லாத தொகுதிகள் ஏற்ற அனுமதிக்கிறது. குறிப்பு: modutils கட்டமைக்கப்பட்ட போது ரூட் காசோலைக்கான முன்னிருப்பு மதிப்பு மாற்றப்படலாம்.

கட்டமைப்பு நேரத்தை முடக்குதல் அல்லது இயல்புநிலையை அமைப்பதில் -r இன் பயன்முறையை பயன்படுத்துதல் முக்கிய பாதுகாப்பு வெளிப்பாடு மற்றும் பரிந்துரைக்கப்படவில்லை.

-S , - syslog

முனையத்திற்கு பதிலாக syslog (3) க்கு எல்லாவற்றையும் வெளியீடு.

-S , - காலியல்கள்

கர்னலை ஆதரிக்காவிட்டாலும் கூட, கொலண்டுகள் தரவை ஏற்றுவதற்கு ஏற்றப்பட்ட தொகுதிக்கு கட்டாயப்படுத்தவும் . கர்னல் பதிப்புகள் இல்லாமல் கர்னல் ஏற்றப்பட்ட சிறிய அமைப்புகளுக்கு இந்த விருப்பம் உள்ளது, ஆனால் தேர்ந்தெடுக்கப்பட்ட தொகுதிகள் பிழைப்புக்காக kallsyms வேண்டும். இந்த விருப்பமானது Red Hat லினக்ஸில் முன்னிருப்பாக உள்ளது.

-v , --verbose

விர்போஸாக இருங்கள்.

-V , - பதிப்பு

Insmod இன் பதிப்பைக் காட்டு.

-X , - ஏற்றுமதி; -x , - இறக்குமதி

செய் மற்றும் அனைத்து தொகுதி புற குறியீடுகளையும் முறையே ஏற்றுமதி செய்ய வேண்டாம். அடையாளங்கள் இறக்குமதி செய்யப்பட வேண்டியது இயல்புநிலை. தொகுதி வெளிப்படையாக அதன் சொந்த கட்டுப்பாட்டு குறியீட்டு அட்டவணையை ஏற்றுமதி செய்யவில்லை என்றால், இந்த விருப்பம் பயனுள்ளதாக இருக்கும், இதனால் இது நீக்கப்பட்டது.

-Y , --ksymoops ; -y , --noksymoops

Ksyms க்கு ksymoops சின்னங்களைச் சேர்க்க வேண்டாம். இந்த மாதிரியில் ஒரு அச்சச்சோ இருந்தால், சிறந்த பிழைத்திருத்தங்களை வழங்குவதற்கு ksymoops மூலம் இந்த சின்னங்கள் பயன்படுத்தப்படுகின்றன. இயல்புநிலை ksymoops குறியீடுகள் வரையறுக்கப்படுகிறது. இந்த விருப்பம் -X / -x விருப்பங்களின் சார்பாக உள்ளது .

ksymoops குறியீடுகளை ஏறக்குறைய 260 பைட்டுகள் ஏற்றப்பட்ட தொகுதிக்கு சேர்க்கின்றன. நீங்கள் கர்னல் ஸ்பேஸில் மிகவும் சிறியவராய் இருந்தால், அதன் குறைந்தபட்ச அளவுக்கு கீசைகளை குறைக்க முயன்றால், இயல்புநிலையை எடுத்து மேலும் துல்லியமான Oops பிழைத்திருத்தம் கிடைக்கும். தொடர்ந்து தொகுதி தரவு சேமிக்க ksymoops குறியீடுகள் தேவைப்படுகிறது.

-N , - எண்-மட்டும்

கர்னல் பதிப்பிற்கு எதிராக தொகுதி பதிப்பின் எண் பகுதியை மட்டும் சரிபார்க்கவும், அதாவது ஒரு தொகுதி ஒரு கர்னலுக்கு இருந்தால், EXTRAVERSION ஐ புறக்கணிக்கலாம். இந்த கொடியானது தானாகவே கெர்னல் 2.5 க்கு அமைக்கப்படுகிறது, இது முந்தைய கர்னல்களுக்கு விருப்பமாகும்.

தொகுதி அளவுருக்கள்

சில தொகுதிக்கூறுகள் சுமை நேர அளவுருக்கள் தங்கள் செயல்பாட்டை தனிப்பயனாக்க ஏற்றுக்கொள்கின்றன. இந்த அளவுருக்கள் பெரும்பாலும் I / O போர்ட் மற்றும் IRQ எண்கள் இயந்திரத்திலிருந்து இயந்திரத்திற்கு மாறுபடும் மற்றும் வன்பொருள் இருந்து தீர்மானிக்க முடியாது.

2.0 தொடர் கர்னல்களுக்காக உருவாக்கப்படும் தொகுதிகளில், எந்த முழு எண் அல்லது பாத்திரம் சுட்டிக்காட்டி குறியீடும் அளவுருவாக மாற்றியமைக்கப்படலாம். 2.1 தொடர் கர்னல்களில் தொடங்கி, சின்னங்கள் வெளிப்படையாக அளவுருக்கள் என குறிக்கப்படுகின்றன, இதனால் குறிப்பிட்ட மதிப்புகள் மாறும். மேலும், சுமை நேரத்தில் வழங்கப்படும் மதிப்புகள் சரிபார்க்க வகை தகவல் வழங்கப்படுகிறது.

முழுமையாக்கும் விஷயத்தில், அனைத்து மதிப்புகளும் தசம, அக்ல் அல்லது ஹெக்டேடசிமல் லா சி சி: 17, 021 அல்லது 0x11. வரிசை உறுப்புகள் காற்புள்ளிகளால் பிரிக்கப்பட்ட வரிசை வரிசை. மதிப்புகளை விலக்கினால் கூறுகள் தவிர்க்கப்படலாம்.

2.0 தொடர் தொகுதிகளில், எண்ணில் தொடங்கும் மதிப்புகள் சரங்களைக் கருதப்படுகின்றன. 2.1 தொடங்கி, அளவுருவின் வகை தகவல் ஒரு சரமாக மதிப்பை விளக்குவது என்பதைக் குறிக்கிறது. மதிப்பு இரண்டு இரட்டை மேற்கோள்களுடன் ( " ) தொடங்குகிறது என்றால், சரம் C, escape sequences மற்றும் அனைத்திலும் வரையறுக்கப்படுகிறது. ஷெல் ப்ராம்டில் இருந்து மேற்கோள் குறிப்புகள் ஷெல் விளக்கத்திலிருந்து பாதுகாக்கப்பட வேண்டும் என்பதை நினைவில் கொள்க.

GPL உரிமம் பெற்ற தொகுதிகள் மற்றும் சின்னங்கள்

கர்னல் 2.4.10 உடன் தொடங்கி, மாடல்கள் உரிம சரம் வேண்டும், MODULE_LICENSE () ஐப் பயன்படுத்தி வரையறுக்கப்படுகிறது. பல சரங்களை GPL ஏற்றதாக கருதப்படுகிறது; எந்தவொரு உரிம சரம் அல்லது உரிமம் இல்லை என்று பொருள் தொகுதி உரிமையாளராக கருதப்படுகிறது.

கர்னல் / proc / sys / kernel / களைந்த கொடியை ஆதரிக்கிறது என்றால், GPL உரிமத்தின்றி ஒரு தொகுதிகளை ஏற்றும்போது '1' உடன் செயலிழக்கப்படும் அல்லது துண்டாக்கப்பட்ட கொடி. கர்னல் களைதல் மற்றும் ஒரு தொகுதி உரிமம் இல்லாமல் ஏற்றப்பட்டால் எச்சரிக்கை வழங்கப்படும். GPL இணக்கமற்றது, களைப்பதை ஆதரிக்காத பழைய கர்னல்களில் கூட MODULE_LICENSE () கொண்டிருக்கும் தொகுதிகளுக்கு ஒரு எச்சரிக்கை எப்போதும் வழங்கப்படுகிறது. பழைய கர்னல்களில் ஒரு புதிய மாதிரிகள் பயன்படுத்தப்படுகையில் எச்சரிக்கைகளை இது குறைக்கிறது.

insmod -f (படை) முறைமை அல்லது களைப்புக்கு ஆதரவு கொடுக்கும் கர்னல்களில் '2' உடன் கறைப்பட்ட கொடி. இது எப்போதும் ஒரு எச்சரிக்கையை வெளியிடுகிறது.

சில கர்னல் டெவலப்பர்கள் அவற்றின் குறியீடால் ஏற்றுமதி செய்யப்படும் குறியீடுகள் ஒரு ஜிபிஎல் இணக்கமான உரிமத்துடன் மட்டுமே தொகுதிகள் பயன்படுத்தப்பட வேண்டும். இந்த சின்னங்கள் EXPORT_SYMBOL_GPL ஆல் வழக்கமான EXPORT_SYMBOL க்கு பதிலாக ஏற்றுமதி செய்யப்படுகின்றன. கர்னல் மற்றும் பிற தொகுதிகள் மூலம் ஏற்றுமதி செய்யப்படும் GPL-only சின்னங்கள் GPL-compatible உரிமத்துடன் கூடிய மாதிரிகள் மட்டுமே காணப்படுகின்றன, இந்த குறியீடுகள் ' GPLONLY_ ' இன் முன்னொட்டுடன் / proc / ksyms இல் தோன்றும். GPLONLY_ prefix ஐ GPLONLY_ prefix ஐ ஒரு GPL அனுமதிப்பத்திரத்தை ஏற்றும் போது, ​​தொகுதி முன்னொட்டு இல்லாமல் சாதாரண சின்னத்தின் பெயரை குறிக்கிறது. GPL இணக்கமான உரிமம் இல்லாமல் மாதிரிகள் மட்டுமே ஜிபிஎல் மாதிரிகள் கிடைக்கவில்லை, இதில் உரிமம் இல்லாத மாதிரிகள் உள்ளன.

Ksymoops உதவி

கர்னலைப் பிழைத்திருத்தம் செய்வதற்கு உதவுகிறது தொகுதிகள் பயன்படுத்தும் போது அச்சமற்றது, kmsms க்கு சில சின்னங்களை சேர்ப்பதற்கு இன்ஸ்மோட் இயல்புநிலைகள், -Y விருப்பத்தை பார்க்கவும். இந்த சின்னங்கள் __insmod_modulename_ உடன் தொடங்குகின்றன . மாதிரிகள் தனித்துவமான அடையாளங்களை உருவாக்க வேண்டும். ஒரே மாதிரியை வேறு தொகுதிக்கூறு பெயர்களில் ஒன்றுக்கு மேற்பட்டதாக ஏற்றுவது சட்டபூர்வமானது. தற்போது வரையறுக்கப்பட்ட குறியீடுகள் பின்வருமாறு:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile என்பது பொருள் ஏற்றப்பட்ட கோப்பின் பெயர். இது சரியான பொருளுக்கு குறியீட்டுடன் பொருந்துகிறது என்று உறுதிப்படுத்துகிறது. mtime என்பது அந்த கோப்பில் கடைசியாக மாற்றப்பட்ட டைம்ஸ்டாம்ப் ஆகும். பதிப்பு தொகுதி தொகுக்கப்பட்டுள்ளது என்று கர்னல் பதிப்பு, -1 இல்லை பதிப்பு கிடைத்தால். _O குறியீடானது, தொடக்கத் தலைப்பை தொகுதி தலைப்பு எனக் கொண்டிருக்கிறது.

__insmod_modulename_Ssectionname_Llength

தேர்ந்தெடுக்கப்பட்ட எல்எஃப் பிரிவுகளின் தொடக்கத்தில் இந்த சின்னம் தோன்றுகிறது, தற்போது .text, .rodata, .data, .bss மற்றும் .sbss. பிரிவு பூஜ்ஜிய அளவு இல்லாதபட்சத்தில் அது தோன்றுகிறது. sectionname என்பது எல்எல் பிரிவின் பெயர், நீளம் என்பது தசமத்தின் பிரிவின் நீளமாகும். எந்த சின்னங்களும் கிடைக்காதபோது, ​​இந்த குறியீடானது ksymoops வரைபட முகவரிகள் பகுதிகளுக்கு உதவுகிறது.

__insmod_modulename_Ppersistent_filename

தொகுதி ஒன்று அல்லது அதற்கு மேற்பட்ட அளவுருக்கள் இருந்தால் தொடர்ந்து நிரப்பு தரவு மற்றும் ஒரு கோப்புப்பெயர் ( தொடர்ந்து பார்க்கவும், மேலே) காணப்படலாம் என Insmod ஆல் உருவாக்கப்பட்டது.

பிழைத்திருத்த கர்னலுடன் வேறு சிக்கல் தொகுப்பிலுள்ள அச்சமானது , / proc / ksyms மற்றும் / proc / தொகுதிகள் ஆகியவற்றின் உள்ளடக்கங்கள் Oops க்கு இடையில் மாறலாம், நீங்கள் பதிவு கோப்பை செயலாக்கும் போது. / Var / log / ksymoops அடைவு அடைந்தால், rmodd தானாகவே / proc / ksyms மற்றும் / proc / தொகுதிகள் தானாகவே / var / log / ksymoops க்கு நகலெடுக்கும் . % d முதல்% எச்% எம்% S`. கணினி நிர்வாகி ksymoops க்கு சொல்லலாம், இது ஒரு அச்சச்சோவை பிழைத்திருத்தம் செய்யும் போது பயன்படுத்தும் ஸ்னாப்ஷாட் கோப்புகளை. இந்த தானியங்கி நகல் முடக்க எந்த மாற்றமும் இல்லை. நீங்கள் அதை விரும்பவில்லை என்றால், / var / log / ksymoops ஐ உருவாக்க வேண்டாம். அந்த அடைவு இருந்தால், அது ரூட் சொந்தமாக இருக்க வேண்டும் மற்றும் முறை 644 அல்லது 600 இருக்க வேண்டும் மற்றும் நீங்கள் ஒவ்வொரு நாளும் அல்லது இந்த ஸ்கிரிப்ட் இயக்க வேண்டும். கீழே உள்ள ஸ்கிரிப்ட் insmod_ksymoops_clean ஆக நிறுவப்பட்டுள்ளது.

அறிய அடிப்படை தகவல்

பெயர்

Insmod - loadable கர்னல் தொகுதி நிறுவ

சுருக்கம்

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o module_name ] [-O blob_name ] [-P முன்னொட்டு ] தொகுதி [ குறியீடு = மதிப்பு ...]