рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред : рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓реЗрдЦрдХ рдмрд╛рд░реНрдХрд▓реЗрдЬ рдФрд░ рдмреНрд░рд┐рдЯрд┐рд╢ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЗ рдЙрддреНрд╕рд╛рд╣реА рдЗрдпрд╛рди рдорд┐рд╡реЗрд▓ рдХреЗ рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбреЙрдХрд░ рдЫрд╡рд┐ ("рдиреАрдВрдж" рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде) рдмрдирд╛рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВред рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг, рддреНрд░реБрдЯрд┐ рдФрд░ рдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛, рд╡рд╣ рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд╕реЗ рдХрдо рдЫрд╡рд┐ рддреИрдпрд╛рд░ рдХрд░рдХреЗ рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред
рдпрд╣ рдпрд╣рд╛рдБ рд╣реИ (base64 рдореЗрдВ рдЗрдирдХреЛрдбреЗрдб)H4sICIa2A1sCA2IA7Vrrbts2FFYL7M9+7QUGGNyfDYhtkuJFFLAhWZOhBYJmaLMOWBAEFC+xVlkyJLpYEBjdY+0l+k6jfGvqtkEWp2qD8TMg8vAqnsNzDg9lQhhmEjHDhY4zgWJBBUQJ5ZnCGAubMUQMyhJqoRRMJxYbo7Q2CedYxlQO/myqMroeEEHICIngApspxohEKI4h5DHmGEUQQw7jqAejDjBtnKz9q2w7zubi7gkugazVKHdGuWltQArkWDMCdoCqSpufg/QSPK4aV8pxW+nL96uxzMu39G+NqRe5PeekGj13Oi9BamXRmCtl1dS9X2jqel147C7W+aOJKd8dZ04dlcqsSw7KVyA9Ab/uHT/+cTht6mFRKVkMmywv0yv0mnxbMc8sSP8Apzvg0ViDtJwWxQ54Mpbny5W9qIrp2DSrmt+r+mVenu/ny+UelK6+mFR56VYtjsqfp3mxHupQZqZYdp/NGeo850x99r9j7QloyWEz8kvpK//47vuymvzQ29vf79m8MKnIaIa8bUmwRdByw6TKREIoIzE3xBrjrY7MGDUilomQ3GrNrFaIKqSZ4lkvL3tD12sn/IQCrI10xtcC7C1kH9I+xseQpYilRAwoZ5AI9IcfWFfqpRfzK1M3eeUZDRAfQDGAfc/jHTDKG1fVXiInlzcfctnwLPP9Vszs9VXvUzFy5jlZV5WzTbtN3cWkZWkhL/yS2gXm1p7lumkl24wkpv51FbYcU0EZy7SV0ucEZowkiCjvLbAVikCaGUqhyjT0c0Lj/YrElmmSWANOZ7MooHPwRCiLRaJEzBXKFGTCy49lUHNKjEigVdD6H4uTzPj9wzDCSawU0TQT2ujhjVwjgZzSj/n/eX7D/xPm/T8N/v/Ll/+Lg2fPnxw93eL85xFvyB9Rn4TzXwdAAxiMYLD/t9f/7eM/xDja1P+YBf3vKP7L2+PnttsA/IfjcQiE7nkgdH18Ey4O7pjdH7ygmX0p9n8eFA5aG3pb+0/eP/9jzFmw/13AdTBHK3/OPx7/Ic4X8qecQ9K244QG/98JXh8c/vLwwYM1/TD6KWqpv6LdOb37gT67URKterTpVxu1V9PXq3lW1d8skn++9Y83f4cDeEBAQMBnwliWuTWNu8l33G38/3X3fzGk79wFQ4S4Lwr+vwOcXIJHy4ANkLv4L4APcJ6ZSXUsz+efh1xaSOf3VxstHS6+H/nSu4s6wOns9OugxrdG7WXV5K6qc9NEn0n/ESab+s9o0P+O7v9ce1WzVNI7uAiczYI6BgQEBNwD/AvqV/+XACoAAA==
рдореИрдВ рдпрд╣ рдХреИрд╕реЗ рдЖрдпрд╛?
рдПрдХ рд╕рд╣рдХрд░реНрдореА рдиреЗ рдПрдХ рдмрд╛рд░ рдбреЙрдХрд░ рдЫрд╡рд┐ рджрд┐рдЦрд╛рдИ рдХрд┐ рд╡рд╣ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдореВрд╣реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рдерд╛ред рдЙрд╕рдиреЗ рдХреБрдЫ рдирд╣реАрдВ рдХрд┐рдпрд╛: рд╡рд╣ рдмрд╕ рдХреЗ рдиреАрдЪреЗ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдЙрд╕реЗ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдореНрд╣рд╛рд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рд▓рдЧрд╛ред
"рджреЗрдЦреЛ, рдпрд╣ рдХреЗрд╡рд▓ 700 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд▓реЗрддрд╛ рд╣реИ! рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб! тАЭ
рдФрд░ рдлрд┐рд░ рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдиреНрдпреВрдирддрдо рдбреЛрдХрд░ рдЫрд╡рд┐ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдПрдХ рдРрд╕рд╛ рдЖрдзрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдЖрдзрд╛рд░ ремрек рдореЗрдВ рдХреВрдЯрдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рд╕рд░рд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдФрд░ рдкреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╣реАрдВ рднреА рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХреЗред рдЪреВрдВрдХрд┐ рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЗрд╡рд▓ рдПрдХ рдЯрд╛рд░ рдлрд╛рдЗрд▓ рд╣реИ рдФрд░ рдЯрд╛рд░ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдл рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЫреЛрдЯреЗ рдмрд╛рдЗрдирд░реА
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯреЗ рд▓рд┐рдирдХреНрд╕ рдмрд╛рдЗрдирд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЬрд╛рджреВ рд▓реЗрддрд╛ рд╣реИ - рдФрд░ рдпрд╣рд╛рдБ рджреЛ рдЕрджреНрднреБрдд, рд╕реВрдЪрдирд╛рддреНрдордХ рдФрд░ рдЫреЛрдЯреЗ рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдкрд░ рдкрдардиреАрдп рд▓реЗрдЦ рд╣реИрдВ:
рдореБрдЭреЗ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЬреЛ рдмрд╕ рд╕реЛрддрд╛ рд╣реИ рдФрд░ x86_64 рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд▓реЗрдЦ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА:
SECTION .data msg: db "Hi World",10 len: equ $-msg SECTION .text global _start _start: mov edx,len mov ecx,msg mov ebx,1 mov eax,4 int 0x80 mov ebx,0 mov eax,1 int 0x80
рдЪрд▓рд╛рдПрдБ:
nasm -f elf64 hw.asm -o hw.o ld hw.o -o hw strip -s hw
рдпрд╣
504 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдмрд╛рдЗрдирд░реА рдирд┐рдХрд▓рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ ... рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐
.data
рдпрд╛
.text
рдЕрдиреБрднрд╛рдЧ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
_start
рд╕реЗрдХреНрд╢рди рдХрд╛ рдКрдкрд░реА рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЯреЗрдХреНрд╕реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЖрдЬрд╝рдорд╛рдпрд╛:
global _start _start: mov ebx,0 mov eax,1 int 0x80
рдФрд░ рдЗрд╕реЗ
352 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╕ рдЕрдкрдирд╛ рдХрд╛рдо рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
рд╣реИ ред рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐
mov eax
рдХрдорд╛рдВрдб рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдирдВрдмрд░ рд╕реЗ рднрд░рддрд╛ рд╣реИ, рдФрд░
int 0x80
рдХреЙрд▓ рдХреЛ рд╣реА рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣
рдпрд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд
рд╣реИ ред
рдФрд░
рдпрд╣рд╛рдБ рдореБрдЭреЗ рд╡рд╛рдВрдЫрд┐рдд рд╕реВрдЪреА рдорд┐рд▓реАред Syscall 1
exit
, рдФрд░ рд╣рдореЗрдВ рдЬреЛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╣реИ
syscall 29:pause
ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рдХрд▓рд╛:
global _start _start: mov eax, 29 int 0x80
рд╣рдордиреЗ рдПрдХ рдФрд░ 8 рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдмрдЪрд╛рдпрд╛: рд╕рдВрдХрд▓рди рдиреЗ
344 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛, рдФрд░ рдЕрдм рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдмрд╛рдЗрдирд░реА рд╣реИ, рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИред
рд╖рдЯреНрдЪрдХреНрд░реЛрдВ рдореЗрдВ рдЦреБрджрд╛рдИ
рдпрд╣ рдПрдХ рдЪреЗрдирд╕реЙ рдкрд╛рдиреЗ рдФрд░ рдмрд╛рдЗрдирд░реА рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ ... рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
рд╣реЗрдХреНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╣реЗрдХреНрд╕ рдХреЛ рд╕реАрдзреЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рд▓рдВрдмреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдорд┐рд▓рд╛:

... рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:

рдпрд╣ рдХреЛрдб рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд┐рддрдиреА рд▓рд╛рдЗрдиреЗрдВ рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╢реЗрд╖ рд╣реИрдВред рдореЗрд░реЗ рдХрд╛рдо рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореБрдЭреЗ
рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рдХрд╛ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдерд╛ред
рддреЛ, рдЖрдХрд╛рд░ рдШрдЯрдХрд░
136 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛ рдЧрдпрд╛ рд╣реИ ред
100 рд╕реЗ рдХрдо рдмрд╛рдЗрдЯреНрд╕?
рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЖрдЧреЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реВрдВред
рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ 45 рдмрд╛рдЗрдЯреНрд╕ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдлрд╕реЛрд╕! - рдирд╣реАрдВред рд╡рд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рдЯреНрд░рд┐рдХреНрд╕ рдХреЗрд╡рд▓ 32-рдмрд┐рдЯ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди 64-рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╡реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реБрдПред
рдореИрдВрдиреЗ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛, рд╡рд╣
рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ 64-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓реЗрдирд╛ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдореЗрдВ рдмрдирд╛рдирд╛ рдерд╛:
BITS 64 org 0x400000 ehdr: ; Elf64_Ehdr db 0x7f, "ELF", 2, 1, 1, 0 ; e_ident times 8 db 0 dw 2 ; e_type dw 0x3e ; e_machine dd 1 ; e_version dq _start ; e_entry dq phdr - $$ ; e_phoff dq 0 ; e_shoff dd 0 ; e_flags dw ehdrsize ; e_ehsize dw phdrsize ; e_phentsize dw 1 ; e_phnum dw 0 ; e_shentsize dw 0 ; e_shnum dw 0 ; e_shstrndx ehdrsize equ $ - ehdr phdr: ; Elf64_Phdr dd 1 ; p_type dd 5 ; p_flags dq 0 ; p_offset dq $$ ; p_vaddr dq $$ ; p_paddr dq filesize ; p_filesz dq filesize ; p_memsz dq 0x1000 ; p_align phdrsize equ $ - phdr _start: mov eax, 29 int 0x80 filesize equ $ - $$
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЫрд╡рд┐
127 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ ред рдЗрд╕ рдкрд░, рдореИрдВрдиреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред
рдЫреЛрдЯреЗ рдбреЙрдХрдЯрд░
рдЕрдм рдЬрдм рдПрдХ рдмрд╛рдЗрдирд░реА рд╣реИ рдЬреЛ рдЕрдВрддрд╣реАрди рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдбреЙрдХрд░ рдЫрд╡рд┐ рдореЗрдВ рд░рдЦрдирд╛ рд╣реИред
рд╣рд░ рд╕рдВрднрд╡ рдмрд╛рдЗрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдмрд╛рдЗрдЯ -
t
- рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рдЗрдирд░реА рдмрдирд╛рдИ рдФрд░ рдЗрд╕реЗ
Dockerfile
рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рд▓рдЧрднрдЧ рдЦрд╛рд▓реА рдЫрд╡рд┐ рдмрди рдЧрдИ:
FROM scratch ADD t /t
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
Dockerfile
рдореЗрдВ рдХреЛрдИ
CMD
рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
docker run
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдорд╛рдВрдб рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рдмрд╛рдж,
docker save
рдиреЗ рдПрдХ рдЯрд╛рд░ рдлрд╛рдЗрд▓ рдмрдирд╛рдИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЕрдзрд┐рдХрддрдо gzip рдХрдореНрдкреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрдВрдкреНрд░реЗрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдкреЛрд░реНрдЯреЗрдмрд▓ рдбреЙрдХрд░ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ 1000 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдХрдо рд╣реИ:
$ docker build -tt . $ docker save t | gzip -9 - | wc -c 976
рдореИрдВрдиреЗ рдбреЙрдХрд░ рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдХреЗ рдЯрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╡реНрдпрд░реНрде: рдЯрд╛рд░ рдкреНрд░рд╛рд░реВрдк рдФрд░ рдЧрдЬрд╝рд┐рдк рд╕рдВрдкреАрдбрд╝рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдиреЗ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдЧрдЬрд╝рд┐рдк рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЕрдиреНрдп рд╕рдВрдкреАрдбрд╝рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЗрд╕ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЧрдЬрд╝рд┐рдк рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд┐рдХрд▓рд╛ред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕.
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ: