เดฒเดฟเดจเด•เตเดธเดฟเตฝ เดฏเต‚เดธเตผ เดฎเต‹เดกเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเตเดŸเด™เตเด™เดพเด‚

เดตเดฟเดตเตผเดคเตเดคเด•เดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด†เดฎเตเด–เด‚: เดตเดฟเดตเดฟเดงเดคเดฐเด‚ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เตพ เดจเดฎเตเดฎเตเดŸเต† เดœเต€เดตเดฟเดคเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดตเตปเดคเต‹เดคเดฟเตฝ เด•เดŸเดจเตเดจเตเด•เดฏเดฑเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดชเดถเตเดšเดพเดคเตเดคเดฒเดคเตเดคเดฟเตฝ, เด‡เดคเต เด’เดฐเดฟเด•เตเด•เตฝ เด†เดฐเด‚เดญเดฟเดšเตเดš เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเด•เตพ เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฐเดธเด•เดฐเดตเตเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดตเตเดฎเดพเดฃเต. เด…เดตเดฏเดฟเตฝ เดšเดฟเดฒเดคเต เด‡เดจเตเดจเตเดตเดฐเต† เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพเดตเดฐเตเด‚ เด…เดคเตเดคเดฐเด‚ เดฐเต€เดคเดฟเด•เตพ เด“เตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดตเดฐเตเดŸเต† เดฆเตเดฐเตเดคเด—เดคเดฟเดฏเดฟเดฒเตเดณเตเดณ เดตเดฟเด•เดธเดจ เดธเดฎเดฏเดคเตเดคเต เด…เดตเตผ เดชเดฟเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดตเตผเด•เตเด•เต เด…เดฑเดฟเดฏเดพเด‚). เด…เดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเดฏเดพเดฃเต เดฏเต‚เดธเตผ เดฎเต‹เดกเต เดฒเดฟเดจเด•เตเดธเต. เด’เดฑเดฟเดœเดฟเดจเดฒเดฟเดจเตเดฑเต† เดฐเดšเดฏเดฟเดคเดพเดตเต, เดชเดดเดฏ เดธเด‚เดญเดตเดตเดฟเด•เดพเดธเด™เตเด™เดณเดฟเตฝ เดเดคเดพเดฃเต เด‡เดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเตเด‚ เดเดคเดพเดฃเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดคเตเดคเดคเต†เดจเตเดจเตเด‚ เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดฟ, 2k19-เตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเด™เตเด™เดจเต† เด’เดฐเต เดนเต‹เด‚เดฌเตเดฐเต‚ เดฏเตเดŽเด‚เดŽเตฝ เดจเต‡เดŸเดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด’เดฐเตเดฎเดฟเดšเตเดšเต. เด…เดคเต†, เดžเด™เตเด™เตพ เดฏเดฅเดพเตผเดคเตเดฅ เดชเต‹เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดฐเดšเดฏเดฟเดคเดพเดตเดฟเดจเต† เดนเดฌเดฑเดฟเดฒเต‡เด•เตเด•เต เด•เตเดทเดฃเดฟเดšเตเดšเต เด•เดพเดกเต†, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต‹เดฆเตเดฏเด™เตเด™เดณเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ - เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เด‡เด‚เด—เตเดฒเต€เดทเดฟเตฝ เดšเต‹เดฆเดฟเด•เตเด•เตเด•.

เดฒเดฟเดจเด•เตเดธเดฟเตฝ เดฏเต‚เดธเตผ เดฎเต‹เดกเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเตเดŸเด™เตเด™เดพเด‚

เดฒเดฟเดจเด•เตเดธเดฟเดฒเต† เดฏเต‚เดธเตผ เดฎเต‹เดกเต, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดฒเดฟเดจเด•เตเดธเต เด•เต‡เตผเดฃเดฒเดฟเดจเตเดฑเต† เด’เดฐเต เดชเต‹เตผเดŸเตเดŸเต เด†เดฃเต. เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดพเดฏเดฟ เด’เดฐเต เดชเต‚เตผเดฃเตเดฃ เดฒเดฟเดจเด•เตเดธเต เด•เต‡เตผเดฃเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดˆ เดฎเต‹เดกเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต เด•เต‚เดŸเดพเดคเต† เดกเตเดฐเตˆเดตเดฑเตเด•เตพ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดˆ เดฎเต‹เดกเต เด’เดฐเต เดชเตŠเดคเต เด’เดฑเตเดฑเดชเตเดชเต†เดŸเตฝ เด‰เดชเด•เดฐเดฃเดฎเดพเดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต, เด‡เดคเดฟเดจเตเดฑเต† เดคเดคเตเดตเด‚ เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเตเด•เดณเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต. เดˆ เดฎเต‹เดกเต เดกเต‹เด•เตเด•เดฑเดฟเดจเต‡เด•เตเด•เดพเตพ เด•เต‚เดŸเตเดคเตฝ เดเดธเตŠเดฒเต‡เดทเตป เดจเตฝเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด•เต†เดตเดฟเดŽเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเต†เตผเดšเตเดตเตฝ เดฌเต‹เด•เตโ€Œเดธเต เดชเต‹เดฒเตเดณเตเดณ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดตเดฟเตผเดšเตเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเต‡เด•เตเด•เดพเตพ เด•เตเดฑเดตเดพเดฃเต.

เดชเตŠเดคเตเดตเต‡, เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดตเดฟเดšเดฟเดคเตเดฐเดตเตเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณเดคเตเดฎเดพเดฏ เด‰เดชเด•เดฐเดฃเดฎเดพเดฏเดฟ เดคเต‹เดจเตเดจเดฟเดฏเต‡เด•เตเด•เดพเด‚, เดชเด•เตเดทเต‡ เด…เดคเดฟเดจเต เด‡เดชเตเดชเต‹เดดเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เด‰เดชเดฏเต‹เด—เด™เตเด™เดณเตเดฃเตเดŸเต. เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เด‡เดคเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด•เดพเดตเด•เดพเดถเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดฒเดฟเดจเด•เตเดธเต เด•เต‡เตผเดฃเดฒเดพเดฃเต. เดนเต‹เดธเตเดฑเตเดฑเต เดฎเต†เดทเต€เดจเต เดฏเดพเดคเตŠเดฐเต เดญเต€เดทเดฃเดฟเดฏเตเดฎเดฟเดฒเตเดฒเดพเดคเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดˆ เดธเดตเดฟเดถเต‡เดทเดค เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดฒเตเดฒเดพเดคเตเดค เด•เต‹เดกเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเตŠเดฐเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เด•เต‡เตผเดฃเตฝ เด†เดฏเดคเดฟเดจเดพเตฝ, เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ เดนเต‹เดธเตเดฑเตเดฑเต เดฎเต†เดทเต€เดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดฎเต‹เดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ เดนเต‹เดธเตเดฑเตเดฑเดฟเดจเต เดฆเตƒเดถเตเดฏเดฎเดพเด•เดฟเดฒเตเดฒ. เด‡เดคเต เดธเดพเดงเดพเดฐเดฃ เดกเต‹เด•เตเด•เตผ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ เดชเต‹เดฒเต†เดฏเดฒเตเดฒ, เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดนเต‹เดธเตเดฑเตเดฑเต เดฎเต†เดทเต€เตป เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดถเต‡เด–เดฐเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเดฒเต† เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ เด•เดพเดฃเตเดจเตเดจเต. เดŽเดจเตเดฑเต† เดธเต†เตผเดตเดฑเตเด•เดณเดฟเตฝ เด’เดจเตเดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดˆ pstree เดญเดพเด—เด‚ เดจเต‹เด•เตเด•เต‚:

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}]

เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดฎเต‹เดกเดฟเดฒเต† เดฒเดฟเดจเด•เตเดธเต เด•เต‡เตผเดฃเดฒเดฟเดจเตเดฑเต† pstree เดฏเตเดฎเดพเดฏเดฟ เด‡เดคเต เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเด•:

linuxโ”€โ”ฌโ”€5*[linux]
      โ””โ”€slirp

เดกเต‹เด•เตเด•เตผ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดคเดฟเดฅเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเตเดŸเต† เดชเต‡เดฐเตเด•เตพ เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚. เดฒเดฟเดจเด•เตเดธเต เดฏเต‚เดธเตผ เดฎเต‹เดกเดฟเตฝ, เด‡เดคเต เดธเดพเดงเตเดฏเดฎเดฒเตเดฒ. เดŽเดจเตเดคเดพเดฃเต เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚? เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เดฒเดฟเดจเด•เตเดธเดฟเดจเตเดฑเต† เด“เดกเดฟเดฑเตเดฑเดฟเด‚เด—เต เดธเดฌเตเดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต‚เดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเดฟเด‚เด—เต เดŸเต‚เดณเตเด•เตพ เดŽเดจเตเดจเดพเดฃเต เด•เดพเดฃเตเดจเตเดจเดฟเดฒเตเดฒ เด—เดธเตเดฑเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ. เดŽเดจเตเดจเดพเตฝ เดšเดฟเดฒ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเดฟเตฝ, เดˆ เดธเดตเดฟเดถเต‡เดทเดค เด‡เดฐเตเดคเดฒ เดฎเต‚เตผเดšเตเดšเดฏเตเดณเตเดณ เดตเดพเดณเดพเดฏเดฟ เดฎเดพเดฑเดฟเดฏเต‡เด•เตเด•เดพเด‚.

เดชเตŠเดคเตเดตเต‡, เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดฎเตเดดเตเดตเตป เดชเต‹เดธเตเดฑเตเดฑเตเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดซเดฒเด‚ เดจเต‡เดŸเดพเดจเตเดณเตเดณ เด—เดตเต‡เดทเดฃเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดชเดฐเตเด•เตเด•เตป เดถเตเดฐเดฎเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด’เดฐเต เดถเต‡เด–เดฐเดฎเดพเดฃเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดŽเดจเดฟเด•เตเด•เต เดตเดฟเดตเดฟเดง เดชเตเดฐเดพเดคเดจ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต, เด•เต‡เตผเดฃเตฝ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดตเดพเดฏเดฟเด•เตเด•เดฃเด‚, เดžเดพเตป เดชเตเดฐเดพเดฅเดฎเดฟเด• เดตเดฟเดฆเตเดฏเดพเดฒเดฏเดคเตเดคเดฟเตฝ เดชเด เดฟเด•เตเด•เตเดจเตเดจ เด•เดพเดฒเดคเตเดคเต เดŽเดดเตเดคเดฟเดฏ เด•เต‹เดกเดฟเดจเตเดฑเต† เดคเต€เดตเตเดฐเดฎเดพเดฏ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดจเดŸเดคเตเดคเดฃเด‚, เด•เต‚เดŸเดพเดคเต† เดŽเดจเดฟเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดฌเตˆเดจเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดนเต†เดฑเต‹เด•เต เดฌเดฟเตฝเดกเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเดฟเด™เตเด•เตผ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดฟเดตเดจเตเดจเต. . เดˆ เดœเต‹เดฒเดฟเด•เดณเต†เดฒเตเดฒเดพเด‚ เดŽเดจเตเดฑเต† เดเด†เตผเดธเดฟเดฏเดฟเดฒเต† เด†เตบเด•เตเดŸเตเดŸเดฟเด•เดณเต† เดŽเดจเตเดจเต† เดฎเดพเดœเดฟเด•เต เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดพเตป เดชเตเดฐเต‡เดฐเดฟเดชเตเดชเดฟเดšเตเดšเต. เดชเตเดคเดฟเดฏ เด•เต‡เตผเดฃเดฒเตเด•เดณเดฟเดฒเตเด‚ OS เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเดฒเตเด‚ เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เด’เดฐเต‡ เด•เดพเดฐเตเดฏเด‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดพเดฏเดฟ เดˆ เดชเต‹เดธเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เด•เดฎเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเต

เดฒเดฟเดจเด•เตเดธเต เดฏเต‚เดธเตผ เดฎเต‹เดกเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเดฐเดตเดงเดฟ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต:

  • เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต;
  • Linux เด•เต‡เตผเดฃเตฝ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต;
  • เด•เต‡เตผเดฃเตฝ เดฌเดฟเตฝเดกเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป;
  • เด•เต‡เตผเดฃเตฝ เด…เดธเด‚เดฌเตเดฒเดฟ;
  • เดฌเตˆเดจเดฑเดฟ เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป;
  • เด—เดธเตเดฑเตเดฑเต เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต;
  • เด•เต‡เตผเดฃเตฝ เดฒเต‹เดžเตเดšเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต;
  • เด’เดฐเต เด…เดคเดฟเดฅเดฟ เดถเตƒเด‚เด–เดฒ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด•;
  • เด—เดธเตเดฑเตเดฑเต เด•เต‡เตผเดฃเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต.

เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดธเตเดตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดšเดฟเดฒ เด‰เดฌเตเดฃเตเดŸเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดกเต†เดฌเดฟเดฏเตป เดชเต‹เดฒเตเดณเตเดณ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดฒเตเดฒเดพเด‚ เดจเดฟเด™เตเด™เตพ เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดšเต†เดฏเตเดฏเตเดฎเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเต. เดฎเต‡เตฝเดชเตเดชเดฑเดžเตเดžเดตเดฏเต†เดฒเตเดฒเดพเด‚ เดŽเดจเตเดฑเต† เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸ เดตเดฟเดคเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดžเดพเตป เดถเตเดฐเดฎเดฟเดšเตเดšเต - เด†เตฝเดชเตˆเตป, เดชเด•เตเดทเต‡ เด’เดจเตเดจเตเด‚ เดตเดจเตเดจเดฟเดฒเตเดฒ, เดฏเต‚เดธเตผ เดฎเต‹เดกเดฟเดฒเต† เดกเตเดฐเตˆเดตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดฒเดฟเดจเด•เตเดธเต เด•เต‡เตผเดฃเดฒเดฟเดจเต เดนเดพเตผเดกเต-เดฌเตˆเตปเดกเดฟเด‚เด—เต glibc-isms เด‰เดฃเตเดŸเต เดŽเดจเตเดจ เดตเดธเตเดคเตเดค เด•เดพเดฐเดฃเด‚. เด…เดตเดธเดพเดจเด‚ เดชเตเดฐเดถเตเดจเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚ เด‡เดคเต เด…เดชเตโ€ŒเดธเตเดŸเตเดฐเต€เดฎเดฟเดฒเต‡เด•เตเด•เต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดจเตเดจเต.

เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดฒเดฟเดจเด•เตเดธเต เด•เต‡เตผเดฃเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‰เดฌเตเดฃเตเดŸเตเดตเดฟเดจเต เดคเดพเดดเต†เดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดพเด•เตเด•เต‡เดœเตเด•เดณเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต (เด’เดฐเต เด•เตเดฒเต€เตป เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเด•):

- '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 GB เดนเดพเตผเดกเต เดกเดฟเดธเตเด•เต เดธเตเดฅเดฒเด‚ เด…เดจเตเดตเดฆเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เดคเต เด‰เดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด•.

เดชเต‹เดฏเดคเดฟเดจเต เดถเต‡เดทเด‚ kernel.org เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เด•เต‡เตผเดฃเตฝ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ URL เดจเต‡เดŸเตเด•. เดŽเดดเตเดคเตเดฎเตเดชเต‹เตพ เด‡เดคเต: 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]', เดจเดฟเด™เตเด™เตพเด•เตเด•เต Space เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 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]'.

เดˆ เดชเต‹เดธเตเดฑเตเดฑเต เดตเดพเดฏเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚ เดจเดฟเด™เตเด™เตพ เด•เต‡เตผเดฃเตฝ เดฌเดฟเตฝเดกเต เด“เดชเตเดทเดจเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เดณเดฟเด•เตเด•เดพเตป เดžเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดˆ เดชเดฐเต€เด•เตเดทเดฃเด™เตเด™เดณเดฟเดฒเต‚เดŸเต†, เดฒเต‹-เดฒเต†เดตเตฝ เด•เต‡เตผเดฃเตฝ เดฎเต†เด•เตเด•เดพเดจเดฟเด•เตเดธเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดตเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เด…เดธเด‚เดฌเตเดฒเดฟเดฏเดฟเตฝ เดตเดฟเดตเดฟเดง เดซเตเดฒเดพเด—เตเด•เดณเตเดŸเต† เดธเตเดตเดพเดงเต€เดจเดตเตเด‚ เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดงเดพเดฐเดพเดณเด‚ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดชเด เดฟเด•เตเด•เดพเดจเดพเด•เตเด‚.

เด•เต‡เตผเดฃเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเต

เดฒเดฟเดจเด•เตเดธเต เด•เต‡เตผเดฃเตฝ เด’เดฐเตเดชเดพเดŸเต เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดตเดฒเดฟเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดพเดฃเต. เดชเดดเดฏ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเตฝ เด‡เดคเตเดฐเดฏเตเด‚ เด•เตเดฑเดžเตเดž เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚, เด‡เดคเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเด‚. เด…เดคเดฟเดจเดพเตฝ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เต‡เตผเดฃเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•:

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

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

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 เดฎเดพเดจเต‡เดœเตผ เดตเดดเดฟ เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดŽเดจเตเดจเดพเตฝ เดชเตŠเดคเตเดตเดพเดฏ เด†เดถเดฏเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดพเตป เดˆ เดŽเดซเตเดŽเดธเต เดฎเดคเดฟเดฏเดพเด•เตเด‚.

เดจเดฎเตเด•เตเด•เตเด‚ เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต เดŸเดฟเดจเดฟ เดฎเต†เดฎเตเดฎเดฑเดฟ เด‰เดชเดญเต‹เด—เด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเตป เดธเต‹เด‚เดฌเดฟ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ เดžเด™เตเด™เดณเตเดŸเต† เด…เดคเดฟเดฅเดฟ เด•เต‡เตผเดฃเตฝ.

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.
  • เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด• hostfs เด’เดฐเต เดฑเต‚เดŸเตเดŸเต เดซเดฏเตฝเดธเดฟเดธเตเดฑเตเดฑเด‚ เดกเตเดฐเตˆเดตเดฑเดพเดฏเดฟ.
  • เดฑเต‚เดŸเตเดŸเต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เด—เดธเตเดฑเตเดฑเต เดซเดฏเตฝเดธเดฟเดธเตเดฑเตเดฑเด‚ เดฎเตŒเดฃเตเดŸเต เดšเต†เดฏเตเดฏเตเด•.
  • เด…เดคเต†, เดฑเต€เดกเต-เดฑเตˆเดฑเตเดฑเต เดฎเต‹เดกเดฟเตฝ.
  • 64 MB เดฑเดพเด‚ เดฎเดพเดคเตเดฐเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• (เดจเดฟเด™เตเด™เตพ เดšเต†เดฏเตเดฏเดพเตป เด‰เดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดณเดฐเต† เด•เตเดฑเดšเตเดšเต เดฎเดพเดคเตเดฐเดฎเต‡ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเดพเด•เต‚, เดŽเดจเตเดจเดพเตฝ 64 MB เด’เดชเตเดฑเตเดฑเดฟเดฎเตฝ เดคเตเด•เดฏเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต).
  • เด•เต‡เตผเดฃเตฝ เดธเตเดตเดฏเดฎเต‡เดต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต /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, เด‡เดคเต เด’เดฐเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ เด•เดฒเดพเดถเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดคเดฟเดฅเดฟ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดœเตเดœเต€เด•เดฐเดฃเด‚

เด‡เดตเดฟเดŸเต†เดฏเดพเดฃเต เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดคเต†เดฑเตเดฑเดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเดคเต. เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏ "เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดฎเต‹เดกเต" เดŽเดจเตเดจ เด†เดถเดฏเด‚ เดชเตŠเดณเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเดฟเดŸเดคเตเดคเดพเดฃเต เดฏเต‚เดธเตผ เดฎเต‹เดกเต เดฒเดฟเดจเด•เตเดธเดฟเดฒเต† เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเด‚เด—เต. เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดคเดฒเดคเตเดคเดฟเตฝ, เดจเต†เดฑเตเดฑเตเดตเตผเด•เตเด•เต เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฃเต เดตเดฟเดถเต‡เดทเดพเดงเดฟเด•เดพเดฐเดฎเตเดณเตเดณ เดจเดฎเตเด•เตเด•เต†เดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเดตเตเดจเตเดจ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เดฎเต‹เดกเตเด•เตพ.

เด•เตเดฑเดฟเดชเตเดชเต. per .: UML-เตฝ เด’เดฐเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดธเตเดค เด“เดชเตเดทเดจเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเด‚ เด‡เดตเดฟเดŸเต†.

เดธเตเดฒเดฟเตผเดชเตเดชเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฏเดพเดคเตเดฐ

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเตเดฐเดพเดคเดจเดตเตเด‚ เดเดคเดพเดฃเตเดŸเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เดพเดคเตเดคเดคเตเดฎเดพเดฏ เด’เดฐเต เดŸเต‚เตพ เด‰เดฃเตเดŸเต เดธเตเดฒเดฟเตผเดชเตเดชเต, เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดฎเต‹เดกเต เดฒเดฟเดจเด•เตเดธเดฟเดจเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดคเต เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดคเดฒ TCP/IP เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดชเต‹เดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดธเดฟเดธเตเดฑเตเดฑเด‚ เด…เดจเตเดฎเดคเดฟเด•เดณเตŠเดจเตเดจเตเด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. เดˆ เด‰เดชเด•เดฐเดฃเด‚ เด†เดฏเดฟเดฐเตเดจเตเดจเต 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)

เดฆเตˆเดตเดฎเต‡. เดจเดฎเตเด•เตเด•เต 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 เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดคเต เดคเดฐเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚. เดžเดพเตป เดธเตˆเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด†เตผเด•เตเด•เตˆเดตเต เดตเต€เดฃเตเดŸเตเด‚ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเต เด‰เดฑเดตเดฟเดŸเด‚, เด•เดพเดฐเดฃเด‚ เด…เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเดฒเต‚เดŸเต† เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดตเดฒเดฟเดšเตเดšเดฟเดŸเตเดจเตเดจเดคเต เด’เดฐเต เดตเต‡เดฆเดจเดฏเดพเดฃเต:

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

เด‡เดฒเตเดฒ. เด‡เดคเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดˆ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด‡เดชเตเดชเต‹เดดเตเด‚ เดšเดฟเดนเตเดจเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเดฏเดฟเดฒเตเดฒ.

เดˆ เดธเดฎเดฏเดคเตเดคเต, เดžเดพเตป เด‰เดชเต‡เด•เตเดทเดฟเดšเตเดšเต เด—เดฟเดคเตเดคเดฌเดฟเดจเต† เดจเต‹เด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ Heroku เดฌเดฟเตฝเดกเต เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ. เดšเดฟเดฒ Heroku เดฌเดฟเตฝเดกเต เดชเดพเด•เตเด•เต‡เดœเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดฌเตˆเดจเดฑเดฟเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเดพเดฏเดฟเดฐเตเดจเตเดจเต เดŽเดจเตเดฑเต† เดธเดฟเดฆเตเดงเดพเดจเตเดคเด‚. เด…เดตเดธเดพเดจเด‚, เดคเดฟเดฐเดšเตเดšเดฟเตฝ เดŽเดจเตเดจเต† เดจเดฏเดฟเดšเตเดšเต เด‡เดตเดฟเดŸเต†. เดžเดพเตป เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเต เดชเดพเด•เตเด•เต เดšเต†เดฏเตเดคเต 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, Slirp-เดฎเดพเดฏเดฟ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดจเดŸเดคเตเดคเดพเตป เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเต. เดŸเต€เด‚ route เดŽเดฒเตเดฒเดพ เดŸเตเดฐเดพเดซเดฟเด•เตเด•เตเด‚ เดธเตเดฒเดฟเตผเดชเต เดŸเดฃเดฒเดฟเดฒเต‚เดŸเต† เด…เดฏเด•เตเด•เดพเตป เด•เต†เตผเดฃเตฝ เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เดŸเต‡เดฌเดฟเตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต 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

เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต!

เด“เดฐเต‹ เด•เตเดฑเดฟเดชเตเดชเดฟเดจเตเด‚.: เดชเตเดฐเดคเตเดฏเด•เตเดทเดคเตเดคเดฟเตฝ, เดตเดฏเตผเดกเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด•เดพเตผเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเต†เดธเตโ€Œเด•เตโ€ŒเดŸเต‹เดชเตเดชเดฟเตฝ เด’เดฑเดฟเดœเดฟเดจเตฝ เดชเต‹เดธเตเดฑเตเดฑเต เดŽเดดเตเดคเดฟเดฏเดคเดพเดฃเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดงเดฟเด• เดกเตเดฐเตˆเดตเดฑเตเด•เตพ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดฎเดฑเตเดฑเต‡เดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป. เด‡เดจเตเดฑเดฒเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ 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
/ #

เดชเตเดฐเดคเตเดฏเด•เตเดทเดคเตเดคเดฟเตฝ, เด•เต†เตผเดฃเดฒเดฟเดจเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด•เดพเตผเดกเต เดกเตเดฐเตˆเดตเดฑเตเดฎเดพเดฏเดฟ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดจเดŸเดคเตเดคเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เดซเต‡เด‚เดตเต†เดฏเตผ เด•เต‡เตผเดฃเดฒเดฟเดฒเต‡เด•เตเด•เต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เดถเตเดฐเดฎเด‚, เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เดธเดพเดนเดšเดฐเตเดฏเด‚ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเดฟเดฒเตเดฒ. เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เดธเดฎเดฏเดคเตเดคเต, เดˆ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ. เดฒเดณเดฟเดคเดฎเดพเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเตเด•เดณเดฟเตฝ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเต†เตผเดšเตเดตเตฝเดฌเต‹เด•เตเดธเดฟเตฝ), เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เด‰เดฏเดฐเตเดจเตเดจเต.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดทเต†เตฝ เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเต เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเด‚:

#!/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

เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเตเดฅเดฟเดฐเดฎเดพเดฃเต!

เดกเต‹เด•เตเด•เตผ เดซเดฏเตฝ

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เดพเตป, เดžเดพเตป เดถเต‡เด–เดฐเดฟเดšเตเดšเต Dockerfile, เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฎเดฟเด•เตเด• เด˜เดŸเตเดŸเด™เตเด™เดณเตเด‚ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดตเตผเด•เตเด•เดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดจเตฝเด•เตเดจเตเดจเดคเตเดฎเดพเดฃเต. เดŽเดจเดฟเด•เตเด•เตเด‚ เด‰เดฃเตเดŸเต เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดš เด•เต‡เตผเดฃเตฝ, เด…เดคเดฟเตฝ เดชเต‹เดธเตเดฑเตเดฑเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดฒเตเดฒเดพเด‚ เด‰เดฃเตเดŸเต. เดŽเดจเตเดจเดพเตฝ เด‡เดตเดฟเดŸเต† เดžเดพเตป เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดž เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดจเตฝเด•เดฟเดฏเดฟเดŸเตเดŸเตเดณเตเดณเดคเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต.

เด’เดฐเต เด—เดธเตเดฑเตเดฑเต เด•เต‡เตผเดฃเตฝ เดŽเด™เตเด™เดจเต† เด‰เดฏเตผเดคเตเดคเดพเดฎเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดˆ เดชเต‹เดธเตเดฑเตเดฑเต เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เด’เดฐเตเดคเดฐเด‚ เดฐเดพเด•เตเดทเดธเดจเดพเดฏเดฟ เดฎเดพเดฑเดฟ, เดŽเดจเตเดจเดพเตฝ เดˆ เด•เตเดŸเตเด‚เดฌเดคเตเดคเดฟเดจเตเดฑเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเตเดŸเต† เด†เดงเตเดจเดฟเด• เดชเดคเดฟเดชเตเดชเตเด•เตพเด•เตเด•เต เด•เต€เดดเดฟเตฝ เดฒเดฟเดจเด•เตเดธเดฟเตฝ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดฎเต‹เดกเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เด’เดฐเต เดธเดฎเด—เตเดฐ เด—เตˆเดกเดพเดฏเดฟเดŸเตเดŸเดพเดฃเต เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฃเด‚ เดตเดฟเดญเดพเดตเดจเด‚ เดšเต†เดฏเตเดคเดคเต. เด—เดธเตเดฑเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดธเต‡เดตเดจเด™เตเด™เดณเตเด‚ เดฎเดฑเตเดฑเต เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเดฑเตเด•เดณเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฃเด‚. เดกเต‹เด•เตเด•เตผ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดชเดฐเดธเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏ เดŸเดพเตผเดฌเต‹เดณเตเด•เตพ เดฎเดพเดคเตเดฐเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเดฟเดคเตเดฐเด‚ เดŽเด•เตโ€Œเดธเตโ€ŒเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเดจเดพเด•เตเด‚ docker export, เดคเตเดŸเตผเดจเตเดจเต เด—เดธเตเดฑเตเดฑเต เด•เต‡เตผเดฃเดฒเดฟเดจเตเดฑเต† เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดฑเต‚เดŸเตเดŸเดฟเตฝ เด…เดคเดฟเดจเตเดฑเต† เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดชเดพเดคเตเดคเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเด•. เดถเดฐเดฟ, เดคเตเดŸเตผเดจเตเดจเต เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด•.

Freenode-เดฒเต† #lobsters-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ Rkeene-เดจเต เดชเตเดฐเดคเตเดฏเต‡เด• เดจเดจเตเดฆเดฟ. เดธเตเดฒเดฟเตผเดชเตเดชเดฟเดจเต† เดกเต€เดฌเด—เตเด—เต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด…เดฆเตเดฆเต‡เดนเดคเตเดคเดฟเดจเตเดฑเต† เดธเดนเดพเดฏเดฎเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต†เด™เตเด•เดฟเตฝ, เดžเดพเตป เด‡เดคเตเดฐเดฏเตเด‚ เดฆเต‚เดฐเด‚ เดŽเดคเตเดคเตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ. เด…เดตเดจเตเดฑเต† เดธเตเดฒเดพเด•เตเด•เตเดตเต†เดฏเตผ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดธเตเดฒเดฟเตผเดชเตเดชเดฟเดจเตŠเดชเตเดชเด‚ เดŽเด™เตเด™เดจเต† เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เดฑเดฟเดฏเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดŽเดจเตเดฑเต† เด‰เดฌเตเดฃเตเดŸเต, เด†เตฝเดชเตˆเตป เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ เดธเตเดฒเดฟเตผเดชเตเดชเต เดธเตเดตเต€เด•เดฐเดฟเดšเตเดšเดฟเดฒเตเดฒ, เด•เต‚เดŸเดพเดคเต† เดฌเตˆเดจเดฑเดฟ เด†เตผเด•เตเด•เต€เตป เดŽเดจเตเดจเต‹เดŸเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดšเต. เดชเด•เตเดทเต‡, เดŽเดจเดฟเด•เตเด•เต เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดคเดพเตฝ เดฎเดคเดฟ.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•