የ Rust 1.74 ፕሮግራሚንግ ቋንቋ መለቀቅ። RustVMM ኦዲት. Binder በዝገት ውስጥ እንደገና በመፃፍ ላይ

በሞዚላ ፕሮጀክት የተመሰረተው፣ አሁን ግን በገለልተኛ ለትርፍ ያልተቋቋመ ድርጅት Rust Foundation ስር የተገነባው የ Rust 1.74 አጠቃላይ ዓላማ ፕሮግራሚንግ ቋንቋ ታትሟል። ቋንቋው በማህደረ ትውስታ ደህንነት ላይ ያተኩራል እና ከፍተኛ የስራ ትይዩነትን ለማግኘት የቆሻሻ አሰባሳቢውን እና የሩጫ ጊዜን (የሩጫ ጊዜውን ወደ መሰረታዊ አጀማመር እና ደረጃውን የጠበቀ ቤተመፃህፍት መጠገን ይቀንሳል)።

የዝገት የማስታወሻ አያያዝ ዘዴዎች ጠቋሚዎችን በሚጠቀሙበት ጊዜ ገንቢውን ከስህተቶች ያድናሉ እና በአነስተኛ ደረጃ የማህደረ ትውስታ አያያዝ ምክንያት ከሚፈጠሩ ችግሮች ለምሳሌ ከተለቀቀ በኋላ የማስታወሻ ቦታን ማግኘት ፣ ባዶ ጠቋሚዎችን መሰረዝ ፣ ቋት መጨናነቅ ፣ ወዘተ. ቤተ መፃህፍትን ለማሰራጨት፣ ግንባታዎችን ለማቅረብ እና ጥገኞችን ለማስተዳደር ፕሮጀክቱ የካርጎ ጥቅል አስተዳዳሪን ያዘጋጃል። የ crates.io ማከማቻው ቤተ-መጻሕፍትን ለማስተናገድ ይደገፋል።

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

ዋና ፈጠራዎች፡-

  • የሊንት ፍተሻዎችን በCargo.toml ፋይል በኩል ከጥቅል አስተዳዳሪው አንጸባራቂ ጋር የማዋቀር ችሎታ ታክሏል። እንደ የምላሽ ደረጃ (ክልክል፣ ውድቅ፣ ማስጠንቀቂያ፣ ፍቀድ) ያሉ የሊንት ቅንብሮችን ለመግለጽ "[lints]" እና "[workspace.lints]" አዳዲስ ክፍሎች ቀርበዋል፤ እንደገና መገንባት አለመቻልን ሲወስኑ በእነዚህ ክፍሎች ላይ የሚደረጉ ለውጦች ግምት ውስጥ ይገባሉ። ለምሳሌ፣ በግንባታው ወቅት "-F"፣ "-D"፣ "-W" እና "-A" ባንዲራዎችን ከመግለጽ ወይም "#![forbid(unsafe_code)]" እና "#![deny(clippy::enum_glob_use)]" ባህሪያትን ወደ ኮዱ ከማከል ይልቅ፣ አሁን በCargo አንጸባራቂ ውስጥ የሚከተሉትን መጠቀም ይችላሉ፡ [lints.rust] safeze_code = "forbid" [lints.clippy] enum_glob_use = "deny"
  • የክሬት ፓኬጅ አስተዳዳሪ አሁን ከማከማቻ ማከማቻ ጋር ሲገናኝ ማረጋገጫን ይደግፋል። በማረጋገጫ መደብሮች ውስጥ የማረጋገጫ መለኪያዎችን ለማከማቸት ድጋፍ አሁን በመሠረታዊ ፓኬጁ ውስጥ ተካትቷል። Linux (በሊብሴክሬት ላይ የተመሠረተ) macOS (የቁልፍ ሰንሰለት) እና Windows (Windows የCredential Manager)፣ ነገር ግን ስርዓቱ ከጅምሩ ሞዱላር እንዲሆን የተነደፈ ሲሆን ቶከኖችን ለማከማቸት እና ለማመንጨት ከተለያዩ አቅራቢዎች ጋር እንዲሰራ ያስችላል፤ ለምሳሌ፣ የ1Password የይለፍ ቃል አስተዳዳሪን ለመጠቀም ተሰኪ ተዘጋጅቷል። የጥቅል ህትመቶችን ለማረጋገጥ ብቻ ሳይሆን ለማንኛውም ስራዎች በማከማቻው ውስጥ ማረጋገጫ ሊጠየቅ ይችላል። ~/.cargo/config.toml [registry] global-credential-providers = ["cargo:token", "cargo:libsecret"]
  • ለሪፖርት አይነት ፕሮጀክሽን (impl_trait_projections) የተረጋጋ ድጋፍ፣ እንደ "async fn" እና "-> impl Trait" ባሉ የመመለሻ አይነቶች ውስጥ Self እና T::Assocን መጥቀስ ያስችላል። struct Wrapper<'a, T>(&'a T); // `Self`ን የሚጠቅሱ ግልጽ ያልሆኑ የመመለሻ አይነቶች፡ impl Wrapper<'_, ()> { async fn async_fn() -> Self { /* … */ } fn impl_trait() -> impl Iterator { /* … */ } } trait Trait<'a> { type Assoc; fn new() -> Self::Assoc; } impl Trait<'_> for () { type Assoc = (); fn new() {} } // ተያያዥ አይነትን የሚጠቅሱ ግልጽ ያልሆኑ የመመለሻ ዓይነቶች፡ impl<'a, T: Trait<'a>> Wrapper<'a, T> { async fn mk_assoc() -> T::Assoc { /* … */ } fn a_few_assocs() -> impl Iterator { /* … */ } }
  • የባህሪ ዘዴዎችን እና አተገባበርን ጨምሮ አዲስ የ API ክፍል ወደ የተረጋጋ ምድብ ተወስዷል፡
  • ከቋሚዎች ይልቅ በማንኛውም አውድ ውስጥ የመጠቀም እድልን የሚወስነው የ"const" ባህሪ በተግባሮች ውስጥ ጥቅም ላይ ይውላል።
    • core::mem::transmute_copy
    • str::is_ascii
    • [u8]::is_ascii
    • ኮር::num::ሳቹሬትድ
    • impl ከ std::process::Stdio
    • impl ከ std::process::Stdio
    • impl ከ std::process::Child{Stdin, Stdout, Stderr}
    • impl ከ std::process::Child{Stdin, Stdout, Stderr}
    • std::ffi::OsString::from_encoded_bytes_ያልተመረጠ
    • std::ffi::OsString::into_encoded_bytes
    • std::ffi::OsStr::from_encoded_bytes_ያልተመረጠ
    • std::ffi::OsStr::as_encoded_bytes
    • std::io::ስህተት::ሌላ
    • implTryFrom ለ16 ዓመት በታች ለሆኑ
    • ኢምፕል ከ<&[T; N]> ለቬክ
    • ኢምፕል ከ<&mut [T; N]> ለቬክ
    • ኢምፕል ከ<[T; N]> ለ Arc<[T]>
    • ኢምፕል ከ<[T; N]> ለ Rc<[T]>
  • ኮምፓይለሩ፣ የመሳሪያ ቼይን፣ መደበኛ ቤተ-መጽሐፍት እና የመነጩት የመተግበሪያ አስፈፃሚዎች ለአፕል መድረኮች የሚያስፈልገውን መስፈርት ጨምረዋል፣ ይህም ቢያንስ ስሪቶችን ይጠይቃል። macOS 10.12 ሲየራ፣ iOS 10 እና tvOS 10 በ2016 ተለቀዋል።
  • የደረጃ 3 ድጋፍ ለ i686-pc-windows-gnullvm መድረክ ተተግብሯል። ደረጃ 3 መሰረታዊ ድጋፍ ይሰጣል፣ ነገር ግን አውቶማቲክ ሙከራ፣ ኦፊሴላዊ የግንባታ ልቀቶች ወይም የግንባታ ማረጋገጫ ሳይኖር።
  • የ loongarch64-unknown-non target platform ሁለተኛው የድጋፍ ደረጃ ተግባራዊ ሆኗል። ይህ ሁለተኛ የድጋፍ ደረጃ የግንባታ ዋስትናን ያካትታል።

በተጨማሪም፣ ከሩስት ቋንቋ ጋር የተያያዙ ሁለት ክስተቶች ልብ ሊባሉ ይገባል፡

  • የክፍት ምንጭ ፕሮጀክቶችን ደህንነት ለማጠናከር የተፈጠረው የክፍት ምንጭ ቴክኖሎጂ ማሻሻያ ፈንድ (OSTIF)፣ ለተግባር-ተኮር ሃይፐርቪዘሮች እና ተቆጣጣሪዎች ለመፍጠር ክፍሎችን የሚያቀርበውን የRustVMM ፕሮጀክት ኦዲት ውጤቶችን አሳትሟል። ምናባዊ ማሽኖች (VMM)። እንደ ኢንቴል፣ አሊባባ፣ አማዞን፣ ጎግል፣ ሊናሮ እና ሬድ ሃት ያሉ ኩባንያዎች በፕሮጀክቱ ልማት ላይ እየተሳተፉ ነው። የኢንቴል ክላውድ ሃይፐርቪዘር እና የድራጎንቦል ሃይፐርቪዘሮች በRustVMM ላይ ተዘጋጅተዋል። ኦዲቱ የኮድቤዝ ከፍተኛ ጥራት እና በሥነ ሕንፃ እና በአተገባበር ውስጥ የደህንነት ማሻሻያ ቴክኒኮችን መጠቀምን አረጋግጧል። ኦዲቱ በቀጥታ ደህንነትን የማይነኩ ስድስት ጉዳዮችን ለይቷል።
  • ጉግል የከርነል ገንቢ የደብዳቤ መላኪያ ዝርዝር አስተዋውቋል Linux የቢንደር ኢንተርፕሮሰስ ኮሙኒኬሽን ሜካኒዝም አዲስ ትግበራ፣ በሩስት ውስጥ እንደገና ተጽፏል። ይህ ድጋሚ ስራ ደህንነትን ለማሻሻል፣ ደህንነቱ የተጠበቀ የፕሮግራም አወጣጥ ልምዶችን ለማስተዋወቅ እና የማስታወስ ችግሮችን የመለየት ውጤታማነትን ለማሻሻል የፕሮጀክቱ አካል ነበር። Android (ከሁሉም አደገኛ ተጋላጭነቶች ውስጥ 70% የሚሆኑት ተለይተው ይታወቃሉ Android, በማህደረ ትውስታ አያያዝ ስህተቶች ምክንያት የተፈጠረ)። በሩስት ውስጥ ያለው የቢንደር ትግበራ ከዋናው የC ስሪት ጋር በተግባራዊነት እኩልነትን አግኝቷል እና ሁሉንም የAOSP ፈተናዎችን አልፏል (Android ክፍት ምንጭ ፕሮጀክት) እና የሚሰራ የጽኑዌር ስሪቶችን ለመፍጠር ሊያገለግል ይችላል። የሁለቱም አተገባበሮች አፈፃፀም በግምት ተመሳሳይ ነው (በ-1.96% እና +1.38% ውስጥ ልዩነቶች)።

ምንጭ: opennet.ru

በDDoS ጥበቃ፣ VPS VDS አገልጋዮች ለጣቢያዎች አስተማማኝ ማስተናገጃ ይግዙ 🔥 አስተማማኝ የድር ጣቢያ ማስተናገጃ በዲዶኤስ ጥበቃ፣ በቪፒኤስ ቪዲኤስ አገልጋዮች ይግዙ | ProHoster