ரஸ்டில் லினக்ஸ் கர்னலுக்கான பாதுகாப்பான இயக்கிகளை எழுதுவதற்கான கட்டமைப்பு

இன்டெல்லில் பணிபுரியும் ஜோஷ் டிரிப்லெட், திறந்த மூல தொழில்நுட்ப உச்சி மாநாட்டில் பேசுகையில், Crates.io இன் வளர்ச்சியை மேற்பார்வையிடும் குழுவில் உள்ளார் சமர்ப்பிக்க சிஸ்டம்ஸ் புரோகிராமிங் துறையில் ரஸ்ட் மொழியை சி மொழிக்கு இணையாகக் கொண்டுவருவதை நோக்கமாகக் கொண்ட ஒரு பணிக்குழு.

உருவாக்கும் பணியில் இருக்கும் ஒரு பணிக்குழுவில், ரஸ்ட் டெவலப்பர்கள், இன்டெல்லின் பொறியாளர்களுடன் சேர்ந்து, கணினி நிரலாக்கத்திற்காக ரஸ்டில் செயல்படுத்தப்பட வேண்டிய செயல்பாட்டை வரையறுக்கும் விவரக்குறிப்புகளைத் தயாரிப்பார்கள். கணினி நிரலாக்கத்திற்கு பெரும்பாலும் குறைந்த அளவிலான கையாளுதல் தேவைப்படுகிறது, அதாவது சலுகை பெற்ற செயலி வழிமுறைகளை செயல்படுத்துதல் மற்றும் செயலியின் நிலை பற்றிய விரிவான தகவல்களைப் பெறுதல். ரஸ்டுக்காக ஏற்கனவே உருவாக்கப்பட்ட இதே போன்ற அம்சங்களில், பெயரிடப்படாத கட்டமைப்புகள், தொழிற்சங்கங்கள், சட்டசபை மொழி செருகல்கள் ("asm!" மேக்ரோ) மற்றும் BFLOAT16 ஃப்ளோட்டிங் பாயிண்ட் எண் வடிவத்திற்கான ஆதரவு குறிப்பிடப்பட்டுள்ளது.

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

முன்னேற்றம் விவாதங்கள் நிகழ்ச்சிகள்
ரஸ்ட் மொழியில் லினக்ஸ் கர்னலில் இயக்கிகளை உருவாக்கும் திறனை ஜோஷ் கொண்டு வந்தார், இது குறைந்த முயற்சியில் பாதுகாப்பான மற்றும் சிறந்த இயக்கிகளை உருவாக்குவதை சாத்தியமாக்கும், விடுவிக்கப்பட்ட பிறகு நினைவக அணுகல் போன்ற சிக்கல்களிலிருந்து விடுபட்டு, பூஜ்யமானது. சுட்டி dereferences மற்றும் buffer overruns.

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

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

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

உத்தேசிக்கப்பட்ட அனைத்து செயல்பாடுகளும் இன்னும் செயல்படுத்தப்படவில்லை, ஆனால் கட்டமைப்பானது ஏற்கனவே வேலைக்கு மிகவும் பொருத்தமானது மற்றும் Raspberry Pi 9512 போர்டில் வழங்கப்பட்ட LAN3 USB ஈதர்நெட் கன்ட்ரோலருக்கு வேலை செய்யும் இயக்கியை எழுதப் பயன்படுத்தப்பட்டது. தற்போதுள்ள smsc95xx இயக்கி, எழுதியது சி மொழி. ரஸ்டில் ஒரு இயக்கியை உருவாக்கும்போது இயக்க நேர கூறுகளிலிருந்து தொகுதி அளவு மற்றும் மேல்நிலை ஆகியவை முக்கியமற்றவை என்பது குறிப்பிடத்தக்கது, இது வரையறுக்கப்பட்ட வளங்களைக் கொண்ட சாதனங்களுக்கு கட்டமைப்பைப் பயன்படுத்த அனுமதிக்கிறது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்