Π Π΅Π»ΠΈΠ· Π½Π° MirageOS 4.0, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° стартиранС Π½Π° прилоТСния Π½Π°Π΄ Ρ…ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€

Π‘Π»Π΅Π΄ Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° вСрсия 4.0 Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° MirageOS, която позволява ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми с Π΅Π΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС доставя ΠΊΠ°Ρ‚ΠΎ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ β€žunikernelβ€œ, способСн Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми, ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ядро ΠΈ всякакви ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ слоСвС. Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° прилоТСния сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π·ΠΈΠΊΡŠΡ‚ OCaml. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС разпространява ΠΏΠΎΠ΄ свободната лицСнзия ISC.

Цялата нискоуровнСва функционалност, ΠΏΡ€ΠΈΡΡŠΡ‰Π° Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΡΠ²ΡŠΡ€Π·Π°Π½Π° с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΎ Π² която ΠΈ Π΄Π° Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° Π² спСциализирано ядро (концСпцията unikernel), ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС стартира Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π²ΡŠΡ€Ρ…Ρƒ Ρ…ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ΠΈ Xen, KVM, BHyve ΠΈ VMM (OpenBSD), Π²ΡŠΡ€Ρ…Ρƒ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° процСс Π² POSIX-ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° срСда ΠΈΠ»ΠΈ Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ срСди Amazon Elastic Compute Cloud ΠΈ Google Compute Engine.

Π‘ΡŠΠ·Π΄Π°Π΄Π΅Π½Π°Ρ‚Π° срСда Π½Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π½ΠΈΡ‰ΠΎ излишно ΠΈ взаимодСйства Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с Ρ…ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° Π±Π΅Π· Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ ΠΈ систСмни слоСвС, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намаляванС Π½Π° Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈ повишаванС Π½Π° сигурността. Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° с MirageOS сС ΡΡŠΡΡ‚ΠΎΠΈ Π² Ρ‚Ρ€ΠΈ Π΅Ρ‚Π°ΠΏΠ°: ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° конфигурацията с опрСдСлянС Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ Π² срСдата OPAM ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° срСдата ΠΈ стартиранС Π½Π° срСдата. Runtime Π·Π° осигуряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π²ΡŠΡ€Ρ…Ρƒ Ρ…ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ΠΈΡ‚Π΅ Π΅ построСн Π½Π° основата Π½Π° ядрото Solo5.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ прилоТСнията ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π½Π° високо Π½ΠΈΠ²ΠΎ с Π΅Π·ΠΈΠΊΠ° OCaml, ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½ΠΈΡ‚Π΅ срСди дСмонстрират доста Π΄ΠΎΠ±Ρ€Π° производитСлност ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, DNS ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π·Π°Π΅ΠΌΠ° само 200 ΠšΠ‘). ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° срСдитС ΡΡŠΡ‰ΠΎ Π΅ опростСна, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈ нСобходимост ΠΎΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΈΠ»ΠΈ промяна Π½Π° конфигурацията, Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° сС създадС ΠΈ стартира Π½ΠΎΠ²Π° срСда. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС стотици Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° OCaml Π·Π° изпълнСниС Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN ΠΈ Π΄Ρ€.), Ρ€Π°Π±ΠΎΡ‚Π° със Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ осигуряванС Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ.

ΠšΠ»ΡŽΡ‡ΠΎΠ²ΠΈ подобрСния:

  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π΅Π½ Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° компилация Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ unikernel. ВмСсто ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° систСма Π·Π° компилация ocamlbuild, Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡƒΠΌΡŠΡ‚ dune ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (monorepo). Π—Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π½ΠΎΠ²Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° opam-monorepo, която позволява Π΄Π° сС Ρ€Π°Π·Π΄Π΅Π»ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ компилацията ΠΎΡ‚ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° opam-monorepo ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠ°Ρ‚ΠΎ създаванС Π½Π° lock-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ със ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° зависимости, изтСглянС ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΎΡ‚ зависимости ΠΈ настройка Π½Π° срСдата Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° систСмата Π·Π° компилация dune. Π‘Π°ΠΌΠ°Ρ‚Π° компилация сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с инструмСнта dune.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π΅Π½ Π΅ повтаряСм процСс Π½Π° компилация. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° lock-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ осигурява ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към вСрсии Π½Π° зависимости ΠΈ позволява Π² всСки ΠΌΠΎΠΌΠ΅Π½Ρ‚ напълно Π΄Π° сС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° компилация с Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ ΠΊΠΎΠ΄.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ Π½ΠΎΠ² процСс Π½Π° крос-компилация ΠΈ Π΅ осигурСна Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° крос-компилация Π·Π° всички ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ Ρ†Π΅Π»Π΅Π²ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ΠΎΡ‚ Π΅Π΄Π½ΠΎ ΠΎΠ±Ρ‰ΠΎ сборно пространство, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° крос-компилация Π½Π° зависимости ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с Π²Ρ€ΡŠΠ·ΠΊΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° C, Π±Π΅Π· нСобходимост ΠΎΡ‚ добавянС Π½Π° Ρ‚Π΅Π·ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² основния ΠΏΠ°ΠΊΠ΅Ρ‚. ΠšΡ€ΠΎΡ-компилацията Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π° с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ пространства, прСдоставСни ΠΎΡ‚ систСмата Π·Π° компилация dune.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ Ρ†Π΅Π»Π΅Π²ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прСдоставСна Π΅ СкспСримСнтална Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° самостоятСлни прилоТСния Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΏΠ»Π°Ρ‚ΠΊΠΈ Raspberry Pi 4.
  • Π˜Π·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π΅ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ интСграцията Π½Π° части ΠΎΡ‚ MirageOS Π² СкосистСми, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π΅Π·ΠΈΠΊΠ° OCaml, с Ρ†Π΅Π» улСсняванС Π½Π° компилацията Π½Π° прилоТСния ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° unikernel. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ MirageOS са ΠΏΠΎΡ€Ρ‚Π½Π°Ρ‚ΠΈ Π·Π° систСмата Π·Π° компилация dune. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° opam-monorepo Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π·Π° инсталиранС Ρ‡Ρ€Π΅Π· пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ opam ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ систСмата Π·Π° компилация dune. Π—Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠ°Ρ‡ΠΎΠ²Π΅, Ρ€Π΅ΡˆΠ°Π²Π°Ρ‰ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с компилацията Π½Π° зависимости Π² dune, са създадСни Π΄Π²Π° рСпозитория dune-universe/opam-overlays ΠΈ dune-universe/mirage-opam-overlays, ΠΊΠΎΠΈΡ‚ΠΎ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° CLI-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° mirage.
  • УлСснСна Π΅ интСграцията Π½Π° MirageOS с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Π΅Π·ΠΈΡ†ΠΈ C ΠΈ Rust.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π½ΠΎΠ² OCaml runtime, ΠΊΠΎΠΉΡ‚ΠΎ позволява заобикалянСто Π½Π° libc (libc-free).
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° услугата Merlin Π·Π° интСграция с Ρ‚ΠΈΠΏΠΎΠ²ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΈ срСди Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster