ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΌΡΠ»ΠΈΡΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°.
ΠΠ°ΡΠ΅ΠΌ:
- Π Π°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΠ‘, Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΠ‘β¦
- β¦ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ARM).
- ΠΡΠΆΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΠ‘.
- Π₯ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΡΠΎΠ³Π°ΡΡ Π²ΠΈΡΡΡ, Π½Π΅ Π΄Π°Π²Π°Ρ Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΈΠΌ Π»ΠΈΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ.
Π’Π΅ΡΠΌΠΈΠ½Ρ
Host: (βΡ ΠΎΠ·ΡΠΈΠ½β) β Π°ΠΏΠΏΠ°ΡΠ°Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°.
Guest: (βΠ³ΠΎΡΡΡβ) β Π°ΠΏΠΏΠ°ΡΠ°Ρ, ΡΠΈΠΌΡΠ»ΠΈΡΡΡΡΠΈΠΉΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ.
Input capture: (βΠ·Π°Ρ Π²Π°Ρ Π²Π²ΠΎΠ΄Π°β) β Π½Π΅ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΉ ΡΠ΅Π»ΡΠΎΠΊ ΠΌΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠΊΠ½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Ρ βΠ·Π°Ρ Π²Π°ΡΡΠ²Π°Π΅Ρβ; ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΡΠΎΠΆΠ΅ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ Π² host-ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Snapshot: (βΡΠ»Π΅ΠΏΠΎΠΊβ) β ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΡΠΈΠΌΠ΅ΡΡ
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠΌΠΎΡΡΠ΅ΡΡ:
- qemu,
- virtualbox,
- kvm.
ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ:
- Android Emulator,
- iOS Simulator,
- DosBox.
Docker
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ:
- ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΠ½ΠΎΠ³Π΄Π° ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ.
- ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΠ‘β¦
- β¦ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠΎΡΠ½ΠΎ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»Π° ΠΈΠ»ΠΈ Ρ ΠΎΡΡ Π±Ρ ΡΠΎΠΎΠ±ΡΠΈΠ»Π°, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ?
- Π‘ΡΡΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ: ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
- Π Π΅Π³ΡΠ»ΡΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π² ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ .
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π½Π΅ΡΠ²Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΡΠΈΡΠ΅ΠΌ ΡΡΡ Docker?
-
Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ, ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°: nix-shell. -
Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°: nix-shell. -
ΠΠ΅ Π½Π°Π΄ΠΎ ΠΌΡΡΠΈΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ°Ρ /ΡΠ±ΠΎΡΠΊΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°: ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ. -
ΠΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ: ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» Docker-ΠΎΠ±ΡΠ°Π· β Π²ΡΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ: Puppet, Ansible, Chef ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° Kubernetes.
Π‘ΠΌ. ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ docker.
Π―Π·ΡΠΊΠΈ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ, ΡΡΠΎΠ±Ρ βΡΠΏΡΠΎΡΡΠΈΡΡβ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄.
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΊΠΎΠ³Π½ΠΈΡΠΈΠ²Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄.
Π’Π°ΠΊΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠ°ΡΡΠΎ:
- ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ,
- ΠΌΠΎΠ³ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄,
- ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π½Π΅ Π½Π°Π²ΡΠ΅Π΄ΠΈΠ» Ρ ΠΎΡΡΡ,
- Π΄Π°ΡΡ ΠΏΡΠΈΡΡΠ½ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ Ρ ΠΎΡΡΠ΅ ΡΡΡ ΠΠ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ.
Π₯ΠΎΡΡ ΡΡΠΎ ΠΈ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΈ ΡΠ°ΠΊ ΠΎΠΊ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ: Swift, C, Rust, Go ΠΈ ΠΏΡ., Haskell.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΠ Π΄Π»Ρ ΡΠ·ΡΠΊΠΎΠ²
- Java Virtual Machine, JVM β ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ Π² ΠΆΠΈΠ·Π½ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ,
- CPython β Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python, Π½ΠΎ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°,
- .NET Framewok β Π°Π½Π°Π»ΠΎΠ³ JVM Π΄Π»Ρ C# ΠΎΡ Microsoft,
- low level virtual machine, llvm β ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ²: Π΅ΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ·ΡΠΊΠ° Π² llvm, ΡΠΎ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΎΡΡ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠ²ΠΎΠ»Π½ΠΎΠ²ΠΊΠΈ;
- v8 engine ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ Π΄Π»Ρ JavaScript β ΠΆΠΈΠ²ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ js Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°;
- Bogdanβs Erlang Abstract Machine, BEAM β Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π΄Π»Ρ erlang, Π²ΠΌΠ΅ΡΡΠ΅ Ρ ERTS Π΄Π°ΡΡ Ρ ΠΈΡΡΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π΅ΡΡΠ²ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ;