ΠΠΎ Π΅Π΄Π½Π° ΠΈ ΠΏΠΎΠ» Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°Π·Π²ΠΎΡ, ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ MirageOS 4.0, ΠΊΠΎΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π΅Π΄Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°, Π²ΠΎ ΠΊΠΎΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΡΠ΅ ΠΈΡΠΏΠΎΡΠ°ΡΡΠ²Π° ΠΊΠ°ΠΊΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΠ΅Π½ βΡΠ½ΠΈΠΊΠ΅ΡΠ½Π΅Π»β, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π±Π΅Π· ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΏΠΎΡΠ΅Π±Π½ΠΎ ΡΠ°Π΄ΡΠΎ Π½Π° ΠΠ‘ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ Π±ΠΈΠ»ΠΎ ΡΠ»ΠΎΠ΅Π²ΠΈ. ΠΠ°Π·ΠΈΠΊΠΎΡ OCaml ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΡΠ°Π·Π²ΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠΎΠ΅ΠΊΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°ΡΠ° ISC Π»ΠΈΡΠ΅Π½ΡΠ°.
Π¦Π΅Π»Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΠ²ΠΎΡΡΡΠ²Π΅Π½Π° Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π° Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΡΠ° Π΅ ΠΏΡΠΈΠΊΠ°ΡΠ΅Π½Π° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ΅ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ, ΠΏΠΎ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ° Π²ΠΎ ΡΠΏΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠ°Π΄ΡΠΎ (ΠΊΠΎΠ½ΡΠ΅ΠΏΡ unikernel), ΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΈΡΠ΅ Xen, KVM, BHyve ΠΈ VMM (OpenBSD), Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° ΠΏΡΠΎΡΠ΅Ρ Π²ΠΎ ΡΡΠ΅Π΄ΠΈΠ½Π° Π²ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎΡΡ ΡΠΎ POSIX ΠΈΠ»ΠΈ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ Amazon Elastic Compute Cloud ΠΈ Google Compute Engine.
ΠΠ΅Π½Π΅ΡΠΈΡΠ°Π½Π°ΡΠ° ΠΎΠΊΠΎΠ»ΠΈΠ½Π° Π½Π΅ ΡΠΎΠ΄ΡΠΆΠΈ Π½ΠΈΡΡΠΎ ΠΈΠ·Π»ΠΈΡΠ½ΠΎ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ° ΡΠΎ Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΎΡ Π±Π΅Π· Π΄ΡΠ°ΡΠ²Π΅ΡΠΈ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΡΠ»ΠΎΠ΅Π²ΠΈ, ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΡΡΠΈΡΠ΅ ΡΡΠΎΡΠΎΡΠΈ ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ. Π Π°Π±ΠΎΡΠ°ΡΠ° ΡΠΎ MirageOS ΡΠ΅ ΡΠ²Π΅Π΄ΡΠ²Π° Π½Π° ΡΡΠΈ ΡΠ°Π·ΠΈ: ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π½Π° OPAM ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ°, ΡΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ° ΠΈ Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ°. ΠΠ° Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΈΡΠ΅, Runtime Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Solo5.
Π ΠΏΠΎΠΊΡΠ°Ρ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ Π½Π° ΡΠ°Π·ΠΈΠΊΠΎΡ OCaml Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ, Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈΡΠ΅ ΠΎΠΊΠΎΠ»ΠΈΠ½ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°Π°Ρ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π΄ΠΎΠ±ΡΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ²Π΅ΡΠΎΡ DNS Π·Π°ΡΠ°ΡΠ° ΡΠ°ΠΌΠΎ 200 KB). ΠΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½ΠΈΡΠ΅ Π΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ΠΎ, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ Π°ΠΆΡΡΠΈΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ°, Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ ΠΈ ΡΡΠ°ΡΡΡΠ²Π° Π½ΠΎΠ²Π° ΡΡΠ΅Π΄ΠΈΠ½Π°. ΠΠ΅ΠΊΠΎΠ»ΠΊΡ ΡΡΠΎΡΠΈΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° ΡΠ°Π·ΠΈΠΊΠΎΡ OCaml ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, ΠΈΡΠ½.), Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
ΠΠ»ΡΡΠ½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠ°:
- ΠΡΠΎΠΌΠ΅Π½Π΅Ρ Π΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ ΡΠ½ΠΈΠΊΠ΅ΡΠ½Π΅Π». ΠΠ°ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ ocamlbuild, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΎΡ Π°Π»Π°ΡΠΊΠΈ Π·Π° Π΄ΠΈΠ½Π° ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ° (monorepo). ΠΠ° Π΄Π° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π°Ρ ΡΠ°ΠΊΠ²ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°, Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° Π°Π»Π°ΡΠΊΠ°, opam-monorepo, ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠ΄Π²ΠΎΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΠΎΠ΄ Π·Π³ΡΠ°Π΄Π°ΡΠ° ΠΎΠ΄ ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄. Π£ΡΠ»ΡΠΆΠ½Π°ΡΠ° Π°Π»Π°ΡΠΊΠ° opam-monorepo ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π·Π° Π·Π°ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π·Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π²ΡΠΈΡΡΠ²Π°ΡΠ΅ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ Π·Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ° Π·Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° Π΄ΠΈΠ½Π°. ΠΠΈΡΡΠΈΠ½ΡΠΊΠΎΡΠΎ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π³ΠΎ Π²ΡΡΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΎΡ ΡΠΎ Π°Π»Π°ΡΠΊΠΈ Π·Π° Π΄ΠΈΠ½Π°.
- ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ Π΅ ΠΏΠΎΠ²ΡΠΎΡΠ»ΠΈΠ² ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π³ΡΠ°Π΄Π΅ΡΠ΅. ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π·Π° Π·Π°ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π²ΡΡΠΊΠ° Π΄ΠΎ Π²Π΅ΡΠ·ΠΈΠΈΡΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΈ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π΄Π° Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΡΠΎ ΠΈΡΡΠΈΠΎΡ ΠΊΠΎΠ΄ Π²ΠΎ ΡΠ΅ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΠ΅.
- ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ Π΅ Π½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π²ΠΊΡΡΡΠ΅Π½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²ΠΊΡΡΡΠ΅Π½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅ Π·Π° ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΈ ΡΠ΅Π»Π½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΎΠ΄ Π΅Π΄Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠ° Π³ΡΠ°Π΄Π΅ΠΆΠ½Π° ΡΡΠ΅Π΄ΠΈΠ½Π°, ΠΊΠΎΡΠ° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΊΡΡΡΡΠ²Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠΈ ΠΈΠΌΠ°Π°Ρ Π²ΡΡΠΊΠΈ C, Π±Π΅Π· ΠΏΠΎΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π΄ΠΎΠ΄Π°Π²Π°Π°Ρ ΠΎΠ²ΠΈΠ΅ Π²ΡΡΠΊΠΈ Π²ΠΎ Π³Π»Π°Π²Π½ΠΈΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ. ΠΠΊΡΡΡΠ΅Π½Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ° Π΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΡΠΎΡΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ΠΈ ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° Π΄ΠΈΠ½Π°.
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ ΡΠ΅Π»Π½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΠ½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈ Raspberry Pi 4.
- ΠΠ°ΠΏΡΠ°Π²Π΅Π½Π° Π΅ ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄Π΅Π»ΠΎΠ²ΠΈ ΠΎΠ΄ MirageOS Π²ΠΎ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΈ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΡΠ°Π·Π²ΠΎΡΠΎΡ Π½Π° ΡΠ°Π·ΠΈΠΊΠΎΡ OCaml Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΠΈ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° ΡΠ½ΠΈΠΊΠ΅ΡΠ½Π΅Π». ΠΠ½ΠΎΠ³Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ MirageOS ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΠ΅Π½ΠΈ Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° Π΄ΠΈΠ½Π°. Π£ΡΠ»ΡΠΆΠ½Π°ΡΠ° Π°Π»Π°ΡΠΊΠ° opam-monorepo Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½Π° Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΌΠ΅Π½Π°ΡΠ΅ΡΠΎΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ opam ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠΎΠΈ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° Π΄ΠΈΠ½Π°. ΠΠ° ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ Π½Π° Π·Π°ΠΊΡΠΏΠΈ ΠΊΠΎΠΈ ΡΠ΅ΡΠ°Π²Π°Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ Π³ΡΠ°Π΄Π΅ΡΠ΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ Π²ΠΎ Π΄ΠΈΠ½Π°, ΡΠΎΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΡΠ΅ Π΄Π²Π΅ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°: dune-universe/opam-overlays ΠΈ dune-universe/mirage-opam-overlays, ΠΊΠΎΠΈ ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΈ ΠΊΠΎΠ³Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π°Π»Π°ΡΠΊΠ°ΡΠ° Mirage CLI.
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° MirageOS ΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ C ΠΈ Rust Π΅ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½Π°.
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π΅ Π½ΠΎΠ²ΠΎ ΡΡΠ°Π΅ΡΠ΅ Π½Π° OCaml ΠΊΠΎΠ΅ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ Π±Π΅Π· libc (libc-free).
- ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΡΡΠ»ΡΠ³Π°ΡΠ° Merlin Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ΠΈ ΡΠ°Π·Π²ΠΎΡΠ½ΠΈ ΠΎΠΊΠΎΠ»ΠΈΠ½ΠΈ.
ΠΠ·Π²ΠΎΡ: opennet.ru