Mozilla, Fastly, Intel மற்றும் Red Hat ஆகியவை உலகளாவிய பயன்பாட்டிற்கான ஒரு தளமாக WebAssembly ஐ ஊக்குவிக்கின்றன.

Mozilla, Fastly, Intel மற்றும் Red Hat ஒன்றுபட்டது எந்தவொரு உள்கட்டமைப்பு, இயக்க முறைமை அல்லது சாதனம் முழுவதும் பாதுகாப்பான குறியீட்டைச் செயல்படுத்துவதற்கான உலகளாவிய தளமாக WebAssembly ஐ உருவாக்க உதவும் தொழில்நுட்பங்களை மேம்படுத்துவதில் அதன் முயற்சிகள். இணைய உலாவிகளில் மட்டுமின்றி WebAssembly ஐப் பயன்படுத்த அனுமதிக்கும் இயக்க நேரம் மற்றும் கம்பைலர்களின் கூட்டு வளர்ச்சிக்காக ஒரு சமூகம் உருவாக்கப்பட்டது. பைட்கோட் கூட்டணி.

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

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

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

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

பைட்கோட் கூட்டணியின் பிரிவின் கீழ் கூட்டு வளர்ச்சிக்காக மொழிபெயர்க்கப்பட்டது WebAssembly தொடர்பான பல திட்டங்கள், முன்பு கூட்டணியின் நிறுவன நிறுவனங்களால் தனித்தனியாக உருவாக்கப்பட்டது:

  • வாஸ் டைம் - வழக்கமான தனித்த பயன்பாடுகளாக WASI நீட்டிப்புகளுடன் WebAssembly பயன்பாடுகளை இயக்குவதற்கான இயக்க நேரம். இது ஒரு சிறப்பு கட்டளை வரி பயன்பாட்டைப் பயன்படுத்தி WebAssembly பைட்கோடு தொடங்குதல் மற்றும் ஆயத்த இயங்கக்கூடிய கோப்புகளை இணைப்பது ஆகிய இரண்டையும் ஆதரிக்கிறது (wasmtime பயன்பாட்டில் ஒரு நூலகமாக கட்டமைக்கப்பட்டுள்ளது). Wasmtime ஒரு நெகிழ்வான மட்டு கட்டமைப்பைக் கொண்டுள்ளது, இது பல்வேறு பயன்பாடுகளுக்கான இயக்க நேரத்தை அளவிட உங்களை அனுமதிக்கிறது, எடுத்துக்காட்டாக, வரையறுக்கப்பட்ட வளங்களைக் கொண்ட சாதனங்களுக்கு நீங்கள் அகற்றப்பட்ட பதிப்பை உருவாக்கலாம்;
  • லூசெட் - WebAssembly வடிவத்தில் நிரல்களை இயக்குவதற்கான கம்பைலர் மற்றும் இயக்க நேரம். தனித்துவமான அம்சம் லூசெட் என்பது JIT க்கு பதிலாக முழு அளவிலான முன்கூட்டிய தொகுப்பை (AOT, முன்கூட்டியே) நேரடியாக செயல்படுத்துவதற்கு ஏற்ற இயந்திரக் குறியீட்டில் பயன்படுத்துவதாகும். இந்த திட்டம் ஃபாஸ்ட்லியால் உருவாக்கப்பட்டது மற்றும் குறைந்தபட்ச ஆதாரங்களை நுகர்வதற்கும் புதிய நிகழ்வுகளை மிக விரைவாக தொடங்குவதற்கும் உகந்ததாக உள்ளது (ஒவ்வொரு கோரிக்கையிலும் தொடங்கப்பட்ட ஹேண்ட்லர்களுக்காக WebAssembly ஐ பயன்படுத்தும் கிளவுட் எட்ஜ் கம்ப்யூட்டிங் இயந்திரத்தில் லூசெட்டை வேகமாகப் பயன்படுத்துகிறது). கூட்டுத் திட்டத்தின் ஒரு பகுதியாக, லூசெட் கம்பைலர் வாஸ்ம்டைமை அடிப்படையாகப் பயன்படுத்துவதற்கு மாற்ற திட்டமிடப்பட்டுள்ளது;
  • WAMR (WebAssembly மைக்ரோ ரன்டைம்) என்பது WebAssembly ஐ செயல்படுத்துவதற்கான மற்றொரு இயக்க நேரம் ஆகும், இது இன்டெல் ஆல் இன்டர்நெட் ஆஃப் திங்ஸ் சாதனங்களில் பயன்படுத்துவதற்காக முதலில் உருவாக்கப்பட்டது. WAMR ஆனது குறைந்தபட்ச ஆதார நுகர்வுக்கு உகந்ததாக உள்ளது மற்றும் சிறிய அளவிலான ரேம் உள்ள சாதனங்களில் பயன்படுத்தலாம். திட்டத்தில் WebAssembly bytecode ஐ இயக்குவதற்கான ஒரு மொழிபெயர்ப்பாளர் மற்றும் மெய்நிகர் இயந்திரம், API (Libc இன் துணைக்குழு) மற்றும் டைனமிக் பயன்பாட்டு நிர்வாகத்திற்கான கருவிகள் ஆகியவை அடங்கும்;
  • கிரேன்லிஃப்ட் — ஒரு குறியீடு ஜெனரேட்டர், இது வன்பொருள் கட்டமைப்பிலிருந்து சுயாதீனமான ஒரு இடைநிலை பிரதிநிதித்துவத்தை குறிப்பிட்ட வன்பொருள் தளங்களுக்கு உகந்ததாக இயங்கக்கூடிய இயந்திரக் குறியீட்டாக மொழிபெயர்க்கிறது. கிரேன்லிஃப்ட் மிக விரைவான முடிவு உருவாக்கத்திற்கான செயல்பாடு தொகுப்பை இணையாக ஆதரிக்கிறது, இது JIT கம்பைலர்களை உருவாக்க பயன்படுத்த அனுமதிக்கிறது (கிரேன்லிஃப்ட்-அடிப்படையிலான JIT Wasmtime மெய்நிகர் இயந்திரத்தில் பயன்படுத்தப்படுகிறது);
  • WASI பொதுவானது - ஆப்பரேட்டிங் சிஸ்டத்துடன் தொடர்புகளை ஒழுங்கமைக்க WASI (WebAssembly System Interface) API இன் தனிச் செயலாக்கம்;
  • சரக்கு-வாசி - உலாவிக்கு வெளியே WebAssembly ஐப் பயன்படுத்துவதற்கு WASI இடைமுகத்தைப் பயன்படுத்தி WebAssembly பைட்கோடில் ரஸ்ட் குறியீட்டைத் தொகுப்பதற்கான கட்டளையைச் செயல்படுத்தும் கார்கோ தொகுப்பு மேலாளருக்கான ஒரு தொகுதி;
  • வாட் и வாஸ்ம்பார்சர் — உரையை பாகுபடுத்துவதற்கான பாகுபடுத்திகள் (WAT, WAST) மற்றும் WebAssembly பைட்கோடின் பைனரி பிரதிநிதித்துவங்கள்.

மறுபரிசீலனை செய்ய, WebAssembly என்பது Asm.js போன்றது, ஆனால் отличается இது ஜாவாஸ்கிரிப்டுடன் இணைக்கப்படாத பைனரி வடிவமாகும் மற்றும் பல்வேறு நிரலாக்க மொழிகளிலிருந்து தொகுக்கப்பட்ட குறைந்த-நிலை இடைநிலை குறியீட்டை உலாவியில் செயல்படுத்த அனுமதிக்கிறது. WebAssemblyக்கு குப்பை சேகரிப்பான் தேவையில்லை, ஏனெனில் அது வெளிப்படையான நினைவக மேலாண்மையைப் பயன்படுத்துகிறது. WebAssemblyக்கு JITஐப் பயன்படுத்துவதன் மூலம், நேட்டிவ் குறியீட்டிற்கு நெருக்கமான செயல்திறன் நிலைகளை நீங்கள் அடையலாம். WebAssembly இன் முக்கிய குறிக்கோள்களில் பெயர்வுத்திறன், யூகிக்கக்கூடிய நடத்தை மற்றும் வெவ்வேறு தளங்களில் ஒரே மாதிரியான குறியீடு செயல்படுத்தல் ஆகியவற்றை உறுதி செய்வதாகும்.

ஆதாரம்: opennet.ru

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