แจแแกแแแแแ แแแแ แแแแแแแกแแแ: แฉแแแแก แชแฎแแแ แแแแจแ แกแฎแแแแแกแฎแแ แกแแฎแแก แแแแขแแแแแ แแแแก แแแกแแฃแ แ แจแแกแแแแก แคแแแแ, แจแแแซแแแแ แกแแแแแแ แกแแแแขแแ แแกแ แแ แกแแกแแ แแแแแ แแงแแก แแแแก แแแ แแแแแ, แแฃ แ แ แขแแฅแแแแแแแแแแ แแแแฌแงแ แแก แงแแแแแคแแ แ แแ แแฎแแ. แแแแแแ แแ แแแแแแแ แจแแแซแแแแ แกแแกแแ แแแแแ แแงแแก แแฆแแแแ, แแแแ แแ แงแแแแแก แแ แแฎแกแแแก แแกแแแ แแแแแแแแ (แแ แแชแแก, แแ แแแแญแแ แแก แแฃ แแ แ แแแแ แกแฌแ แแคแ แแแแแแแแ แแแแก แแ แแก). แแ แ-แแ แแ แแกแแแ แขแแฅแแแแแแแแ แแแแฎแแแ แแแแแก แ แแแแแ Linux. แแ แแแแแแแแก แแแขแแ แแ แแแแ แ แแแแแแแ, แแแแ แแแแ, แ แแแแแ แซแแแแ แแแแแแแแ แแแ แแฃแจแแแแก แฏแแ แแแแแ แแ แ แแแแแ แแ แ, แแ แจแแแแแแแ แ แแฆแแช แแแแแฏ-แแแแแฏ แแแกแขแ แฃแฅแชแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แฃแแแ แแแแฆแแ แกแแแฃแแแ แแแแก homebrew UML 2k19-แจแ. แแแแฎ, แฉแแแ แแแแแฌแแแแ แแ แแแแแแแฃแ แ แแแกแขแแก แแแขแแ แ Habr-แจแ
แแแแฎแแแ แแแแแก แ แแแแแ Linux-แจแ, แคแแฅแขแแแ แแแแ, แแ แแก Linux-แแก แแแ แแแแก แแแ แขแ แแแแแกแแแแก. แแก แ แแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแฃแจแแแ Linux-แแก แกแ แฃแแ แแแ แแแ, แ แแแแ แช แแแแฎแแแ แแแแแก แแ แแชแแกแ แแ แฉแแแฃแแแแ แแ แแแแแแงแแแแแ แแแแแแแแแ แแแแก แแแแ แแ แแแแแ แแแแก แจแแกแแแแฌแแแแแแ. แแแแ แแ แแก แ แแแแแ แแกแแแ แกแแกแแ แแแแแแ, แ แแแแ แช แแแแแแ แแแแแแชแแแก แแแกแขแ แฃแแแแขแ, แ แแแแแก แแ แแแชแแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแแแก แแฃแจแแแแแก แแกแแแแกแแ. แแก แ แแแแแ แฃแแ แฃแแแแแงแแคแก แฃแคแ แ แแแข แแแแแแชแแแก, แแแแ แ Docker, แแแแ แแ แแแแแแแก, แแแแ แ แกแ แฃแแคแแกแแแแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแ, แ แแแแ แแชแแ KVM แแ Virtual Box.
แแแแแแแ, แแแแฎแแแ แแแแแก แ แแแแแ แจแแแซแแแแ แฉแแแแแก แฃแชแแแฃแ แแ แ แแฃแ แแแกแขแ แฃแแแแขแแ แแแแแกแแงแแแแแแแ, แแแแ แแ แแแก แแแแแช แแฅแแก แแแแแกแ แแแแแงแแแแแ. แงแแแแแแแ แแแแก แจแแแแแ, แแก แแ แแก Linux-แแก แกแ แฃแแคแแกแแแแแ แแแ แแแ, แ แแแแแแช แแฃแจแแแแก แแ แแแ แแแแแแแแ แแแฃแแ แแแแฎแแแ แแแแแกแแแ. แแก แคแฃแแฅแชแแ แกแแจแฃแแแแแแก แแซแแแแก แแแขแแแชแแฃแ แแ แแ แแกแแแแ แแแแก แแแฃแจแแแก แแแกแแแแซแแแ แแแแฅแแแแกแแแแก แ แแแแ แกแแคแ แแฎแแก แแแ แแจแ. แแ แ แแแแแ แแก แแ แแก แกแ แฃแแคแแกแแแแแ แแแ แแแ, แแแกแ แแ แแชแแกแแแ แแแแแแ แแแฃแแแ แแแกแแแแซแแแ แแแแฅแแแแแแ, แแแฃ แแ แแชแแกแแแ, แ แแแแแแแช แแแแแแแแ แแแแก แแแแฎแแแ แแแแแก แ แแแแแจแ, แแ แแฅแแแแ แฎแแแฃแแ แฐแแกแขแแกแแแแก. แแก แแ แฐแแแแก แฉแแแฃแแแแ แแ Docker แแแแขแแแแแ แก, แแ แจแแแแฎแแแแแจแ แแแกแแแแซแแแ แแแแฅแแแ แงแแแแแแแแก แฎแแแแแก แแ แแชแแกแแแก แกแแชแแแจแ. แจแแฎแแแแ แแกแขแ แแก แแ แแแฌแแแก แฉแแแ แแ แ-แแ แแ แกแแ แแแ แแแแ:
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-แแก แแแ แแแแก pstree-แก แแแแฎแแแ แแแแแก แ แแแแแจแ:
linuxโโฌโ5*[linux]
โโslirp
Docker-แแก แแแแขแแแแแ แแแแแ แแฃแจแแแแแกแแก แฐแแกแขแแกแแแ แแฎแแแแ แแ แแ แแชแแกแแแแก แกแแฎแแแแแก, แ แแแแแแแช แแแแแแแแ แแแแก แกแขแฃแแแ แจแ. Linux-แแก แแแแฎแแแ แแแแแก แ แแแแแแ แแก แจแแฃแซแแแแแแแ. แฒ แแก แแแจแแแแก? แแก แแแจแแแแก, แ แแ แแแแแขแแ แแแแแก แแแกแขแ แฃแแแแขแแแ, แ แแแแแแแช แแแแแก Linux-แแก แแฃแแแขแแก แฅแแแกแแกแขแแแแจแ แแแ แแฎแแแแ แกแขแฃแแ แแแแก แกแแกแขแแแแจแ แแแแแแแแ แ แแ แแชแแกแแแ. แแแแ แแ แแแแแแ แ แกแแขแฃแแชแแแจแ แแก แแแแกแแแ แจแแแซแแแแ แแแฎแแแก แแ แแแกแแแแแ แแแฎแแแแ.
แแแแแแแ, แแแแแ แแแกแขแ แฅแแแแแ แแ แแก แแแแแแแกแ แแ แกแแกแฃแ แแแแ แจแแแแแแก แแแฆแฌแแแแก แฃแฎแแจแ แแชแแแแแแแแแก แแ แแแฃแแ. แแแแกแแแแแก แแ แฃแแแ แแแแแแแงแแแแแแแ แกแฎแแแแแกแฎแแ แฃแซแแแแแกแ แฎแแแกแแฌแงแแแแ, แฌแแแแแแแฎแ แแแ แแแแก แฌแงแแ แแแแ, แแแแแแแแแแแแ แแแแแก แแแขแแแกแแฃแ แ แแแแแ แแแ, แ แแแแแแช แฏแแ แแแแแ แแแฌแงแแแแ แกแแแแแจแ แแแงแแแ แแแฌแแ แแแ, แแกแแแ แฐแแ แแแฃแก แแแแแแแแแแแก แจแแแฃแจแแแแแ แกแแแชแแแแฃแ แ แแ แแแแแ แแแแแงแแแแแแ, แ แแแ แแแแแแ แกแแญแแ แ แฎแแแกแแฌแงแแแแ. . แแแแแแ แแ แกแแแฃแจแแแ แแแซแฃแแ แแแญแแแ แฉแแแก IRC-แจแ แแแซแแฎแแแแ แแแแแ. แแแแแแแแแแ, แ แแ แแก แแแกแขแ แแแกแแฎแฃแ แแแ แ แแแแ แช แกแแแแ แแแแฃแแแแขแแชแแแก แแแแแแกแแแแก, แ แแ แแแแแ แกแชแแแแก แฃแแฎแแแก แแแ แแแแแแแ แแ OS แแแ แกแแแแแแ.
แ แแแฃแแแ แแแ
Linux แแแแฎแแแ แแแแแก แ แแแแแแก แแแงแแแแแ แฎแแแแ แ แแแแแแแแ แแขแแแแ:
- แฐแแกแขแแ แแแแแแแแแแฃแแแแแก แแแงแแแแแ;
- Linux-แแก แแแ แแแแก แฉแแแแขแแแ แแแ;
- แแแ แแแแก แแแแแแก แแแแคแแแฃแ แแชแแ;
- แแแ แแแแก แจแแแ แแแ;
- แแ แแแแแ แแแกแขแแแแชแแ;
- แกแขแฃแแ แแก แคแแแแฃแ แ แกแแกแขแแแแก แแแแคแแแฃแ แแชแแ;
- แแแ แแแแก แแแจแแแแแก แแแ แแแแขแ แแแแก แจแแ แฉแแแ;
- แกแขแฃแแ แแแแก แฅแกแแแแก แแแงแแแแแ;
- แกแขแฃแแ แแก แแแ แแแแก แแแฌแงแแแ.
แแ แแแแ แแฃแแแ, แ แแ แแฃ แแฅแแแ แแแแแแ แแแแแฌแงแแแขแ แแแแก แแแแแแแแแก, แแฅแแแ แกแแแแ แแฃแแแ แแแแแแแแแ แงแแแแแคแแ แก, แ แแช แแฆแฌแแ แแแแ Ubuntu-แก แแ Debian-แแก แแกแแแแก แกแแกแขแแแแจแ. แแชแแแ แงแแแแแแแ แแแแแแฅแแฃแแแก แแแแแ แแแ แฉแแแก แกแแงแแแ แแ แแแกแขแ แแแฃแชแแแจแ - Alpine, แแแแ แแ แแ แแคแแ แ แแแแแแแแแแ, แ แแแแ แช แฉแแแก, แแแแก แแแแ, แ แแ Linux-แแก แแแ แแแก แแฅแแก แแงแแ แ แกแแแแแแแแฃแแ glibc-isms แแ แแแแแ แแแแกแแแแก แแแแฎแแแ แแแแแก แ แแแแแจแ. แแ แแแแแ แแ แแแแก แจแแกแแฎแแ แจแแขแงแแแแแแแแก แแแแแ แแแแแแแจแ, แแแก แจแแแแแ แ แแช แกแแแแแแแ แแแแแแแ แแ แแแแแแแก.
แฐแแกแขแแ แแแแแแแแแแฃแแแแแแแก แแแงแแแแแ
Ubuntu-แก แกแญแแ แแแแ แแแแแแฃแ แจแแแแแแ แแแแแขแแแ Linux-แแก แแแ แแแแก แแกแแจแแแแแแแ (แกแฃแคแแ แแแกแขแแแแชแแแก แแแแแแแแกแฌแแแแแแ):
- 'build-essential'
- 'flex'
- 'bison'
- 'xz-utils'
- 'wget'
- 'ca-certificates'
- 'bc'
- 'linux-headers'
แแฅแแแ แจแแแแซแแแแ แแแแแแกแขแแแแ แแ แแกแแแ แจแแแแแแ แแ แซแแแแแแ (แ แแแแ แช root แแ sudo):
apt-get -y install build-essential flex bison xz-utils wget ca-certificates bc
linux-headers-$(uname -r)
แแแแแแแแแกแฌแแแแ, แ แแ Linux kernel แแแแแฃแก แแแงแแแแแแก แแ แแแ แแแแก แแแจแแแแ แแแแแฎแแแก แแแกแขแแแแชแแแก libncurses-dev
. แแแ แฌแแฃแแแแ, แ แแ แแก แแแแแกแขแแแแ แแแฃแแแ แจแแแแแแ แแ แซแแแแแแ (แ แแแแ แช root แแ sudo):
apt-get -y install libncurses-dev
แแแ แแแแก แฉแแแแขแแแ แแแ
แแแแแฌแงแแแขแแ แกแแ แแแแแแฌแแ แแ แแ แจแแแแแ แจแแฅแแแแแ แแแ แแแ. แแ แแแแ แแชแแแกแแแแก, แแฅแแแ แฃแแแ แแแแแงแแ แแแแฎแแแแแแ 1,3 GB แแแแแแ แแงแแ แแแกแแแ, แแกแ แ แแ แแแ แฌแแฃแแแแ, แ แแ แแแฅแแ.
แฌแแกแแแแก แจแแแแแ
แฉแแแแขแแแ แแแ แแก แคแแแแ แแแแแงแแแแแแ '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]
', แแฅแแแ แจแแซแแแแ แแแแคแแแฃแ แแชแแแก Space แแ Enter แแแแแแจแแแแก แแแแแงแแแแแแ. แแแแแแแ แคแแแฏแแ แแจแ, แ แแแแ แช แงแแแแแแแแก, แแแแแแแขแฃแ แแก แแกแ แแแแ "แแแแแ" แแ "แฅแแแแแ" แแ แแแ แฉแแแ แแแแแแแขแแแ - "แแแ แชแฎแแแ" แแ "แแแ แฏแแแแ".
แฎแแแแแก แแแฉแแแแแแแแ โ> แแแจแแแแก, แ แแ แแฅแแแ แแแงแแคแแแแ แฅแแแแแแแฃแจแ, แ แแแแแกแแช แฌแแแแแ Enter แฆแแแแแแ. แแแแแกแแแแแ แแจแแแ แแ แแแแแก"[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]
".
แแแ แฉแแแ แแ แแแกแขแแก แฌแแแแแฎแแแก แจแแแแแ แแแแแแจแแ แแแ แแแแก แแแแแแก แแแ แแแแขแแแแ. แแ แแฅแกแแแ แแแแแขแแแแก แกแแจแฃแแแแแแ แจแแแแซแแแแ แแแแ แ แ แแ แแแแแแ แแแแแแ แแแแแก แแแ แแแแก แแแฅแแแแแแก แแฃแจแแแแแกแ แแ แแแก แจแแแ แแแแแ แกแฎแแแแแกแฎแแ แแ แแจแแแแก แแแแแฅแแแแแแแก แแแแแแแก แแแแแกแแแ แแกแแ.
แแแ แแแแก แแแแแ
Linux kernel แแ แแก แแแแ แแ แแแ แแแ, แ แแแแแแช แแแแ แ แแแแก แแแแแแแก. แซแแแ แแแแ แแขแฃแ แแแ แแกแแแ แแแแแแแแฃแ แ แแแแคแแแฃแ แแชแแแก แแแ แแแแแจแแช แแ, แแแก แแจแแแแแแก แจแแแซแแแแ แกแแแแแแ แแแแ แแ แ แแแกแญแแ แแแก. แแกแ แ แแ, แจแแฅแแแแแ แแแ แแแ แจแแแแแแ แแ แซแแแแแแ:
make ARCH=um -j$(nproc)
แฒ แแกแแแแก? แแก แแ แซแแแแแ แแฃแแแแแ แฉแแแแก แจแแแฅแแแแแก แแแแแแงแแแแก แงแแแแ แฎแแแแแกแแฌแแแแแ CPU แแแ แแแ แแ แซแแคแแแ แแจแแแแแแแแแก แแ แแชแแกแจแ. แแฃแแแ $(nproc)
Build-แแก แแแแแก แชแแแแก แแ แซแแแแแแก แแแแแแแแแแก nproc
, แ แแแแแแช แแ แแก แแแฌแแแ coreutils
Ubuntu-แก แกแขแแแแแ แขแฃแ แแแแกแขแ แฃแฅแชแแแจแ.
แแแ แแแแฃแแ แแแ แแแแแก แจแแแแแ, แฉแแแแ แแแ แแแ แจแแแแแแแแ แแฅแแแแ แจแแกแ แฃแแแแแ แคแแแแจแ ./linux
.
แแแแแ แแก แแแกแขแแแแชแแ
แแแแแแแแ แแแแฎแแแ แแแแแก แ แแแแแ Linux-แจแ แฅแแแแก แ แแแฃแแแ แฃแ แแแแแ แก, แจแแแแซแแแแ แแแแแแกแขแแแแ แแ แแก, แ แแแแ แช แแแแแกแแแแ แ แกแฎแแ แแ แแแ แแแ. แแ, แ แแแแ แแแแแแแแ แแก:
mkdir -p ~/bin
cp linux ~/bin/linux
แแกแแแ แฆแแ แก แแแแจแ แแแ แฌแแฃแแแแ ~/bin
แแ แแก แจแแแจแ $PATH
:
export PATH=$PATH:$HOME/bin
แกแขแฃแแ แแก แคแแแแฃแ แ แกแแกแขแแแแก แแแงแแแแแ
แจแแฅแแแแแ แแแ แแฅแขแแ แแ แกแขแฃแแ แแก แคแแแแฃแ แ แกแแกแขแแแแกแแแแก:
mkdir -p $HOME/prefix/uml-demo
cd $HOME/prefix
แแแฎแกแแแแ alpinelinux.org แแ แจแแแแ MINI ROOT FILESYSTEM
. แฌแแ แแก แแ แแก แแก แแงแ:
http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/x86_64/alpine-minirootfs-3.10.0-x86_64.tar.gz
แฉแแแแขแแแ แแแ แแก tarball wget-แแก แแแแแงแแแแแแ:
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
แแฆแฌแแ แแแ แแแฅแแแแแแแแ แจแแฅแแแแก แแชแแ แ แคแแแแฃแ แ แกแแกแขแแแแก แจแแแแแแก. แกแแกแขแแแแก แแฃแแแแแแแ แแแแแแแแแแ แ, แซแแแแแ แ แแฃแแ แแฅแแแแ แแแแแขแแแแก แแแงแแแแแ Alpine apk แแแแแฏแแ แแก แแแจแแแแแแ. แแแแ แแ แแก FS แกแแแแแ แแกแ แแฅแแแแ แแแแแแ แแแแแก แจแแกแแคแแกแแแแแ.
แฉแแแ แแกแแแ แแแญแแ แแแแ แแแกแขแ แฃแแแแขแ
wget -O tini https://github.com/krallin/tini/releases/download/v0.18.0/tini-static
chmod +x tini
แแแ แแแแก แแ แซแแแแแแก แฎแแแแก แจแแฅแแแ
Linux-แแก แแแ แแแก, แแกแแแ แ แแแแ แช แกแฎแแ แแ แแแ แแแแแก, แแฅแแก แแ แซแแแแแแก แฎแแแแก แแ แแฃแแแแขแแแ, แ แแแแแแ แฌแแแแแ แจแแกแแซแแแแแแแ แแแกแแฆแแแแก แแแแแแแแแ. --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
แแแแแ แแแชแแแฃแแ แกแขแ แแฅแแแแแ แฉแแแแก แแแ แแแก แแฃแแแแแ แจแแแแแแก:
- แแแแฃแจแแแ, แ แแ root แคแแแแฃแ แ แกแแกแขแแแ แแ แแก แคแกแแแแ แแแฌแงแแแแแแแ
/dev/root
. - แแ แฉแแแ
แแแกแแแแซแแแแ แ แแแแ แช root แคแแแแฃแ แ แกแแกแขแแแแก แแ แแแแแ แ. - แแแแแแกแขแแแแ แแ แกแขแฃแแ แแก แคแแแแฃแ แ แกแแกแขแแแ, แ แแแแแแช แฉแแแ แจแแแฅแแแแแ 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)
แฉแแแ แแแแแฆแแ แแก แแแ แแแแก แแแแแแ, แ แแแแแ Linux-แแก แแแ แแแ แคแแฅแ แแแก, แ แแ แแแแชแแแแแแแชแแแก แแ แแชแแกแ แงแแแแแแแแก แแแจแแแแฃแแแ. แแแแก แแแ แแจแ แกแแกแขแแแ แแแฆแแ แคแฃแแฅแชแแแแแ แแแก แแ แแจแแแแ. แแแแ แแ แ แแแแแ แแก แแ แแก แแแแฎแแแ แแแแแก แ แแแแแแก แแ แแชแแกแ, แจแแแแแแ แแแฆแแแฃแแ แแแแแแแแแแ แแแแแ แแแแแแแแแ SIGABRT
, แ แแช แแฌแแแแก แแแแแแแแแแก.
แกแขแฃแแ แแแแก แฅแกแแแแก แแแงแแแแแ
แแ แกแฌแแ แแ แแฅ แแฌแงแแแ แงแแแแแคแแ แ แแ แแกแฌแแ แแ. Linux-แแก แแแแฎแแแ แแแแแก แ แแแแแจแ แฅแกแแแ แแ แแก แแก, แกแแแแช แจแแแฆแฃแแฃแแ "แแแแฎแแแ แแแแแก แ แแแแแแก" แแแแแ แแแแชแแคแชแแ แแฌแงแแแก แแแจแแแก. แงแแแแแแแ แแแแก แจแแแแแ, แฉแแแฃแแแแ แแ, แกแแกแขแแแแก แแแแแแ, แฅแกแแแ แจแแแฆแฃแแฃแแแ แแ แแแแแแแแ แแแฃแแ แจแแกแ แฃแแแแแก แ แแแแแแแ แงแแแแ แฉแแแแแแแแกแแแแก แแแกแแแแแ แแแแแแแแแก แแแแ.
แฒจแแแแจแแแ. แแแแ .: แจแแแแซแแแแ แแแขแ แฌแแแแแแฎแแ UML-แจแ แฅแกแแแแแ แแฃแจแแแแแก แกแฎแแแแแกแฎแแ แแแ แแแแขแแแแก แจแแกแแฎแแ
แแแแแแฃแ แแแ แกแแแ แแจแ
แแฃแแชแ, แแ แกแแแแแก แฃแซแแแแแกแ แแ แแแแฅแแแก แแฎแแ แแแญแแ แแแ แแแกแขแ แฃแแแแขแ, แ แแแแแกแแช แ.แฌ
แแแแแ แแแแแแแฌแแ แแ Slirp Ubuntu-แก แกแแชแแแแแแแแ แแ แแชแแแแ แแแกแ แแแจแแแแ:
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)
แฆแแแ แแ. แแแแแ แแแแแแแกแขแแแแ แแ Slirp-แแก แแแแแ แแแ แแ แแแแฎแแ, แจแแแแแซแแแ แแฃ แแ แ แแแแแ แแแแแ แ แ แฎแแแแ แแฅ:
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.
แแฅ แฉแแแ แแฎแแแแแ, แ แแ แแแแ แแ แฎแแแแ แซแแ แแแแแ แแแ แงแฃแแแก แแแฌแงแแแแก แแ แแก, แ แแแแกแแช slirp แชแแแแแแก แจแแแแแฌแแแก แแแแแแ. แแ แแขแแแแ, แแ แแแแแฌแแ แฃแแ แ แแฅแแแก แแแแแ แแแแก แแชแแแแแแแแ. แแแแ แแ แแแแฎแแ, แแฃแจแแแแก แแฃ แแ แ แฏแแจแแแแกแแแ แแแแแฃแแ Slirp. แแ แฅแแแ แฎแแแแฎแแ แแแแแแแฌแแ แ แแแ แแแแแ แกแแแขแแแแ
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 แฌแแแแแ แแ แแแแแแขแแแแ GCC-แ แจแแฌแงแแแขแ แจแฃแแแแแฃแ แ แแแแแแแแ แแแฃแแ แคแแแแแแแก แฉแแจแแแแแฃแ แคแฃแแฅแชแแแแจแ แแแแแงแแแแแฃแแ แกแแแแแแแแแแก แฌแแ แแแแแ. แจแแแแชแแแแ แจแแชแแแแแ แกแแแแแแซแ แกแแขแงแแ inline
แชแแ แแแ แแแแแแขแแ แแ แแ แจแแฎแแแแ แจแแแแแก:
vi slirp.h
:6
a
<enter>
#define inline /**/
<escape>
:wq
make
แแ แ. แแก แแ แช แแฃแจแแแแก. แฏแแ แแแแแ แแแ แแแแฃแแแ แแ แคแฃแแฅแชแแแแแก แกแแแแแแแแแก.
แแ แแ แแก แแแแ แแแแแแแแ แแ Github-แแ แแแแแฌแงแ แงแฃแ แแแ 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
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
, แ แแแแแแช แแแแแแก แฅแกแแแฃแ แแแขแแ แคแแแกแก Slirp-แแแ แแแแฃแแแแแชแแแกแแแแก. แแฃแแแ route
แแแแแแก แแแ แแแแก แแแ แจแ แฃแขแแแแชแแแก แชแฎแ แแแก, แ แแแ แแแซแฃแแแก แแแแแ แขแ แแคแแแ แแแแแแแแแแก Slirp แแแแ แแแจแ. แแแแแ แจแแแแแแฌแแแ แแก DNS แจแแแแแฎแแแ:
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
แแฃแจแแแแก!
แจแแแแจแแแ .: แ แแแแ แช แฉแแแก, แแแแแแแแ แแแแ แแแกแขแ แแแแฌแแ แ แกแแแฃแจแแ แแแแแแแแ แกแแแแแแแแ แฅแกแแแแก แแแ แแแแ, แแ แกแฎแแ แแแแคแแแฃแ แแชแแแ, แ แแแแแแช แแ แกแแญแแ แแแแก แแแแแขแแแแ แแ แแแแแ แแแก. Intel-แแก WiFi 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
/ #
แ แแแแ แช แฉแแแก, แแแ แแแก แแ แจแแฃแซแแแ แแแฃแแแแจแแ แแแก แฅแกแแแแก แแแ แแแแก แแ แแแแแ แก. แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแ แแแจแ แจแแแแแแแก แแชแแแแแแแ, แกแแแฌแฃแฎแแ แแ, แแ แแแแแแกแฌแแ แ แกแแขแฃแแชแแ. แแแแแฅแแแงแแแแแก แแ แแก แแ แแแแคแแแฃแ แแชแแแจแ แแแแแกแแแแแก แแแแแ แจแแฃแซแแแแแแ แแงแ. แฃแคแ แ แแแ แขแแ แแแแคแแแฃแ แแชแแแแแ (แแแแแแแแแ, Virtualbox-แจแ), แแแขแแ แคแแแกแ แกแฌแแ แแ แแแ แแแแ.
แแแแแ แแแขแแแแขแแแแ แแแ แแแแฎแแแแแ แแแแแแแกแแแแ แแแแ แจแแแแแแ shell แกแแ แแแขแแ:
#!/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
แฅแกแแแ แกแขแแแแแฃแ แแ!
แแแแแ แแก แคแแแแ
แแ แงแแแแแคแ แแก แจแแแแฌแแแแ แ แแ แแแแแแแแแแแ, แจแแแแ แแแ
แแแแแ แแแฅแแก, แ แแ แแก แแแกแขแ แแแแแฎแแแ แแแแ แแแแแแ, แแฃ แ แแแแ แฃแแแ แแแแแ แแแ แกแขแฃแแ แแก แแแ แแแ. แแฆแแแฉแแแ, แ แแ แแก แแงแ แแ แแแแแ แ แแแแกแขแ แ, แแแแ แแ แแฃแแแแแแชแแ แฉแแคแแฅแ แแแฃแแ แแงแ, แ แแแแ แช แงแแแแแกแแแแชแแแแ แกแแฎแแแแซแฆแแแแแแ Linux-แจแ แแแแฎแแแ แแแแแก แ แแแแแแก แแจแแแแแแก, แแแกแขแแแแชแแแกแ แแ แแแแคแแแฃแ แแชแแแก แจแแกแแฎแแ แแ แแฏแแฎแแก แแแแ แแชแแฃแแ แกแแกแขแแแแแแก แแแแแแแแ แแแ แแแ แกแแแแแ. แจแแแแแแ แแแแแฏแแแ แฃแแแ แแแแชแแแแแก แกแแ แแแกแแแแก แแ แกแฎแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแกแขแแแแชแแแก แฃแแแ แกแขแฃแแ แแแแก แกแแกแขแแแแจแ. แแแแแแแแ Docker-แแก แแแแขแแแแแ แแก แแแแแกแแฎแฃแแแแแแ แแฎแแแแ แกแแฏแแ แ แขแแ แแแแแแแ, แแฅแแแ แฃแแแ แจแแซแแแ แแแแแกแแฎแฃแแแแแก แแแแฆแแแ docker export
แแ แจแแแแแ แแแแกแแแฆแแ แแ แแแกแ แแแกแขแแแแชแแแก แแแ แกแขแฃแแ แแก แแแ แแแแก แคแแแแฃแ แ แกแแกแขแแแแก แซแแ แจแ. แแแ แแแ, แแแจแแ แจแแแกแ แฃแแแ shell แกแแ แแแขแ.
แแแแกแแแฃแแ แแแฃแแ แแแแแแแ Rkeene-แก #lobsters-แแกแแแ Freenode-แแ. แแแกแ แแแฎแแแ แแแแก แแแ แแจแ แกแแแ แแแก แแแแแ แแแแกแแก, แแ แแฅแแแแ แแแ แแแแแแแแ. แฌแแ แแแแแแแ แแ แแแฅแแก, แ แแแแ แแฃแจแแแแก แแแกแ Slackware แกแแกแขแแแ slirp-แแแ แกแฌแแ แแ, แแแแ แแ แฉแแแแ Ubuntu แแ Alpine แกแแกแขแแแแแแ แแ แแแแฆแแก slirp แแ แแ แแแแแ Rkeene แจแแแแแแแแแแ. แแแแ แแ แฉแแแแแแก แแกแแช แกแแแแแ แแกแแ, แ แแ แ แแฆแแช แแแแแช แแแแแแแแก.
แฌแงแแ แ: www.habr.com