Како Π΄Π° ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° користитС кориснички Ρ€Π΅ΠΆΠΈΠΌ Ρƒ Π›ΠΈΠ½ΡƒΠΊΡƒ

Π£Π²ΠΎΠ΄ ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈΠΎΡ†Π°: На ΠΏΠΎΠ·Π°Π΄ΠΈΠ½ΠΈ масовног уласка Ρ€Π°Π·Π½ΠΈΡ… врста ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° Ρƒ нашС ΠΆΠΈΠ²ΠΎΡ‚Π΅, ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π·Π°Π½ΠΈΠΌΡ™ΠΈΠ²ΠΎ ΠΈ корисно сазнати са којим Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π°ΠΌΠ° јС свС Π½Π΅ΠΊΠ°Π΄Π° ΠΏΠΎΡ‡Π΅Π»ΠΎ. НСки ΠΎΠ΄ ΡšΠΈΡ… сС ΠΌΠΎΠ³Ρƒ корисно користити Π΄ΠΎ данас, Π°Π»ΠΈ сС Π½Π΅ ΡΠ΅Ρ›Π°Ρ˜Ρƒ сви Ρ‚Π°ΠΊΠ²ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (ΠΈΠ»ΠΈ Π·Π½Π°Ρ˜Ρƒ Π΄Π° нису ΡƒΡ…Π²Π°Ρ›Π΅Π½ΠΈ Ρ‚ΠΎΠΊΠΎΠΌ ΡšΠΈΡ…ΠΎΠ²ΠΎΠ³ Π±Ρ€Π·ΠΎΠ³ Ρ€Π°Π·Π²ΠΎΡ˜Π°). ЈСдна Ρ‚Π°ΠΊΠ²Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π° јС УсСр МодС Π›ΠΈΠ½ΡƒΠΊ. Аутор ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π° јС доста ΠΊΠΎΠΏΠ°ΠΎ, ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Ρ˜ΡƒΡ›ΠΈ који ΠΎΠ΄ старих Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° још ΡƒΠ²Π΅ΠΊ Ρ€Π°Π΄ΠΈ, Π° који Π½Π΅, ΠΈ саставио јС Π½Π΅ΡˆΡ‚ΠΎ ΠΏΠΎΠΏΡƒΡ‚ упутства ΠΊΠΎΡ€Π°ΠΊ ΠΏΠΎ ΠΊΠΎΡ€Π°ΠΊ ΠΊΠ°ΠΊΠΎ Π΄Π° сСби Π½Π°Π±Π°Π²ΠΈΡ‚Π΅ Π΄ΠΎΠΌΠ°Ρ›ΠΈ Π£ΠœΠ› Ρƒ 2ΠΊ19. И Π΄Π°, ΠΏΠΎΠ·Π²Π°Π»ΠΈ смо Π°ΡƒΡ‚ΠΎΡ€Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎΠ³ поста Ρƒ Π₯Π°Π±Ρ€ Π¦Π°Π΄Π΅ΠΈ, ΠΏΠ° Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΠΈΡ‚Π°ΡšΠ° - ΠΏΠΈΡ‚Π°Ρ˜Ρ‚Π΅ Π½Π° СнглСском Ρƒ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΌΠ°.

Како Π΄Π° ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° користитС кориснички Ρ€Π΅ΠΆΠΈΠΌ Ρƒ Π›ΠΈΠ½ΡƒΠΊΡƒ

ΠšΠΎΡ€ΠΈΡΠ½ΠΈΡ‡ΠΊΠΈ Ρ€Π΅ΠΆΠΈΠΌ Ρƒ Π›ΠΈΠ½ΡƒΠΊΡƒ јС, Ρƒ ствари, ΠΏΠΎΡ€Ρ‚ Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π»Π° Π·Π° сСбС. Овај Ρ€Π΅ΠΆΠΈΠΌ Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚Π°Π½ Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π» ΠΊΠ°ΠΎ кориснички процСс ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Π³Π° ΠΎΠ±ΠΈΡ‡Π½ΠΎ користС Π·Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ Π΄Ρ€Π°Ρ˜Π²Π΅Ρ€Π°. Али овај Ρ€Π΅ΠΆΠΈΠΌ јС Ρ‚Π°ΠΊΠΎΡ’Π΅ користан ΠΊΠ°ΠΎ ΠΎΠΏΡˆΡ‚ΠΈ Π°Π»Π°Ρ‚ Π·Π° ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΡ˜Ρƒ, Ρ‡ΠΈΡ˜ΠΈ јС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ сличан Ρ€Π°Π΄Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈΡ… машина. Овај Ρ€Π΅ΠΆΠΈΠΌ ΠΏΡ€ΡƒΠΆΠ° Π²Π΅Ρ›Ρƒ ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΡ˜Ρƒ ΠΎΠ΄ Π”ΠΎΡ†ΠΊΠ΅Ρ€-Π°, Π°Π»ΠΈ мањС ΠΎΠ΄ ΠΏΡƒΠ½ΠΎΠΏΡ€Π°Π²Π½Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС ΠšΠ’Πœ ΠΈΠ»ΠΈ Π’ΠΈΡ€Ρ‚ΡƒΠ°Π» Π‘ΠΎΠΊ.

Π£ΠΎΠΏΡˆΡ‚Π΅Π½ΠΎ Π³ΠΎΠ²ΠΎΡ€Π΅Ρ›ΠΈ, кориснички Ρ€Π΅ΠΆΠΈΠΌ ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π³Π»Π΅Π΄Π°Ρ‚ΠΈ ΠΊΠ°ΠΎ Ρ‡ΡƒΠ΄Π°Π½ ΠΈ Ρ‚Π΅ΠΆΠ°ΠΊ Π°Π»Π°Ρ‚ Π·Π° ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅, Π°Π»ΠΈ ΠΈ Π΄Π°Ρ™Π΅ ΠΈΠΌΠ° својС користи. На ΠΊΡ€Π°Ρ˜Ρƒ ΠΊΡ€Π°Ρ˜Π΅Π²Π°, ΠΎΠ²ΠΎ јС ΠΏΡƒΠ½ΠΎΠΏΡ€Π°Π²Π½ΠΈ Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π» који Ρ€Π°Π΄ΠΈ ΠΎΠ΄ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΎΠ²Π°Π½ΠΎΠ³ корисника. Ова Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ Π½Π΅ΠΏΠΎΡƒΠ·Π΄Π°Π½ΠΎΠ³ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΈΠΊΠ°ΠΊΠ²Π΅ ΠΏΡ€Π΅Ρ‚ΡšΠ΅ ΠΏΠΎ хост ΠΌΠ°ΡˆΠΈΠ½Ρƒ. А ΠΏΠΎΡˆΡ‚ΠΎ јС ΠΎΠ²ΠΎ ΠΏΡƒΠ½ΠΎΠΏΡ€Π°Π²Π½ΠΎ Ρ˜Π΅Π·Π³Ρ€ΠΎ, њСгови процСси су ΠΈΠ·ΠΎΠ»ΠΎΠ²Π°Π½ΠΈ ΠΎΠ΄ хост машинС, Ρ‚Ρ˜ процСси који сС ΠΏΠΎΠΊΡ€Π΅Ρ›Ρƒ ΡƒΠ½ΡƒΡ‚Π°Ρ€ корисничког Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π΅Ρ›Π΅ Π±ΠΈΡ‚ΠΈ Π²ΠΈΠ΄Ρ™ΠΈΠ²ΠΈ хосту. Ово нијС ΠΊΠ°ΠΎ ΡƒΠΎΠ±ΠΈΡ‡Π°Ρ˜Π΅Π½ΠΈ Π”ΠΎΡ†ΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, Ρƒ ΠΊΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ хост машина ΡƒΠ²Π΅ΠΊ Π²ΠΈΠ΄ΠΈ процСсС ΡƒΠ½ΡƒΡ‚Π°Ρ€ ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π°. ΠŸΠΎΠ³Π»Π΅Π΄Π°Ρ˜Ρ‚Π΅ овај ΠΊΠΎΠΌΠ°Π΄ пстрСС-Π° са јСдног ΠΎΠ΄ ΠΌΠΎΡ˜ΠΈΡ… сСрвСра:

containerd─┬─containerd-shim─┬─tini─┬─dnsd───19*[{dnsd}]
           β”‚                 β”‚      └─s6-svscan───s6-supervise
           β”‚                 └─10*[{containerd-shim}]
           β”œβ”€containerd-shim─┬─tini─┬─aerial───21*[{aerial}]
           β”‚                 β”‚      └─s6-svscan───s6-supervise
           β”‚                 └─10*[{containerd-shim}]
           β”œβ”€containerd-shim─┬─tini─┬─s6-svscan───s6-supervise
           β”‚                 β”‚      └─surl
           β”‚                 └─9*[{containerd-shim}]
           β”œβ”€containerd-shim─┬─tini─┬─h───13*[{h}]
           β”‚                 β”‚      └─s6-svscan───s6-supervise
           β”‚                 └─10*[{containerd-shim}]
           β”œβ”€containerd-shim─┬─goproxy───14*[{goproxy}]
           β”‚                 └─9*[{containerd-shim}]
           └─32*[{containerd}]

И ΡƒΠΏΠΎΡ€Π΅Π΄ΠΈΡ‚Π΅ ΠΎΠ²ΠΎ са пстрСС Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π»Π° Ρƒ корисничком Ρ€Π΅ΠΆΠΈΠΌΡƒ:

linux─┬─5*[linux]
      └─slirp

Када Ρ€Π°Π΄ΠΈΠΌ са Π”ΠΎΡ†ΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ°, ΠΌΠΎΠ³Ρƒ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠ΄ хоста ΠΈΠΌΠ΅Π½Π° процСса који сС ΠΏΠΎΠΊΡ€Π΅Ρ›Ρƒ Ρƒ госту. Π‘Π° Π›ΠΈΠ½ΡƒΠΊ корисничким Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ, ΠΎΠ²ΠΎ нијС ΠΌΠΎΠ³ΡƒΡ›Π΅. Π¨Ρ‚Π° Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈ? Π’ΠΎ Π·Π½Π°Ρ‡ΠΈ Π΄Π° Π°Π»Π°Ρ‚ΠΈ Π·Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅ који Ρ€Π°Π΄Π΅ ΠΊΡ€ΠΎΠ· Π›ΠΈΠ½ΡƒΠΊ-ΠΎΠ² подсистСм Ρ€Π΅Π²ΠΈΠ·ΠΈΡ˜Π΅ НС Π²ΠΈΠ΄ΠΈΠΌ процСси који сС ΠΏΠΎΠΊΡ€Π΅Ρ›Ρƒ Ρƒ систСму Π³ΠΎΡΡ‚ΠΈΡ˜Ρƒ. Али Ρƒ Π½Π΅ΠΊΠΈΠΌ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°ΠΌΠ° ΠΎΠ²Π° карактСристика ΠΌΠΎΠΆΠ΅ постати ΠΌΠ°Ρ‡ са Π΄Π²Π΅ ΠΎΡˆΡ‚Ρ€ΠΈΡ†Π΅.

Π“Π΅Π½Π΅Ρ€Π°Π»Π½ΠΎ, Ρ†Π΅ΠΎ пост испод јС Π·Π±ΠΈΡ€ΠΊΠ° ΠΈΡΡ‚Ρ€Π°ΠΆΠΈΠ²Π°ΡšΠ° ΠΈ Π³Ρ€ΡƒΠ±ΠΈΡ… ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° Π΄Π° сС постигнС ΠΆΠ΅Ρ™Π΅Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚. Π”Π° Π±ΠΈΡ… Ρ‚ΠΎ ΡƒΡ€Π°Π΄ΠΈΠΎ, ΠΌΠΎΡ€Π°ΠΎ сам Π΄Π° користим Ρ€Π°Π·Π½Π΅ Π΄Ρ€Π΅Π²Π½Π΅ Π°Π»Π°Ρ‚Π΅, Ρ‡ΠΈΡ‚Π°ΠΌ ΠΈΠ·Π²ΠΎΡ€Π΅ ΠΊΠ΅Ρ€Π½Π΅Π»Π°, Ρ€Π°Π΄ΠΈΠΌ ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½ΠΎ ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° Ρƒ ΠΊΠΎΠ΄Ρƒ који јС написан Ρƒ Π΄Π°Π½ΠΈΠΌΠ° ΠΊΠ°Π΄Π° сам још Π±ΠΈΠΎ Ρƒ основној школи, Π° Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΈ Π΄Π° ΠΏΠ΅Ρ‚Ρ™Π°ΠΌ Ρƒ Π₯Π΅Ρ€ΠΎΠΊΡƒ Π±ΡƒΠΈΠ»Π΄-ΠΎΠ²ΠΈΠΌΠ° користСћи посСбан Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°Ρ˜Π» Π΄Π° ΠΏΡ€ΠΎΠ½Π°Ρ’Π΅ΠΌ Π°Π»Π°Ρ‚Π΅ који су ΠΌΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ . Π‘Π°Π² овај посао јС Π½Π°Π²Π΅ΠΎ ΠΌΠΎΠΌΠΊΠ΅ Π½Π° ΠΌΠΎΠΌ ИРЦ-Ρƒ Π΄Π° ΠΌΠ΅ Π½Π°Π·ΠΎΠ²Ρƒ ΠΌΠ°Π³ΠΈΡ‡Π½ΠΈΠΌ. Надам сС Π΄Π° Ρ›Π΅ овај пост послуТити ΠΊΠ°ΠΎ ΠΏΠΎΡƒΠ·Π΄Π°Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π·Π° Π½Π΅ΠΊΠΎΠ³Π° Π΄Π° ΠΏΠΎΠΊΡƒΡˆΠ° исту ствар са новијим ΠΊΠ΅Ρ€Π½Π΅Π»ΠΈΠΌΠ° ΠΈ Π²Π΅Ρ€Π·ΠΈΡ˜Π°ΠΌΠ° ОБ-Π°.

подСшавањС

ПодСшавањС Π›ΠΈΠ½ΡƒΠΊ корисничког Ρ€Π΅ΠΆΠΈΠΌΠ° сС Π²Ρ€ΡˆΠΈ Ρƒ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΊΠΎΡ€Π°ΠΊΠ°:

  • ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ зависности ΠΎΠ΄ хоста;
  • ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π»Π°;
  • ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° ΠΈΠ·Ρ€Π°Π΄Π΅ ΠΊΠ΅Ρ€Π½Π΅Π»Π°;
  • склоп ΠΊΠ΅Ρ€Π½Π΅Π»Π°;
  • Π±ΠΈΠ½Π°Ρ€Π½Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π°;
  • ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡΠ°ΡšΠ΅ систСма Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π·Π° гостС;
  • ΠΈΠ·Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° ΠΊΠ΅Ρ€Π½Π΅Π»Π°;
  • ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ ΠΌΡ€Π΅ΠΆΠ΅ Π³ΠΎΡΡ‚ΠΈΡ˜Ρƒ;
  • ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Π³ΠΎΡΡ‚ΡƒΡ˜ΡƒΡ›Π΅Π³ ΠΊΠ΅Ρ€Π½Π΅Π»Π°.

ΠŸΡ€Π΅Ρ‚ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΠΌ Π΄Π° Ρ›Π΅Ρ‚Π΅, Π°ΠΊΠΎ ΠΎΠ΄Π»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄Π° Ρ‚ΠΎ ΡƒΡ€Π°Π΄ΠΈΡ‚Π΅ сами, Π½Π°Ρ˜Π²Π΅Ρ€ΠΎΠ²Π°Ρ‚Π½ΠΈΡ˜Π΅ ΡƒΡ€Π°Π΄ΠΈΡ‚ΠΈ свС ΡˆΡ‚ΠΎ јС описано Ρƒ Π½Π΅ΠΊΠΎΠΌ Π£Π±ΡƒΠ½Ρ‚Ρƒ ΠΈΠ»ΠΈ Π”Π΅Π±ΠΈΠ°Π½ систСму. ΠŸΠΎΠΊΡƒΡˆΠ°ΠΎ сам Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌ свС Π³ΠΎΡ€Π΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΎ Ρƒ својој ΠΎΠΌΠΈΡ™Π΅Π½ΠΎΡ˜ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜ΠΈ - АлпинС, Π°Π»ΠΈ Π½ΠΈΡˆΡ‚Π° нијС Π±ΠΈΠ»ΠΎ ΠΎΠ΄ Ρ‚ΠΎΠ³Π°, ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ Π·Π±ΠΎΠ³ Ρ‡ΠΈΡšΠ΅Π½ΠΈΡ†Π΅ Π΄Π° Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π» ΠΈΠΌΠ° Ρ…Π°Ρ€Π΄-Π±ΠΈΠ½Π΄ΠΈΠ½Π³ Π³Π»ΠΈΠ±Ρ†-исмс Π·Π° Π΄Ρ€Π°Ρ˜Π²Π΅Ρ€Π΅ Ρƒ корисничком Ρ€Π΅ΠΆΠΈΠΌΡƒ. ΠŸΠ»Π°Π½ΠΈΡ€Π°ΠΌ Π΄Π° ΠΎΠ²ΠΎ ΠΏΡ€ΠΈΡ˜Π°Π²ΠΈΠΌ ΡƒΠ·Π²ΠΎΠ΄Π½ΠΎΡ˜ ΠΌΡ€Π΅ΠΆΠΈ Π½Π°ΠΊΠΎΠ½ ΡˆΡ‚ΠΎ ΠΊΠΎΠ½Π°Ρ‡Π½ΠΎ схватим ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ зависности Π½Π° хосту

Π£Π±ΡƒΠ½Ρ‚Ρƒ Π·Π°Ρ…Ρ‚Π΅Π²Π° најмањС слСдСћС ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π΄Π° Π±ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΎ Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π» (ΠΏΠΎΠ΄ прСтпоставком чистС ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π΅):

- 'build-essential'
- 'flex'
- 'bison'
- 'xz-utils'
- 'wget'
- 'ca-certificates'
- 'bc'
- 'linux-headers'

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡ… инсталирати слСдСћом ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΌ (ΠΊΠ°ΠΎ Ρ€ΠΎΠΎΡ‚ ΠΈΠ»ΠΈ са судо):

apt-get -y install build-essential flex bison xz-utils wget ca-certificates bc 
                   linux-headers-$(uname -r)

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° Ρ›Π΅ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° подСшавањС мСнија Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π»Π° Π·Π°Ρ…Ρ‚Π΅Π²Π°Ρ‚ΠΈ ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Ρƒ libncurses-dev. Π£Π²Π΅Ρ€ΠΈΡ‚Π΅ сС Π΄Π° јС инсталиран са слСдСћом ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΌ (ΠΊΠ°ΠΎ Ρ€ΠΎΠΎΡ‚ ΠΈΠ»ΠΈ са судо):

apt-get -y install libncurses-dev

ΠŸΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ ΠΊΠ΅Ρ€Π½Π΅Π»Π°

ΠžΠ΄Π»ΡƒΡ‡ΠΈΡ‚Π΅ Π³Π΄Π΅ Π΄Π° ΠΏΡ€Π΅ΡƒΠ·ΠΌΠ΅Ρ‚Π΅, Π° Π·Π°Ρ‚ΠΈΠΌ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΊΠ΅Ρ€Π½Π΅Π». Π—Π° ΠΎΠ²Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Ρƒ, ΠΌΠΎΡ€Π°Ρ›Π΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΠΊΠΎ 1,3 Π“Π‘ простора Π½Π° Ρ…Π°Ρ€Π΄ диску, ΠΏΠ° сС ΡƒΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π° Π³Π° ΠΈΠΌΠ°Ρ‚Π΅.

Након ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π° ΠΊΠ΅Ρ€Π½Π΅Π».ΠΎΡ€Π³ ΠΈ Π΄ΠΎΠ±ΠΈΡ˜Π΅Ρ‚Π΅ Π£Π Π› Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ најновијСг стабилног ΠΊΠ΅Ρ€Π½Π΅Π»Π°. Π£ Π²Ρ€Π΅ΠΌΠ΅ писања ΠΎΠ²ΠΎ јС: https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.1.16.tar.xz

ΠŸΡ€Π΅ΡƒΠ·ΠΌΠΈΡ‚Π΅ ΠΎΠ²Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ користСћи 'wget':

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.1.16.tar.xz

И ΠΈΠ·Π²ΡƒΡ†ΠΈΡ‚Π΅ Π³Π° са 'tar':

tar xJf linux-5.1.16.tar.xz

Π‘Π°Π΄Π° ΡƒΠ»Π°Π·ΠΈΠΌΠΎ Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ ΠΊΡ€Π΅ΠΈΡ€Π°Π½ ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ Ρ€Π°ΡΠΏΠ°ΠΊΠΈΠ²Π°ΡšΠ° Ρ‚Π°Ρ€Π±Π°Π»Π»-Π°:

cd linux-5.1.16

ПодСшавањС ΠΈΠ·Ρ€Π°Π΄Π΅ ΠΊΠ΅Ρ€Π½Π΅Π»Π°

БистСм ΠΈΠ·Ρ€Π°Π΄Π΅ ΠΊΠ΅Ρ€Π½Π΅Π»Π° јС скуп ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ с ΠΌΠ½ΠΎΠ³ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΡ’Π΅Π½Π΅ Π°Π»Π°Ρ‚Π΅ ΠΈ скриптС Π·Π° Π°ΡƒΡ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ процСса. ΠŸΡ€Π²ΠΎ ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Π·Π° подСшавањС:

make ARCH=um menuconfig

Π”Π΅Π»ΠΈΠΌΠΈΡ‡Π½ΠΎ Ρ›Π΅ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚ΠΈ ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Ρ‚ΠΈ ΠΎΠΊΠ²ΠΈΡ€ Π·Π° дијалог Π·Π° вас. Када '[Select]', ΠΌΠΎΡ›ΠΈ Ρ›Π΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠΎΡ›Ρƒ тастСра Π·Π° Ρ€Π°Π·ΠΌΠ°ΠΊ ΠΈΠ»ΠΈ Π•Π½Ρ‚Π΅Ρ€. ΠšΡ€Π΅Ρ›ΠΈΡ‚Π΅ сС ΠΊΡ€ΠΎΠ· ΠΏΡ€ΠΎΠ·ΠΎΡ€, ΠΊΠ°ΠΎ ΠΈ ΠΎΠ±ΠΈΡ‡Π½ΠΎ, са стрСлицама Π½Π° тастатури "Π³ΠΎΡ€Π΅" ΠΈ "Π΄ΠΎΠ»Π΅" ΠΈ ΠΈΠ·Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π΅ - "Π»Π΅Π²ΠΎ" ΠΈΠ»ΠΈ "дСсно".

ΠŸΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡ ΠΏΡ€ΠΈΠΊΠ°Π·Π° β€”> Π·Π½Π°Ρ‡ΠΈ Π΄Π° сС Π½Π°Π»Π°Π·ΠΈΡ‚Π΅ Ρƒ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡ˜Ρƒ којСм сС приступа ΠΏΠΎΠΌΠΎΡ›Ρƒ тастСра Π•Π½Ρ‚Π΅Ρ€. Излаз ΠΈΠ· Ρ‚ΠΎΠ³Π° јС ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ ΠΊΡ€ΠΎΠ· '[Exit]'.

Π£ΠΊΡ™ΡƒΡ‡ΠΈΡ‚Π΅ слСдСћС ΠΎΠΏΡ†ΠΈΡ˜Π΅ Ρƒ '[Select]β€œ ΠΈ ΡƒΠ²Π΅Ρ€ΠΈΡ‚Π΅ сС Π΄Π° ΠΈΠΌΠ°Ρ˜Ρƒ β€ž[*]β€œ ΠΏΠΎΡ€Π΅Π΄ сСбС:

UML-specific Options:
  - Host filesystem
Networking support (enable this to get the submenu to show up):
  - Networking options:
    - TCP/IP Networking
UML Network devices:
  - Virtual network device
  - SLiRP transport

Π’ΠΎ јС Ρ‚ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π°Ρ›ΠΈ ΠΈΠ· ΠΎΠ²ΠΎΠ³ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π° узастопним ΠΈΠ·Π±ΠΎΡ€ΠΎΠΌ '[Exit]'. Π‘Π°ΠΌΠΎ сС ΡƒΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π° сС ΠΎΠ΄ вас Ρ‚Ρ€Π°ΠΆΠΈ Π΄Π° сачуватС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ ΠΈ ΠΈΠ·Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ '[Yes]'.

ΠŸΡ€Π΅ΠΏΠΎΡ€ΡƒΡ‡ΡƒΡ˜Π΅ΠΌ Π²Π°ΠΌ Π΄Π° сС ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚Π΅ са ΠΎΠΏΡ†ΠΈΡ˜Π°ΠΌΠ° ΠΈΠ·Ρ€Π°Π΄Π΅ ΠΊΠ΅Ρ€Π½Π΅Π»Π° Π½Π°ΠΊΠΎΠ½ ΡˆΡ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅ овај пост. ΠšΡ€ΠΎΠ· ΠΎΠ²Π΅ СкспСримСнтС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρƒ смислу Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡšΠ° Ρ€Π°Π΄Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠ΅ ΠΊΠ΅Ρ€Π½Π΅Π»Π° ниског Π½ΠΈΠ²ΠΎΠ° ΠΈ ΡƒΡ‚ΠΈΡ†Π°Ρ˜Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΡ… заставица Π½Π° њСгово склапањС.

Π˜Π·Π³Ρ€Π°Π΄ΡšΠ° ΠΊΠ΅Ρ€Π½Π΅Π»Π°

Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π» јС Π²Π΅Π»ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ који Ρ€Π°Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ствари. Π§Π°ΠΊ ΠΈ са Ρ‚Π°ΠΊΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΎΠΌ Π½Π° старом Ρ…Π°Ρ€Π΄Π²Π΅Ρ€Ρƒ, ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡ‚Ρ€Π°Ρ˜Π°Ρ‚ΠΈ доста Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ. Π”Π°ΠΊΠ»Π΅, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΊΠ΅Ρ€Π½Π΅Π» са слСдСћом ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΌ:

make ARCH=um -j$(nproc)

Π—Π° ΡˆΡ‚Π°? Ова ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ›Π΅ Ρ€Π΅Ρ›ΠΈ нашСм Π³Ρ€Π°Π΄ΠΈΡ‚Π΅Ρ™Ρƒ Π΄Π° користи сва доступна ЦПУ Ρ˜Π΅Π·Π³Ρ€Π° ΠΈ Π½ΠΈΡ‚ΠΈ Ρƒ процСсу ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅. Π’ΠΈΠΌ $(nproc) Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ Π‘ΡƒΠΈΠ»Π΄ Π·Π°ΠΌΠ΅ΡšΡƒΡ˜Π΅ ΠΈΠ·Π»Π°Π· ΠΊΠΎΠΌΠ°Π½Π΄Π΅ nproc, који јС Π΄Π΅ΠΎ coreutils Ρƒ ΡΡ‚Π°Π½Π΄Π°Ρ€Π΄Π½ΠΎΡ˜ Π£Π±ΡƒΠ½Ρ‚Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜ΠΈ.

ПослС Π½Π΅ΠΊΠΎΠ³ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, нашС Ρ˜Π΅Π·Π³Ρ€ΠΎ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Ρƒ ΠΈΠ·Π²Ρ€ΡˆΠ½Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ ./linux.

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ Π±ΠΈΠ½Π°Ρ€Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅

ΠŸΠΎΡˆΡ‚ΠΎ кориснички Ρ€Π΅ΠΆΠΈΠΌ Ρƒ Π›ΠΈΠ½ΡƒΠΊΡƒ ΠΊΡ€Π΅ΠΈΡ€Π° ΠΎΠ±ΠΈΡ‡Π°Π½ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°Ρ˜Π», ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π³Π° инсталирати ΠΊΠ°ΠΎ ΠΈ Π±ΠΈΠ»ΠΎ који Π΄Ρ€ΡƒΠ³ΠΈ услуТни ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ. Π•Π²ΠΎ ΠΊΠ°ΠΊΠΎ сам Ρ‚ΠΎ ΡƒΡ€Π°Π΄ΠΈΠΎ:

mkdir -p ~/bin
cp linux ~/bin/linux

Π’Π°ΠΊΠΎΡ’Π΅ сС Π²Ρ€Π΅Π΄ΠΈ ΡƒΠ²Π΅Ρ€ΠΈΡ‚ΠΈ Ρƒ Ρ‚ΠΎ ~/bin јС Ρƒ вашСм $PATH:

export PATH=$PATH:$HOME/bin

ПодСшавањС систСма Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π·Π° гостС

НаправитС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ Π·Π° систСм Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π³ΠΎΡΡ‚ΠΈΡ˜Ρƒ:

mkdir -p $HOME/prefix/uml-demo
cd $HOME/prefix

ΠžΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ Π°Π»ΠΏΠΈΠ½Π΅Π»ΠΈΠ½ΡƒΠΊ.ΠΎΡ€Π³ ΠΈ Ρƒ ΠΎΠ΄Π΅Ρ™Π°ΠΊ Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ ΠΏΡ€ΠΎΠ½Π°Ρ’ΠΈΡ‚Π΅ стварну Π²Π΅Π·Ρƒ Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ MINI ROOT FILESYSTEM. Π£ Π²Ρ€Π΅ΠΌΠ΅ писања ΠΎΠ²ΠΎ јС Π±ΠΈΠ»ΠΎ:

http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/x86_64/alpine-minirootfs-3.10.0-x86_64.tar.gz

ΠŸΡ€Π΅ΡƒΠ·ΠΌΠΈΡ‚Π΅ овај Ρ‚Π°Ρ€Π±Π°Π»Π» користСћи Π²Π³Π΅Ρ‚:

wget -O alpine-rootfs.tgz http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/x86_64/alpine-minirootfs-3.10.0-x86_64.tar.gz

Π‘Π°Π΄Π° ΡƒΡ’ΠΈΡ‚Π΅ Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ систСма Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π·Π° гостС ΠΈ Ρ€Π°ΡΠΏΠ°ΠΊΡƒΡ˜Ρ‚Π΅ Π°Ρ€Ρ…ΠΈΠ²Ρƒ:

cd uml-demo
tar xf ../alpine-rootfs.tgz

ОписанС Ρ€Π°Π΄ΡšΠ΅ Ρ›Π΅ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚ΠΈ ΠΌΠ°Π»ΠΈ шаблон систСма Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°. Π—Π±ΠΎΠ³ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ систСма, Π±ΠΈΡ›Π΅ ΠΈΠ·ΡƒΠ·Π΅Ρ‚Π½ΠΎ Ρ‚Π΅ΡˆΠΊΠΎ инсталирати ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΊΠΎ АлпинС Π°ΠΏΠΊ ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€Π°. Али овај Π€Π‘ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ Π΄ΠΎΠ²ΠΎΡ™Π°Π½ Π΄Π° ΠΏΡ€ΠΎΡ†Π΅Π½ΠΈ ΠΎΠΏΡˆΡ‚Ρƒ ΠΈΠ΄Π΅Ρ˜Ρƒ.

ΠŸΠΎΡ‚Ρ€Π΅Π±Π°Π½ Π½Π°ΠΌ јС ΠΈ Π°Π»Π°Ρ‚ Ρ‚ΠΈΠ½ΠΈ Π΄Π° смањи ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡšΡƒ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π΅ Π·ΠΎΠΌΠ±ΠΈ процСси нашС Π³ΠΎΡΡ‚ΡƒΡ˜ΡƒΡ›Π΅ Ρ˜Π΅Π·Π³Ρ€ΠΎ.

wget -O tini https://github.com/krallin/tini/releases/download/v0.18.0/tini-static
chmod +x tini

ΠšΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Ρ˜Π΅Π·Π³Ρ€Π°

Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π», ΠΊΠ°ΠΎ ΠΈ Π²Π΅Ρ›ΠΈΠ½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, ΠΈΠΌΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС којима сС ΠΌΠΎΠΆΠ΅ приступити Π½Π°Π²ΠΎΡ’Π΅ΡšΠ΅ΠΌ ΠΊΡ™ΡƒΡ‡Π° --help.

Он сам β€” Ρƒ ΠΏΠΎΠΌΠΎΡ›

linux --help
User Mode Linux v5.1.16
        available at http://user-mode-linux.sourceforge.net/

--showconfig
    Prints the config file that this UML binary was generated from.

iomem=<name>,<file>
    Configure <file> as an IO memory region named <name>.

mem=<Amount of desired ram>
    This controls how much "physical" memory the kernel allocates
    for the system. The size is specified as a number followed by
    one of 'k', 'K', 'm', 'M', which have the obvious meanings.
    This is not related to the amount of memory in the host.  It can
    be more, and the excess, if it's ever used, will just be swapped out.
        Example: mem=64M

--help
    Prints this message.

debug
    this flag is not needed to run gdb on UML in skas mode

root=<file containing the root fs>
    This is actually used by the generic kernel in exactly the same
    way as in any other kernel. If you configure a number of block
    devices and want to boot off something other than ubd0, you
    would use something like:
        root=/dev/ubd5

--version
    Prints the version number of the kernel.

umid=<name>
    This is used to assign a unique identity to this UML machine and
    is used for naming the pid file and management console socket.

con[0-9]*=<channel description>
    Attach a console or serial line to a host channel.  See
    http://user-mode-linux.sourceforge.net/old/input.html for a complete
    description of this switch.

eth[0-9]+=<transport>,<options>
    Configure a network device.
    
aio=2.4
    This is used to force UML to use 2.4-style AIO even when 2.6 AIO is
    available.  2.4 AIO is a single thread that handles one request at a
    time, synchronously.  2.6 AIO is a thread which uses the 2.6 AIO
    interface to handle an arbitrary number of pending requests.  2.6 AIO
    is not available in tt mode, on 2.4 hosts, or when UML is built with
    /usr/include/linux/aio_abi.h not available.  Many distributions don't
    include aio_abi.h, so you will need to copy it from a kernel tree to
    your /usr/include/linux in order to build an AIO-capable UML

nosysemu
    Turns off syscall emulation patch for ptrace (SYSEMU).
    SYSEMU is a performance-patch introduced by Laurent Vivier. It changes
    behaviour of ptrace() and helps reduce host context switch rates.
    To make it work, you need a kernel patch for your host, too.
    See http://perso.wanadoo.fr/laurent.vivier/UML/ for further
    information.

uml_dir=<directory>
    The location to place the pid and umid files.

quiet
    Turns off information messages during boot.

hostfs=<root dir>,<flags>,...
    This is used to set hostfs parameters.  The root directory argument
    is used to confine all hostfs mounts to within the specified directory
    tree on the host.  If this isn't specified, then a user inside UML can
    mount anything on the host that's accessible to the user that's running
    it.
    The only flag currently supported is 'append', which specifies that all
    files opened by hostfs will be opened in append mode.

Овај ΠΏΠ°Π½Π΅Π» наглашава Π³Π»Π°Π²Π½Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ°. ΠŸΠΎΠΊΡ€Π΅Π½ΠΈΠΌΠΎ ΠΊΠ΅Ρ€Π½Π΅Π» са ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΠΌ скупом ΠΎΠΏΡ†ΠΈΡ˜Π°:

linux 
  root=/dev/root 
  rootfstype=hostfs 
  rootflags=$HOME/prefix/uml-demo 
  rw 
  mem=64M 
  init=/bin/sh

Π“ΠΎΡ€ΡšΠ΅ линијС Π³ΠΎΠ²ΠΎΡ€Π΅ нашСм ΠΊΠ΅Ρ€Π½Π΅Π»Ρƒ слСдСћС:

  • ΠŸΡ€Π΅Ρ‚ΠΏΠΎΡΡ‚Π°Π²ΠΈΠΌΠΎ Π΄Π° јС основни систСм Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° псСудо ΡƒΡ€Π΅Ρ’Π°Ρ˜ /dev/root.
  • Π˜Π·Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ хостфс ΠΊΠ°ΠΎ основни Π΄Ρ€Π°Ρ˜Π²Π΅Ρ€ систСма Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°.
  • ΠœΠΎΠ½Ρ‚ΠΈΡ€Π°Ρ˜Ρ‚Π΅ систСм Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π·Π° гостС који смо ΠΊΡ€Π΅ΠΈΡ€Π°Π»ΠΈ Π½Π° Ρ€ΠΎΠΎΡ‚ ΡƒΡ€Π΅Ρ’Π°Ρ˜.
  • И Π΄Π°, Ρƒ Ρ€Π΅ΠΆΠΈΠΌΡƒ Ρ‡ΠΈΡ‚Π°ΡšΠ° ΠΈ писања.
  • ΠšΠΎΡ€ΠΈΡΡ‚ΠΈΡ‚Π΅ само 64 ΠœΠ‘ РАМ-Π° (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ користити ΠΌΠ½ΠΎΠ³ΠΎ мањС Ρƒ зависности ΠΎΠ΄ Ρ‚ΠΎΠ³Π° ΡˆΡ‚Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚Π΅ Π΄Π° ΡƒΡ€Π°Π΄ΠΈΡ‚Π΅, Π°Π»ΠΈ сС Ρ‡ΠΈΠ½ΠΈ Π΄Π° јС 64 ΠœΠ‘ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π° ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π°).
  • ΠšΠ΅Ρ€Π½Π΅Π» сС аутоматски ΠΏΠΎΠΊΡ€Π΅Ρ›Π΅ /bin/sh ΠΊΠ°ΠΎ init-процСс.

ΠŸΠΎΠΊΡ€Π΅Π½ΠΈΡ‚Π΅ ΠΎΠ²Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΡ˜Π΅Ρ‚Π΅ Π½Π΅ΡˆΡ‚ΠΎ ΠΏΠΎΠΏΡƒΡ‚ слСдСћСг:

Још јСдан лист

Core dump limits :
        soft - 0
        hard - NONE
Checking that ptrace can change system call numbers...OK
Checking syscall emulation patch for ptrace...OK
Checking advanced syscall emulation patch for ptrace...OK
Checking environment variables for a tempdir...none found
Checking if /dev/shm is on tmpfs...OK
Checking PROT_EXEC mmap in /dev/shm...OK
Adding 32137216 bytes to physical memory to account for exec-shield gap
Linux version 5.1.16 (cadey@kahless) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #30 Sun Jul 7 18:57:19 UTC 2019
Built 1 zonelists, mobility grouping on.  Total pages: 23898
Kernel command line: root=/dev/root rootflags=/home/cadey/dl/uml/alpine rootfstype=hostfs rw mem=64M init=/bin/sh
Dentry cache hash table entries: 16384 (order: 5, 131072 bytes)
Inode-cache hash table entries: 8192 (order: 4, 65536 bytes)
Memory: 59584K/96920K available (2692K kernel code, 708K rwdata, 588K rodata, 104K init, 244K bss, 37336K reserved, 0K cma-reserved)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS: 15
clocksource: timer: mask: 0xffffffffffffffff max_cycles: 0x1cd42e205, max_idle_ns: 881590404426 ns
Calibrating delay loop... 7479.29 BogoMIPS (lpj=37396480)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes)
Checking that host ptys support output SIGIO...Yes
Checking that host ptys support SIGIO on close...No, enabling workaround
devtmpfs: initialized
random: get_random_bytes called from setup_net+0x48/0x1e0 with crng_init=0
Using 2.6 host AIO
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 256 (order: 0, 6144 bytes)
NET: Registered protocol family 16
clocksource: Switched to clocksource timer
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
console [stderr0] disabled
mconsole (version 2) initialized on /home/cadey/.uml/tEwIjm/mconsole
Checking host MADV_REMOVE support...OK
workingset: timestamp_bits=62 max_order=14 bucket_order=0
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered (default)
io scheduler bfq registered
loop: module loaded
NET: Registered protocol family 17
Initialized stdio console driver
Using a channel type which is configured out of UML
setup_one_line failed for device 1 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 2 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 3 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 4 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 5 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 6 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 7 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 8 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 9 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 10 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 11 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 12 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 13 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 14 : Configuration failed
Using a channel type which is configured out of UML
setup_one_line failed for device 15 : Configuration failed
Console initialized on /dev/tty0
console [tty0] enabled
console [mc-1] enabled
Failed to initialize ubd device 0 :Couldn't determine size of device's file
VFS: Mounted root (hostfs filesystem) on device 0:11.
devtmpfs: mounted
This architecture does not have kernel memory protection.
Run /bin/sh as init process
/bin/sh: can't access tty; job control turned off
random: fast init done
/ # 

Π“ΠΎΡ€Π΅ Π½Π°Π²Π΅Π΄Π΅Π½Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ Ρ›Π΅ Π½Π°ΠΌ Π΄Π°Ρ‚ΠΈ систСм Π³ΠΎΡΡ‚ΠΈΡ˜Ρƒ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π±Π΅Π· ствари ΠΏΠΎΠΏΡƒΡ‚ /proc ΠΈΠ»ΠΈ Π΄ΠΎΠ΄Π΅Ρ™Π΅Π½ΠΎ ΠΈΠΌΠ΅ хоста. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ±Π°Ρ˜Ρ‚Π΅ слСдСћС ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

- uname -av
- cat /proc/self/pid
- hostname

Π”Π° бистС сС одјавили са госта, ΠΎΡ‚ΠΊΡƒΡ†Π°Ρ˜Ρ‚Π΅ exit ΠΈΠ»ΠΈ притиснитС Π¦ΠΎΠ½Ρ‚Ρ€ΠΎΠ»-Π΄. Ово Ρ›Π΅ ΡƒΠ±ΠΈΡ‚ΠΈ ΡˆΠΊΠΎΡ™ΠΊΡƒ ΠΏΡ€Π°Ρ›Π΅Π½ΠΎ ΠΏΠ°Π½ΠΈΠΊΠΎΠΌ ΠΊΠ΅Ρ€Π½Π΅Π»Π°:

/ # exit
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000
fish: β€œ./linux root=/dev/root rootflag…” terminated by signal SIGABRT (Abort)

Π”ΠΎΠ±ΠΈΠ»ΠΈ смо ΠΎΠ²Ρƒ ΠΏΠ°Π½ΠΈΠΊΡƒ ΠΊΠ΅Ρ€Π½Π΅Π»Π° Ρ˜Π΅Ρ€ Π›ΠΈΠ½ΡƒΠΊ ΠΊΠ΅Ρ€Π½Π΅Π» мисли Π΄Π° процСс ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ ΡƒΠ²Π΅ΠΊ Ρ€Π°Π΄ΠΈ. Π‘Π΅Π· Ρ‚ΠΎΠ³Π°, систСм вишС Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡˆΠ΅ ΠΈ Ρ€ΡƒΡˆΠΈ сС. Али ΠΏΠΎΡˆΡ‚ΠΎ јС ΠΎΠ²ΠΎ процСс Ρƒ корисничком Ρ€Π΅ΠΆΠΈΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»Ρ‚ΡƒΡ˜ΡƒΡ›ΠΈ ΠΈΠ·Π»Π°Π· сС сам ΡˆΠ°Ρ™Π΅ SIGABRT, ΡˆΡ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π° ΠΈΠ·Π»Π°Π·ΠΎΠΌ.

ПодСшавањС ΠΌΡ€Π΅ΠΆΠ΅ Π·Π° гостС

И ΠΎΠ²Π΄Π΅ ствари ΠΏΠΎΡ‡ΠΈΡšΡƒ Π΄Π° ΠΈΠ΄Ρƒ Π½Π°ΠΎΠΏΠ°ΠΊΠΎ. Π£ΠΌΡ€Π΅ΠΆΠ°Π²Π°ΡšΠ΅ Ρƒ корисничком Ρ€Π΅ΠΆΠΈΠΌΡƒ Π›ΠΈΠ½ΡƒΠΊ јС мСсто Π³Π΄Π΅ Ρ†Π΅ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎΠ³ β€žΠΊΠΎΡ€ΠΈΡΠ½ΠΈΡ‡ΠΊΠΎΠ³ Ρ€Π΅ΠΆΠΈΠΌΠ°β€œ ΠΏΠΎΡ‡ΠΈΡšΠ΅ Π΄Π° сС распада. На ΠΊΡ€Π°Ρ˜Ρƒ ΠΊΡ€Π°Ρ˜Π΅Π²Π°, ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π½Π° Π½ΠΈΠ²ΠΎΡƒ систСма, ΠΌΡ€Π΅ΠΆΠ° јС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΎΠ²Π°Π½ Π½Π°Ρ‡ΠΈΠ½ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠ΅ΡšΠ° ΠΈΠ· свима Π½Π°ΠΌΠ° Ρ€Π°Π·ΡƒΠΌΡ™ΠΈΠ²ΠΈΡ… Ρ€Π°Π·Π»ΠΎΠ³Π°.

Π‘Π΅Π»Π΅ΡˆΠΊΠ°. ΠΏΠ΅Ρ€ .: ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΠΈ вишС ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΠΌ ΠΎΠΏΡ†ΠΈΡ˜Π°ΠΌΠ° Π·Π° Ρ€Π°Π΄ са ΠΌΡ€Π΅ΠΆΠΎΠΌ Ρƒ Π£ΠœΠ›-Ρƒ ΠΎΠ²Π΄Π΅.

ΠŸΡƒΡ‚ΠΎΠ²Π°ΡšΠ΅ Ρƒ Π‘Π»ΠΈΡ€ΠΏ

ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ Π΄Ρ€Π΅Π²Π½Π° ΠΈ скоро Π½Π΅ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π½Π° Π°Π»Π°Ρ‚ΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·ΠΈΠ²ΠΎΠΌ Π‘Π»ΠΈΡ€ΠΏ, са којим кориснички Ρ€Π΅ΠΆΠΈΠΌ Π›ΠΈΠ½ΡƒΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π° са ΠΌΡ€Π΅ΠΆΠΎΠΌ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡˆΠ΅ слично ΠΊΠ°ΠΎ ВЦП/ИП стСк Π½Π° Π½ΠΈΠ²ΠΎΡƒ корисника ΠΈ Π½Π΅ Π·Π°Ρ…Ρ‚Π΅Π²Π° Π½ΠΈΠΊΠ°ΠΊΠ²Π΅ систСмскС Π΄ΠΎΠ·Π²ΠΎΠ»Π΅ Π·Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅. Овај Π°Π»Π°Ρ‚ јС Π±ΠΈΠΎ ΠΎΠ±Ρ˜Π°Π²Ρ™Π΅Π½ 1995, Π° најновијС Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ јС Π΄Π°Ρ‚ΠΈΡ€Π°Π½ΠΎ 2006 Π³ΠΎΠ΄ΠΈΠ½Π΅. Π‘Π»ΠΈΡ€ΠΏ јС Π²Π΅ΠΎΠΌΠ° стар. Π’ΠΎΠΊΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π±Π΅Π· ΠΏΠΎΠ΄Ρ€ΡˆΠΊΠ΅ ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ°, ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΈ су ΠΎΡ‚ΠΈΡˆΠ»ΠΈ ​​толико Π΄Π°Π»Π΅ΠΊΠΎ Π΄Π° сС сада овај Π°Π»Π°Ρ‚ ΠΌΠΎΠΆΠ΅ описати само ΠΊΠ°ΠΎ ΠΊΠΎΠ΄ Ρ‚Ρ€ΡƒΠ»Π΅ΠΆΠΈ.

Π”Π°ΠΊΠ»Π΅, Ρ…Π°Ρ˜Π΄Π΅ Π΄Π° ΠΏΡ€Π΅ΡƒΠ·ΠΌΠ΅ΠΌΠΎ Π‘Π»ΠΈΡ€ΠΏ ΠΈΠ· Π£Π±ΡƒΠ½Ρ‚Ρƒ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° ΠΈ ΠΏΠΎΠΊΡƒΡˆΠ°ΠΌΠΎ Π΄Π° Π³Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅ΠΌΠΎ:

sudo apt-get install slirp
/usr/bin/slirp
Slirp v1.0.17 (BETA)

Copyright (c) 1995,1996 Danny Gasparovski and others.
All rights reserved.
This program is copyrighted, free software.
Please read the file COPYRIGHT that came with the Slirp
package for the terms and conditions of the copyright.

IP address of Slirp host: 127.0.0.1
IP address of your DNS(s): 1.1.1.1, 10.77.0.7
Your address is 10.0.2.15
(or anything else you want)

Type five zeroes (0) to exit.

[autodetect SLIP/CSLIP, MTU 1500, MRU 1500, 115200 baud]

SLiRP Ready ...
fish: β€œ/usr/bin/slirp” terminated by signal SIGSEGV (Address boundary error)

О Π±ΠΎΠ³ΠΎΠ²ΠΈ. Π₯ајдС Π΄Π° инсталирамо Π‘Π»ΠΈΡ€ΠΏΠΎΠ² Π΄Π΅Π±Π°Π³Π΅Ρ€ ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎ Π΄Π° Π»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄Π° схватимо ΡˆΡ‚Π° сС ΠΎΠ²Π΄Π΅ дСшава:

sudo apt-get install gdb slirp-dbgsym
gdb /usr/bin/slirp
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/slirp...Reading symbols from /usr/lib/debug/.build-id/c6/2e75b69581a1ad85f72ac32c0d7af913d4861f.debug...done.
done.
(gdb) run
Starting program: /usr/bin/slirp
Slirp v1.0.17 (BETA)

Copyright (c) 1995,1996 Danny Gasparovski and others.
All rights reserved.
This program is copyrighted, free software.
Please read the file COPYRIGHT that came with the Slirp
package for the terms and conditions of the copyright.

IP address of Slirp host: 127.0.0.1
IP address of your DNS(s): 1.1.1.1, 10.77.0.7
Your address is 10.0.2.15
(or anything else you want)

Type five zeroes (0) to exit.

[autodetect SLIP/CSLIP, MTU 1500, MRU 1500, 115200 baud]

SLiRP Ready ...

Program received signal SIGSEGV, Segmentation fault.
                                                    ip_slowtimo () at ip_input.c:457
457     ip_input.c: No such file or directory.

Π“Ρ€Π΅ΡˆΠΊΠ° Ρ‚ΡƒΡ‡Π΅ Ρƒ Π½Π°ΠΌΠ° ΠΎΠ²Ρƒ Π»ΠΈΠ½ΠΈΡ˜Ρƒ. Π₯ајдС Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π°ΠΌΠΎ стацктрацС, ΠΌΠΎΠΆΠ΄Π° Ρ›Π΅ Π½Π°ΠΌ Ρ‚Ρƒ Π½Π΅ΡˆΡ‚ΠΎ ΠΏΠΎΠΌΠΎΡ›ΠΈ:

(gdb) bt full
#0  ip_slowtimo () at ip_input.c:457
        fp = 0x55784a40
#1  0x000055555556a57c in main_loop () at ./main.c:980
        so = <optimized out>
        so_next = <optimized out>
        timeout = {tv_sec = 0, tv_usec = 0}
        ret = 0
        nfds = 0
        ttyp = <optimized out>
        ttyp2 = <optimized out>
        best_time = <optimized out>
        tmp_time = <optimized out>
#2  0x000055555555b116 in main (argc=1, argv=0x7fffffffdc58) at ./main.c:95
No locals.

ОвдС Π²ΠΈΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΏΠ°Π΄ дСшава Ρ‚ΠΎΠΊΠΎΠΌ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° Π³Π»Π°Π²Π½Π΅ ΠΏΠ΅Ρ‚Ρ™Π΅ ΠΊΠ°Π΄Π° слирп ΠΏΠΎΠΊΡƒΡˆΠ° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ Π΄Π° Π»ΠΈ јС дошло Π΄ΠΎ истСка. Π£ ΠΎΠ²ΠΎΠΌ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ, ΠΌΠΎΡ€Π°ΠΎ сам Π΄Π° одустанСм ΠΎΠ΄ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ° Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°. Али Ρ…Π°Ρ˜Π΄Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠΎ Π΄Π° Π»ΠΈ Π‘Π»ΠΈΡ€ΠΏ Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½ ΠΎΠ΄ врста Ρ€Π°Π΄ΠΈ. Поново сам ΠΏΡ€Π΅ΡƒΠ·Π΅ΠΎ Π°Ρ€Ρ…ΠΈΠ²Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ са ΡΠ°Ρ˜Ρ‚Π° Π‘ΠΎΡƒΡ€Ρ†Π΅Ρ„ΠΎΡ€Π³Π΅, Ρ˜Π΅Ρ€ јС ΠΏΡ€Π΅Π²Π»Π°Ρ‡Π΅ΡšΠ΅ Π½Π΅Ρ‡Π΅Π³Π° ΠΎΠ΄Π°Ρ‚Π»Π΅ ΠΊΡ€ΠΎΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρƒ Π»ΠΈΠ½ΠΈΡ˜Ρƒ ΠΌΡƒΠΊΠ°:

cd ~/dl
wget https://xena.greedo.xeserv.us/files/slirp-1.0.16.tar.gz
tar xf slirp-1.0.16.tar.gz
cd slirp-1.0.16/src
./configure --prefix=$HOME/prefix/slirp
make

ОвдС Π²ΠΈΠ΄ΠΈΠΌΠΎ ΡƒΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ° ΠΎ нСдСфинисаним ΡƒΠ³Ρ€Π°Ρ’Π΅Π½ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°ΠΌΠ°, односно ΠΎ нСмогућности повСзивања Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π°Ρ˜ΡƒΡ›Π΅ Π±ΠΈΠ½Π°Ρ€Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅. Π§ΠΈΠ½ΠΈ сС Π΄Π° јС ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ 2006. ΠΈ ΠΎΠ²Π΅ Ρ‚Π°Ρ‡ΠΊΠ΅, Π³Ρ†Ρ† прСстао Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ симболС који сС користС Ρƒ ΡƒΠ³Ρ€Π°Ρ’Π΅Π½ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°ΠΌΠ° посрСдно ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ΠΈΡ… Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°. ΠŸΠΎΠΊΡƒΡˆΠ°Ρ˜ΠΌΠΎ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊΡ™ΡƒΡ‡Π½Ρƒ Ρ€Π΅Ρ‡ inline Π½Π° ΠΏΡ€Π°Π·Π°Π½ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ˜Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚:

vi slirp.h
:6
a
<enter>
#define inline /**/
<escape>
:wq
make

Јок. Ни ΠΎΠ²ΠΎ Π½Π΅ Ρ€Π°Π΄ΠΈ. Још ΡƒΠ²Π΅ΠΊ Π½Π΅ ΠΌΠΎΠ³Ρƒ Π΄Π° ΠΏΡ€ΠΎΠ½Π°Ρ’Π΅ΠΌ симболС Π·Π° ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅.

Π£ ΠΎΠ²ΠΎΠΌ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ сам одустао ΠΈ ΠΏΠΎΡ‡Π΅ΠΎ Π΄Π° Ρ‚Ρ€Π°ΠΆΠΈΠΌ Π“ΠΈΡ‚Ρ…ΡƒΠ± Π₯Π΅Ρ€ΠΎΠΊΡƒ Π±ΡƒΠΈΠ»Π΄ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. Моја Ρ‚Π΅ΠΎΡ€ΠΈΡ˜Π° јС Π±ΠΈΠ»Π° Π΄Π° Π±ΠΈ Π½Π΅ΠΊΠΈ Π₯Π΅Ρ€ΠΎΠΊΡƒ Π±ΡƒΠΈΠ»Π΄ ΠΏΠ°ΠΊΠ΅Ρ‚ садрТао Π±ΠΈΠ½Π°Ρ€Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ којС су ΠΌΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π΅. На ΠΊΡ€Π°Ρ˜Ρƒ ΠΌΠ΅ јС ΠΏΠΎΡ‚Ρ€Π°Π³Π° Π΄ΠΎΠ²Π΅Π»Π° ΠΎΠ²Π΄Π΅. ΠŸΡ€Π΅ΡƒΠ·Π΅ΠΎ сам ΠΈ распаковао uml.tar.gz ΠΈ ΠΏΡ€ΠΎΠ½Π°ΡˆΠ°ΠΎ слСдСћС:

total 6136
-rwxr-xr-x 1 cadey cadey   79744 Dec 10  2017 ifconfig*
-rwxr-xr-x 1 cadey cadey     373 Dec 13  2017 init*
-rwxr-xr-x 1 cadey cadey  149688 Dec 10  2017 insmod*
-rwxr-xr-x 1 cadey cadey   66600 Dec 10  2017 route*
-rwxr-xr-x 1 cadey cadey  181056 Jun 26  2015 slirp*
-rwxr-xr-x 1 cadey cadey 5786592 Dec 15  2017 uml*
-rwxr-xr-x 1 cadey cadey     211 Dec 13  2017 uml_run*

Ово јС слирп Π±ΠΈΠ½Π°Ρ€Π½ΠΎ! Π”Π° Π»ΠΈ Ρ€Π°Π΄ΠΈ?

./slirp
Slirp v1.0.17 (BETA) FULL_BOLT

Copyright (c) 1995,1996 Danny Gasparovski and others.
All rights reserved.
This program is copyrighted, free software.
Please read the file COPYRIGHT that came with the Slirp
package for the terms and conditions of the copyright.

IP address of Slirp host: 127.0.0.1
IP address of your DNS(s): 1.1.1.1, 10.77.0.7
Your address is 10.0.2.15
(or anything else you want)

Type five zeroes (0) to exit.

[autodetect SLIP/CSLIP, MTU 1500, MRU 1500]

SLiRP Ready ...

НС Ρ€ΡƒΡˆΠΈ сС - Ρ‚Π°ΠΊΠΎ Π΄Π° Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° Ρ€Π°Π΄ΠΈ! Π₯ајдС Π΄Π° ΡƒΠ³Ρ€Π°Π΄ΠΈΠΌΠΎ ΠΎΠ²Ρƒ Π±ΠΈΠ½Π°Ρ€Π½Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ ~/bin/slirp:

cp slirp ~/bin/slirp

Π£ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ Π΄Π° Π³Π° ΠΊΡ€Π΅Π°Ρ‚ΠΎΡ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΡƒΠΊΠ»ΠΎΠ½ΠΈ, И Π½Π°ΠΏΡ€Π°Π²ΠΈΠΎ ΠΎΠ³Π»Π΅Π΄Π°Π»ΠΎ.

ПодСшавањС ΠΌΡ€Π΅ΠΆΠ΅

Π‘Π°Π΄Π° Π΄Π° поставимо ΠΌΡ€Π΅ΠΆΡƒ Π½Π° нашСм Π³ΠΎΡΡ‚ΡƒΡ˜ΡƒΡ›Π΅ΠΌ ΠΊΠ΅Ρ€Π½Π΅Π»Ρƒ. ΠΠΆΡƒΡ€ΠΈΡ€Π°Ρ˜Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π΅ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ°:

linux 
  root=/dev/root 
  rootfstype=hostfs 
  rootflags=$HOME/prefix/uml-demo 
  rw 
  mem=64M 
  eth0=slirp,,$HOME/bin/slirp 
  init=/bin/sh

Π‘Π°Π΄Π° ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠΌΠΎ ΠΌΡ€Π΅ΠΆΡƒ:

mount -t proc proc proc/
mount -t sysfs sys sys/

ifconfig eth0 10.0.2.14 netmask 255.255.255.240 broadcast 10.0.2.15
route add default gw 10.0.2.2

ΠŸΡ€Π²Π΅ Π΄Π²Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ /proc ΠΈ /sys Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½Π° Π·Π° Ρ€Π°Π΄ ifconfig, који поставља ΠΌΡ€Π΅ΠΆΠ½ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ Π·Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ са Π‘Π»ΠΈΡ€ΠΏ-ΠΎΠΌ. Π’ΠΈΠΌ route поставља Ρ‚Π°Π±Π΅Π»Ρƒ Ρ€ΡƒΡ‚ΠΈΡ€Π°ΡšΠ° ΠΊΠ΅Ρ€Π½Π΅Π»Π° Π΄Π° присили сав ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜ Π΄Π° сС ΠΏΠΎΡˆΠ°Ρ™Π΅ ΠΊΡ€ΠΎΠ· Π‘Π»ΠΈΡ€ΠΏ Ρ‚ΡƒΠ½Π΅Π». Π₯ајдС Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌΠΎ ΠΎΠ²ΠΎ ΠΏΠΎΠΌΠΎΡ›Ρƒ ДНБ ΡƒΠΏΠΈΡ‚Π°:

nslookup google.com 8.8.8.8
Server:    8.8.8.8
Address 1: 8.8.8.8 dns.google

Name:      google.com
Address 1: 172.217.12.206 lga25s63-in-f14.1e100.net
Address 2: 2607:f8b0:4006:81b::200e lga25s63-in-x0e.1e100.net

Π Π°Π΄ΠΈ!

НапомСна ΠΏΠΎ .: ΠžΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ, ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈ пост јС написан Π½Π° Ρ€Π°Π΄Π½ΠΎΡ˜ ΠΏΠΎΠ²Ρ€ΡˆΠΈΠ½ΠΈ са ΠΎΠΆΠΈΡ‡Π΅Π½ΠΎΠΌ ΠΌΡ€Π΅ΠΆΠ½ΠΎΠΌ ΠΊΠ°Ρ€Ρ‚ΠΈΡ†ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΎΠΌ која нијС Π·Π°Ρ…Ρ‚Π΅Π²Π°Π»Π° Π΄ΠΎΠ΄Π°Ρ‚Π½Π΅ Π΄Ρ€Π°Ρ˜Π²Π΅Ρ€Π΅. На Π»Π°ΠΏΡ‚ΠΎΠΏΡƒ са Π’ΠΈΠ€ΠΈ 8265 компанијС Π˜Π½Ρ‚Π΅Π», Π΄ΠΎΠ»Π°Π·ΠΈ Π΄ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΈΠ·Π°ΡšΡƒ ΠΌΡ€Π΅ΠΆΠ΅

/ # ifconfig eth0 10.0.2.14 netmask 255.255.255.240 broadcast 10.0.2.15
slirp_tramp failed - errno = 2
ifconfig: ioctl 0x8914 failed: No such file or directory
/ #

ΠžΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ, ΠΊΠ΅Ρ€Π½Π΅Π» Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π° са Π΄Ρ€Π°Ρ˜Π²Π΅Ρ€ΠΎΠΌ ΠΌΡ€Π΅ΠΆΠ½Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΡ†Π΅. ΠŸΠΎΠΊΡƒΡˆΠ°Ρ˜ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°ΡšΠ° Ρ„ΠΈΡ€ΠΌΠ²Π΅Ρ€Π° Ρƒ ΠΊΠ΅Ρ€Π½Π΅Π», наТалост, нијС ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠΎ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Ρƒ. Π£ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ ΠΎΠ±Ρ˜Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ° нијС Π±ΠΈΠ»ΠΎ ΠΌΠΎΠ³ΡƒΡ›Π΅ ΠΏΡ€ΠΎΠ½Π°Ρ›ΠΈ Ρ€Π΅ΡˆΠ΅ΡšΠ΅ Ρƒ овој ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΈ. На Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΡ˜ΠΈΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°ΠΌΠ° (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρƒ Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π±ΠΎΠΊ-Ρƒ), ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ сС ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΏΠΎΠ΄ΠΈΠΆΠ΅.

Π₯ајдС Π΄Π° Π°ΡƒΡ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΡƒΡ˜Π΅ΠΌΠΎ ΠΏΡ€Π΅ΡƒΡΠΌΠ΅Ρ€Π°Π²Π°ΡšΠ΅ са слСдСћом схСлл скриптом:

#!/bin/sh
# init.sh

mount -t proc proc proc/
mount -t sysfs sys sys/
ifconfig eth0 10.0.2.14 netmask 255.255.255.240 broadcast 10.0.2.15
route add default gw 10.0.2.2

echo "networking set up"

exec /tini /bin/sh

И ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚Π΅ Π³Π° ΠΊΠ°ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠ½ΠΎ:

chmod +x init.sh

А ΠΎΠ½Π΄Π° Ρ›Π΅ΠΌΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ Ρƒ командној линији ΠΊΠ΅Ρ€Π½Π΅Π»Π°:

linux 
  root=/dev/root 
  rootfstype=hostfs 
  rootflags=$HOME/prefix/uml-demo 
  rw 
  mem=64M 
  eth0=slirp,,$HOME/bin/slirp 
  init=/init.sh

И да поновимо:

SLiRP Ready ...
networking set up
/bin/sh: can't access tty; job control turned off

nslookup google.com 8.8.8.8
Server:    8.8.8.8
Address 1: 8.8.8.8 dns.google

Name:      google.com
Address 1: 172.217.12.206 lga25s63-in-f14.1e100.net
Address 2: 2607:f8b0:4004:800::200e iad30s09-in-x0e.1e100.net

ΠœΡ€Π΅ΠΆΠ° јС стабилна!

Π΄ΠΎΡ†ΠΊΠ΅Ρ€ Ρ„Π°Ρ˜Π»

Π”Π° Π²Π°ΠΌ олакшам свС ΠΎΠ²ΠΎ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅, сакупио сам Π”ΠΎΡ†ΠΊΠ΅Ρ€Ρ„ΠΈΠ»Π΅, који Π°ΡƒΡ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΡƒΡ˜Π΅ Π²Π΅Ρ›ΠΈΠ½Ρƒ описаних ΠΊΠΎΡ€Π°ΠΊΠ° ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²Π°ΠΌ ΠΏΡ€ΡƒΠΆΠΈ Ρ€Π°Π΄Π½Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ. Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΈΠΌΠ°ΠΌ ΡƒΠ½Π°ΠΏΡ€Π΅Π΄ конфигурисано Ρ˜Π΅Π·Π³Ρ€ΠΎ, који ΠΈΠΌΠ° свС ΡˆΡ‚ΠΎ јС описано Ρƒ посту. Али Π²Π°ΠΆΠ½ΠΎ јС Ρ€Π°Π·ΡƒΠΌΠ΅Ρ‚ΠΈ Π΄Π° сам ΠΎΠ²Π΄Π΅ Π½Π°Π²Π΅ΠΎ само ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Ρƒ поставку.

Надам сС Π΄Π° Π²Π°ΠΌ јС овај пост ΠΏΠΎΠΌΠΎΠ³Π°ΠΎ Π΄Π° Ρ€Π°Π·ΡƒΠΌΠ΅Ρ‚Π΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅Ρ‚Π΅ Ρ˜Π΅Π·Π³Ρ€ΠΎ Π·Π° гостС. Π˜ΡΠΏΠΎΡΡ‚Π°Π²ΠΈΠ»ΠΎ сС Π΄Π° јС Ρ‚ΠΎ Π½Π΅ΠΊΠ° врста Ρ‡ΡƒΠ΄ΠΎΠ²ΠΈΡˆΡ‚Π°, Π°Π»ΠΈ јС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π·Π°ΠΌΠΈΡˆΡ™Π΅Π½Π° ΠΊΠ°ΠΎ свСобухватан Π²ΠΎΠ΄ΠΈΡ‡ Π·Π° ΠΈΠ·Π³Ρ€Π°Π΄ΡšΡƒ, ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡΠ°ΡšΠ΅ корисничког Ρ€Π΅ΠΆΠΈΠΌΠ° Ρƒ Линуксу ΠΏΠΎΠ΄ саврСмСним Π²Π΅Ρ€Π·ΠΈΡ˜Π°ΠΌΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈΡ… систСма ΠΎΠ²Π΅ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΡ†Π΅. Π‘Π»Π΅Π΄Π΅Ρ›ΠΈ ΠΊΠΎΡ€Π°Ρ†ΠΈ Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Ρƒ ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ услуга ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ софтвСра који јС Π²Π΅Ρ› ΡƒΠ½ΡƒΡ‚Π°Ρ€ систСма Π·Π° гостС. ΠŸΠΎΡˆΡ‚ΠΎ су сликС Π”ΠΎΡ†ΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° само ΠΎΠ±Ρ˜Π°Π²Ρ™Π΅Π½ΠΈ архивски Ρ„Π°Ρ˜Π»ΠΎΠ²ΠΈ, Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π²ΡƒΡ‡Π΅Ρ‚Π΅ слику ΠΏΡ€Π΅ΠΊΠΎ docker export, Π° Π·Π°Ρ‚ΠΈΠΌ ΠΎΠ΄Ρ€Π΅Π΄ΠΈΡ‚Π΅ ΡšΠ΅Π³ΠΎΠ²Ρƒ ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜ΡΠΊΡƒ ΠΏΡƒΡ‚Π°ΡšΡƒ Ρƒ ΠΊΠΎΡ€Π΅Π½Ρƒ систСма Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π³ΠΎΡΡ‚ΡƒΡ˜ΡƒΡ›Π΅Π³ ΠΊΠ΅Ρ€Π½Π΅Π»Π°. Па, ΠΎΠ½Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚Π΅ схСлл скрипту.

ПосСбно Ρ…Π²Π°Π»Π° Π ΠΊΠ΅Π΅Π½Π΅Ρƒ ΠΈΠ· #лобстСрс Π½Π° Π€Ρ€Π΅Π΅Π½ΠΎΠ΄Π΅-Ρƒ. Π‘Π΅Π· њСговС ΠΏΠΎΠΌΠΎΡ›ΠΈ Ρƒ ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΡƒ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° Ρƒ Π‘Π»ΠΈΡ€ΠΏΡƒ, Π½Π΅ Π±ΠΈΡ… стигао ΠΎΠ²Π°ΠΊΠΎ Π΄Π°Π»Π΅ΠΊΠΎ. НСмам појма ΠΊΠ°ΠΊΠΎ њСгов Π‘Π»Π°Ρ†ΠΊΠ²Π°Ρ€Π΅ систСм Ρ€Π°Π΄ΠΈ исправно са слирп-ΠΎΠΌ, Π°Π»ΠΈ моји Π£Π±ΡƒΠ½Ρ‚Ρƒ ΠΈ АлпинС систСми нису ΠΏΡ€ΠΈΡ…Π²Π°Ρ‚ΠΈΠ»ΠΈ слирп ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Π ΠΊΠ΅Π΅Π½Π΅ ΠΌΠΈ јС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠΎ. Али ΠΌΠ΅Π½ΠΈ јС Π΄ΠΎΠ²ΠΎΡ™Π½ΠΎ Π΄Π° ΠΌΠΈ Π±Π°Ρ€ Π½Π΅ΡˆΡ‚ΠΎ Ρ€Π°Π΄ΠΈ.

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€