
рдПрдХ рд╡рд┐рд╡рд┐рдз рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ рдШреВрдорддреЗ рд╣реБрдП, рдореИрдВ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдвреВрдВрдврддрд╛ рд╣реВрдВ: рдХрднреА-рдХрднреА рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдордЬрд╛рдХрд┐рдпрд╛ рдЯрд┐рдкреНрдкрдгреА рд╣реЛрддреА рд╣реИ, рдХрднреА-рдХрднреА рдпрд╣ рд╡реНрдпрд╛рдкрдХ рдЕрд░реНрдереЛрдВ рдореЗрдВ рдХреБрдЫ рдордЬрд╛рдХрд┐рдпрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рд╕рдордп-рд╕рдордп рдкрд░ "рдЧреНрд▓реЛрдмрд▓ рдЗрдВрдЯрд░рдиреЗрдЯ" рдФрд░ рд╣реЛрдмреЗ рдкрд░ рджреЛрдиреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ - рдХрд╣рддреЗ рд╣реИрдВ, рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдЯреИрдХрдСрд╡рд░рдлреНрд▓реЛ рдкрд░ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдкреНрд░рд╢реНрди рд╣реИ, рдФрд░ рдХрд╛рдиреВрдиреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ рдЯреЙрдкреЛрдиреАрдореНрд╕ рдХреЗ рдордЬрд╛рдХрд┐рдпрд╛ рдирд╛рдореЛрдВ рдХрд╛ рдЪрдпрди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдпрд╣рд╛рдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдЬреЛ рдореИрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рдВрдЪрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЙрд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓реВрдБрдЧрд╛ред рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, QEMU, рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓, рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рдЙрджреНрдзрд░рдг рдЖрдкрдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдХреЗ рдкрддреНрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдЙрджреНрдзрд░рдгреЛрдВ рдореЗрдВ рдмрджрд▓рддреЗ рд░рд╣рддреЗ рд╣реИрдВред рддреЛ рдЖрдЗрдП рдХреЛрдб рдкрд░ рдПрдХ рдмреЗрд╣рддрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдФрд░ рддреБрд░рдВрдд, рдХрд░реНрдиреЗрд▓ рдЕрд╕реЗрдВрдмрд▓реА рд╕рд┐рд╕реНрдЯрдо рд╣рдореЗрдВ рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд╕рд╛рде рдорд┐рд▓рддрд╛ рд╣реИ: рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдСрдЯреЛрдХреЙрдиреНрдлрд╝ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рджреЛ рдорд╛рдирдХ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдореЗрдХрдлрд╛рдЗрд▓ рд╣реИ: clean
рдФрд░ distclean
ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдХрд░реНрдиреЗрд▓ рдСрдЯреЛрдХреЙрдиреНрдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ menuconfig
рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд▓рдХреНрд╖реНрдп рд╣реИрдВ: clean
, mrproper
рдФрд░ mrproper
- рд╣рд╛рдВ, рд╣рд╛рдВ, рд╢реНрд░реАрдкреНрд░реЛрдкрд░, рдПрдХ рдХреЛрд░ рдХреНрд▓реАрдирд░ рджреЛ рдмрд╛рд░ рддреЗрдЬреА рд╕реЗ ред
рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдгрд╛рд▓реА рдХреА рдмрд╛рдд рдХрд░реЗрдВ: рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдерд╛, рдЬрдм рдореБрдЭреЗ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ allnoconfig
, allyesconfig
рдЬреИрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдЖрджреЗрд╢ allyesconfig
(рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдм рдореИрдВ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ allyesconfig
.. ред) рдФрд░ рд░рд╣рд╕реНрдпрдордп рд▓рдХреНрд╖реНрдп allrandconfig
ред "рдХреНрдпрд╛ рд╡реЗ рдордЬрд╛рдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ," рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдлрд┐рд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рджреЛрд╕реНрдд рдХреЛ рдЗрд╕ рдЕрд╡рд▓реЛрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛, рдЬрд┐рд╕ рдкрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд░реНрдердХ рдЖрджреЗрд╢ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреА рд╢реБрджреНрдзрддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдореИрдВрдиреЗ рдХрд╣рд╛ рдЕрдм рд╣реЛрдЧрд╛, рдПрдХ рддрд░рд╣ рдХрд╛ рдлрд╝реНрдпреВрдЬрд╝рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдкрд░реЗ рдореВрд▓ рдореЗрдВ рдЬреАрд╡рди рд╣реИ: рдкреНрд░рд▓реЗрдЦрди рдХрднреА-рдХрднреА рди рдХреЗрд╡рд▓ рддрдХрдиреАрдХреА рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛, рдХрд▓рд╛рддреНрдордХ рдореВрд▓реНрдп рднреА рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рд╕реНрд▓реАрдк рдореЛрдб рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕рдХреА рдирд╛рдЬреБрдХрддрд╛ рдФрд░ рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рди рдХрд░рдиреЗ рдкрд░ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЪреЗрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВ рджреБрдЦреА рд╣реЛрдХрд░ рд▓рд┐рдЦреВрдВрдЧрд╛, рдзреНрдпрд╛рди рджреЗрдВ: <рд╕рдмрд╕реЗ рдЙрдмрд╛рдК рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк> ред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдХреБрдЫ рдЕрд▓рдЧ рдХрд┐рдпрд╛:
Some warnings, first. * BIG FAT WARNING ********************************************************* * * If you touch anything on disk between suspend and resume... * ...kiss your data goodbye. * * If you do resume from initrd after your filesystems are mounted... * ...bye bye root partition. * [this is actually same case as above] * * ...
рдЫреЛрдЯреА рдЪрд╛рд▓
рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЬрдм рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдореИрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдПрдВрдЯреНрд░реЛрдкреА рдХреЗ рдХреБрдЫ рд╕реНрд░реЛрдд рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рднрд╛рдЧ рдЧрдпрд╛ рдХрд┐ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЦреИрд░, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдРрд╕рд╛ рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рдПрдХ рдРрд╕рд╛ рдХреЛрдб рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рдЕрдиреБрдХреВрд▓рди, рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдЖрджрд┐ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдкрд░ рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛? рдпрд╣ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ? рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реНрдерд┐рд░ рдореБрдЦрд░ рд╣реИ:
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐ рдирд┐рд░рдВрддрд░ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдПрдХ switch
рд╢рд╛рдЦрд╛ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрдЧрд╛, рдФрд░ рдЬрдм рдПрдХ рд╡реИрдз рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╢рд╛рдЦрд╛ default:
рдирд╣реАрдВ рд╣реЛрдЧреА default:
рдПрдХ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рдореЗрдВ, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд▓рдЧрднрдЧ рд▓рд┐рдВрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛ ...
рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ
- ... рдХрд┐ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рд╕реЗ рдПрдХ рдмрд╛рдИрдЯреЗрдХреЛрдб JIT рд╕рдВрдХрд▓рдХ рд╣реИ? рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ eBPF рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реВрдЯрд┐рдВрдЧ, рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ "рдкрд░рдорд╛рдгреБ" рдЯреВрд▓ рд╕реЗ рдбрд░рддреЗ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ bpftools рдкреИрдХреЗрдЬ рджреЗрдЦреЗрдВред
- ... рдХрд┐ рдХрд░реНрдиреЗрд▓ рд▓рдЧрднрдЧ рдкрд╛рдБрдЪ рдорд┐рдирдЯ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЗрд╕ рддрд░рд╣ рдХрд╛
sendfile
рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд╣реИ рдЬреЛ рдПрдХ рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЙрд╕реЗ рдПрдХ рд╣реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрддрд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реА рдСрдлрд╝рд╕реЗрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рдЙрд╕реА рдбреЗрдЯрд╛ рдХреЛ рд░рд┐рд╡рд╛рдЗрдВрдб рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ 2 рдЬреАрдмреА рдХреЙрдкреА рдирд╣реАрдВ рдХрд░рддрд╛ред - ... рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╣рд╛рдЗрдмрд░рдиреЗрд╢рди рдХрд╛рд░реНрдп рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ - рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрдЧреНрд░рд╣рдг рдореЗрдВ рднреА рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
QEMU
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЬрдм рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░реЙрдмрд░реНрдЯ рд▓рд╡ рдХреЛ рдкрдврд╝рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдХреНрдпреВрдИрдПрдордпреВ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдЪрдврд╝ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордЭрджрд╛рд░реА рдереАред рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╕реВрдЪрд┐рдпрд╛рдВ рдереАрдВ (рдФрд░ рд╢реБрд░реБрдЖрддреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛрд░реНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╣реАрдВ - рдЬреЛ рд╡реЗ рд╕реАрдЦрддреЗ рд╣реИрдВ - рд╕рдВрдХреЗрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд░рд╕реАрдпреВ рд╕рдмрд╕рд┐рд╕реНрдЯрдо (рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рдореИрдВ рдЕрднреА рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рднреА рдореМрдЬреВрдж рд╣реИ) рдФрд░, рд╢рд╛рдпрдж рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╛рди рд╣реИред
рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рд╡реНрдпрдХреНрддрд┐ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ? рд╕рдВрднрд╡рддрдГ рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рдХреЗ рд╕рд╛рдеред рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА, рдПрдХ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ, рдФрдкрдЪрд╛рд░рд┐рдХ, рджрд╕реНрддрд╛рд╡реЗрдЬ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ:
1. Whitespace Of course, the most important aspect in any coding style is whitespace. Crusty old coders who have trouble spotting the glasses on their noses can tell the difference between a tab and eight spaces from a distance of approximately fifteen parsecs. Many a flamewar has been fought and lost on this issue.
рдпрд╣рд╛рдВ рдЕрдзрд┐рдХрддрдо рд▓рд╛рдЗрди рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд╛рд╢реНрд╡рдд рдкреНрд░рд╢реНрди рд╣реИ:
Lines should be 80 characters; try not to make them longer. ... Rationale: - Some people like to tile their 24" screens with a 6x4 matrix of 80x24 xterms and use vi in all of them. The best way to punish them is to let them keep doing it. ...
(рд╣рдореНрдо ... рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдХреНрд╖ рдкрд░ рджреЛрдЧреБрдирд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдРрд╕реЗ рд▓рд┐рдирдХреНрд╕ рдПрдЪрдбреА рд╣реИ?)
рдЕрднреА рднреА рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ - рдкрдврд╝реЗрдВ ред
рдФрд░ рдлрд┐рд░ рд╕реЗ рдЯреНрд░рд┐рдХ
рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ C рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╡рд┐рдХреГрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ, рддреЛ рдЖрдк рдХрд┐рд╕реА рднреА рд╕реНрдХрд╛рд▓рд╛ рдпрд╛ рд╕реА ++ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рди-рд╕рдордп рдХреЛрдб рдкреАрдврд╝реА рдХреЗ рдЪрдорддреНрдХрд╛рд░ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, softmmu_template.h рдлрд╝рд╛рдЗрд▓ QEMU рдХреЛрдб рдмреЗрд╕ рдореЗрдВ softmmu_template.h
рд╣реИред рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдирд╛рдо рдХреЛ рджреЗрдЦрд╛, рддреЛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕реЗ рдореЗрд░реЗ рдЯреАрд╕реАрдЬреА рдмреИрдХрдПрдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рддрдм рддрдХ рдЯрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕рд╣реА рдЯреАрдПрд▓рдмреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдЖрддрд╛ред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреИрд╕реЗ! рдпрд╣рд╛рдБ рдЗрд╕рдХрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ :
рддреНрд╡рд░рдг / tcg / cputlb.h:
define DATA_SIZE 1 #include "softmmu_template.h" #define DATA_SIZE 2 #include "softmmu_template.h" #define DATA_SIZE 4 #include "softmmu_template.h" #define DATA_SIZE 8 #include "softmmu_template.h"
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рде рдХреА рдЖрд╕реНрддреАрди рдФрд░ рдХреЛрдИ рд╕реА ++ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓?
рдРрд╕реА рдлрд╛рдЗрд▓ рд╣реИ: tcg / tcg-opc.h ред рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рд░рд╣рд╕реНрдпрдордп рд╣реИрдВ рдФрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВ:
... DEF(mov_i32, 1, 1, 0, TCG_OPF_NOT_PRESENT) DEF(movi_i32, 1, 0, 1, TCG_OPF_NOT_PRESENT) DEF(setcond_i32, 1, 2, 1, 0) DEF(movcond_i32, 1, 4, 1, IMPL(TCG_TARGET_HAS_movcond_i32)) DEF(ld8u_i32, 1, 1, 1, 0) DEF(ld8s_i32, 1, 1, 1, 0) DEF(ld16u_i32, 1, 1, 1, 0) DEF(ld16s_i32, 1, 1, 1, 0) ...
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
tcg / tcg.h:
typedef enum TCGOpcode { #define DEF(name, oargs, iargs, cargs, flags) INDEX_op_ ## name, #include "tcg-opc.h" #undef DEF NB_OPS, } TCGOpcode;
рдпрд╛ рддреЛ:
tcg / tcg-common.c:
TCGOpDef tcg_op_defs[] = { #define DEF(s, oargs, iargs, cargs, flags) \ { #s, oargs, iargs, cargs, iargs + oargs + cargs, flags }, #include "tcg-opc.h" #undef DEF };
рдпрд╣ рдФрд░ рднреА рд╡рд┐рдЪрд┐рддреНрд░ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдФрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрдб рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореБрд╢реНрдХрд┐рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд╣реИрдВ - рдХреЗрд╡рд▓ рд╕реА, рдХреЗрд╡рд▓ рдХрдЯреНрдЯрд░ред
рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ
- ... рдХрд┐ рдХреНрдпреВрдИрдПрдордпреВ рди рдХреЗрд╡рд▓ рдПрдХ рдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЕрдиреБрдХрд░рдг рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдЕрдиреНрдп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рднреА рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдореЗрдЬрдмрд╛рди рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ?
рдЬрд╛рд╡рд╛, рдЬреЗрд╡реАрдПрдо рдФрд░ рдСрд▓-рдСрд▓-рдСрд▓
рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реВрдБ? рдЪрд▓реЛ рдХреБрдЫ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЗрд╡реАрдПрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЦреИрд░, GraalVM рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╢рд╛рдпрдж, рдЗрд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реБрдирд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ, рддреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдпрд╣ рдорд╣рд╛рдХрд╛рд╡реНрдп рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЧреНрд░реЗрдЧрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЪрд▓реЛ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рдЬреЗрд╡реАрдПрдо рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
рдХрднреА-рдХрднреА рдЬреЗрд╡реАрдПрдо рдХреЛ рд╕рднреА рдкреНрд░рдмрдВрдзрд┐рдд рдереНрд░реЗрдбреНрд╕ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдЪрд░рдг рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдпрд╛ рдХреБрдЫ рдФрд░ рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рддрдерд╛рдХрдерд┐рдд рд╕реЗрдл рдкреЙрдЗрдВрдЯреНрд╕ рдкрд░ рдереНрд░реЗрдбреНрд╕ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдВрдЪ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореЗрдореЛрд░реА рдмрд╛рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд╢рд░реНрдорд┐рдВрджрдЧреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛? рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреБрдж рдХреЛ рдПрдХ рдЪрд░ рдкрдврд╝рдиреЗ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд▓рд┐рдпрд╛ред
рд▓рдЧрднрдЧ HQ9 + рдХреА рддрд░рд╣рдРрд╕реА рдПрдХ рд╣рд╛рд╕реНрдп рднрд╛рд╖рд╛ рд╣реИ - HQ9 + ред рдпрд╣ рдПрдХ "рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╢реИрдХреНрд╖рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛" рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреН, рдЫрд╛рддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
- рдХрдорд╛рдВрдб 'рдПрдЪ' рджреБрднрд╛рд╖рд┐рдпрд╛ рдирдорд╕реНрддреЗ, рд╡рд░реНрд▓реНрдб!
- 'Q' рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдЦреБрдж (рдХреНрд╡реАрди) рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
- '9' рдкрд░ рд╡рд╣ рдмреАрдпрд░ рдХреА 99 рдмреЛрддрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмреЛрд▓ рдЫрд╛рдкрддрд╛ рд╣реИ
- 'i' рдХреЗ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдЪрд░ i рдХреЛ рдПрдХ рд╕реЗ рдмрдврд╝рд╛рддрд╛ рд╣реИ
- рд╡рд╣ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? ..
рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде JVM рд▓рдХреНрд╖реНрдп рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рдЕрдЧрд░ рдЗрд╕реЗ рд░реЛрдХрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рдЪрд░ рдХреЗ рд╕рд╛рде рдореЗрдореЛрд░реА рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ - рдереНрд░реЗрдбреНрд╕ SIGSEGV рдкрд░ рдЖрддреЗ рд╣реИрдВ, рдФрд░ JVM рдЙрдиреНрд╣реЗрдВ рдкрд╛рд░реНрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ "рд░рдЦрд░рдЦрд╛рд╡" рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рд░реЛрдХ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдЬрдм рдПрдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рд╕реЗ рдкреВрдЫрд╛ рдЧрдпрд╛ рдХрд┐ рдЖрдк рдПрдХ JVM рдХреЛ рдХреИрд╕реЗ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдХрд░рддреЗ рд╣реИрдВ? рдЬрд╡рд╛рдм рджрд┐рдпрд╛:
JNIред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреЗрдПрдирдЖрдИ рдХреЗ рд╕рд╛рде, рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдирд╛ рдСрдкрд░реЗрд╢рди рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЛрдб рд╣реИред рджреБрд░реНрдШрдЯрдирд╛ рди рд╣реЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрд╣рдирдд рдХрд░рдиреА рд╣реЛрдЧреАред
рдордЬрд╛рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдордЬрд╛рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рдХреЛрдб рдкреАрдврд╝реА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЕрднреА рдЗрд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп рд╣реИ: рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рдХреЛрдб рдкреАрдврд╝реА (рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдореИрдХреНрд░реЛрдЬрд╝ рд╣реИ) рдЗрд╕ рддрд░рд╣ рд╕рдВрд░рдЪрд┐рдд рд╣реИ: рдЖрдк рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд╕рдВрдХрд▓рдХ, рдФрд░ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред рдлрд┐рд░, рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЕрдЧрд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЖрдк рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдХреНрд▓рд╛рд╕рдкреИрде рддрдХ рд╣реА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрджреЗрд╢ рджреЗрдЦрдХрд░, рдЙрд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╛рдкреНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреЗрдбрд╝реЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЬрд╡рд╛рдм рдореЗрдВ, рд╡рд╣ рдПрдХ рдПрдПрд╕рдЯреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХреЙрд▓ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛рдУрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
рдореБрдЭреЗ рдореБрдлреНрдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдкрд╕рдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рдордЬреЗрджрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рднреА рд╣реИрдВред
рдПрдХ рдмрд╛рд░, рд▓рдЧрднрдЧ рджрд╕ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдбреЗрдмрд┐рдпрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░, рдХреБрдЫ рдХрдорд╛рдВрдб рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдХрд░, рдЖрджрддрди рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ man <>
, рдЬрд┐рд╕реЗ рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ, рдЬреИрд╕реЗ "[рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдирд╛рдо] рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ рдЬреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИред рдЬреАрдПрдирдпреВ рдЬреАрдПрдлрдбреАрдПрд▓ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде, рдЬреЛ рдбреАрдПрдлрдПрд╕рдЬреА-рдореБрдХреНрдд рдирд╣реАрдВ рд╣реИред " рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреБрдЫ рдПрдлрдПрд╕рдПрдл рдХреЗ рдХреБрдЫ рдмреБрд░реЗ рдкреНрд░реЛрдкрд░рд╛рдЗрдЯрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ ... (рдЕрдм рдЪрд░реНрдЪрд╛ рдЧреВрдЧрд▓ рдХреА рд╣реИред)
рдФрд░ рдХреБрдЫ рдЫреЛрдЯреЗ, рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдХреБрдЫ рд╡рд┐рддрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЧреИрд░-рдореБрдХреНрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЗрдЦрдХ рдиреЗ рдорд╛рдирдХ рдЕрдиреБрдЬреНрдЮреЗрдп рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЛ рд▓рд┐рдЦрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдЪреНрдЫреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдмреБрд░рд╛рдИ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ ред рд╣рдБрд╕реА, рд╣рдБрд╕реА, рдФрд░ рдореИрдВ рднреА рд╢рд╛рдпрдж рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдРрд╕реА рдЪреАрдЬ рд▓реЗрдиреЗ рд╕реЗ рдбрд░рддрд╛ рд╣реВрдБ - рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд▓реЗрдЦрдХ рдЕрдЪреНрдЫреЗ рдФрд░ рдмреБрд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддрд╛ рд╣реИред
рдХреЛрдИ рднреА рд╡рд┐рд╡рд┐рдз
рдореВрд░ рдХрд╛рдиреВрди рдХреЗ рджреМрд░рд╛рди рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рд╕рдВрдХрд▓рдХ рдирд┐рд░реНрдорд╛рдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
рдХрдареЛрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕рдорд░реНрдерд┐рдд рд╕рдВрд░реЗрдЦрдг рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ:
рдЕрдзрд┐рдХрддрдо рд╕рдВрд░реЗрдЦрдг 1 << 29 рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╣рдБрд╕рд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕реЛрдЪрддрд╛ рд╣реИ : рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ - рд▓реЗрдХрд┐рди рдЬрд┐рд╕реЗ 512 рдорд┐рдм рдкрд░ рд╕рдВрд░реЗрдЦрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдлрд┐рд░ рдореИрдВрдиреЗ рд░рд╕реНрдЯ рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рд╛, рдФрд░ рд╡рд╣рд╛рдВ рдЙрдиреНрд╣реЛрдВрдиреЗ 4096 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП "рдкреЗрдЬ рдЯреЗрдмрд▓" рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрд╛ред рдФрд░ рдЖрдк рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреИрд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ , рдЗрд╕рд▓рд┐рдП рдЖрдо рддреМрд░ рдкрд░:
рдкреВрд░реЗ 48-рдмрд┐рдЯ рд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП 4 рдХреЗрдмреА рдкреЗрдЬ рдХреА рдПрдХ рдкреВрд░реА рдореИрдкрд┐рдВрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо 512 рдЬреАрдмреА рдореЗрдореЛрд░реА (256 рдЯреАрдмреА рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдкреЗрд╕ рдХрд╛ рд▓рдЧрднрдЧ 0.195%) рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд▓рдЧреЗрдЧрд╛ред
рдПрдХ рдмрд╛рд░ рдореИрдВрдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдирд┐рд░реНрдпрд╛рдд рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рддрд╛ рд╣реИ ... рдпрд╛ рдирд╣реАрдВ?
рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмреИрдХрдПрдВрдб рдХрдорд╛рдВрдб рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ, рдмрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ "2.0" рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл "2" рдкрддреНрддреЗред рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдПрдХ рддреБрдЪреНрдЫ рд╕реБрдзрд╛рд░ рдХреА рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ double getVersion()
рдлрд╝рдВрдХреНрд╢рди рдорд┐рд▓рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реИ, рдорд╛рдореВрд▓реА рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдбреЙрдЯ рднреА рд╣реИ! рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдВрдд рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЙрдореНрдореАрдж рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдерд╛, рдореИрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдмрд╕ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╕рдЯреАрдХрддрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ред
рд╕рд┐рджреНрдзрд╛рдВрддрдХрд╛рд░реЛрдВ рдФрд░ рдЪрд┐рдХрд┐рддреНрд╕рдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╣реЗрдмреЗ рдкрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рджреЗрдЦрд╛ рдерд╛ рдХрд┐ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдиреНрдпреВрдирддрдо рдХреНрд░реИрд╢ рдХреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╕реА рдореЗрдВ рдПрдХ рд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ? int main;
- рдПрдХ main
рдкреНрд░рддреАрдХ рд╣реИ, рдФрд░ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ , рдЖрдк рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд┐рд░рд┐рдХрд┐рдб рдиреЗ рдареАрдХ рд╕реЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ int
рдмрд╛рдЗрдЯреНрд╕ рднреА рдмрд╣реБрдд рдХрдо рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдХрд╛рд░ рдореЗрдВ 9 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ ... рд╕рдЪ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред
рддреЛ, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдПрдХ рдЧреИрд░-рд▓реЙрдиреНрдЪрд┐рдВрдЧ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
$ ldd /bin/ls linux-vdso.so.1 (0x00007fff93ffa000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f0b27664000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0b2747a000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f0b27406000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0b27400000) /lib64/ld-linux-x86-64.so.2 (0x00007f0b278e9000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0b273df000) $ /lib/x86_64-linux-gnu/libc.so.6
... рдФрд░ рдЙрд╕реЗ рдорд╛рдирд╣рд╛рдирд┐ рдорд╛рдирд╡ рдЖрд╡рд╛рдЬ :
GNU C Library (Ubuntu GLIBC 2.28-0ubuntu1) stable release version 2.28. Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 8.2.0. libc ABIs: UNIQUE IFUNC ABSOLUTE For bug reporting instructions, please see: <https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.
рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЧреЛрд▓реНрдл рдЦреЗрд▓рддреЗ рд╣реИрдВ
рдХреЛрдб рдЧреЛрд▓реНрдл рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд StackExchange рдкрд░ рдПрдХ рдкреВрд░реА рд╕рд╛рдЗрдЯ рд╣реИ - "рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдиреНрдпреВрдирддрдо рджрдВрдб рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдВ" рдХреА рд╢реИрд▓реА рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВред рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реНрд╡рдпрдВ рдмрд╣реБрдд рдкрд░рд┐рд╖реНрдХреГрдд рд╕рдорд╛рдзрд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рд╡реЗ рдмрд╣реБрдд рдкрд░рд┐рд╖реНрдХреГрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдкреНрд░рд╢реНрди рдореЗрдВ , рдорд╛рдирдХ рдирд┐рд╖рд┐рджреНрдз рдЦрд╛рдорд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рд╣реИ:
MetaGolfScript рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
MetaGolfScript рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рдкрд░рд┐рд╡рд╛рд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MetaGolfScript-20918060538120485447057557373727272424 рдкреНрд░рд┐рдВрдЯ "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб!" рдореЗрдВ рдЦрд╛рд▓реА рдХрд╛рд░реНрдпрдХреНрд░рдоред
рдПрдХ рд▓рд╛рдЗрди рдореЗрдВ
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдиреЗ рдкрд░ , рдпрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИ
... рдЬреЛ, рд╡реИрд╕реЗ, рдЬрд╛рджреВ рд╣реИред рдПрд▓рдПрд▓рд╡реАрдПрдо рдореЗрдВ рдХрд┐рд╕реА рдиреЗ 1 рдЕрдкреНрд░реИрд▓ рдХреЛ рдордЬрд╛рдХ рдХрд┐рдпрд╛, рдФрд░ рдПрдХ рдЕрдиреНрдп рдиреЗ рдЗрд╕ рд╕реЗ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдИ: рдореЗрд░рд╛ рдЫреЛрдЯрд╛ рд╕рд╛ рдЖрд╢рд╛рд╡рд╛рджреА: рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдЬрд╛рджреВ рд╣реИ
рдЯреНрд░реИрдХрд░ рдореЗрдВ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдкрд╖реНрдЯ рдЕрдкреАрд▓ рдпрд╛рдж рд╣реИ? рдмрд╛рдЗрдирд░реАрди рдореЗрдВ, рдЗрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рд╣рдЬрддрд╛ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
рд╕рдорд╕реНрдпрд╛: рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрджреНрднреБрдд рд╣реИ
рд╕рдВрдХрд▓реНрдк: wontfix, рдЗрд░рд╛рджрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдлрд░рд╡рд░реА 2009 рдореЗрдВ, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдиреЗ StackOverflow рдкрд░ рдПрдХ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛ : "рдпрд╣ рдХреИрд╕реЗ рдФрд░ рдЙрд╕ рдкрд╛рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ? рдпрд╛, рдареАрдХ рд╣реИ, рддреАрди рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдорд╣рд╛рди рд╣реИрдВ рдФрд░ рд╡реИрд╕реЗ рднреА рдХреНрд░реЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреМрди рдХрд░рддрд╛ рд╣реИ? "
рдЕрдВрдд рдореЗрдВ, рд▓реЗрдЦ рдХрд╛ рд╢реАрд░реНрд╖рдХ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИ? рдпрд╣ emcc
рд╕реЗ emcc рд╕рдВрдХрд▓рдХ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдПрдХ emcc
рдЪрд╛рд▓ рд╣реИ:
$ emcc --help ... emcc: supported targets: llvm bitcode, javascript, NOT elf (autoconf likes to see elf above to enable shared object support)