เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเฉ‹เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ€เจ

เจ…เจจเฉเจตเจพเจฆเจ• เจคเฉ‹เจ‚ เจœเจพเจฃ-เจชเจ›เจพเจฃ: เจตเฉฑเจ–-เจตเฉฑเจ– เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฆเฉ‡ เจธเจพเจกเฉ‡ เจœเฉ€เจตเจจ เจตเจฟเฉฑเจš เจตเฉฑเจกเฉ‡ เจชเฉเจฐเจตเฉ‡เจธเจผ เจฆเฉ‡ เจชเจฟเจ›เฉ‹เจ•เฉœ เจตเจฟเฉฑเจš, เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃเจพ เจ•เจพเจซเจผเฉ€ เจฆเจฟเจฒเจšเจธเจช เจ…เจคเฉ‡ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเจญ เจ‡เฉฑเจ• เจตเจพเจฐ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจˆเจ†เจ‚ เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจคเจ•เจจเฉ€เจ•เจพเจ‚ เจจเจพเจฒ เจนเฉ‹เจ‡เจ†เฅค เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉเจ เจจเฉ‚เฉฐ เจ…เฉฑเจœ เจคเฉฑเจ• เจฒเจพเจญเจฆเจพเจ‡เจ• เจขเฉฐเจ— เจจเจพเจฒ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจนเจฐ เจ•เฉ‹เจˆ เจ…เจœเจฟเจนเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฏเจพเจฆ เจจเจนเฉ€เจ‚ เจฐเฉฑเจ–เจฆเจพ (เจœเจพเจ‚ เจœเจพเจฃเจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจ‰เจน เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจคเฉ‡เจœเจผ เจตเจฟเจ•เจพเจธ เจฆเฉŒเจฐเจพเจจ เจซเฉœเฉ‡ เจจเจนเฉ€เจ‚ เจ—เจ เจธเจจ). เจ…เจœเจฟเจนเฉ€ เจนเฉ€ เจ‡เฉฑเจ• เจคเจ•เจจเฉ€เจ• เจฏเฉ‚เจœเจผเจฐ เจฎเฉ‹เจก เจฒเฉ€เจจเจ•เจธ เจนเฉˆเฅค เจฎเฉ‚เจฒ เจฆเฉ‡ เจฒเฉ‡เจ–เจ• เจจเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ€ เจ–เฉเจฆเจพเจˆ เจ•เฉ€เจคเฉ€, เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฒเจˆ เจ•เจฟ เจ•เจฟเจนเฉœเจพ เจชเฉเจฐเจพเจฃเจพ เจตเจฟเจ•เจพเจธ เจ…เจœเฉ‡ เจตเฉ€ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เจฟเจนเฉœเจพ เจจเจนเฉ€เจ‚, เจ…เจคเฉ‡ 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

เจกเฉŒเจ•เจฐ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจฎเฉˆเจ‚ เจนเฉ‹เจธเจŸ เจคเฉ‹เจ‚ เจ‰เจนเจจเจพเจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจจเจพเจฎ เจฆเฉ‡เจ– เจธเจ•เจฆเจพ เจนเจพเจ‚ เจœเฉ‹ เจ—เฉˆเจธเจŸ เจตเจฟเฉฑเจš เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจนเจจ. เจฒเฉ€เจจเจ•เจธ เจฏเฉ‚เจœเจผเจฐ เจฎเฉ‹เจก เจจเจพเจฒ, เจ‡เจน เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจธเจฆเจพ เจฎเจคเจฒเฉฑเจฌ เจ•เฉ€ เจนเฉˆ? เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจ‡เจน เจนเฉˆ เจ•เจฟ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจธเจพเจงเจจ เจœเฉ‹ เจฒเฉ€เจจเจ•เจธ เจฆเฉ‡ เจ†เจกเจฟเจŸเจฟเฉฐเจ— เจธเจฌเจธเจฟเจธเจŸเจฎ เจฆเฉเจ†เจฐเจพ เจšเจฒเจฆเฉ‡ เจนเจจ เจจเจพ เจตเฉ‡เจ–เฉ‹ เจ—เฉˆเจธเจŸ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚เฅค เจชเจฐ เจ•เฉเจ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš, เจ‡เจน เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ‹-เจงเจพเจฐเฉ€ เจคเจฒเจตเจพเจฐ เจฌเจฃ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจธเจพเจฐเฉ€ เจชเฉ‹เจธเจŸ เจ–เฉ‹เจœ เจ…เจคเฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจฎเฉ‹เจŸเฉ‡ เจฏเจคเจจเจพเจ‚ เจฆเจพ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจฎเฉˆเจจเฉ‚เฉฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉเจฐเจพเจšเฉ€เจจ เจ”เจœเจผเจพเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจชเฉˆเจ‚เจฆเฉ€ เจธเฉ€, เจ•เจฐเจจเจฒ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจเจพ เจชเฉˆเจ‚เจฆเจพ เจธเฉ€, เจ‰เจนเจจเจพเจ‚ เจฆเจฟเจจเจพเจ‚ เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ‡ เจ—เจ เจ•เฉ‹เจก เจฆเฉ€ เจกเฉ‚เฉฐเจ˜เจพเจˆ เจจเจพเจฒ เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจ•เจฐเจจเฉ€ เจชเฉˆเจ‚เจฆเฉ€ เจธเฉ€ เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจ…เจœเฉ‡ เจเจฒเฉ€เจฎเฉˆเจ‚เจŸเจฐเฉ€ เจธเจ•เฉ‚เจฒ เจตเจฟเฉฑเจš เจธเฉ€, เจ…เจคเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ”เจœเจผเจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจฌเจพเจˆเจจเจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ Heroku เจฌเจฟเจฒเจกเจœเจผ เจจเจพเจฒ เจŸเจฟเฉฐเจ•เจฐ เจตเฉ€ เจ•เจฐเจจเจพ เจชเฉˆเจ‚เจฆเจพ เจธเฉ€เฅค . เจ‡เจธ เจธเจพเจฐเฉ‡ เจ•เฉฐเจฎ เจจเฉ‡ เจฎเฉ‡เจฐเฉ‡ IRC 'เจคเฉ‡ เจฒเฉ‹เจ•เจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉˆเจจเฉ‚เฉฐ เจœเจพเจฆเฉ‚ เจ•เจนเจฟเจฃ เจฒเจˆ เจชเฉเจฐเฉ‡เจฐเจฟเจค เจ•เฉ€เจคเจพเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจ‡เจน เจชเฉ‹เจธเจŸ เจ•เจฟเจธเฉ‡ เจฒเจˆ เจจเจตเฉ‡เจ‚ เจ•เจฐเจจเจฒ เจ…เจคเฉ‡ OS เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจจเจพเจฒ เจ‡เฉฑเจ•เฉ‹ เจšเฉ€เจœเจผ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจฒเจˆ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจตเจœเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจตเจฟเจตเจธเจฅเจพ

เจฒเฉ€เจจเจ•เจธ เจฏเฉ‚เจœเจผเจฐ เจฎเฉ‹เจก เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจเจพ เจ•เจˆ เจชเฉœเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ:

  • เจนเฉ‹เจธเจŸ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ;
  • เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ;
  • เจ•เจฐเจจเจฒ เจฌเจฟเจฒเจก เจธเฉฐเจฐเจšเจจเจพ;
  • เจ•เจฐเจจเจฒ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€;
  • เจฌเจพเจˆเจจเจฐเฉ€ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ;
  • เจ—เฉˆเจธเจŸ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ;
  • เจ•เจฐเจจเจฒ เจฒเจพเจ‚เจš เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจฆเฉ€ เจšเฉ‹เจฃ;
  • เจ‡เฉฑเจ• เจฎเจนเจฟเจฎเจพเจจ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ;
  • เจ—เฉˆเจธเจŸ เจ•เจฐเจจเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค

เจฎเฉˆเจ‚ เจ‡เจน เจฎเฉฐเจจเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจธเฉฐเจญเจพเจตเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉเจ เจ‰เจฌเฉฐเจŸเฉ‚ เจœเจพเจ‚ เจกเฉ‡เจฌเฉ€เจ…เจจ-เจตเจฐเจ—เฉ‡ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจตเจฐเจฃเจฟเจค เจธเจญ เจ•เฉเจ เจ•เจฐเฉ‹เจ—เฉ‡. เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ€ เจฎเจจเจชเจธเฉฐเจฆ เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ - เจเจฒเจชเจพเจˆเจจ เจตเจฟเฉฑเจš เจ‰เจชเจฐเฉ‹เจ•เจค เจธเจพเจฐเฉ‡ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€, เจชเจฐ เจ‡เจธเจฆเจพ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจจเจฟเจ•เจฒเจฟเจ†, เจœเจผเจพเจนเจฐ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจ•เจพเจฐเจจ เจ•เจฟ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจตเจฟเฉฑเจš เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจกเจฐเจพเจˆเจตเจฐเจพเจ‚ เจฒเจˆ เจนเจพเจฐเจก-เจฌเจพเจˆเจกเจฟเฉฐเจ— glibc-isms เจนเฉˆเฅค เจ…เฉฐเจค เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ…เฉฑเจชเจธเจŸเฉเจฐเฉ€เจฎ เจตเจฟเฉฑเจš เจฐเจฟเจชเฉ‹เจฐเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจฌเจฃเจพ เจฐเจฟเจนเจพ เจนเจพเจ‚เฅค

เจนเฉ‹เจธเจŸ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ

เจ‰เจฌเฉฐเจŸเฉ‚ เจจเฉ‚เฉฐ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ (เจ‡เฉฑเจ• เจธเจพเจซเจผ เจ‡เฉฐเจธเจŸเจพเจฒ เจฎเฉฐเจจ เจ•เฉ‡):

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

เจคเฉเจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ (เจฐเฉ‚เจŸ เจœเจพเจ‚ sudo เจจเจพเจฒ):

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

เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจฎเฉ‡เจจเฉ‚ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€ libncurses-dev. เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ“ เจ•เจฟ เจ‡เจน เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจ‡เฉฐเจธเจŸเจพเจฒ เจนเฉˆ (เจฐเฉ‚เจŸ เจœเจพเจ‚ sudo เจจเจพเจฒ):

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]', เจคเฉเจธเฉ€เจ‚ เจธเจชเฉ‡เจธ เจœเจพเจ‚ เจเจ‚เจŸเจฐ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเฉฐเจฐเจšเจจเจพ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‹เจ—เฉ‡เฅค เจตเจฟเฉฐเจกเฉ‹ เจจเฉ‚เฉฐ เจจเฉˆเจตเฉ€เจ—เฉ‡เจŸ เจ•เจฐเฉ‹, เจ†เจฎ เจตเจพเจ‚เจ—, เจ•เฉ€เจฌเฉ‹เจฐเจก เจคเฉ€เจฐ "เจ‰เฉฑเจชเจฐ" เจ…เจคเฉ‡ "เจนเฉ‡เจ เจพเจ‚" เจจเจพเจฒ, เจ…เจคเฉ‡ เจคเฉฑเจค เจšเฉเจฃเฉ‹ - "เจ–เฉฑเจฌเฉ‡" เจœเจพเจ‚ "เจธเฉฑเจœเฉ‡"เฅค

เจตเจฟเจŠ เจชเฉเจ†เจ‡เฉฐเจŸเจฐ โ€”> เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจธเจฌเจฎเฉ‡เจจเฉ‚ เจตเจฟเฉฑเจš เจนเฉ‹, เจเจ‚เจŸเจฐ เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจฆเจฌเจพ เจ•เฉ‡ เจเจ•เจธเฉˆเจธ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจจเจฟเจ•เจฒเจฃ เจฆเจพ เจฐเจธเจคเจพ เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡' เจฐเจพเจนเฉ€เจ‚ เจนเฉˆเฅค[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)

เจ•เจพเจนเจฆเฉ‡ เจฒเจˆ? เจ‡เจน เจ•เจฎเจพเจ‚เจก เจธเจพเจกเฉ‡ เจฌเจฟเจฒเจกเจฐ เจจเฉ‚เฉฐ เจฌเจฟเจฒเจก เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจ‰เจชเจฒเจฌเจง CPU เจ•เฉ‹เจฐ เจ…เจคเฉ‡ เจฅเจฐเจฟเฉฑเจกเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจ•เจนเฉ‡เจ—เฉ€เฅค เจŸเฉ€เจฎ $(nproc) Build เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ•เจฎเจพเจ‚เจก เจฆเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฆเจพ เจนเฉˆ 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

เจตเจฐเจฃเจฟเจค เจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเจพ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจฌเจฃเจพเจ‰เจฃเจ—เฉ€เจ†เจ‚เฅค เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจคเฉ€ เจฆเฉ‡ เจ•เจพเจฐเจจ, เจ…เจฒเจชเจพเจˆเจจ เจเจชเฉ€เจ•เฉ‡ เจฎเฉˆเจจเฉ‡เจœเจฐ เจฆเฉเจ†เจฐเจพ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจฎเฉเจธเจผเจ•เจฒ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจชเจฐ เจ‡เจน เจเจซเจเจธ เจ†เจฎ เจตเจฟเจšเจพเจฐ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฒเจˆ เจ•เจพเจซเฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพ.

เจธเจพเจจเฉ‚เฉฐ เจตเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจฆ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจŸเจฟเฉฐเจจเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจ–เจชเจค เจจเฉ‚เฉฐ เจฐเฉ‹เจ•เจฃ เจฒเจˆ เจœเฉ‚เจฎเจฌเฉ€เจจ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจธเจพเจกเจพ เจฎเจนเจฟเจฎเจพเจจ เจ•เจฐเจจเจฒเฅค

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 RAM เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ (เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจ—เฉฑเจฒ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ•เฉ€ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจฌเจฃเจพ เจฐเจนเฉ‡ เจนเฉ‹, เจชเจฐ 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, เจœเจฟเจธเจฆเจพ เจจเจคเฉ€เจœเจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจฎเจนเจฟเจฎเจพเจจ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเฉˆเฉฑเจŸเจ…เฉฑเจช

เจ…เจคเฉ‡ เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจšเฉ€เจœเจผเจพเจ‚ เจ—เจฒเจค เจนเฉ‹เจฃเฉ€เจ†เจ‚ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ. เจฏเฉ‚เจœเจผเจฐ เจฎเฉ‹เจก เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจจเฉˆเฉฑเจŸเจตเจฐเจ•เจฟเฉฐเจ— เจ‰เจน เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจธเฉ€เจฎเจค "เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเฉ‹เจก" เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจงเจพเจฐเจจเจพ เจŸเฉเฉฑเจŸเจฃเฉ€ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ†เจ–เจผเจฐเจ•เจพเจฐ, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฟเจธเจŸเจฎ เจชเฉฑเจงเจฐ 'เจคเฉ‡, เจจเฉˆเจŸเจตเจฐเจ• เจธเฉ€เจฎเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจชเฉเจฐเจพเจชเจค เจธเจพเจกเฉ‡ เจธเจพเจฐเจฟเจ†เจ‚ เจฆเฉ‡ เจธเจฎเจเจฃ เจฏเฉ‹เจ— เจ•เจพเจฐเจจเจพเจ‚ เจ•เจฐเจ•เฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฎเฉ‹เจกเฅค

เจจเฉ‹เจŸ เจ•เจฐเฉ‹เฅค เจชเฉเจฐเจคเฉ€.: เจคเฉเจธเฉ€เจ‚ UML เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‡เฉฑเจฅเฉ‡.

Slirp เจฆเฉ€ เจฏเจพเจคเจฐเจพ

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจชเฉเจฐเจพเจšเฉ€เจจ เจ…เจคเฉ‡ เจฒเจ—เจญเจ— เจ…เจธเจฎเจฐเจฅเจฟเจค เจธเฉฐเจฆ เจนเฉˆ เจœเจฟเจธ เจจเฉ‚เฉฐ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ slirp, เจœเจฟเจธ เจจเจพเจฒ เจฏเฉ‚เจœเจผเจฐ เจฎเฉ‹เจก เจฒเฉ€เจจเจ•เจธ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจฏเฉ‚เจœเจผเจฐ-เจชเฉฑเจงเจฐ เจฆเฉ‡ 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.

เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ•เจฐเฉˆเจธเจผ เจฎเฉเฉฑเจ– เจฒเฉ‚เจช เจธเจŸเจพเจฐเจŸ เจฆเฉŒเจฐเจพเจจ เจตเจพเจชเจฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจธเจฒเจฟเจช เจŸเจพเจˆเจฎเจ†เจ‰เจŸ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจฎเฉŒเจ•เฉ‡ 'เจคเฉ‡, เจฎเฉˆเจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ›เฉฑเจกเจฃเฉ€ เจชเจˆเฅค เจชเจฐ เจ†เจ“ เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ เจ•เฉ€ เจธเจฒเจฟเจฐเจช เจ•เจฟเจธเจฎเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฃเจฟเจ† เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจธเจพเจˆเจŸ เจคเฉ‹เจ‚ เจธเจฟเฉฑเจงเฉ‡ เจ†เจฐเจ•เจพเจˆเจต เจจเฉ‚เฉฐ เจฎเฉเฉœ-เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจธเฉ‹เจฐเจธเจซเฉ‹เจฐเจœ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจฐเจพเจนเฉ€เจ‚ เจ‰เจฅเฉ‹เจ‚ เจ•เจฟเจธเฉ‡ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจ–เจฟเฉฑเจšเจฃเจพ เจ‡เฉฑเจ• เจฆเจฐเจฆ เจนเฉˆ:

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

เจœเฉ‡เจ•เจฐ เจชเฉˆเจ•เฉ‡เจœ เจจเจฟเจฐเจฎเจพเจคเจพ เจ‡เจธเจจเฉ‚เฉฐ เจนเจŸเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, I เจ‡เฉฑเจ• เจธเจผเฉ€เจธเจผเจพ เจฌเจฃเจพเจ‡เจ†.

เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเฉฐเจฐเจšเจจเจพ

เจนเฉเจฃ เจธเจพเจกเฉ‡ เจ—เฉˆเจธเจŸ เจ•เจฐเจจเจฒ 'เจคเฉ‡ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ•เจฐเฉ€เจเฅค เจฒเจพเจ‚เจš เจตเจฟเจ•เจฒเจชเจพเจ‚ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเฉ‹:

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

เจฐเจพเจฌเฉ‹เจŸเจพเจเจŸ!

เจชเฉเจฐเจคเฉ€ เจจเฉ‹เจŸ: เจœเจผเจพเจนเจฐ เจคเฉŒเจฐ 'เจคเฉ‡, เจ…เจธเจฒ เจชเฉ‹เจธเจŸ เจ‡เฉฑเจ• เจคเจพเจฐ เจตเจพเจฒเฉ‡ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจพเจฐเจก เจจเจพเจฒ เจ‡เฉฑเจ• เจกเฉˆเจธเจ•เจŸเจพเจช 'เจคเฉ‡ เจฒเจฟเจ–เฉ€ เจ—เจˆ เจธเฉ€, เจœเจพเจ‚ เจ•เฉเจ เจนเฉ‹เจฐ เจธเฉฐเจฐเจšเจจเจพ เจœเจฟเจธ เจฒเจˆ เจตเจพเจงเฉ‚ เจกเจฐเจพเจˆเจตเจฐเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค 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
/ #

เจœเจผเจพเจนเจฐ เจนเฉˆ, เจ•เจฐเจจเจฒ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจพเจฐเจก เจกเจฐเจพเจˆเจตเจฐ เจจเจพเจฒ เจธเฉฐเจšเจพเจฐ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจซเจฐเจฎเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจ•เจฐเจจเจฒ เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ, เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค เจชเฉเจฐเจ•เจพเจธเจผเจจ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‡เจธ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจนเฉฑเจฒ เจฒเฉฑเจญเจฃเจพ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจธเฉ€เฅค เจธเจฐเจฒ เจธเฉฐเจฐเจšเจจเจพเจตเจพเจ‚ 'เจคเฉ‡ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจตเจฐเจšเฉเจ…เจฒเจฌเจพเจ•เจธ เจตเจฟเฉฑเจš), เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจตเจงเจฆเจพ เจนเฉˆเฅค

เจ†เจ‰ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจธเจผเฉˆเฉฑเจฒ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเจพเจฒ เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจธเจตเฉˆเจšเจพเจฒเจค เจ•เจฐเฉ€เจ:

#!/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 เจซเจพเจ‡เจฒ

เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจ‡เจน เจธเจญ เจšเฉˆเฉฑเจ• เจ•เจฐเจจเจพ เจธเฉŒเจ–เจพ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจฎเฉˆเจ‚ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ เจนเฉˆ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ, เจœเฉ‹ เจตเจฐเจฃเจจ เจ•เฉ€เจคเฉ‡ เจ—เจ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจชเฉœเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจตเฉˆเจšเจฒเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจธเฉฐเจฐเจšเจจเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจตเฉ€ เจนเฉˆ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจฒ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‰เจน เจธเจญ เจ•เฉเจ เจนเฉˆ เจœเฉ‹ เจชเฉ‹เจธเจŸ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจชเจฐ เจ‡เจน เจธเจฎเจเจฃเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ เจธเจฟเจฐเจซ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจธเฉˆเจŸเจฟเฉฐเจ— เจฆเฉ€ เจฐเฉ‚เจชเจฐเฉ‡เจ–เจพ เจฆเจฟเฉฑเจคเฉ€ เจนเฉˆเฅค

เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจ‡เจธ เจชเฉ‹เจธเจŸ เจจเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจธเจฎเจเจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เฉ€เจคเฉ€ เจนเฉˆ เจ•เจฟ เจ—เฉˆเจธเจŸ เจ•เจฐเจจเจฒ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจงเจพเจ‰เจฃเจพ เจนเฉˆเฅค เจ‡เจน เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเจพ เจฐเจพเจ–เจธเจผ เจจเจฟเจ•เจฒเจฟเจ†, เจชเจฐ เจชเฉเจฐเจ•เจพเจธเจผเจจ เจจเฉ‚เฉฐ เจ‡เจธ เจชเจฐเจฟเจตเจพเจฐ เจฆเฉ‡ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎเจพเจ‚ เจฆเฉ‡ เจ†เจงเฉเจจเจฟเจ• เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจฆเฉ‡ เจคเจนเจฟเจค เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ, เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจตเจฟเจ†เจชเจ• เจ—เจพเจˆเจก เจตเจœเฉ‹เจ‚ เจ•เจฒเจชเจจเจพ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค เจ…เจ—เจฒเฉ‡ เจ•เจฆเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจ—เฉˆเจธเจŸ เจธเจฟเจธเจŸเจฎ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจกเฉŒเจ•เจฐ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจšเจฟเฉฑเจคเจฐ เจธเจฟเจฐเจซ เจชเฉเจฐเจšเจพเจฐเจฟเจค เจŸเจพเจฐเจฌเจพเจฒ เจนเจจ, เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ‡เจธ เจฐเจพเจนเฉ€เจ‚ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ docker export, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ—เจฟเจธเจŸ เจ•เจฐเจจเจฒ เจฆเฉ‡ เจซเจพเจ‡เจฒ เจธเจฟเจธเจŸเจฎ เจฆเฉ‡ เจฐเฉ‚เจŸ เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจฎเจพเจฐเจ— เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเฉ‹เฅค เจ–เฉˆเจฐ, เจซเจฟเจฐ เจธเจผเฉˆเฉฑเจฒ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจšเจฒเจพเจ“.

เจซเจฐเฉ€เจจเฉ‹เจก 'เจคเฉ‡ #lobsters เจคเฉ‹เจ‚ Rkeene เจฆเจพ เจตเจฟเจธเจผเฉ‡เจธเจผ เจงเฉฐเจจเจตเจพเจฆเฅค Slirp เจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ‰เจธเจฆเฉ€ เจฎเจฆเจฆ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚, เจฎเฉˆเจ‚ เจ‡เจธ เจคเฉฑเจ• เจจเจนเฉ€เจ‚ เจชเจนเฉเฉฐเจš เจธเจ•เจฆเจพ เจธเฉ€เฅค เจฎเฉˆเจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจชเจคเจพ เจ•เจฟ เจ‰เจธเจฆเจพ เจธเจฒเฉˆเจ•เจตเฉ‡เจ…เจฐ เจธเจฟเจธเจŸเจฎ เจธเจฒเจฟเจช เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจฎเฉ‡เจฐเฉ‡ เจ‰เจฌเฉฐเจŸเฉ‚ เจ…เจคเฉ‡ เจเจฒเจชเจพเจˆเจจ เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจจเฉ‡ เจธเจฒเจฟเจช เจจเฉ‚เฉฐ เจธเจตเฉ€เจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจฌเจพเจˆเจจเจฐเฉ€ เจฐเจ•เฉ€เจจ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจธเฉเจเจพเจ… เจฆเจฟเฉฑเจคเจพเฅค เจชเจฐ เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจ‡เจน เจ•เจพเจซเจผเฉ€ เจนเฉˆ เจ•เจฟ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ.

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹