рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкрд░рд┐рдЪрдп: рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдореЗрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкреНрд░рд╡реЗрд╢ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рддрдХрдиреАрдХреЗрдВ рдПрдХ рдмрд╛рд░ рд╢реБрд░реВ рд╣реБрдИ рдереАрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдЖрдЬ рддрдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рдХреЛрдИ рдРрд╕реЗ рддрд░реАрдХреЛрдВ рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рдХрд░рддрд╛ (рдпрд╛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдЕрдкрдиреЗ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдирд╣реАрдВ рдкрд╛рдП рдЧрдП рдереЗ)ред рдРрд╕реА рд╣реА рдПрдХ рддрдХрдиреАрдХ рд╣реИ рдпреВрдЬрд░ рдореЛрдб рд▓рд┐рдирдХреНрд╕ред рдореВрд▓ рд╕реБрдВрджрд░ рд▓реЗрдЦрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдЬреЛ рдкреБрд░рд╛рдиреЗ рдШрдЯрдирд╛рдХреНрд░рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЬреЛ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рдШрд░-рдирд┐рд░реНрдорд┐рдд рдпреВрдПрдордПрд▓ рдХреЛ 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 рдХрд░реНрдиреЗрд▓ рд╕реЗ рдХрд░реЗрдВ:
linuxтФАтФмтФА5*[linux] тФФтФАslirp
рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдирд╛рдо рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдореЗрдЬрдмрд╛рди рд╕реЗ рдЕрддрд┐рдерд┐ рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИрдВред рд▓рд┐рдирдХреНрд╕ рдпреВрдЬрд░ рдореЛрдб рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдХреЗ рдСрдбрд┐рдЯрд┐рдВрдЧ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдг рдЕрддрд┐рдерд┐ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ
рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рджреЛрдзрд╛рд░реА рддрд▓рд╡рд╛рд░ рдмрди рд╕рдХрддреА рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдиреАрдЪреЗ рджреА рдЧрдИ рдкреВрд░реА рдкреЛрд╕реНрдЯ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзреНрдпрдпрди рдФрд░ рдЕрд╕рднреНрдп рдкреНрд░рдпрд╛рд╕реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рдЪреАрди рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдкрдврд╝рд╛, рдЧрд╣рди рд░реВрдк рд╕реЗ рдбрд┐рдмрдЧ рдХреЛрдб рд▓рд┐рдЦрд╛, рдЬрдмрдХрд┐ рдореИрдВ рдЕрднреА рднреА рдкреНрд░рд╛рдердорд┐рдХ рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдерд╛, рдФрд░ рдореБрдЭреЗ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмрд┐рдирд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд░реЛрдХреВ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдЖрд╕рдкрд╛рд╕ рднреА рдЪреБрдирдирд╛ рдкрдбрд╝рд╛ред рдпрд╣ рд╕рдм рдХрд╛рдо рдореЗрд░реЗ IRC рдХреЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдореБрдЭреЗ рдЬрд╛рджреВ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рд╕рдм рдХреБрдЫ рдХреНрд░реИрдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧреА, рд▓реЗрдХрд┐рди рдирдП рдХрд░реНрдиреЗрд▓ рдФрд░ рдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рдеред
рд╕рдорд╛рдпреЛрдЬрди
рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рдХреА рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рдХрдИ рдХрджрдо рд╣реИрдВ:
- рдореЗрдЬрдмрд╛рди рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛;
- рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛
- рдХрд░реНрдиреЗрд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реЗрдЯрдЕрдк;
- рдХрд░реНрдиреЗрд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛;
- рдмрд╛рдЗрдирд░реА рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди;
- рдЕрддрд┐рдерд┐ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛;
- рдХрд░реНрдиреЗрд▓ рд▓реЙрдиреНрдЪ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЪрдпрди;
- рдЕрддрд┐рдерд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк;
- рдЕрддрд┐рдерд┐ рдХрд░реНрдиреЗрд▓ рд╢реБрд░реВ рдХрд░рдирд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХреНрд░реИрдВрдХ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рдЙрдмрдВрдЯреВ рдпрд╛ рдбреЗрдмрд┐рдпрди рдЬреИрд╕реА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ рдХрд░реЗрдВрдЧреЗред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рддрд░рдг - рдЕрд▓реНрдкрд╛рдЗрди рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ рдЖрдпрд╛, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рдореЗрдВ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП 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 рдЬреАрдмреА рд╣рд╛рд░реНрдб рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реИред
рдлрд┐рд░
kern.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]
' рдореЗрдВ рд╢рд╛рдорд┐рд▓
[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)
рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдорд╛рдирдХ Ubuntu рдмрд┐рд▓реНрдб рдореЗрдВ
nproc
рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд╣рдорд╛рд░реА рдХрд░реНрдиреЗрд▓ рдХреЛ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп
./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
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд▓рд┐рдВрдХ
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
рд╡рд░реНрдгрд┐рдд рдЪрд░рдг рдПрдХ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВрдЧреЗред рд╕рд┐рд╕реНрдЯрдо рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг, рдЕрд▓реНрдкрд╛рдЗрди 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
ред - рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрд╕реНрдЯреНрд╕ рдЪреБрдиреЗрдВред
- рд░реВрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдмрдирд╛рдП рдЧрдП рдЕрддрд┐рдерд┐ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВред
- рдФрд░ рд╣рд╛рдВ, рд░реАрдб-рд░рд╛рдЗрдЯ рдореЛрдб рдореЗрдВред
- рдХреЗрд╡рд▓ 64 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд░реИрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЖрдк рдмрд╣реБрдд рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди 64 рдПрдордмреА рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рдЖрдХрд╛рд░ рд╣реИ)ред
- рдХрд░реНрдиреЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд░рдВрдн
/bin/sh
init
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЖрдкрдХреЛ рдирд┐рдореНрди рдЬреИрд╕рд╛ рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдПрдХ рдФрд░ рдЪрд╛рджрд░ Core dump limits : soft - 0 hard - NONE Checking that ptrace can change system call numbers...OK Checking syscall emulation patch for ptrace...OK Checking advanced syscall emulation patch for ptrace...OK Checking environment variables for a tempdir...none found Checking if /dev/shm is on tmpfs...OK Checking PROT_EXEC mmap in /dev/shm...OK Adding 32137216 bytes to physical memory to account for exec-shield gap Linux version 5.1.16 (cadey@kahless) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #30 Sun Jul 7 18:57:19 UTC 2019 Built 1 zonelists, mobility grouping on. Total pages: 23898 Kernel command line: root=/dev/root rootflags=/home/cadey/dl/uml/alpine rootfstype=hostfs rw mem=64M init=/bin/sh Dentry cache hash table entries: 16384 (order: 5, 131072 bytes) Inode-cache hash table entries: 8192 (order: 4, 65536 bytes) Memory: 59584K/96920K available (2692K kernel code, 708K rwdata, 588K rodata, 104K init, 244K bss, 37336K reserved, 0K cma-reserved) SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 NR_IRQS: 15 clocksource: timer: mask: 0xffffffffffffffff max_cycles: 0x1cd42e205, max_idle_ns: 881590404426 ns Calibrating delay loop... 7479.29 BogoMIPS (lpj=37396480) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes) Checking that host ptys support output SIGIO...Yes Checking that host ptys support SIGIO on close...No, enabling workaround devtmpfs: initialized random: get_random_bytes called from setup_net+0x48/0x1e0 with crng_init=0 Using 2.6 host AIO clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns futex hash table entries: 256 (order: 0, 6144 bytes) NET: Registered protocol family 16 clocksource: Switched to clocksource timer NET: Registered protocol family 2 tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes) TCP established hash table entries: 1024 (order: 1, 8192 bytes) TCP bind hash table entries: 1024 (order: 1, 8192 bytes) TCP: Hash tables configured (established 1024 bind 1024) UDP hash table entries: 256 (order: 1, 8192 bytes) UDP-Lite hash table entries: 256 (order: 1, 8192 bytes) NET: Registered protocol family 1 console [stderr0] disabled mconsole (version 2) initialized on /home/cadey/.uml/tEwIjm/mconsole Checking host MADV_REMOVE support...OK workingset: timestamp_bits=62 max_order=14 bucket_order=0 Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) io scheduler noop registered (default) io scheduler bfq registered loop: module loaded NET: Registered protocol family 17 Initialized stdio console driver Using a channel type which is configured out of UML setup_one_line failed for device 1 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 2 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 3 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 4 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 5 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 6 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 7 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 8 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 9 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 10 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 11 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 12 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 13 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 14 : Configuration failed Using a channel type which is configured out of UML setup_one_line failed for device 15 : Configuration failed Console initialized on /dev/tty0 console [tty0] enabled console [mc-1] enabled Failed to initialize ubd device 0 :Couldn't determine size of device's file VFS: Mounted root (hostfs filesystem) on device 0:11. devtmpfs: mounted This architecture does not have kernel memory protection. Run /bin/sh as init process /bin/sh: can't access tty; job control turned off random: fast init done / #
рдЙрдкрд░реЛрдХреНрдд рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рд╕реЗ
рдиреНрдпреВрдирддрдо /proc
рдХрдо рдпрд╛ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрд╕реНрдЯрдирд╛рдо рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд┐рдирд╛, рд╣рдореЗрдВ
рдиреНрдпреВрдирддрдо рдкрд░ рдПрдХ
рдЕрддрд┐рдерд┐ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓реЗрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЖрджреЗрд╢ рдЖрдЬрд╝рдорд╛рдПрдБ:
- uname -av
- cat /proc/self/pid
- hostname
рдЕрддрд┐рдерд┐ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП,
exit
рдЯрд╛рдЗрдк
exit
рдпрд╛ рдХрдВрдЯреНрд░реЛрд▓-рдбреА рджрдмрд╛рдПрдВред рдпрд╣ рдХрд░реНрдиреЗрд▓ рдШрдмрд░рд╛рд╣рдЯ рдХреЗ рдмрд╛рдж рд╢реЗрд▓ рдХреЛ рд╢реВрдЯ рдХрд░реЗрдЧрд╛:
/ # exit Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000 fish: тАЬ./linux root=/dev/root rootflagтАжтАЭ terminated by signal SIGABRT (Abort)
рд╣рдореЗрдВ рдпрд╣ рдХрд░реНрдиреЗрд▓ рдШрдмрд░рд╛рд╣рдЯ рдорд┐рд▓реА рдХреНрдпреЛрдВрдХрд┐ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрд░рдВрднреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣рдореЗрд╢рд╛ рдЪрд▓ рд░рд╣реА рд╣реИред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рд╕рд┐рд╕реНрдЯрдо рдЕрдм рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдореЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рд╕реНрд╡рдпрдВ
SIGABRT
рдХреЛ рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рдЕрддрд┐рдерд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк
рдФрд░ рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рд╕реАрдорд┐рдд "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб" рдХреА рдкреВрд░реА рдЕрд╡рдзрд╛рд░рдгрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдиреЗ рд▓рдЧрддреА рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЖрдорддреМрд░ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╣рдо рд╕рднреА рдХреЗ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдирд┐рд╖реНрдкрд╛рджрди рдореЛрдб рддрдХ рд╕реАрдорд┐рдд рд╣реИред
рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред: рдпреВрдПрдордПрд▓ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдпрд╣рд╛рдБ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ редрдпрд╛рддреНрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рдкреНрд░рд╛рдЪреАрди рдФрд░ рд▓рдЧрднрдЧ рдЕрд╕рдорд░реНрдерд┐рдд рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕реЗ
рд╕реНрд▓рд┐рд░рдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрддрд░ рдкрд░ рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рд╕реНрдЯреИрдХ рдХреА рддрд░рд╣ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╕рд┐рд╕реНрдЯрдо рдЕрдиреБрдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЙрдкрдХрд░рдг
1995 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдФрд░ рдирд╡реАрдирддрдо рдЕрджреНрдпрддрди
2006 рддрдХ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИред рд╕реНрд▓рд┐рдкрд░ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИред рд╕рдорд░реНрдерди рдФрд░ рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрддрдиреЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдП рд╣реИрдВ рдХрд┐ рдЕрдм рдЗрд╕ рдЯреВрд▓ рдХреЛ рдХреЗрд╡рд▓
"рдХреЛрдб рд░реЛрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рддреЛ, рдЖрдЗрдП рдЙрдмрдВрдЯреВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реНрд▓рд┐рд░рдк рдХреЛ рд░реЛрд▓ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:
sudo apt-get install slirp /usr/bin/slirp Slirp v1.0.17 (BETA) Copyright (c) 1995,1996 Danny Gasparovski and others. All rights reserved. This program is copyrighted, free software. Please read the file COPYRIGHT that came with the Slirp package for the terms and conditions of the copyright. IP address of Slirp host: 127.0.0.1 IP address of your DNS(s): 1.1.1.1, 10.77.0.7 Your address is 10.0.2.15 (or anything else you want) Type five zeroes (0) to exit. [autodetect SLIP/CSLIP, MTU 1500, MRU 1500, 115200 baud] SLiRP Ready ... fish: тАЬ/usr/bin/slirpтАЭ terminated by signal SIGSEGV (Address boundary error)
рд╣реЗ рджреЗрд╡рддрд╛рдУрдВ! рдЖрдЗрдП 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 рдФрд░ рдЗрд╕ рдХреНрд╖рдг рдХреЗ рдмреАрдЪ, рдЬреАрд╕реАрд╕реА рдиреЗ рдордзреНрдпрд╡рд░реНрддреА рд╕рдВрдХрд▓рд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдЖрдЗрдП
inline
рдХреЛ рдЦрд╛рд▓реА рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВ:
vi slirp.h :6 a <enter> #define inline /**/ <escape> :wq make
рдирд╣реАрдВред рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЕрднреА рднреА рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдг рдирд╣реАрдВ рдвреВрдБрдв рд╕рдХрддреЗред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВрдиреЗ
рд╣рд╛рд░ рдорд╛рди рд▓реА рдФрд░
рдЧрд┐рддреБрдм рдкрд░
рд╣рд░реЛрдХреВ рдмрд┐рд▓реНрдб рдкреИрдХреЗрдЬ рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХрд░ рджреАред рдореЗрд░рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдерд╛ рдХрд┐ рдХреБрдЫ рд╣рд░реЛрдХреВ рдмрд┐рд▓реНрдб рдкреИрдХреЗрдЬ рдореЗрдВ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдмрд╛рдпрдиреЗрд░реАрдЬрд╝ рд╣реЛрдВрдЧреЗред рдирддреАрдЬрддрди, рдЦреЛрдЬ рдиреЗ рдореБрдЭреЗ
рдпрд╣рд╛рдВ рдкрд╣реБрдВрдЪрд╛рдпрд╛ред рдореИрдВрдиреЗ
uml.tar.gz
рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЕрдирдкреИрдХ
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
Ifconfig рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рджреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрдорд╛рдВрдб
/proc
рдФрд░
/sys
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ 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
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рдиреЛрдЯ: рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдореВрд▓ рдкреЛрд╕реНрдЯ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдПрдХ рд╡рд╛рдпрд░реНрдб рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб, рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрдВрдЯреЗрд▓ рд╕реЗ рд╡рд╛рдИрдлрд╛рдИ 8265 рд╡рд╛рд▓реЗ рд▓реИрдкрдЯреЙрдк рдкрд░, рдЬрдм рдЖрдк рдиреЗрдЯрд╡рд░реНрдХ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ /
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХрд░реНрдиреЗрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рдордп, рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рд╕рд░рд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ рдореЗрдВ) рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрдЧрддрд╛ рд╣реИредрдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВ:
#!/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 , .
, , . , .
, , . - , , User Mode Linux . . Docker тАФ tar-,
docker export
, . , shell-.
Rkeene #lobsters Freenode. Slirp . , Slackware slirp, Ubuntu Alpine slirp Rkeene . , -.