ரஸ்ட் மொழிக்கான ஆதரவுடன் லினக்ஸ் கர்னலுக்கான இணைப்புகளின் எட்டாவது பதிப்பு

Rust-for-Linux திட்டத்தின் ஆசிரியரான Miguel Ojeda, Linux கர்னல் டெவலப்பர்களால் பரிசீலிக்க ரஸ்ட் மொழியில் சாதன இயக்கிகளை உருவாக்குவதற்கான v8 கூறுகளை வெளியிட முன்மொழிந்தார். இது பதிப்பு எண் இல்லாமல் வெளியிடப்பட்ட முதல் பதிப்பைக் கணக்கில் எடுத்துக்கொண்டு, இணைப்புகளின் திருத்தப்பட்ட பதிப்பாகும். ரஸ்ட் ஆதரவு சோதனைக்குரியதாகக் கருதப்படுகிறது, ஆனால் ஏற்கனவே லினக்ஸ்-அடுத்த கிளையில் சேர்க்கப்பட்டுள்ளது, 5.20/6.0 வீழ்ச்சி வெளியீட்டில் ஒருங்கிணைக்கப்பட்டதாகக் கூறுகிறது, மேலும் கர்னல் துணை அமைப்புகளில் சுருக்க அடுக்குகளை உருவாக்கும் பணியைத் தொடங்குவதற்கு முதிர்ச்சியடைந்தது, அத்துடன் இயக்கிகள் எழுதும் மற்றும் தொகுதிகள். இந்த மேம்பாட்டிற்கு Google மற்றும் ISRG (இன்டர்நெட் செக்யூரிட்டி ரிசர்ச் குரூப்) நிதியளிக்கிறது, இது லெட்ஸ் என்க்ரிப்ட் திட்டத்தின் நிறுவனர் மற்றும் இணைய பாதுகாப்பை மேம்படுத்த HTTPS மற்றும் தொழில்நுட்பங்களை மேம்படுத்துகிறது.

புதிய பதிப்பில்:

  • டூல்கிட் மற்றும் அலோக் லைப்ரரியின் மாறுபாடு, பிழைகள் ஏற்படும் போது "பீதி" நிலையை உருவாக்க முடியாது, ரஸ்ட் 1.62 இன் வெளியீட்டிற்காக புதுப்பிக்கப்பட்டது. முன்பு பயன்படுத்திய பதிப்போடு ஒப்பிடும்போது, ​​கர்னல் பேட்ச்களில் பயன்படுத்தப்படும் const_fn_trait_bound செயல்பாட்டிற்கான ஆதரவை ரஸ்ட் கருவித்தொகுப்பு உறுதிப்படுத்தியுள்ளது.
  • பைண்டிங் குறியீடு ஒரு தனி க்ரேட் பேக்கேஜ் "பைண்டிங்ஸ்" ஆக பிரிக்கப்பட்டுள்ளது, இது முக்கிய தொகுப்பு "கர்னல்" இல் மட்டும் மாற்றங்கள் செய்யப்பட்டால் மீண்டும் கட்டமைப்பதை எளிதாக்குகிறது.
  • மேக்ரோ "கான்காட்_ஐடென்ட்ஸ்!" செயல்படுத்தல் concat_idents செயல்பாட்டுடன் இணைக்கப்படாத ஒரு செயல்முறை மேக்ரோ வடிவத்தில் மீண்டும் எழுதப்பட்டது மற்றும் உள்ளூர் மாறிகள் பற்றிய குறிப்புகளைப் பயன்படுத்த அனுமதிக்கிறது.
  • "static_assert!" மேக்ரோ மீண்டும் எழுதப்பட்டது, மாறிலிகளுக்குப் பதிலாக எந்தச் சூழலிலும் "core::assert!()" ஐப் பயன்படுத்த அனுமதிக்கிறது.
  • மேக்ரோ "build_error!" தொகுதிக்கூறுகளுக்கு “RUST_BUILD_ASSERT_{WARN,ALLOW}” பயன்முறை அமைக்கப்படும்போது வேலை செய்யத் தழுவியது.
  • “kernel/configs/rust.config” அமைப்புகளுடன் தனி கோப்பு சேர்க்கப்பட்டது.
  • மேக்ரோ மாற்றீடுகளில் செயலாக்கப்பட்ட “*.i” கோப்புகள் “*.rsi” என மறுபெயரிடப்பட்டுள்ளன.
  • C குறியீட்டிற்குப் பயன்படுத்தப்பட்டவற்றிலிருந்து வேறுபட்ட தேர்வுமுறை நிலைகளுடன் ரஸ்ட் கூறுகளை உருவாக்குவதற்கான ஆதரவு நிறுத்தப்பட்டது.
  • கோப்பு முறைமைகளுடன் வேலை செய்வதற்கான பிணைப்புகளை வழங்கும் fs தொகுதி சேர்க்கப்பட்டது. ரஸ்டில் எழுதப்பட்ட எளிய கோப்பு முறைமையின் உதாரணம் கொடுக்கப்பட்டுள்ளது.
  • கணினி வரிசைகளுடன் பணிபுரிவதற்கான பணிவரிசை தொகுதி சேர்க்கப்பட்டது (work_struct மற்றும் workqueue_struct கர்னல் கட்டமைப்புகள் மீது பிணைப்புகளை வழங்குகிறது).
  • ஒத்திசைவற்ற நிரலாக்க முறைகளை (அசின்க்) செயல்படுத்துவதன் மூலம் காசின்க் தொகுதியின் வளர்ச்சி தொடர்ந்தது. ரஸ்டில் எழுதப்பட்ட கோர்-லெவல் TCP சேவையகத்தின் உதாரணம் சேர்க்கப்பட்டது.
  • [Threaded]Handler வகைகள் மற்றும் [Threaded]Registration` வகைகளைப் பயன்படுத்தி ரஸ்ட் மொழியில் குறுக்கீடுகளைக் கையாளும் திறன் சேர்க்கப்பட்டது.
  • கோப்பு_செயல்பாடுகள் அமைப்பு போன்ற செயல்பாட்டு சுட்டிகளின் அட்டவணைகளுடன் வேலை செய்வதை எளிதாக்க, செயல்முறை மேக்ரோ "#[vtable]" சேர்க்கப்பட்டது.
  • இருதரப்பு இணைக்கப்பட்ட பட்டியல்களின் செயல்படுத்தல் சேர்க்கப்பட்டது "பாதுகாப்பான_பட்டியல்:: பட்டியல்".
  • RCU (Read-copy-update) மற்றும் Guard வகைக்கான ஆரம்ப ஆதரவு சேர்க்கப்பட்டு, தற்போதைய தொடரிழையுடன் ரீட் லாக் இணைக்கப்பட்டுள்ளதா என்பதைச் சரிபார்க்கவும்.
  • கர்னல் த்ரெட்களை உருவாக்க மற்றும் தானாகவே தொடங்க Task ::spawn() செயல்பாடு சேர்க்கப்பட்டது. Task::wake_up() முறையும் சேர்க்கப்பட்டது.
  • தாமதத்தைப் பயன்படுத்த உங்களை அனுமதிக்கும் தாமத தொகுதி சேர்க்கப்பட்டது (msleep() மீது ஒரு ரேப்பர்).

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

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

ஆதாரம்: opennet.ru

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