рд░рд╕реНрдЯ рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдЪрд╣рд░реВрдХреЛ рдЫреИрдареМрдВ рд╕рдВрд╕реНрдХрд░рдг

рд░рд╕реНрдЯ-рдлрд░-рд▓рд┐рдирдХреНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдХрд╛ рд▓реЗрдЦрдХ рдорд┐рдЧреБрдПрд▓ рдУрдЬреЗрдбрд╛рд▓реЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╡рд┐рдЪрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рд░рд╕реНрдЯ рднрд╛рд╖рд╛рдорд╛ рдЙрдкрдХрд░рдг рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ v6 рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдЬрд╛рд░реА рдЧрд░реНрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реЗред рдпреЛ рдкреНрдпрд╛рдЪрдХреЛ рд╕рд╛рддреМрдВ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛ, рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИ, рд╕рдВрд╕реНрдХрд░рдг рдирдореНрдмрд░ рдмрд┐рдирд╛ рдкреНрд░рдХрд╛рд╢рд┐рддред Rust рд╕рдорд░реНрдерди рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдорд╛рдирд┐рдиреНрдЫ, рддрд░ рдкрд╣рд┐рд▓реЗ рдиреИ linux-next рд╢рд╛рдЦрд╛рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдХрд░реНрдиреЗрд▓ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдПрдмреНрд╕реНрдЯреНрд░реЗрдХреНрд╢рди рд▓реЗрдпрд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, рд╕рд╛рдереИ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд░ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд▓реЗрдЦреНрдиреЗ рдХрд╛рдо рд╕реБрд░реБ рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдкрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рд╡рд┐рдХрд╛рд╕ Google рд░ ISRG (Internet Security Research Group) рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддреНрдд рдкреЛрд╖рд┐рдд рдЫ, рдЬреЛ Let's Encrypt рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╕рдВрд╕реНрдерд╛рдкрдХ рд╣реЛ рд░ HTTPS рд░ рдЗрдиреНрдЯрд░рдиреЗрдЯ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рдмрдврд╛рд╡рд╛ рджрд┐рдиреНрдЫред

рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдорд╛:

  • рдЯреБрд▓рдХрд┐рдЯ рд░ рдПрд▓реЛрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдХреЛ рднреЗрд░рд┐рдпрдиреНрдЯ, рддреНрд░реБрдЯрд┐рд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрджрд╛ "рдЖрддрдВрдХ" рдЕрд╡рд╕реНрдерд╛рдХреЛ рд╕рдореНрднрд╛рд╡рд┐рдд рдкреБрд╕реНрддрд╛рдмрд╛рдЯ рдореБрдХреНрдд рдЧрд░рд┐рдПрдХреЛ, рд░рд╕реНрдЯ 1.60 рдХреЛ рд░рд┐рд▓реАрдЬрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдХрд░реНрдиреЗрд▓ рдкреНрдпрд╛рдЪрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ "maybe_uninit_extra" рдореЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╕реНрдерд┐рд░ рдЧрд░реНрджрдЫред
  • рдХрд╛рдЧрдЬрд╛рддрдмрд╛рдЯ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛ (рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЬреБрди рдХрд╛рдЧрдЬрд╛рддрдорд╛ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ), рдХрд░реНрдиреЗрд▓ рдПрдкреАрдЖрдИрдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдХреЛ рдХрдореНрдкрд╛рдЗрд▓-рд╕рдордп рд░реВрдкрд╛рдиреНрддрд░рдг рдорд╛рд░реНрдлрдд рдХрд░реНрдиреЗрд▓ рд▓реЛрдбрд┐рдЩрдХреЛ рд╕рдордпрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ KUnit рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛ред
  • рд░рд╕реНрдЯ рдХрд░реНрдиреЗрд▓ рдХреЛрдб рдЬрд╕реНрддреИ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрд▓реЗ рдХреНрд▓рд┐рдкреА рд▓рд┐рдиреНрдЯрд░ рдЪреЗрддрд╛рд╡рдиреАрдорд╛ рдирддрд┐рдЬрд╛ рдирджрд┐рдиреБ рдкрд░реНрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдЕрдкрдирд╛рдЗрдПрдХрд╛ рдЫрдиреНред
  • рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рд╛рде "рдиреЗрдЯ" рдореЛрдбреНрдпреБрд▓рдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЫред рд░рд╕реНрдЯ рдХреЛрдбрдХреЛ рдХрд░реНрдиреЗрд▓ рд╕рдЮреНрдЬрд╛рд▓ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЫ рдЬрд╕реНрддреИ рдиреЗрдорд╕реНрдкреЗрд╕ (рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдиреЗрдЯ рдХрд░реНрдиреЗрд▓ рд╕рдВрд░рдЪрдирд╛рдорд╛ рдЖрдзрд╛рд░рд┐рдд), SkBuff (struct sk_buff), TcpListener, TcpStream (рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╕рдХреЗрдЯ), Ipv4Addr (struct in_addr), SocketAddrV4 (struct sockaddrV6 (struct sockaddr_vXNUMX) ред
  • рддреНрдпрд╣рд╛рдБ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ (async) рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдорд░реНрдерди рдЫ, kasync рдореЛрдбреНрдпреБрд▓рдХреЛ рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрд▓реЗ TCP рд╕рдХреЗрдЯрд╣рд░реВ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрди рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдХреЛрдб рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ: async fn echo_server(stream: TcpStream) -> рдкрд░рд┐рдгрд╛рдо { let mut buf = [0u8; резрежреирек]; loop { let n = stream.read(&mut buf).await?; рдпрджрд┐ n == 1024 { рдлрд░реНрдХрдиреБрд╣реЛрд╕реН рдареАрдХ(()); } stream.write_all(&buf[..n]). рдкреНрд░рддреАрдХреНрд╖рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН?; } }
  • рдиреЗрдЯрд╡рд░реНрдХ рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдиреЗрдЯ::рдлрд┐рд▓реНрдЯрд░ рдореЛрдбреНрдпреБрд▓ рдердкрд┐рдпреЛред Rust_netfilter.rs рд░рд╕реНрдЯ рднрд╛рд╖рд╛рдорд╛ рдлрд┐рд▓реНрдЯрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдердкрд┐рдпреЛред
  • рдПрдХ рд╕рд╛рдзрд╛рд░рдг mutex smutex::Mutex рдХреЛ рдердкрд┐рдПрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬрд╕рд▓рд╛рдИ рдкрд┐рдирд┐рдЩрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░реНрджреИрдиред
  • NoWaitLock рдердкрд┐рдпреЛ, рдЬреБрди рд▓рдХрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╣рд┐рд▓реНрдпреИ рдкрд░реНрдЦрджреИрди, рд░ рдпрджрд┐ рдЕрд░реНрдХреЛ рдереНрд░реЗрдбрд▓реЗ рдУрдЧрдЯреЗрдХреЛ рдЫ рднрдиреЗ, рдХрд▓рд░рд▓рд╛рдИ рд░реЛрдХреНрдирдХреЛ рд╕рдЯреНрдЯрд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрд╛ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрди рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫред
  • рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реБрди рдирд╕рдХреНрдиреЗ рдЦрдгреНрдбрд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рдХрд░реНрдиреЗрд▓рдорд╛ raw_spinlock_t рджреНрд╡рд╛рд░рд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдПрдХреЛ RawSpinLock рдердкрд┐рдпреЛред
  • рд╕рдиреНрджрд░реНрдн рдЧрдгрдирд╛ рд╕рдВрдпрдиреНрддреНрд░ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рд╡рд╕реНрддреБрдХреЛ рд╕рдиреНрджрд░реНрднрдХрд╛ рд▓рд╛рдЧрд┐ ARef рдкреНрд░рдХрд╛рд░ рдердкрд┐рдпреЛ (рд╕рдзреИрдВ-рд░рд┐рдлрдХрд╛рдЙрдиреНрдЯ рдЧрд░рд┐рдПрдХреЛ)ред
  • rustc_codegen_gcc рдмреНрдпрд╛рдХрдЗрдиреНрдб, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ GCC рдкрд░рд┐рдпреЛрдЬрдирд╛рдмрд╛рдЯ libgccjit рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓рд╛рдИ rustc рдорд╛ рдХреЛрдб рдЬрдирд░реЗрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рд░ GCC рдорд╛ рдЙрдкрд▓рдмреНрдз рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд░ рдЕрдиреБрдХреВрд▓рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрди, рд▓реЗ rustc рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ рдмреБрдЯрд╕реНрдЯреНрд░реНрдпрд╛рдк рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдЧрд░реЗрдХреЛ рдЫред рдХрдореНрдкрд╛рдЗрд▓рд░ рдкрджреЛрдиреНрдирддрд┐ рднрдиреЗрдХреЛ rustc рдорд╛ GCC-рдЖрдзрд╛рд░рд┐рдд рдХреЛрдб рдЬреЗрдиреЗрд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рд▓рд╛рдИ rustc рдХрдореНрдкрд╛рдЗрд▓рд░ рдЖрдлреИрдВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛред рдердк рд░реВрдкрдорд╛, GCC 12.1 рдХреЛ рд╣рд╛рд▓реИрдХреЛ рд░рд┐рд▓реАрдЬрд▓реЗ rustc_codegen_gcc рд▓рд╛рдИ рд╕рд╣реА рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ libgccjit рдорд╛ рдлрд┐рдХреНрд╕рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рд░рд╕реНрдЯрдЕрдк рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ rustc_codegen_gcc рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рддрдпрд╛рд░реА рднрдЗрд░рд╣реЗрдХреЛ рдЫред
  • GCC рдорд╛ рдЖрдзрд╛рд░рд┐рдд рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдВрдЧ GCC рдлреНрд░рдиреНрдЯрдПрдиреНрдб gccrs рдХреЛ рд╡рд┐рдХрд╛рд╕ рдорд╛ рдкреНрд░рдЧрддрд┐ рдиреЛрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫред рд╣рд╛рд▓ Gccrs рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рджреБрдИ рдкреВрд░реНрдг-рд╕рдордп рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдЫрдиреНред

рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрд▓реЗ рдбреНрд░рд╛рдЗрднрд░ рд░ рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рд░рд╕реНрдЯрд▓рд╛рдИ рджреЛрд╕реНрд░реЛ рднрд╛рд╖рд╛рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред рд░рд╕реНрдЯ рд╕рдорд░реНрдерди рдПрдХ рд╡рд┐рдХрд▓реНрдкрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рдЫ рдЬреБрди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫреИрди рд░ рд░рд╕реНрдЯрд▓рд╛рдИ рдХрд░реНрдиреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛рдХреЛ рд░реВрдкрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред рдбреНрд░рд╛рдЗрднрд░ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рд░рд╕реНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирд╛рд▓реЗ рддрдкрд╛рдИрд▓рд╛рдИ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕рдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░ рд░рд╛рдореНрд░реЛ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫ, рдлреНрд░реАрд┐рдЩ рдкрдЫрд┐ рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪ, рдирд▓ рдкреЛрдЗрдиреНрдЯрд░ рдбрд┐рд░реЗрдлрд░реЗрдиреНрд╕рд╣рд░реВ, рд░ рдмрдлрд░ рдУрднрд░рд░рдиреНрд╕ рдЬрд╕реНрддрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдореБрдХреНрддред

рдореЗрдореЛрд░реА-рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧ рд░рд╕реНрдЯрдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рд╕рдордпрдорд╛ рд╕рдиреНрджрд░реНрдн рдЬрд╛рдБрдЪ, рд╡рд╕реНрддреБрдХреЛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд░ рд╡рд╕реНрддреБ рдЬреАрд╡рдирдХрд╛рд▓ (рд╕реНрдХреЛрдк) рдХреЛ рдЯреНрд░рдпрд╛рдХ рд░рд╛рдЦреНрджреИ, рд╕рд╛рдереИ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪрдХреЛ рд╢реБрджреНрдзрддрд╛рдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдорд╛рд░реНрдлрдд рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫред Rust рд▓реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдУрднрд░рдлреНрд▓реЛрд╣рд░реВ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдЪрд░ рдорд╛рдирд╣рд░реВрдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рд╛рд░рдореНрднрд┐рдХрддрд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрджрдЫ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд░ рдЪрд░рд╣рд░реВрдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рдХрдо рдЧрд░реНрди рдмрд▓рд┐рдпреЛ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдЩ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди