ለሊኑክስ ከርነል አዲስ የፓቼዎች ስሪት ለዝገት ቋንቋ ድጋፍ

የ Rust-for-Linux ፕሮጄክት ደራሲ ሚጌል ኦጄዳ ለሊኑክስ ከርነል ገንቢዎች የዝገት መሳሪያ ሾፌር ልማት የv5 ክፍሎችን እንዲለቀቅ ሐሳብ አቅርቧል። ያለስሪት ቁጥር የታተመውን የመጀመሪያ እትም ግምት ውስጥ በማስገባት ይህ የ patches ስድስተኛው እትም ነው። የዝገት ድጋፍ እንደ ሙከራ ይቆጠራል ነገር ግን በሊኑክስ-ቀጣይ ቅርንጫፍ ውስጥ አስቀድሞ ተካቷል እና በከርነል ንዑስ ስርዓቶች ላይ የአብስትራክሽን ንብርብሮችን ለመፍጠር እና እንዲሁም ሾፌሮችን እና ሞጁሎችን ለመፃፍ መስራት ለመጀመር በሳል ነው። ልማቱ በGoogle እና ISRG (የኢንተርኔት ደኅንነት ጥናትና ምርምር ቡድን) የገንዘብ ድጋፍ የተደረገው የኢንተርኔት ደኅንነት ጥበቃን ለማሳደግ የኤችቲቲፒኤስን እና የቴክኖሎጂ ልማትን የሚያበረታታ ፕሮጀክት መስራች ነው።

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

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

አዲሱ የ patches ስሪት በመጀመሪያ ፣ ሁለተኛ ፣ ሦስተኛ ፣ አራተኛ እና አምስተኛ እትሞች ውይይት ወቅት የተሰጡ አስተያየቶችን ማጥፋት ይቀጥላል ። በአዲሱ ስሪት:

  • የመሳሪያው ስብስብ ወደ Rust 1.59.0 መለቀቅ ተዘምኗል። የአሎክ ቤተ-መጽሐፍት ልዩነት ከአዲሱ የዝገት ስሪት ጋር ተመሳስሏል ፣ ይህም እንደ ማህደረ ትውስታ ያሉ ስህተቶች በሚከሰቱበት ጊዜ “አስደንጋጭ” ሁኔታን ያስወግዳሉ። የመሰብሰቢያ ማስገቢያዎችን ("feature(global_asm)") የመጠቀም ችሎታ ተረጋግቷል።
  • በከርነል ማጠናቀር ሂደት ውስጥ ጥቅም ላይ የሚውሉ የ Rust አስተናጋጅ ፕሮግራሞችን ለመፍጠር ተጨማሪ ድጋፍ።
  • አስቀድመው የመነጩ የዒላማ መድረክ ዝርዝር ፋይሎችን ከማቅረብ ይልቅ በከርነል ውቅር ላይ ተመስርተው በተለዋዋጭ መንገድ ይፈጠራሉ።
  • የታከለ የከርነል መለኪያ HAVE_RUST ዝገትን ለሚደግፉ አርክቴክቸር ይነቃል።
  • ማጠቃለያዎች የሃርድዌር የውሸት የዘፈቀደ ቁጥር ጀነሬተር ዝገት ኮድ ውስጥ ለመጠቀም ታቅደዋል።
  • የስህተት ኮዶችን ያለ "ስህተት ::" ቅድመ ቅጥያ (ለምሳሌ "የመመለሻ ስህተት(EINVAL)") መጠቀም ይፈቀዳል የስህተት ኮዶች አያያዝን በሐ.
  • ለቤተኛ C-strings የ"CString" አይነት ታክሏል። የተዋሃዱ ፎርማተር እና ቋት ዓይነቶች።
  • ቡል እና መቆለፊያ መረጃ ታክለዋል።
  • ስፒን-መቆለፊያዎችን ቀለል ያለ ትግበራ.

ምንጭ: opennet.ru

አስተያየት ያክሉ