Π˜Π½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° Π·Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Xen Hypervisor Toolkit Π² Rust

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° XCP-ng, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° ΠΏΠΎΠ΄ ΠΊΡ€ΠΈΠ»ΠΎΡ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Xen, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ…Π° ΠΏΠ»Π°Π½ Π·Π° създаванС Π½Π° замСститСл Π½Π° Rust Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° софтуСрния стСк Xen. Бамият Xen Ρ…ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ всС ΠΎΡ‰Π΅ няма Π΄Π° бъдС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π΅ насочСна основно към ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° инструмСнтариума.

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π² C, Python, OCaml ΠΈ Go, някои ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ са остарСли ΠΈ причиняват ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π°. ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Rust няма Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ цялостно ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° броя Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² Go Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ само Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° бъдС Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° ΠΏΡŠΡ€Π²ΠΎ място.

Rust бСшС ΠΈΠ·Π±Ρ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‰ висока производитСлност Π½Π° изходния ΠΊΠΎΠ΄ с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° бСзопасност Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π±Π΅Π· ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ, подходящ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ ΠΊΠ°ΠΊΡ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΎΡ‚ ниско, Ρ‚Π°ΠΊΠ° ΠΈ ΠΎΡ‚ високо Π½ΠΈΠ²ΠΎ, ΠΈ прСдоставя Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° намаляванС Π½Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π°Π΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (Π·Π°Π΅ΠΌ шашка). ). Rust ΡΡŠΡ‰ΠΎ Π΅ ΠΏΠΎ-разпространСн ΠΎΡ‚ сСгашния XAPI Π΅Π·ΠΈΠΊ OCaml, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ улСсни ΠΏΡ€ΠΈΠ²Π»ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ към ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

На ΠΏΡŠΡ€Π²ΠΈΡ Π΅Ρ‚Π°ΠΏ сС ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° сС разработят замСститСли Π½Π° няколко ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π·Π° Π΄Π° сС отработят процСситС ΠΈ Π΄Π° сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈ основата Π·Π° подмяна Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ части ΠΎΡ‚ софтуСрния стСк. По-спСциално, Π½Π° ΠΏΡŠΡ€Π²ΠΎ място, инструмСнтитС Π·Π° гости Π½Π° Linux Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ прСнаписани Π½Π° Rust, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π·ΠΈΠΊΡŠΡ‚ Go, ΠΈ фоновият процСс Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, написан Π½Π° OCaml.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π·Π° гости Π½Π° Linux (xe-guest-utilities) трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с качСството Π½Π° ΠΊΠΎΠ΄Π° ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° извън ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Xen ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° Cloud Software Group, ΠΊΠΎΠ΅Ρ‚ΠΎ затруднява ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΈ влияниСто Π½Π° общността Π²ΡŠΡ€Ρ…Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°. Новата вСрсия Π½Π° инструмСнтариума (xen-guest-agent) сС ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° бъдС създадСна изцяло ΠΎΡ‚ Π½ΡƒΠ»Π°Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈ възмоТно Π½Π°ΠΉ-просто ΠΈ Π΄Π° ΠΎΡ‚Π΄Π΅Π»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° Π°Π³Π΅Π½Ρ‚Π° ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅. Π‘Π΅ΡˆΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΄Π° сС ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈ фоновият процСс Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ (rrdd), Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ ΠΈ ΠΎΡ‚Π΄Π΅Π»Π΅Π½, ΠΊΠΎΠ΅Ρ‚ΠΎ улСснява СкспСримСнтиранСто с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ² Π΅Π·ΠΈΠΊ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°.

Π‘Π»Π΅Π΄Π²Π°Ρ‰Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° вСроятно Ρ‰Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° xenopsd-ng Π² Rust, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° софтуСрния стСк. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° идСя Π΅ Π΄Π° сС ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с API Π½Π° ниско Π½ΠΈΠ²ΠΎ Π² Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ Π΄Π° сС ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° прСдоставянСто Π½Π° всички API Π½Π° високо Π½ΠΈΠ²ΠΎ Π½Π° останалата част ΠΎΡ‚ стСка Ρ‡Ρ€Π΅Π· Π½Π΅Π³ΠΎ.

Π’Π΅ΠΊΡƒΡ‰Π° стСкова Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° Xen:

Π˜Π½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° Π·Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Xen Hypervisor Toolkit Π² Rust

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° стСкова Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° Xen, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° xenopsd-ng:

Π˜Π½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° Π·Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Xen Hypervisor Toolkit Π² Rust


Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€