QEMU-KVM рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдЮреНрдЪрд╛рд▓рди рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ

QEMU-KVM рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдЮреНрдЪрд╛рд▓рди рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ

рдореЗрд░реЛ рд╡рд░реНрддрдорд╛рди рдмреБрдЭрд╛рдЗ:

1) KVM

KVM (рдХрд░реНрдиреЗрд▓-рдЖрдзрд╛рд░рд┐рдд рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди) рд▓рд┐рдирдХреНрд╕ рдУрдПрд╕рдорд╛ рдореЛрдбреНрдпреБрд▓рдХреЛ рд░реВрдкрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░ (VMM - рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдкреНрд░рдмрдиреНрдзрдХ) рд╣реЛред рдЕрд╕реНрддрд┐рддреНрд╡рд╣реАрди (рднрд░реНрдЪреБрдЕрд▓) рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдХреЗрд╣реА рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░ рдЖрд╡рд╢реНрдпрдХ рдЫ рд░ рдПрдХреИ рд╕рдордпрдорд╛ рдпреЛ рд╕рдлреНрдЯрд╡реЗрдпрд░рдмрд╛рдЯ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рднреМрддрд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд▓реБрдХрд╛рдЙрдиреБрд╣реЛрд╕реН рдЬрд╕рдорд╛ рдпреЛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЪрд▓реНрдЫред рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░рд▓реЗ рднреМрддрд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ (рд╣реЛрд╕реНрдЯ) рд░ рднрд░реНрдЪреБрдЕрд▓ рдУрдПрд╕ (рдЕрддрд┐рдерд┐) рдмреАрдЪрдХреЛ "рд╕реНрдкреЗрд╕рд░" рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫред

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

KVM рдзреЗрд░реИ рдЫрд┐рдЯреЛ рдЫ, рддрд░ рдпреЛ рдЖрдлреИрдВрдорд╛ рднрд░реНрдЪреБрдЕрд▓ OS рдЪрд▓рд╛рдЙрди рдкрд░реНрдпрд╛рдкреНрдд рдЫреИрди, рдХрд┐рдирднрдиреЗ ... рдпреЛ I/O рдЕрдиреБрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рдЫред I/O (CPU, рдбрд┐рд╕реНрдХ, рдиреЗрдЯрд╡рд░реНрдХ, рднрд┐рдбрд┐рдпреЛ, PCI, USB, рд╕рд┐рд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ, рдЖрджрд┐) рдХреЛ рд▓рд╛рдЧрд┐ KVM рд▓реЗ QEMU рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред

2) QEMU

QEMU (рдХреНрд╡рд┐рдХ рдЗрдореБрд▓реЗрдЯрд░) рд╡рд┐рднрд┐рдиреНрди рдпрдиреНрддреНрд░рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдЗрдореБрд▓реЗрдЯрд░ рд╣реЛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдПрдЙрдЯрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдХреЛ рд▓рд╛рдЧрд┐ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд╣рд░реВ рдЕрд░реНрдХреЛрдорд╛ рдЪрд▓рд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, ARM -> x86)ред рдкреНрд░реЛрд╕реЗрд╕рд░рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, QEMU рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдзреАрдп рдЙрдкрдХрд░рдгрд╣рд░реВ рдЕрдиреБрдХрд░рдг рдЧрд░реНрджрдЫ: рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрд╣рд░реВ, HDD, рднрд┐рдбрд┐рдпреЛ рдХрд╛рд░реНрдбрд╣рд░реВ, PCI, USB, рдЖрджрд┐ред

рдпреЛ рдпрд╕реНрддреЛ рдХрд╛рдо рдЧрд░реНрдЫ:

рдирд┐рд░реНрджреЗрд╢рди/рдмрд╛рдЗрдирд░реА рдХреЛрдб (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, ARM) TCG (Tiny Code Generator) рдХрдиреНрднрд░реНрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд▓реЗрдЯрдлрд░реНрдо-рд╕реНрд╡рддрдиреНрддреНрд░ рдХреЛрдбрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреНрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдкреНрд▓реЗрдЯрдлрд░реНрдо-рд╕реНрд╡рддрдиреНрддреНрд░ рдмрд╛рдЗрдирд░реА рдХреЛрдб рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджреЗрд╢рди/рдХреЛрдбрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рд╣реБрдиреНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, x86)ред

рдПрдЖрд░рдПрдо -> рдордзреНрдпрд╡рд░реНрддреА_рдХреЛрдб -> x86

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ рдХреБрдиреИ рдкрдирд┐ рд╣реЛрд╕реНрдЯрдорд╛ QEMU рдорд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдкреБрд░рд╛рдиреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЛрдбреЗрд▓рд╣рд░реВрд╕рдБрдЧ рдкрдирд┐ рдЬреБрди Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD рд╕реБрд░рдХреНрд╖рд┐рдд рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди) рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред рдпрджреНрдпрдкрд┐, рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпрд╕рд▓реЗ рдзреЗрд░реИ рдврд┐рд▓реЛ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ, рдпрд╕ рддрдереНрдпрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рдмрд╛рдЗрдирд░реА рдХреЛрдб рдлреНрд▓рд╛рдИрдорд╛ рджреБрдИ рдкрдЯрдХ рдкреБрди: рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, TCG рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ (TCG рдПрдХ рдЬрд╕реНрдЯ-рдЗрди-рдЯрд╛рдЗрдо рдХрдореНрдкрд╛рдЗрд▓рд░ рд╣реЛ)ред

рддреАред QEMU рдЖрдлреИрдВрдорд╛ рдореЗрдЧрд╛ рдХреВрд▓ рдЫ, рддрд░ рдпрд╕рд▓реЗ рдзреЗрд░реИ рдврд┐рд▓реЛ рдХрд╛рдо рдЧрд░реНрджрдЫред

3) рд╕реБрд░рдХреНрд╖рд╛ рдШрдгреНрдЯреА

QEMU-KVM рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдЮреНрдЪрд╛рд▓рди рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ

рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдорд╛ рдмрд╛рдЗрдирд░реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдПрдХ рдХрд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрджрдЫ, рддрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░рд╣рд░реВрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рд╣реБрдиреНрдЫ (рд░рд┐рдВрдЧрд╣рд░реВ / рд╕реБрд░рдХреНрд╖рд╛ рдШрдгреНрдЯреАрд╣рд░реВ) рдбреЗрдЯрд╛ рдкрд╣реБрдБрдЪрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░рд╣рд░реВ, рд╕рдмреИрднрдиреНрджрд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд (рд░рд┐рдВрдЧ реж) рджреЗрдЦрд┐ рд╕рдмреИрднрдиреНрджрд╛ рд╕реАрдорд┐рдд, рд╡рд┐рдирд┐рдпрдорд┐рдд рд░ "рдирдЯ рдХрдбрд╛рдЗрдХрд╛ рд╕рд╛рдеред " (рд░рд┐рдВрдЧ 0)ред

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

Intel VT-x / AMD SVM рдХреЛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рд╣реБрдиреБ рдЕрдШрд┐, рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░рд╣рд░реВ Ring 0 рдорд╛ рджреМрдбрдиреНрдереНрдпреЛ, рд░ рдЕрддрд┐рдерд┐рд╣рд░реВ Ring 1 рдорд╛ рджреМрдбрдиреНрдереЗред Ring 1 рд╕рдБрдЧ OS рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдзрд┐рдХрд╛рд░ рдирднрдПрдХреЛрд▓реЗ, рдЕрддрд┐рдерд┐ рдкреНрд░рдгрд╛рд▓реАрдмрд╛рдЯ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд▓рдХреЛ рд╕рд╛рде, рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░рд▓реЗ рдпреЛ рдХрд▓рд▓рд╛рдИ рдлреНрд▓рд╛рдИрдорд╛ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрди рд░ Ring 0 рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛ (рдЬрд╕реНрддреИ QEMU рд▓реЗ рдЧрд░реНрдЫ)ред рддреАред рдЕрддрд┐рдерд┐ рдмрд╛рдЗрдирд░реА рд╣реЛрдЗрди рдкреНрд░реЛрд╕реЗрд╕рд░рдорд╛ рд╕реАрдзрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдЙрдбрд╛рдирдорд╛ рдзреЗрд░реИ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдорд╛рд░реНрдЬрдирд╣рд░реВ рдорд╛рд░реНрдлрдд рдЧрдпреЛред

рдУрднрд░рд╣реЗрдб рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдерд┐рдпреЛ рд░ рдпреЛ рдПрдХ рдареВрд▓реЛ рд╕рдорд╕реНрдпрд╛ рдерд┐рдпреЛ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрдорд╛рддрд╛рд╣рд░реВ, рдПрдХ рдЕрд░реНрдХрд╛рдмрд╛рдЯ рд╕реНрд╡рддрдиреНрддреНрд░ рд░реВрдкрдорд╛, рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реЗрдЯ рдЬрд╛рд░реА рдЧрд░рд┐рдпреЛ (Intel VT-x / AMD SVM) рдЬрд╕рд▓реЗ рдЕрддрд┐рдерд┐ OS рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрдорд╛ рд╣реЛрд╕реНрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░рдорд╛ (рдХреБрдиреИ рдкрдирд┐ рдорд╣рдБрдЧреЛ рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдгрд╣рд░реВ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реНрджреИ, рдкрд╣рд┐рд▓реЗ рдЬрд╕реНрддреИ рдерд┐рдпреЛ)ред

Intel VT-x / AMD SVM рдХреЛ рдЖрдЧрдорди рд╕рдВрдЧ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирдпрд╛рдБ рд░рд┐рдВрдЧ рд╕реНрддрд░ -1 (рдорд╛рдЗрдирд╕ рдПрдХ) рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рд░ рдЕрдм рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░ рдпрд╕рдорд╛ рдЪрд▓реНрдЫ, рд░ рдЕрддрд┐рдерд┐рд╣рд░реВ Ring 0 рдорд╛ рдЪрд▓реНрдЫрдиреН рд░ CPU рдорд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдкрд╣реБрдБрдЪ рдкрд╛рдЙрдБрдЫрдиреНред

рддреАред рдЕрдиреНрддрддрдГ:

  • рд╣реЛрд╕реНрдЯ рд░рд┐рдВрдЧ 0 рдорд╛ рдЪрд▓реНрдЫ
  • рдЕрддрд┐рдерд┐рд╣рд░реВ рд░рд┐рдВрдЧ реж рдорд╛ рдХрд╛рдо рдЧрд░реНрдЫрдиреН
  • рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░ рд░рд┐рдВрдЧ -1 рдорд╛ рдЪрд▓реНрдЫ

4) QEMU-KVM

KVM рд▓реЗ рдЕрддрд┐рдерд┐рд╣рд░реВрд▓рд╛рдИ Ring 0 рдорд╛ рдкрд╣реБрдБрдЪ рджрд┐рдиреНрдЫ рд░ QEMU рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ I/O (рдкреНрд░реЛрд╕реЗрд╕рд░, рдбрд┐рд╕реНрдХ, рдиреЗрдЯрд╡рд░реНрдХ, рднрд┐рдбрд┐рдпреЛ, PCI, USB, рд╕рд┐рд░рд┐рдпрд▓ рдкреЛрд░реНрдЯрд╣рд░реВ, рдЖрджрд┐ рдЬреБрди рдЕрддрд┐рдерд┐рд╣рд░реВрд▓реЗ "рд╣реЗрд░реНрдЫрдиреН" рд░ рдХрд╛рдо рдЧрд░реНрдЫрдиреН) рдЕрдиреБрдХрд░рдг рдЧрд░реНрдиред

рддреНрдпрд╕реИрд▓реЗ QEMU-KVM (рд╡рд╛ KVM-QEMU) :)

CREDITS
рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдЧрд░реНрди рддрд╕реНрд╡реАрд░
рд╕реБрд░рдХреНрд╖рд╛ рдШрдгреНрдЯреА рдХреЛ рддрд╕реНрд╡реАрд░

PS рдпрд╕ рд▓реЗрдЦрдХреЛ рдкрд╛рда рдореВрд▓ рд░реВрдкрдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЪреНрдпрд╛рдирд▓рдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рднрдПрдХреЛ рдерд┐рдпреЛ @RU_Voip рдЪреНрдпрд╛рдирд▓ рд╕рд╣рднрд╛рдЧреАрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдХреЛ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдлрдХреЛ рд░реВрдкрдорд╛ред

рдореИрд▓реЗ рдмрд┐рд╖рдп рд╕рд╣рд┐ рдирдмреБрдЭреЗрдХреЛ рд╡рд╛ рдердкреНрди рдХреЛ рд▓рд╛рдЧреА рдХреЗрд╣рд┐ рдЫ рднрдиреЗ рдХрдореЗрдиреНрдЯрдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред

рдзрдиреНрдпрд╡рд╛рдж!

рд╕реНрд░реЛрдд: www.habr.com

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