ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ Ruby ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš 3.1

Ruby 3.1.0 ืื™ื– ื‘ืืคืจื™ื™ื˜, ืึท ื“ื™ื ืึทืžื™ืฉ ื›ื™ื™ืคืขืฅ-ืึธืจื™ืขื ื˜ื™ื“ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ื•ื•ืึธืก ืื™ื– ื”ืขื›ืกื˜ ืขืคืขืงื˜ื™ื•ื• ืื™ืŸ ืคึผืจืึธื’ืจืึทื ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื™ื ืงืึธืจืคึผืขืจื™ื™ืฅ ื“ื™ ื‘ืขืกื˜ืขืจ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ Perl, Java, Python, Smalltalk, Eiffel, Ada ืื•ืŸ Lisp. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืงืึธื“ ืื™ื– ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื•ื ื˜ืขืจ ื“ื™ BSD ("2-ืงืœืึธื– BSDL") ืื•ืŸ "Ruby" ืœื™ื™ืกืึทื ืกื™ื–, ื•ื•ืึธืก ืจืขืคืขืจืก ืฆื• ื“ื™ ืœืขืฆื˜ืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ GPL ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืื•ืŸ ืื™ื– ื’ืึธืจ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ GPLv3.

ื”ื•ื™ืคึผื˜ ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ:

  • ื ื ื™ื™ึทืข ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืื™ืŸ-ืคึผืจืึธืกืขืก JIT ืงืึทืžืคึผื™ื™ืœืขืจ, YJIT, ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ, ื‘ืืฉืืคืŸ ื“ื•ืจืš ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืคื•ืŸ ื“ื™ Shopify E- ื”ืึทื ื“ืœ ืคึผืœืึทื˜ืคืึธืจืžืข ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ืึทืŸ ืื™ื ื™ืฆื™ืื˜ื™ื•ื• ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืจื•ื‘ื™ ืžื’ื™ืœื” ื•ื•ืึธืก ื ื•ืฆืŸ ื“ื™ ืจืึทื™ืœืก ืคืจื™ื™ืžื•ื•ืขืจืง ืื•ืŸ ืจื•ืคืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืžืขื˜ื”ืึธื“ืก. ื“ืขืจ ืฉืœื™ืกืœ ื—ื™ืœื•ืง ืคื•ืŸ ื“ื™ ืคืจื™ืขืจ ื’ืขื•ื•ื™ื™ื ื˜ MJIT JIT ืงืึทืžืคึผื™ื™ืœืขืจ, ื•ื•ืึธืก ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคึผืจืึทืกืขืกื™ื ื’ ื’ืึทื ืฅ ืžืขื˜ื”ืึธื“ืก ืื•ืŸ ื ื™ืฆื˜ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืงืึทืžืคึผื™ื™ืœืขืจ ืื™ืŸ ื“ื™ C ืฉืคึผืจืึทืš, ืื™ื– ืึทื– YJIT ื ื™ืฆื˜ Lazy Basic Block Versioning (LBBV) ืื•ืŸ ื›ึผื•ืœืœ ืึทืŸ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ JIT ืงืึทืžืคึผื™ื™ืœืขืจ. ืžื™ื˜ LBBV, JIT ืขืจืฉื˜ืขืจ ืงืึทืžืคึผื™ื™ืœื– ื‘ืœื•ื™ื– ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ืขื ืื•ืคึฟืŸ, ืื•ืŸ ืงืึทืžืคึผื™ื™ืœื– ื“ื™ ืžื ื•ื—ื” ืขื˜ืœืขื›ืข ืžืึธืœ ืฉืคึผืขื˜ืขืจ, ื ืึธืš ื“ื™ ื˜ื™ื™ืคึผืก ืคื•ืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ืŸ ืึทืจื’ื•ืžืขื ื˜ืŸ ื–ืขื ืขืŸ ื‘ืืฉืœืืกืŸ ื‘ืขืฉืึทืก ื“ื•ืจื›ืคื™ืจื•ื ื’. ื•ื•ืขืŸ ืื™ืจ ื ื•ืฆืŸ YJIT, ืึท 22% ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื™ื– ืจืขืงืึธืจื“ืขื“ ื•ื•ืขืŸ ืคืœื™ืกื ื“ื™ืง ื“ื™ ืจื™ื™ืœื–ื‘ืขื ื˜ืฉ ื˜ืขืกื˜, ืื•ืŸ ืึท 39% ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ื“ื™ ืคืœื™ืกื™ืง ื•ืคืคื™ืจืŸ ืคึผืจื•ื‘ื™ืจืŸ. YJIT ืื™ื– ื“ืขืจื•ื•ื™ื™ึทืœ ืœื™ืžื™ื˜ืขื“ ืฆื• ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ื•ื ื™ืงืก-ื•ื•ื™ ืึธืกืขืก ืื•ื™ืฃ ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ x86-64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื•ืŸ ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ (ืฆื• ืึทืงื˜ืึทื•ื•ื™ื™ื˜, ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ "--yjit" ืคืึธืŸ ืื™ืŸ ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื”).
  • ื™ืžืคึผืจื•ื•ื•ื“ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื“ื™ ืึทืœื˜ MJIT JIT ืงืึทืžืคึผื™ื™ืœืขืจ. ืคึฟืึทืจ ืคึผืจืึทื“ื–ืฉืขืงืก ื ื™ืฆืŸ ืจืึทื™ืœืก, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืžืึทืงืกื™ืžื•ื ืงืึทืฉ ื’ืจื™ื™ืก (--jit-max-cache) ืื™ื– ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 100 ืฆื• 10000 ื™ื ืกื˜ืจืึทืงืฉืึทื ื–. ืคืืจืฉื˜ืืคื˜ ื ื™ืฆืŸ JIT ืคึฟืึทืจ ืžืขื˜ื”ืึธื“ืก ืžื™ื˜ ืžืขืจ ื•ื•ื™ 1000 ื™ื ืกื˜ืจืึทืงืฉืึทื ื–. ืฆื• ืฉื˜ื™ืฆืŸ Zeitwerk of Rails, JIT ืงืึธื“ ืื™ื– ื ื™ื˜ ืžืขืจ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ื•ื•ืขืŸ TracePoint ืื™ื– ืขื ื™ื™ื‘ืึทืœื“ ืคึฟืึทืจ ืงืœืึทืก events.
  • ืขืก ื™ื ืงืœื•ื“ื– ืึท ื’ืึธืจ ืจื™ืจื™ื˜ืึทืŸ debug.gem ื“ืขื‘ื•ื’ื’ืขืจ, ื•ื•ืึธืก ืฉื˜ื™ืฆื˜ ื•ื•ื™ื™ึทื˜ ื“ื™ื‘ืึทื’ื™ื ื’, ื˜ื•ื˜ ื ื™ืฉื˜ ืคึผืึทืžืขืœืขืš ื“ื™ ื“ื™ื‘ืึทื’ื™ื ื’ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืฉื˜ื™ืฆื˜ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืžื™ื˜ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ื“ื™ื‘ืึทื’ื™ื ื’ ื™ื ื˜ืขืจืคื™ื™ืกื™ื– (VSCode ืื•ืŸ Chrome), ืงืขื ืขืŸ ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ืคึฟืึทืจ ื“ื™ื‘ืึทื’ื™ื ื’ ืžื•ืœื˜ื™-ื˜ืจืขื“ื™ื“ ืื•ืŸ ืžื•ืœื˜ื™-ืคึผืจืึธืกืขืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืึท REPL ืงืึธื“ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืฆื•ื‘ื™ื ื“, ืึธืคืคืขืจืก ืึทื•ื•ืึทื ืกื™ืจื˜ืข ื˜ืจื™ื™ืกื™ื ื’ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–, ืงืขื ืขืŸ ืจืขืงืึธืจื“ื™ืจืŸ ืื•ืŸ ืจื™ืคึผืœื™ื™ ืงืึธื“ ืกื ื™ืคึผืึทืฅ. ื“ื™ ืคืจื™ืขืจ ื’ืขืคึฟื™ื ื˜ ื“ืขื‘ื•ื’ื’ืขืจ lib/debug.rb ืื™ื– ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืคื•ืŸ ื“ื™ ื‘ืึทื–ืข ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’.
    ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ Ruby ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš 3.1
  • ื™ืžืคึผืœืึทืžืขื ืึทื“ ื•ื•ื™ื–ืฉืึทื•ื•ืึทืœ ื›ื™ื™ืœื™ื™ื˜ื™ื ื’ ืคื•ืŸ ืขืจืจืึธืจืก ืื™ืŸ ืจื•ืคืŸ ืฆื•ืจื™ืง ืฉืคึผื•ืจ ืจื™ืคึผืึธืจืฅ. ื˜ืขื•ืช ืคืœืึทื’ื™ื ื’ ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ืžื™ื˜ ื“ื™ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืื•ืŸ ืคืขืœื™ืงื™ื™ึทื˜-ืขื ื™ื™ื‘ืึทืœื“ ื™ื™ื“ืœืฉื˜ื™ื™ืŸ ืคึผืขืงืœ error_highlight. ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ื˜ืขื•ืช ืคืœืึทื’ื™ื ื’, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ "--disable-error_highlight" ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ. $ ruby โ€‹โ€‹test.rb test.rb: 1: ืื™ืŸ " ": ื•ื ื“ืขืคื™ื ืขื“ ืื•ืคึฟืŸ "ืฆื™ื™ื˜" ืคึฟืึทืจ 1: ื™ื ื˜ืขื’ืขืจ (ื ืึธืžืขื˜ื”ืึธื“ืขืจืจืึธืจ) 1.ื˜ื™ืžืข {} ^^^^^ ื”ืื˜ ืื™ืจ ืžื™ื™ื ืขืŸ? ืžืืœ
  • ื“ื™ ืฉืึธืœ ืคื•ืŸ ื™ื ื˜ืขืจืึทืงื˜ื™ื•ื• ื—ืฉื‘ื•ื ื•ืช IRB (REPL, Read-Eval-Print-Loop) ื™ืžืคึผืœืึทืžืึทื ืฅ ืึธื˜ืึทืžืึทื˜ื™ืง ืงืึทืžืคึผืœื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืืจื™ื™ืŸ ืงืึธื“ (ื•ื•ืขืŸ ืื™ืจ ื“ืจื•ืงืŸ, ืึท ืึธื ืฆื•ื”ืขืจืขื ื™ืฉ ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืžื™ื˜ ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ืงืึทื ื˜ื™ื ื™ื•ื™ื ื’ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘, ืฆื•ื•ื™ืฉืŸ ื•ื•ืึธืก ืื™ืจ ืงืขื ืขืŸ ืžืึทืš ืžื™ื˜ ื“ื™ ื˜ืึทื‘ ืึธื“ืขืจ ืฉื™ืคื˜ + ื˜ืึทื‘ ืฉืœื™ืกืœ). ื ืึธืš ืกืึทืœืขืงื˜ื™ื ื’ ื“ื™ ืงืึทื ื˜ื™ื ื™ื•ื™ื™ืฉืึทืŸ ืึธืคึผืฆื™ืข, ืึท ื“ื™ืึทืœืึธื’ ืงืขืกื˜ืœ ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ื ื™ืจื‘ื™ื™ ื•ื•ืึธืก ื“ื™ืกืคึผืœื™ื™ื– ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื“ื™ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ื ื•ืžืขืจ. ื“ื™ ืงืœืึทื•ื•ื™ืึทื˜ื•ืจ ื“ื•ืจื›ื•ื•ืขื’ ืึทืœื˜ + ื“ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืึทืงืกืขืก ื“ื™ ืคื•ืœ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ.
    ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ Ruby ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš 3.1
  • ื“ื™ ืฉืคึผืจืึทืš ืกื™ื ื˜ืึทืงืก ืื™ืฆื˜ ืึทืœืึทื•ื– ื•ื•ืึทืœื•ืขืก ืื™ืŸ ื”ืึทืฉ ืœื™ื˜ืขืจืึทืœ ืื•ืŸ ืงื™ื•ื•ืขืจื“ ืึทืจื’ื•ืžืขื ื˜ืŸ ืฆื• ื–ื™ื™ืŸ ืกืงื™ืคึผื˜ ื•ื•ืขืŸ ืื™ืจ ืจื•ืคืŸ ืคืึทื ื’ืงืฉืึทื ื–. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื“ื™ ืื•ื™ืกื“ืจื•ืง "{ืจืขื ื˜ื’ืขื : ืจืขื ื˜ื’ืขื , ื™: ื™}" ืื™ืจ ืงืขื ืขืŸ ืื™ืฆื˜ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ "{ืจืขื ื˜ื’ืขื :, ื™:}", ืื•ืŸ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ "ืคืึธืึธ (ืจืขื ื˜ื’ืขื : ืจืขื ื˜ื’ืขื , ื™: ื™)" - foo ( ืจืขื ื˜ื’ืขื :, ื™: )".
  • ืกื˜ืึทื‘ื™ืœื™ื–ืขื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืื™ื™ืŸ-ืฉื•ืจื” ืžื•ืกื˜ืขืจ ืฉื•ื•ืขื‘ืขืœืขืš (ืึทืจื™ => [ืจืขื ื˜ื’ืขื , ื™, ื–]), ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ื˜ ืžืขืจ ืคืœืึทื’ื“ ื•ื•ื™ ื™ืงืกืคึผืขืจืžืขื ืึทืœ.
  • ื“ืขืจ "^" ืึธืคึผืขืจืึทื˜ืึธืจ ืื™ืŸ ืžื•ืกื˜ืขืจ ืฉื•ื•ืขื‘ืขืœืขืš ืงืขื ืขืŸ ืื™ืฆื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ืื•ื™ืกื“ืจื•ืงืŸ, ืœืžืฉืœ: Prime.each_cons(2).lazy.find_all{_1 ืื™ืŸ [n, ^(n + 2)]}.take(3).to_a #= > ? [[3, 5], [5, 7], [11, 13]]
  • ืื™ืŸ ืื™ื™ืŸ-ืฉื•ืจื” ืžื•ืกื˜ืขืจ ืฉื•ื•ืขื‘ืขืœืขืš, ืื™ืจ ืงืขื ืขืŸ ืคืึทืจืœืึธื–ืŸ ืงืœืึทืžืขืจืŸ: [0, 1] => _, ืจืขื ื˜ื’ืขื  {ื™: 2} => ื™: ืจืขื ื˜ื’ืขื  #=> 1 ื™ #=> 2
  • ื“ื™ RBS ื˜ื™ืคึผ ืึทื ืึธื˜ืึทืฆื™ืข ืฉืคึผืจืึทืš, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ืึทืฉื˜ื™ืžืขืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ื™ ืคึผืจืึธื’ืจืึทื ืื•ืŸ ื“ื™ ื˜ื™ื™ืคึผืก ื’ืขื ื™ืฆื˜, ื”ืื˜ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ืื•ื™ื‘ืขืจืฉื˜ืขืจ ืฉื™ืขื•ืจ ืคื•ืŸ ื˜ื™ืคึผ ืคึผืึทืจืึทืžืขื˜ืขืจืก ื ื™ืฆืŸ ื“ื™ "<" ืกื™ืžื‘ืึธืœ, ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ื™ืœื™ืึทืกื™ื– ืคื•ืŸ ื“ื–ืฉืึทื ืขืจื™ืง ื˜ื™ื™ืคึผืก, ื™ืžืคึผืœืึทืžืขื ืึทื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื–ืึทืžืœื•ื ื’ืขืŸ ืคึฟืึทืจ ืึธื ืคื™ืจื•ื ื’ ื’ืขืžืก, ื™ืžืคึผืจื•ื•ื•ื“ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื•ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคื™ืœืข ื ื™ื™ึทืข ืกื™ื’ื ืึทื˜ืฉืขืจื– ืคึฟืึทืจ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืื•ืŸ ื ืึธืจืžืึทืœ ืœื™ื™ื‘ืจืขืจื™ื–.
  • ืขืงืกืคึผืขืจื™ืžืขื ื˜ืึทืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ TypePro ืกื˜ืึทื˜ื™ืง ื˜ื™ืคึผ ืึทื ืึทืœื™ื–ืขืจ, ื•ื•ืึธืก ื“ื–ืฉืขื ืขืจื™ื™ืฅ RBS ืึทื ืึทื˜ื™ื™ืฉืึทื ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืงืึธื“ ืึทื ืึทืœื™ืกื™ืก ืึธืŸ ื™ืงืกืคึผืœื™ืกืึทื˜ ื˜ื™ืคึผ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข (ืœืžืฉืœ, ืึทืŸ ืึทื“ื™ืฉืึทืŸ ืื™ื– ืฆื•ื’ืขื’ืจื™ื™ื˜ ืคึฟืึทืจ ื™ื ื˜ืึทื’ืจื™ื™ื˜ื™ื ื’ TypePro ืžื™ื˜ ื“ื™ VSCode ืจืขื“ืึทืงื˜ืึธืจ).
  • ื“ืขืจ ืกื“ืจ ืคื•ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืงื™ื™ืคืœ ืึทืกื™ื™ื ืžืึทื ืฅ ืื™ื– ืคืืจืขื ื“ืขืจื˜. ืฆื•ื ื‘ื™ื™ืฉืคึผื™ืœ, ื‘ื™ื– ืึทื”ืขืจ, ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ ื“ื™ ืื•ื™ืกื“ืจื•ืง "ืคืึธืึธ [0], ื‘ืึทืจ [0] = ื‘ืึทื–, ืงื•ื•ืงืก" ื–ืขื ืขืŸ ืคึผืจืึทืกืขืกื˜ ืื™ืŸ ื“ื™ ืกื“ืจ baz, qux, foo, bar, ืึธื‘ืขืจ ืื™ืฆื˜ foo, bar, baz, qux.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื–ื›ึผืจื•ืŸ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืกื˜ืจื™ื ื’ืก ื ื™ืฆืŸ ื“ื™ VWA (Variable Width Allocation) ืžืขืงืึทื ื™ื–ืึทื.
  • ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ื™ื™ื“ืœืฉื˜ื™ื™ืŸ ืžืึทื“ื–ืฉื•ืœื– ืื•ืŸ ื“ื™ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ื ืึธืจืžืึทืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง. ื“ื™ ื ืขืฅ-ftp, net-imap, net-pop, net-smtp, ืžืึทื˜ืจื™ืฅ, ื”ื•ื™ืคึผื˜ ืื•ืŸ ื“ื™ื‘ืึทื’ ืคึผืึทืงืึทื“ื–ืฉืึทื– ื–ืขื ืขืŸ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’