ሁለተኛ እትም ለሊኑክስ ከርነል ከዝገት ቋንቋ ድጋፍ ጋር

የ Rust-for-Linux ፕሮጄክት ደራሲ ሚጌል ኦጄዳ የዘመነው የአካል ክፍሎች ስሪት በዝገት ቋንቋ በሊኑክስ ከርነል ገንቢዎች ግምት ውስጥ እንዲገባ ሐሳብ አቅርቧል። የዝገት ድጋፍ እንደ ሙከራ ይቆጠራል ነገር ግን በሚቀጥለው ሊኑክስ ቅርንጫፍ ውስጥ እንዲካተት ተስማምቷል። አዲሱ እትም በፕላቹ የመጀመሪያ ስሪት ውይይት ወቅት የተሰጡ አስተያየቶችን ያስወግዳል. ሊነስ ቶርቫልድስ አስቀድሞ ውይይቱን ተቀላቅሏል እና አንዳንድ ቢት ኦፕሬሽኖችን ለማስኬድ አመክንዮ ለመቀየር ሀሳብ አቅርቧል።

የታቀዱት ለውጦች ሹፌሮችን እና የከርነል ሞጁሎችን ለማዳበር Rustን እንደ ሁለተኛ ቋንቋ ለመጠቀም እንዳስቻሉ ያስታውሱ። የዝገት ድጋፍ በነባሪነት ያልነቃ እና ለከርነል ከሚያስፈልጉት የግንባታ ጥገኞች መካከል ዝገት እንዲካተት የማያደርግ አማራጭ ሆኖ ቀርቧል። ሹፌሮችን ለማዳበር Rustን መጠቀም በትንሹ ጥረት ደህንነቱ የተጠበቀ እና የተሻሉ አሽከርካሪዎችን ለመፍጠር ያስችላል፣ ከችግሮች ነፃ ከወጣ በኋላ የማስታወሻ ቦታ ማግኘት፣ ባዶ ጠቋሚዎችን መሰረዝ እና ቋት መጨናነቅ።

የማህደረ ትውስታ-አስተማማኝ አያያዝ በዝገት ውስጥ በማጠናቀር ጊዜ በማጣቀሻ ፍተሻ፣ የነገሮችን ባለቤትነት እና የእቃውን የህይወት ዘመን (ስፋት) በመከታተል እንዲሁም በኮድ አፈፃፀም ወቅት የማስታወስ ችሎታን ትክክለኛነት በመገምገም ይሰጣል። ዝገት ከኢንቲጀር መብዛት ጥበቃን ይሰጣል፣ ከመጠቀምዎ በፊት ተለዋዋጭ እሴቶችን የግዴታ ማስጀመርን ይጠይቃል፣ በመደበኛ ቤተ-መጽሐፍት ውስጥ ስህተቶችን በተሻለ ሁኔታ ይቆጣጠራል ፣ የማይለዋወጥ ማጣቀሻዎችን እና ተለዋዋጮችን በነባሪነት ይተገበራል ፣ ምክንያታዊ ስህተቶችን ለመቀነስ ጠንካራ የማይንቀሳቀስ ትየባ ይሰጣል።

በአዲሱ የ patches ስሪት ውስጥ በጣም የሚታዩ ለውጦች፡-

  • የማህደረ ትውስታ ድልድል ኮድ እንደ የማስታወስ ዉጪ ያሉ ስህተቶች በሚከሰቱበት ጊዜ "አስደንጋጭ" ሁኔታን ከማመንጨት ነፃ ይሆናል። የ Rust alloc ቤተ-መጽሐፍት ተለዋጭ ተካትቷል ፣ ይህም ውድቀቶችን ለማስተናገድ ኮዱን እንደገና ይሠራል ፣ ግን የመጨረሻው ግቡ ለከርነል የሚያስፈልጉትን ሁሉንም ባህሪዎች ወደ አሎክ ዋና እትም ማዛወር ነው (ለውጦቹ ቀድሞውኑ ተዘጋጅተው ወደ መደበኛው ተላልፈዋል) ዝገት ቤተ መጻሕፍት).
  • ከምሽት ግንባታዎች ይልቅ፣ አሁን ቤታ ልቀቶችን እና የተረጋጋ የrustc compiler ልቀቶችን ከርነል ከ Rust ድጋፍ ጋር ማጠናቀር ትችላለህ። በአሁኑ ጊዜ, rustc 1.54-beta1 እንደ ማጣቀሻ ማጠናከሪያ ጥቅም ላይ ይውላል, ነገር ግን የ 1.54 መለቀቅ በወሩ መጨረሻ ላይ ከተለቀቀ በኋላ እንደ ማጣቀሻ ማጠናከሪያ ይደገፋል.
  • የዝገት መደበኛውን የ"#[ሙከራ]" ባህሪ እና ፈተናዎችን ለመመዝገብ ዶክቲስትን የመጠቀም ችሎታን በመጠቀም ፈተናዎችን ለመፃፍ ተጨማሪ ድጋፍ።
  • ከዚህ ቀደም ከሚደገፉት x32_86 እና ARM64 በተጨማሪ ለ ARM64 እና RISCV አርክቴክቸር ድጋፍ ታክሏል።
  • አሁን ሁሉንም መሰረታዊ ፈተናዎች ያልፋል የGCC Rust (GCC frontend for Rust) እና rustc_codegen_gcc (rustc backend for GCC) አተገባበር።
  • እንደ ቀይ ጥቁር ዛፎች፣ ማጣቀሻ የተቆጠሩ ነገሮች፣ የፋይል ገላጭ አፈጣጠር፣ ተግባራት፣ ፋይሎች እና የአይ/ኦ ቬክተሮች በመሳሰሉት የከርነል ስልቶች በዝገት ፕሮግራሞች ውስጥ አዲስ የአብስትራክት ደረጃ ለመጠቀም ታቅዷል።
  • የአሽከርካሪዎች ልማት ክፍሎች ለፋይል_ኦፕሬሽኖች ሞጁል፣ ለሞጁሉ! ማክሮ፣ የማክሮ ምዝገባ እና የመጀመሪያ ደረጃ አሽከርካሪዎች ድጋፍ አሻሽለዋል (መመርመር እና ማስወገድ)።
  • Binder አሁን የማለፊያ ፋይል ገላጭዎችን እና LSM መንጠቆዎችን ይደግፋል።
  • ለ Raspberry Pi ቦርዶች ሃርድዌር የዘፈቀደ ቁጥር ጄኔሬተር bcm2835-rng - የ Rust ሾፌር የበለጠ ተግባራዊ ምሳሌ ቀርቧል።

በተጨማሪም፣ በከርነል ውስጥ ካለው ዝገት አጠቃቀም ጋር የተያያዙ አንዳንድ የኩባንያዎች ፕሮጀክቶች ተጠቅሰዋል፡-

  • ማይክሮሶፍት የዝገት ድጋፍን ከሊኑክስ ከርነል ጋር ለማዋሃድ በሚሰራው ስራ ላይ ለመሳተፍ ፍላጎት እንዳለው እና በሚቀጥሉት ወራቶች ለ Hyper-V on Rust የአሽከርካሪዎች አተገባበርን ለማቅረብ ዝግጁ ነው።
  • ARM ለ ARM-ተኮር ስርዓቶች የ Rust ድጋፍን ለማሻሻል እየሰራ ነው። የ Rust ፕሮጀክት ባለ 64-ቢት ARM ሲስተሞች የደረጃ 1 መድረክ የሚያደርጉ ለውጦችን አስቀድሞ አቅርቧል።
  • ጎግል በቀጥታ የዝገት ፎር ሊኑክስ ፕሮጄክትን ይደግፋል ፣ አዲስ የ Binder interprocess Communication ዘዴ በሩስት ውስጥ አዲስ ትግበራ እያዘጋጀ ነው ፣ እና በሩስት ውስጥ የተለያዩ ሾፌሮችን እንደገና የመጀመር እድልን እያሰላሰ ነው። በ ISRG (የኢንተርኔት ደህንነት ጥናትና ምርምር ቡድን) Google የ Rust ድጋፍን ከሊኑክስ ከርነል ጋር ለማዋሃድ ለስራ የሚሆን ገንዘብ ሰጥቷል።
  • IBM ለ Rust for PowerPC ስርዓቶች የከርነል ድጋፍን ተግባራዊ አድርጓል።
  • የኤልኤስኢ (የስርዓት ምርምር ላቦራቶሪ) ላቦራቶሪ በሩስት ውስጥ የ SPI ሾፌር አዘጋጅቷል።

ምንጭ: opennet.ru

አስተያየት ያክሉ