рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди. рдкрд░рд┐рдЪрдп

рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрддрд╛ рд╕рд░реНрд╡рддреНрд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рд╕рд░реНрд╡ рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдордзреНрдпреЗ, HTTP рдЪрд╛ рдореЛрдард╛ рд╡рд╛рдЯрд╛ рдЖрд╣реЗ. рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯрдЪреНрдпрд╛ рдмрд╛рд░реАрдХрд╕рд╛рд░реАрдХ рдЧреЛрд╖реНрдЯреАрдВрдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рддрд╛рдирд╛, рдмрд╣реБрддреЗрдХ рд▓реЛрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордХрдбреЗ рдлрд╛рд░рдЪ рдХрдореА рд▓рдХреНрд╖ рджреЗрддрд╛рдд рдЬреЗрдереЗ рд╣реЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЪрд╛рд▓рддрд╛рдд. рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ (рджреЗрд╡) рдЖрдгрд┐ рдСрдкрд░реЗрд╢рдиреНрд╕ (рдСрдкреНрд╕) рд╡реЗрдЧрд│реЗ рдХреЗрд▓реНрдпрд╛рдиреЗ рдкрд░рд┐рд╕реНрдерд┐рддреА рдЖрдгрдЦреА рдмрд┐рдШрдбрд▓реА. рдкрд░рдВрддреБ DevOps рд╕рдВрд╕реНрдХреГрддреАрдЪреНрдпрд╛ рд╡рд╛рдвреАрд╕рд╣, рдбреЗрд╡реНрд╣рд▓рдкрд░ рддреНрдпрд╛рдВрдЪреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдмрдирдд рдЖрд╣реЗрдд, рддреНрдпрд╛рдореБрд│реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рдмреЕрдХрдПрдВрдбрд╢реА рдкреВрд░реНрдгрдкрдгреЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдгреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ. рд╣реЗ рд╡рд┐рд╢реЗрд╖рддрдГ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ рдЬрд░ рддреБрдореНрд╣реА рд╣рдЬрд╛рд░реЛ рдХрд┐рдВрд╡рд╛ рд╣рдЬрд╛рд░реЛ рдПрдХрд╛рдЪрд╡реЗрд│реА рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА рд╕рд┐рд╕реНрдЯрдо рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдд рдЕрд╕рд╛рд▓.

рд╡реЗрдм рд╕реЗрд╡рд╛рдВрдордзреАрд▓ рдорд░реНрдпрд╛рджрд╛ рдЗрддрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рд░рдЦреНрдпрд╛рдЪ рдЖрд╣реЗрдд. рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рдХрд┐рдВрд╡рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕реЛрдд, рдпрд╛ рд╕рд░реНрд╡ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдирд╛ рдЙрдЪреНрдЪ-рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗрдд. рдпрд╛ рдореВрд▓рднреВрдд рдорд░реНрдпрд╛рджрд╛ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдорд╛рдд рдХрд╢реА рдХрд░рд╛рдпрдЪреА рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рд╡реЗрдм рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреЗ рдЖрдгрд┐ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреАрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░реЗрд▓.

рдореА рдпрд╛ рд▓реЗрдЦрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛ рддрд░реБрдг рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрдирд╛ рдЙрддреНрддрд░ рдореНрд╣рдгреВрди рд▓рд┐рд╣рд┐рдд рдЖрд╣реЗ рдЬреНрдпрд╛рдВрдирд╛ рд╕реБрдкреНрд░рд╕рд┐рджреНрдз рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ рдмрдирд╛рдпрдЪреЗ рдЖрд╣реЗ. рд▓рд┐рдирдХреНрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рддрдВрддреНрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░рд╛рд╡рд░ рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рдпрд╛ рдореВрд▓рднреВрдд рдЧреЛрд╖реНрдЯреАрдВрдордзреНрдпреЗ рдбреЛрдХрд╛рд╡рд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЕрд╢рдХреНрдп рдЖрд╣реЗ. рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреЗ рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░ рдЕрд╕рд▓реЗ рддрд░реА, рдпрд╛ рдорд╛рд▓рд┐рдХреЗрдд рдорд▓рд╛ рдмреНрд░рд╛рдЙрдЭрд░ рдХрд┐рдВрд╡рд╛ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░рд╕рд╛рд░рдЦреНрдпрд╛ рдбреЗрд╕реНрдХрдЯреЙрдк рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдРрд╡рдЬреА рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗрдд. рд╣реА рд╕рд╛рдордЧреНрд░реА рд╡рд┐рдХрд╕рдХ рдЖрдгрд┐ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯрд╕рд╛рдареА рдЖрд╣реЗ рдЬреНрдпрд╛рдВрдирд╛ рд▓рд┐рдирдХреНрд╕ рдХрд┐рдВрд╡рд╛ рдпреБрдирд┐рдХреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рдЖрдгрд┐ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреА рд░рдЪрдирд╛ рдХрд╢реА рдХрд░рд╛рд╡реА рд╣реЗ рд╕рдордЬреВрди рдШреНрдпрд╛рдпрдЪреЗ рдЖрд╣реЗ.

рд▓рд┐рдирдХреНрд╕ рдЖрд╣реЗ рд╕рд░реНрд╡реНрд╣рд░ рд░реВрдо рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо, рдЖрдгрд┐ рдмрд╣реБрддреЗрдХрджрд╛ рддреБрдордЪреЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ OS рд╡рд░ рдЪрд╛рд▓рддрд╛рдд. рдЬрд░реА рдореА "Linux" рдореНрд╣рдгрдд рдЕрд╕рд▓реЛ рддрд░реА, рдмрд░реНтАНрдпрд╛рдЪ рд╡реЗрд│рд╛ рддреБрдореНрд╣реА рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░реВ рд╢рдХрддрд╛ рдХреА рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рд╕рд░реНрд╡ рдпреБрдирд┐рдХреНрд╕ рд╕рд╛рд░рдЦреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЖрд╣реЗ. рддрдерд╛рдкрд┐, рдореА рдЗрддрд░ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд╕реЛрдмрддрдЪреНрдпрд╛ рдХреЛрдбрдЪреА рдЪрд╛рдЪрдгреА рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ FreeBSD рдХрд┐рдВрд╡рд╛ OpenBSD рдордзреНрдпреЗ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕реЗрд▓, рддрд░ рддреБрдордЪреЗ рдкрд░рд┐рдгрд╛рдо рдмрджрд▓реВ рд╢рдХрддрд╛рдд. рдЬреЗрд╡реНрд╣рд╛ рдореА рд▓рд┐рдирдХреНрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд╣реАрддрд░реА рд╡рд╛рдкрд░реВрди рдкрд╛рд╣рддреЛ, рддреЗрд╡реНрд╣рд╛ рдореА рддреЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЛ.

рддреБрдореНрд╣реА рд╣реЗ рдЬреНрдЮрд╛рди рд╕реБрд░рд╡рд╛рддреАрдкрд╛рд╕реВрди рдЕреЕрдк рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреЗ рдЙрддреНрддрдо рдкреНрд░рдХрд╛рд░реЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓, рдЕрд╕реЗ рди рдХрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ. рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рд╕рдВрд╕реНрдереЗрдЪреНрдпрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА C рдХрд┐рдВрд╡рд╛ C++ рдордзреНрдпреЗ рдирд╡реАрди рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░ рд▓рд┐рд╣рд┐рд▓реНрдпрд╛рд╕, рд╣рд╛ рддреБрдордЪрд╛ рдиреЛрдХрд░реАрд╡рд░реАрд▓ рд╢реЗрд╡рдЯрдЪрд╛ рджрд┐рд╡рд╕ рдЕрд╕реВ рд╢рдХрддреЛ. рддрдерд╛рдкрд┐, рдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреА рд░рдЪрдирд╛ рдЬрд╛рдгреВрди рдШреЗрддрд▓реНрдпрд╛рдиреЗ рд╡рд┐рджреНрдпрдорд╛рди рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдирд┐рд╡рдбрдгреНрдпрд╛рдд рдорджрдд рд╣реЛрдИрд▓. рддреБрдореНрд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрдВрдЪреА рдереНрд░реЗрдб-рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рд╕реНрдЯреАрдо рддрд╕реЗрдЪ рдЗрд╡реНрд╣реЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рд╕реНрдЯреАрдорд╢реА рддреБрд▓рдирд╛ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рд╛рд▓. Nginx Apache httpd рдкреЗрдХреНрд╖рд╛ рдЪрд╛рдВрдЧрд▓реА рдХрд╛рдордЧрд┐рд░реА рдХрд╛ рдХрд░рддреЗ рд╣реЗ рддреБрдореНрд╣реА рд╕рдордЬреВрди рдШреНрдпрд╛рд▓ рдЖрдгрд┐ рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рд╛рд▓, рдЯреЛрд░реНрдирд╛рдбреЛ рдЖрдзрд╛рд░рд┐рдд рдкрд╛рдпрдерди рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЕрдВрдЧреЛ рдЖрдзрд╛рд░рд┐рдд рдкрд╛рдпрдерди рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдЕрдзрд┐рдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдХрд╛ рд╕реЗрд╡рд╛ рджреЗрдК рд╢рдХрддреЗ.

ZeroHTTPd: рд╢рд┐рдХрдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди

ZeroHTTPd рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗ рдЬреЛ рдореА рд╢рд┐рдХрд╡рдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди рдореНрд╣рдгреВрди C рдордзреНрдпреЗ рд╕реБрд░рд╡рд╛рддреАрдкрд╛рд╕реВрди рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ. рд░реЗрдбрд┐рд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢рд╛рд╕рд╣ рддреНрдпрд╛рдд рдХреЛрдгрддреЗрд╣реА рдмрд╛рд╣реНрдп рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдирд╛рд╣реА. рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд░реЗрдбрд┐рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд╛рд▓рд╡рддреЛ. рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╛рдВрд╕рд╛рдареА рдЦрд╛рд▓реА рдкрд╣рд╛.

рдЬрд░реА рдЖрдкрдг рд╕рд┐рджреНрдзрд╛рдВрддрд╛рд╡рд░ рд╡рд┐рд╕реНрддреГрдд рдЪрд░реНрдЪрд╛ рдХрд░реВ рд╢рдХрд▓реЛ рддрд░реА, рдХреЛрдб рд▓рд┐рд╣рд┐рдгреЗ, рддреЗ рдЪрд╛рд▓рд╡рдгреЗ рдЖрдгрд┐ рд╕рд░реНрд╡ рд╕рд░реНрд╡реНрд╣рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░реНрд╕рдЪреА рдПрдХрдореЗрдХрд╛рдВрд╢реА рддреБрд▓рдирд╛ рдХрд░рдгреЗ рдпрд╛рдкреЗрдХреНрд╖рд╛ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА. рд╣реА рд╕рд░реНрд╡рд╛рдд рд╕реНрдкрд╖реНрдЯ рдкрджреНрдзрдд рдЖрд╣реЗ. рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░реВрди рдПрдХ рд╕рд╛рдзрд╛ ZeroHTTPd рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░ рд▓рд┐рд╣реВ: рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдЖрдзрд╛рд░рд┐рдд, рдереНрд░реЗрдб-рдЖрдзрд╛рд░рд┐рдд рдЖрдгрд┐ рдЗрд╡реНрд╣реЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд. рдЪрд▓рд╛ рдпрд╛рдкреИрдХреА рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡реНрд╣рд░ рддрдкрд╛рд╕реВ рдЖрдгрд┐ рддреЗ рдПрдХрдореЗрдХрд╛рдВрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рддреЗ рдкрд╛рд╣реВ. ZeroHTTPd рдПрдХрд╛ C рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЗрд╡реНрд╣реЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ рдЙрдерд╢, рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд╣реЕрд╢ рд╕рд╛рд░рдгреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЬреЗ рдПрдХрд╛рдЪ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдпреЗрддреЗ. рдЗрддрд░ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рдХреЛрдгрддреЗрд╣реА рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдирд╛рд╣реАрдд, рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рдХрд▓реНрдкрд╛рдЪреА рдЧреБрдВрддрд╛рдЧреБрдВрдд рд╣реЛрдК рдирдпреЗ.

рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдордЬрдгреНрдпрд╛рдд рдорджрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдбрдордзреНрдпреЗ рдЕрдиреЗрдХ рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдЖрд╣реЗрдд. рдХреЛрдбрдЪреНрдпрд╛ рдХрд╛рд╣реА рдУрд│реАрдВрдордзреНрдпреЗ рдПрдХ рд╕рд╛рдзрд╛ рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, ZeroHTTPd рд╣реЗ рд╡реЗрдм рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯрд╕рд╛рдареА рдХрд┐рдорд╛рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрд╣реЗ. рддреНрдпрд╛рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕реНрдерд┐рд░ рдлрд╛рдЗрд▓реНрд╕ рдЖрдгрд┐ рдЕрддрд┐рд╢рдп рд╕рд╛рдзреА "рдбрд╛рдпрдиреЕрдорд┐рдХ" рдкреГрд╖реНрдареЗ рд╕рд░реНрд╡реНрд╣ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЖрд╣реЗ. рдорд▓рд╛ рдЕрд╕реЗ рдореНрд╣рдгрд╛рдпрдЪреЗ рдЖрд╣реЗ рдХреА рдЙрдЪреНрдЪ-рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд▓рд┐рдирдХреНрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╕реЗ рддрдпрд╛рд░ рдХрд░рд╛рд╡реЗ рд╣реЗ рд╢рд┐рдХрдгреНрдпрд╛рд╕рд╛рдареА ZeroHTTPd рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ. рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░, рдмрд╣реБрддреЗрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛рдд, рддреНрдпрд╛ рддрдкрд╛рд╕рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдд. ZeroHTTPd рдирдХреНрдХреА рд╣реЗрдЪ рдХрд░реЗрд▓. рд╣реЗ рд╢рд┐рдХрдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди рдЖрд╣реЗ, рдЙрддреНрдкрд╛рджрди рдирд╛рд╣реА. рд╣реЗ рдПрд░рд░ рд╣рд╛рддрд╛рд│рддрд╛рдирд╛ рдЪрд╛рдВрдЧрд▓реЗ рдирд╛рд╣реА рдЖрдгрд┐ рд╕рд░реНрд╡реЛрддреНрддрдо рд╕реБрд░рдХреНрд╖рд╛ рдкрджреНрдзрддреАрдВрдЪрд╛ рдЕрднрд┐рдорд╛рди рдмрд╛рд│рдЧрдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдирд╛рд╣реА (рдЕрд░реЗ рд╣реЛ, рдореА рд╡рд╛рдкрд░рд▓реЗ strcpy) рдХрд┐рдВрд╡рд╛ C рднрд╛рд╖реЗрдЪреНрдпрд╛ рдЪрддреБрд░ рдпреБрдХреНрддреНрдпрд╛. рдкрд░рдВрддреБ рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рддреЗ рддреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдЪрд╛рдВрдЧрд▓реЗ рдХрд░реЗрд▓.

рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди. рдкрд░рд┐рдЪрдп
ZeroHTTPd рдореБрдЦреНрдпрдкреГрд╖реНрда. рд╣реЗ рдкреНрд░рддрд┐рдорд╛рдВрд╕рд╣ рд╡рд┐рд╡рд┐рдз рдлрд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реВ рд╢рдХрддреЗ

рдЕрддрд┐рдереА рдкреБрд╕реНрддрдХ рдЕрд░реНрдЬ

рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реНрдЯреЕрдЯрд┐рдХ рдлрд╛рдЗрд▓реНрд╕рдкреБрд░рддреЗ рдорд░реНрдпрд╛рджрд┐рдд рдирд╕рддрд╛рдд. рддреНрдпрд╛рдВрдЪрд╛ рд╡рд┐рд╡рд┐рдз рдбреЗрдЯрд╛рдмреЗрд╕, рдХреЕрд╢реЗ рдЗрддреНрдпрд╛рджреАрдВрд╢реА рдЧреБрдВрддрд╛рдЧреБрдВрддреАрдЪрд╛ рд╕рдВрд╡рд╛рдж рдЖрд╣реЗ. рдореНрд╣рдгреВрди рдЖрдореНрд╣реА "рдЧреЗрд╕реНрдЯ рдмреБрдХ" рдирд╛рд╡рд╛рдЪреЗ рдПрдХ рд╕рд╛рдзреЗ рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рди рддрдпрд╛рд░ рдХрд░реВ рдЬрд┐рдереЗ рдЕрднреНрдпрд╛рдЧрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдирд╛рд╡рд╛рдЦрд╛рд▓реА рдиреЛрдВрджреА рдареЗрд╡рддрд╛рдд. рдЕрддрд┐рдереА рдкреБрд╕реНрддрдХ рд╕реНрдЯреЛрдЕрд░рдЪреНрдпрд╛ рдиреЛрдВрджреА рдЖрдзреА рд╕реЛрдбрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рдкреГрд╖реНрдард╛рдЪреНрдпрд╛ рддрд│рд╛рд╢реА рдПрдХ рдЕрднреНрдпрд╛рдЧрдд рдХрд╛рдЙрдВрдЯрд░ рджреЗрдЦреАрд▓ рдЖрд╣реЗ.

рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди. рдкрд░рд┐рдЪрдп
рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рди "рдЧреЗрд╕реНрдЯ рдмреБрдХ" ZeroHTTPd

рдЕрднреНрдпрд╛рдЧрдд рдХрд╛рдЙрдВрдЯрд░ рдЖрдгрд┐ рдЕрддрд┐рдереА рдкреБрд╕реНрддрдХрд╛рдЪреНрдпрд╛ рдиреЛрдВрджреА Redis рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рд░реЗрдбрд┐рд╕рд╕рд╣ рд╕рдВрдкреНрд░реЗрд╖рдгрд╛рд╕рд╛рдареА, рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдкрджреНрдзрддреА рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд; рддреНрдпрд╛ рдмрд╛рд╣реНрдп рд▓рд╛рдпрдмреНрд░рд░реАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдирд╛рд╣реАрдд. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХрд░рд┐рддреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рдЖрдгрд┐ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдЪрд╛рдЪрдгреА рдХреЗрд▓реЗрд▓реЗ рдЙрдкрд╛рдп рдЕрд╕рддрд╛рдирд╛ рдореА рд╣реЛрдордмреНрд░реВ рдХреЛрдб рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдореЛрдард╛ рдЪрд╛рд╣рддрд╛ рдирд╛рд╣реА. рдкрд░рдВрддреБ ZeroHTTPd рдЪрд╛ рдЙрджреНрджреЗрд╢ Linux рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреЗ рдЖрдгрд┐ рдмрд╛рд╣реНрдп рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ рд╣рд╛ рдЖрд╣реЗ, рддрд░ HTTP рд╡рд┐рдирдВрддреНрдпрд╛ рд╕рд░реНрд╡реНрд╣ рдХреЗрд▓реНрдпрд╛рдиреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╡рд░ рдЧрдВрднреАрд░ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЛ. рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡реНрд╣рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдордзреНрдпреЗ Redis рд╕рд╣ рд╕рдВрдкреНрд░реЗрд╖рдг рдкреВрд░реНрдгрдкрдгреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ. рдХрд╛рд╣реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдордзреНрдпреЗ рдЖрдореНрд╣реА рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХреЙрд▓ рд╡рд╛рдкрд░рддреЛ, рддрд░ рдХрд╛рд╣реАрдВрдордзреНрдпреЗ рдЖрдореНрд╣реА рдЗрд╡реНрд╣реЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╛рдкрд░рддреЛ. рдмрд╛рд╣реНрдп рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рдгреЗ рд╣реЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдордЪрд╛ рдЫреЛрдЯрд╛ рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдпрдВрдЯ рдлрдХреНрдд рдХрд╛рд╣реА рдХрд╛рд░реНрдпреЗ рдХрд░рддреЛ (рдХреА рдорд┐рд│рд╡рдгреЗ, рд╕реЗрдЯрд┐рдВрдЧ рдХрд░рдгреЗ рдЖрдгрд┐ рд╡рд╛рдврд╡рдгреЗ; рдЕреЕрд░реЗ рдорд┐рд│рд╡рдгреЗ рдЖрдгрд┐ рдЬреЛрдбрдгреЗ). рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд░реЗрдбрд┐рд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЕрддреНрдпрдВрдд рдореЛрд╣рдХ рдЖрдгрд┐ рд╕рд╛рдзреЗ рдЖрд╣реЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рд╡рд┐рд╢реЗрд╖ рд╢рд┐рдХрд╡рдгреНрдпрд╛рдЪреАрд╣реА рдЧрд░рдЬ рдирд╛рд╣реА. рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рд░реНрд╡ рдХрд╛рд░реНрдп рдХреЛрдбрдЪреНрдпрд╛ рд╢рдВрднрд░ рдУрд│реАрдВрдордзреНрдпреЗ рдХрд░рддреЛ рд╣реЗ рдЦрд░рдВ рдЖрд╣реЗ рдХреА рддреЗ рдХрд┐рддреА рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ рд╣реЗ рджрд░реНрд╢рд╡рд┐рддреЗ.

рдХреНрд▓рд╛рдпрдВрдЯ (рдмреНрд░рд╛рдЙрдЭрд░) рд╡рд┐рдирдВрддреА рдХрд░рддреЛ рддреЗрд╡реНрд╣рд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдп рдХрд░рддреЗ рд╣реЗ рдЦрд╛рд▓реАрд▓ рдЖрдХреГрддреА рджрд╛рдЦрд╡рддреЗ /guestbookURL.

рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди. рдкрд░рд┐рдЪрдп
рдЕрддрд┐рдереА рдкреБрд╕реНрддрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ

рдЬреЗрд╡реНрд╣рд╛ рдЕрддрд┐рдереА рдкреБрд╕реНрддрдХ рдкреГрд╖реНрда рдЬрд╛рд░реА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ, рддреЗрд╡реНрд╣рд╛ рдореЗрдорд░реАрдордзреНрдпреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдорд▓рд╛ рдПрдХ рдХреЙрд▓ рдЖрдгрд┐ Redis рд▓рд╛ рддреАрди рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╡рд░реАрд▓ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯрдордзреАрд▓ рдкреГрд╖реНрдард╛рд╕рд╛рдареА рдмрд╣реБрддреЗрдХ HTML рд╕рд╛рдордЧреНрд░реА рдЖрд╣реЗ. рд╕рд╛рдордЧреНрд░реАрдЪреНрдпрд╛ рдбрд╛рдпрдиреЕрдорд┐рдХ рднрд╛рдЧрд╛рд╕рд╛рдареА рд╡рд┐рд╢реЗрд╖ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд: рдкреЛрд╕реНрдЯ рдЖрдгрд┐ рдЕрднреНрдпрд╛рдЧрдд рдХрд╛рдЙрдВрдЯрд░. рдЖрдореНрд╣реА рддреЗ Redis рдХрдбреВрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЛ, рддреНрдпрд╛рдВрдирд╛ рдкреГрд╖реНрдард╛рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЛ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рдкреВрд░реНрдгрдкрдгреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░рддреЛ. Redis рд▓рд╛ рддрд┐рд╕рд░рд╛ рдХреЙрд▓ рдЯрд╛рд│рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдХрд╛рд░рдг Redis рдирд╡реАрди рдХреА рдореВрд▓реНрдп рд╡рд╛рдврд╡рддреЗ рддреЗрд╡реНрд╣рд╛ рдкрд░рдд рдХрд░рддреЗ. рддрдерд╛рдкрд┐, рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА, рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЗрд╡реНрд╣реЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрд╣реЗ, рдмрд░реЗрдЪ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рд╢рд┐рдХрдгреНрдпрд╛рдЪреНрдпрд╛ рд╣реЗрддреВрдВрд╕рд╛рдареА рдПрдХ рдЪрд╛рдВрдЧрд▓реА рдЪрд╛рдЪрдгреА рдЖрд╣реЗ. рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдЕрднреНрдпрд╛рдЧрддрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдЪреЗ рд░реЗрдбрд┐рд╕ рд░рд┐рдЯрд░реНрди рдореВрд▓реНрдп рдЯрд╛рдХреВрди рджреЗрддреЛ рдЖрдгрд┐ рд╡реЗрдЧрд│реНрдпрд╛ рдХреЙрд▓рд╕рд╣ рдХреНрд╡реЗрд░реА рдХрд░рддреЛ.

рд╕рд░реНрд╡реНрд╣рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░реНрд╕ ZeroHTTPd

рдЖрдореНрд╣реА рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╣ рдкрд░рдВрддреБ рднрд┐рдиреНрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╣ ZeroHTTPd рдЪреНрдпрд╛ рд╕рд╛рдд рдЖрд╡реГрддреНрддреНрдпрд╛ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЛрдд:

  • рдкреБрдирд░рд╛рд╡реГрддреНрддреА
  • рдлреЛрд░реНрдХ рд╕рд░реНрд╡реНрд╣рд░ (рдкреНрд░рддрд┐ рд╡рд┐рдирдВрддреА рдПрдХ рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛)
  • рдкреНрд░реА-рдлреЛрд░реНрдХ рд╕рд░реНрд╡реНрд╣рд░ (рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдЪреЗ рдкреВрд░реНрд╡-рдлреЛрд░реНрдХрд┐рдВрдЧ)
  • рдПрдХреНрдЭрд┐рдХреНрдпреБрд╢рди рдереНрд░реЗрдбрд╕рд╣ рд╕рд░реНрд╡реНрд╣рд░ (рдкреНрд░рддрд┐ рд╡рд┐рдирдВрддреА рдПрдХ рдереНрд░реЗрдб)
  • рдкреВрд░реНрд╡-рдереНрд░реЗрдб рдирд┐рд░реНрдорд┐рддреАрд╕рд╣ рд╕рд░реНрд╡реНрд╣рд░
  • рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдзрд╛рд░рд┐рдд poll()
  • рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдзрд╛рд░рд┐рдд epoll

HTTP рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╣ рд╕рд░реНрд╡реНрд╣рд░ рд▓реЛрдб рдХрд░реВрди рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЛрдЬрддреЛ. рдкрд░рдВрддреБ рдЕрддреНрдпрдВрдд рд╕рдорд╛рдВрддрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреА рддреБрд▓рдирд╛ рдХрд░рддрд╛рдирд╛, рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдврддреЗ. рдЖрдореНрд╣реА рддреАрди рд╡реЗрд│рд╛ рдЪрд╛рдЪрдгреА рдХрд░рддреЛ рдЖрдгрд┐ рд╕рд░рд╛рд╕рд░реА рдХрд╛рдврддреЛ.

рдЪрд╛рдЪрдгреА рдкрджреНрдзрдд

рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди. рдкрд░рд┐рдЪрдп
ZeroHTTPd рд▓реЛрдб рдЪрд╛рдЪрдгреА рд╕реЗрдЯрдЕрдк

рд╣реЗ рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рдЪрд╛рдЪрдгреНрдпрд╛ рдЪрд╛рд▓рд╡рддрд╛рдирд╛, рд╕рд░реНрд╡ рдШрдЯрдХ рдПрдХрд╛рдЪ рдорд╢реАрдирд╡рд░ рдЪрд╛рд▓рдд рдирд╛рд╣реАрдд. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, OS рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдУрд╡реНрд╣рд░рд╣реЗрдб рдШреЗрддреЗ рдХрд╛рд░рдг рдШрдЯрдХ CPU рд╕рд╛рдареА рд╕реНрдкрд░реНрдзрд╛ рдХрд░рддрд╛рдд. рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреНрдпрд╛ рдУрд╡реНрд╣рд░рд╣реЗрдб рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреЗ рдореЛрдЬрдорд╛рдк рдХрд░рдгреЗ рд╣реЗ рдпрд╛ рд╡реНрдпрд╛рдпрд╛рдорд╛рдЪреЗ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рдЖрд╣реЗ. рдЕрдзрд┐рдХ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЬреЛрдбрдгреЗ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рдареА рд╣рд╛рдирд┐рдХрд╛рд░рдХ рдард░реЗрд▓. рдореНрд╣рдгреВрди, рд╡рд░реАрд▓ рдЪрд┐рддреНрд░рд╛рддреАрд▓ рд╕реЗрдЯрд┐рдВрдЧ рд╕рд░реНрд╡реЛрддреНрддрдо рдХрд╛рд░реНрдп рдХрд░рддреЗ.

рдпрд╛рдкреИрдХреА рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡реНрд╣рд░ рдХрд╛рдп рдХрд░рддреЛ?

  • load.unixism.net: рдпреЗрдереЗ рдЖрдкрдг рдзрд╛рд╡рддреЛ ab, рдЕрдкрд╛рдЪреЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЙрдкрдпреБрдХреНрддрддрд╛. рд╣реЗ рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рд▓реЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддреЗ.
  • nginx.unixism.net: рдХрд╛рд╣реАрд╡реЗрд│рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЙрджрд╛рд╣рд░рдгреЗ рдЪрд╛рд▓рд╡рд╛рдпрдЪреА рдЕрд╕рддрд╛рдд. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдпреЛрдЧреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ Nginx рд╕рд░реНрд╡реНрд╣рд░ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЛ ab рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рдареА.
  • zerohttpd.unixism.net: рдпреЗрдереЗ рдЖрдореНрд╣реА рдЖрдордЪреЗ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдПрдХрд╛ рд╡реЗрд│реА рдПрдХ, рд╕рд╛рдд рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░реНрд╕рд╡рд░ рдЪрд╛рд▓рд╡рддреЛ.
  • redis.unixism.net: рд╣рд╛ рд╕рд░реНрд╡реНрд╣рд░ рд░реЗрдбрд┐рд╕ рдбрд┐рдорди рдЪрд╛рд▓рд╡рддреЛ, рдЬреЗрдереЗ рдЧреЗрд╕реНрдЯрдмреБрдХ рдиреЛрдВрджреА рдЖрдгрд┐ рдЕрднреНрдпрд╛рдЧрдд рдХрд╛рдЙрдВрдЯрд░ рд╕рд╛рдард╡рд▓реЗ рдЬрд╛рддрд╛рдд.

рд╕рд░реНрд╡ рд╕рд░реНрд╡реНрд╣рд░ рдПрдХрд╛рдЪ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░рд╡рд░ рдЪрд╛рд▓рддрд╛рдд. рдкреНрд░рддреНрдпреЗрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреНрдпрд╛ рдХрдорд╛рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреЗ рд╣реА рдХрд▓реНрдкрдирд╛ рдЖрд╣реЗ. рд╕рд░реНрд╡ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рдЪреА рдЪрд╛рдЪрдгреА рдПрдХрд╛рдЪ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рд╡рд░ рдХреЗрд▓реА рдЬрд╛рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рд╣реА рддреБрд▓рдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдзрд╛рд░рднреВрдд рдЖрд╣реЗ. рдорд╛рдЭреНрдпрд╛ рдЪрд╛рдЪрдгреА рд╕реЗрдЯрдЕрдкрдордзреНрдпреЗ рдбрд┐рдЬрд┐рдЯрд▓ рдорд╣рд╛рд╕рд╛рдЧрд░рд╛рддреВрди рднрд╛рдбреНрдпрд╛рдиреЗ рдШреЗрддрд▓реЗрд▓реНрдпрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ.

рдЖрдореНрд╣реА рдХрд╛рдп рдореЛрдЬрдд рдЖрд╣реЛрдд?

рдЖрдкрдг рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢рдХ рдореЛрдЬреВ рд╢рдХрддрд╛. рдЖрдореНрд╣реА рджрд┐рд▓реЗрд▓реНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рдЪреЗ рдореВрд▓реНрдпрдорд╛рдкрди рд╕рдорд╛рдВрддрд░рддреЗрдЪреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рд╕реНрддрд░рд╛рдВрд╡рд░ рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╣ рд╕рд░реНрд╡реНрд╣рд░ рд▓реЛрдб рдХрд░реВрди рдХрд░рддреЛ: рд▓реЛрдб 20 рддреЗ 15 рд╕рдорд╡рд░реНрддреА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдкрд░реНрдпрдВрдд рд╡рд╛рдврддреЛ.

рдЪрд╛рдЪрдгреА рдирд┐рдХрд╛рд▓

рдЦрд╛рд▓реАрд▓ рддрдХреНтАНрддрд╛ рд╕рдорд╛рдВрддрд░рддреЗрдЪреНтАНрдпрд╛ рд╡рд┐рд╡рд┐рдз рд╕реНтАНрддрд░рд╛рдВрд╡рд░ рд╡рд┐рд╡рд┐рдз рдЖрд░реНрдХрд┐рдЯреЗрдХреНтАНрдЪрд░рд╡рд░ рд╕рд░реНрд╡реНрд╣рд░рдЪреА рдХрд╛рдордЧрд┐рд░реА рджрд░реНрд╢рд╡рд┐рддреЗ. y-рдЕрдХреНрд╖ рд╣реА рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рд╡рд┐рдирдВрддреАрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЖрд╣реЗ, x-рдЕрдХреНрд╖ рд╕рдорд╛рдВрддрд░ рдЬреЛрдбрдгреА рдЖрд╣реЗ.

рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди. рдкрд░рд┐рдЪрдп

рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди. рдкрд░рд┐рдЪрдп

рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди. рдкрд░рд┐рдЪрдп

рдЦрд╛рд▓реА рдкрд░рд┐рдгрд╛рдорд╛рдВрд╕рд╣ рдПрдХ рд╕рд╛рд░рдгреА рдЖрд╣реЗ.

рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рд╡рд┐рдирдВрддреНрдпрд╛

рд╕рдорд╛рдВрддрд░рддрд╛
рдкреБрдирд░рд╛рд╡реГрддреНрддреА
рдХрд╛рдЯрд╛
рдкреВрд░реНрд╡-рдХрд╛рдЯрд╛
рдкреНрд░рд╡рд╛рд╣
рдкреНрд░реА-рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ
рдорддрджрд╛рди
epoll

20
7
112
2100
1800
2250
1900
2050

50
7
190
2200
1700
2200
2000
2000

100
7
245
2200
1700
2200
2150
2100

200
7
330
2300
1750
2300
2200
2100

300
-
380
2200
1800
2400
2250
2150

400
-
410
2200
1750
2600
2000
2000

500
-
440
2300
1850
2700
1900
2212

600
-
460
2400
1800
2500
1700
2519

700
-
460
2400
1600
2490
1550
2607

800
-
460
2400
1600
2540
1400
2553

900
-
460
2300
1600
2472
1200
2567

1000
-
475
2300
1700
2485
1150
2439

1500
-
490
2400
1550
2620
900
2479

2000
-
350
2400
1400
2396
550
2200

2500
-
280
2100
1300
2453
490
2262

3000
-
280
1900
1250
2502
рдореЛрдард╛ рдкреНрд░рд╕рд╛рд░
2138

5000
-
рдореЛрдард╛ рдкреНрд░рд╕рд╛рд░
1600
1100
2519
-
2235

8000
-
-
1200
рдореЛрдард╛ рдкреНрд░рд╕рд╛рд░
2451
-
2100

10
-
-
рдореЛрдард╛ рдкреНрд░рд╕рд╛рд░
-
2200
-
2200

11
-
-
-
-
2200
-
2122

12
-
-
-
-
970
-
1958

13
-
-
-
-
730
-
1897

14
-
-
-
-
590
-
1466

15
-
-
-
-
532
-
1281

рдЖрд▓реЗрдЦ рдЖрдгрд┐ рд╕рд╛рд░рдгреАрд╡рд░реВрди рдЕрд╕реЗ рджрд┐рд╕реВрди рдпреЗрддреЗ рдХреА 8000 рд╡рд░реАрд▓ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдлрдХреНрдд рджреЛрди рдЦреЗрд│рд╛рдбреВ рдЖрд╣реЗрдд: рдкреНрд░реА-рдлреЛрд░реНрдХ рдЖрдгрд┐ рдЗрдкреЛрд▓. рд▓реЛрдб рд╡рд╛рдврдд рдЕрд╕рддрд╛рдирд╛, рдкреЛрд▓-рдЖрдзрд╛рд░рд┐рдд рд╕рд░реНрд╡реНрд╣рд░ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧрдкреЗрдХреНрд╖рд╛ рд╡рд╛рдИрдЯ рдХрд╛рдордЧрд┐рд░реА рдХрд░рддреЛ. рдереНрд░реЗрдб-рдкреНрд░реА-рдХреНрд░рд┐рдПрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реЗ рдЗрдкреЛрд▓рд╕рд╛рдареА рдпреЛрдЧреНрдп рд╕реНрдкрд░реНрдзрдХ рдЖрд╣реЗ, рдЬреЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдереНрд░реЗрдбреНрд╕ рдХрд┐рддреА рдЪрд╛рдВрдЧрд▓реЗ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рддреЗ рдпрд╛рдЪрд╛ рдкреБрд░рд╛рд╡рд╛ рдЖрд╣реЗ.

ZeroHTTPd рд╕реНрддреНрд░реЛрдд рдХреЛрдб

ZeroHTTPd рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдпреЗрдереЗ. рдкреНрд░рддреНрдпреЗрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЖрд╣реЗ.

ZeroHTTPd тФВ тФЬтФАтФА 01_рдкреБрдирд░рд╛рд╡реГрддреНрддреА тФВ тФЬтФАтФА main.c тФЬтФАтФА 02_forking тФВ тФЬтФАтФА main.c тФЬтФАтФА main.c тФЬтФАтФА 03_preforking тФЬтФАтФА main. 04_ рдереНрд░реЗрдбрд┐рдВрдЧ тФВ тФЬтФАтФА main.c тФЬтФАтФА 05_рдкреНрд░реАрдереНрд░реЗрдбрд┐рдВрдЧ тФВ тФЬтФАтФА main.c тФЬтФАтФА 06_рдорддрджрд╛рди тФВ тФЬтФАтФА main.c тФЬтФАтФА 07_epoll тФВ тФФтФАтФА main.c тФЬтФЬтФАтФА main.c тФЬ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░рд╛ тФЬтФАтФА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ .html тФВ тФФтФАтФА рдЯрдХреНрд╕ png тФФтФАтФА рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ тФФтФАтФА рдЕрддрд┐рдереАрдкреБрд╕реНрддрдХ тФФтФАтФА index.html

рд╕рд░реНрд╡ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░реНрд╕рд╕рд╛рдареА рд╕рд╛рдд рдбрд┐рд░реЗрдХреНрдЯрд░реА рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЖрдгрдЦреА рджреЛрди рдЖрд╣реЗрдд: рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдгрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕. рдкрд╣рд┐рд▓реНрдпрд╛рдордзреНрдпреЗ index.html рдлрд╛рдЗрд▓ рдЖрдгрд┐ рдкрд╣рд┐рд▓реНрдпрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯрдордзреАрд▓ рдкреНрд░рддрд┐рдорд╛ рдЖрд╣реЗ. рддреБрдореНрд╣реА рдЗрддрд░ рдлрд╛рдЗрд▓реНрд╕ рдЖрдгрд┐ рдлреЛрд▓реНрдбрд░реНрд╕ рддрд┐рдереЗ рдареЗрд╡реВ рд╢рдХрддрд╛ рдЖрдгрд┐ ZeroHTTPd рдиреЗ рддреНрдпрд╛ рд╕реНрдЯреЕрдЯрд┐рдХ рдлрд╛рдЗрд▓реНрд╕ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рдорд╕реНрдпрд╛рдВрд╢рд┐рд╡рд╛рдп рд╕рд░реНрд╡реНрд╣ рдХреЗрд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд. рдЬрд░ рдмреНрд░рд╛рдЙрдЭрд░рдордзреАрд▓ рдкрде рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлреЛрд▓реНрдбрд░рдордзреАрд▓ рдкрдерд╛рд╢реА рдЬреБрд│рдд рдЕрд╕реЗрд▓, рддрд░ ZeroHTTPd рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрддреАрд▓ index.html рдлрд╛рдЗрд▓ рд╢реЛрдзрддреЗ. рдЕрддрд┐рдереА рдкреБрд╕реНрддрдХрд╛рд╕рд╛рдареА рд╕рд╛рдордЧреНрд░реА рдЧрддрд┐рд╢реАрд▓рдкрдгреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реА рдЬрд╛рддреЗ. рддреНрдпрд╛рдд рдлрдХреНрдд рдореБрдЦрдкреГрд╖реНрда рдЖрд╣реЗ, рдЖрдгрд┐ рддреНрдпрд╛рдЪреА рд╕рд╛рдордЧреНрд░реА 'templates/guestbook/index.html' рдлрд╛рдЗрд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ. ZeroHTTPd рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╕рд╛рдареА рдбрд╛рдпрдиреЕрдорд┐рдХ рдкреГрд╖реНрдареЗ рд╕рд╣рдЬ рдЬреЛрдбрддреЗ. рдХрд▓реНрдкрдирд╛ рдЕрд╢реА рдЖрд╣реЗ рдХреА рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреЛрдбреВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ ZeroHTTPd рд╡рд╛рдврд╡реВ рд╢рдХрддрд╛рдд.

рд╕рд░реНрд╡ рд╕рд╛рдд рд╕рд░реНрд╡реНрд╣рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЪрд╛рд▓рд╡рд╛ make all рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрддреВрди - рдЖрдгрд┐ рд╕рд░реНрд╡ рдмрд┐рд▓реНрдбреНрд╕ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рджрд┐рд╕рддреАрд▓. рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕ рдЬреНрдпрд╛ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреВрди рд▓реЙрдиреНрдЪ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рддреНрдпрд╛ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдгрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдбрд┐рд░реЗрдХреНрдЯрд░реА рд╢реЛрдзрддрд╛рдд.

рд▓рд┐рдирдХреНрд╕ API

рдпрд╛ рд▓реЗрдЦ рдорд╛рд▓рд┐рдХреЗрддреАрд▓ рдорд╛рд╣рд┐рддреА рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ Linux API рдордзреНрдпреЗ рдкрд╛рд░рдВрдЧрдд рдЕрд╕рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рддрдерд╛рдкрд┐, рдореА рдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░ рдЕрдзрд┐рдХ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ; рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдЕрдиреЗрдХ рд╕рдВрджрд░реНрдн рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрд╣реЗрдд. рдЬрд░реА рдЖрдореНрд╣реА Linux API рдЪреНрдпрд╛ рдЕрдиреЗрдХ рд╢реНрд░реЗрдгреАрдВрдирд╛ рд╕реНрдкрд░реНрд╢ рдХрд░рдгрд╛рд░ рдЕрд╕рд▓реЛ рддрд░реА рдЖрдордЪреЗ рд▓рдХреНрд╖ рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдереНрд░реЗрдбреНрд╕, рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреЕрдХрд╡рд░ рдЕрд╕реЗрд▓. рд▓рд┐рдирдХреНрд╕ API рдмрджреНрджрд▓ рдкреБрд╕реНрддрдХреЗ рдЖрдгрд┐ рд▓реЗрдЦрд╛рдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдореА рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓реНрд╕ рдЖрдгрд┐ рд▓рд╛рдпрдмреНрд░рд░реА рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдорд╛рдирд╛ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рджреЗрдЦреАрд▓ рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ.

рдХрд╛рдордЧрд┐рд░реА рдЖрдгрд┐ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА

рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЖрдгрд┐ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдмрджреНрджрд▓ рдПрдХ рдЯреАрдк. рд╕реИрджреНрдзрд╛рдВрддрд┐рдХрджреГрд╖реНрдЯреНрдпрд╛, рддреНрдпрд╛рдВрдЪреНрдпрд╛рдордзреНрдпреЗ рдХреЛрдгрддрд╛рд╣реА рд╕рдВрдмрдВрдз рдирд╛рд╣реА. рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрд╢реА рд╡реЗрдм рд╕реЗрд╡рд╛ рдЕрд╕реВ рд╢рдХрддреЗ рдЬреА рдХрд╛рд╣реА рдорд┐рд▓рд┐рд╕реЗрдХрдВрджрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рд╡реЗрд│реЗрд╕рд╣ рдЦреВрдк рдЪрд╛рдВрдЧрд▓реА рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдкрд░рдВрддреБ рддреА рдЕрдЬрд┐рдмрд╛рдд рдореЛрдЬрдд рдирд╛рд╣реА. рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ, рдПрдХ рдЦрд░рд╛рдм рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдХрд░рдгрд╛рд░рд╛ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрд╕реВ рд╢рдХрддреЛ рдЬреНрдпрд╛рд▓рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рд╕реЗрдХрдВрдж рд▓рд╛рдЧрддрд╛рдд, рдкрд░рдВрддреБ рд╣рдЬрд╛рд░реЛ рд╕рдорд╡рд░реНрддреА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рддреЗ рджрд╣рд╛рдкрдЯреАрдиреЗ рдореЛрдЬрд▓реЗ рдЬрд╛рддреЗ. рддрдерд╛рдкрд┐, рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреАрдЪреЗ рд╕рдВрдпреЛрдЬрди рд╣реЗ рдПрдХ рдЕрддрд┐рд╢рдп рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рдВрдпреЛрдЬрди рдЖрд╣реЗ. рдЙрдЪреНрдЪ-рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪрд╛ рдХрдореА рд╡рд╛рдкрд░ рдХрд░рддрд╛рдд рдЖрдгрд┐ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЕрдзрд┐рдХ рд╕рдорд╡рд░реНрддреА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рд╕реЗрд╡рд╛ рджреЗрддрд╛рдд, рдЦрд░реНрдЪ рдХрдореА рдХрд░рддрд╛рдд.

CPU рдЖрдгрд┐ I/O рдХрд╛рд░реНрдпреЗ

рд╢реЗрд╡рдЯреА, рд╕рдВрдЧрдгрдирд╛рдордзреНрдпреЗ рдиреЗрд╣рдореА рджреЛрди рд╕рдВрднрд╛рд╡реНрдп рдкреНрд░рдХрд╛рд░рдЪреА рдХрд╛рд░реНрдпреЗ рдЕрд╕рддрд╛рдд: I/O рдЖрдгрд┐ CPU рд╕рд╛рдареА. рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░реВрди рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ (рдиреЗрдЯрд╡рд░реНрдХ I/O), рдлрд╛рдЗрд▓реНрд╕ рд╕рд░реНрд╡реНрд╣ рдХрд░рдгреЗ (рдиреЗрдЯрд╡рд░реНрдХ рдЖрдгрд┐ рдбрд┐рд╕реНрдХ I/O), рдбреЗрдЯрд╛рдмреЗрд╕ (рдиреЗрдЯрд╡рд░реНрдХ рдЖрдгрд┐ рдбрд┐рд╕реНрдХ I/O) рд╢реА рд╕рдВрдкреНрд░реЗрд╖рдг рдХрд░рдгреЗ рдпрд╛ рд╕рд░реНрд╡ I/O рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдк рдЖрд╣реЗрдд. рдХрд╛рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдереЛрдбреНрдпрд╛ CPU рдЧрд╣рди рдЕрд╕реВ рд╢рдХрддрд╛рдд (рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рдгреЗ, рдПрдХ рджрд╢рд▓рдХреНрд╖ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреА рд╕рд░рд╛рд╕рд░реА рдХрд╛рдврдгреЗ рдЗ.). рдмрд╣реБрддреЗрдХ рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рд╕рдВрднрд╛рд╡реНрдп I/O рджреНрд╡рд╛рд░реЗ рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗрдд рдЖрдгрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреНрд╡рдЪрд┐рддрдЪ рдкреВрд░реНрдг рдХреНрд╖рдорддреЗрдиреЗ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдкрд╛рд╣рддрд╛ рдХреА рдХрд╛рд╣реА I/O рдХрд╛рд░реНрдп рднрд░рдкреВрд░ CPU рд╡рд╛рдкрд░рдд рдЖрд╣реЗ, рддреЗрд╡реНрд╣рд╛ рд╣реЗ рдмрд╣реБрдзрд╛ рдЦрд░рд╛рдм рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреЗ рд▓рдХреНрд╖рдг рдЖрд╣реЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рд╣реЛрдК рд╢рдХрддреЛ рдХреА CPU рд╕рдВрд╕рд╛рдзрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрдгрд┐ рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд┐рдВрдЧрд╡рд░ рд╡рд╛рдпрд╛ рдЬрд╛рддрд╛рдд - рдЖрдгрд┐ рд╣реЗ рдкреВрд░реНрдгрдкрдгреЗ рдЙрдкрдпреБрдХреНрдд рдирд╛рд╣реА. рдЬрд░ рддреБрдореНрд╣реА рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рдСрдбрд┐рдУ рдлрд╛рдЗрд▓ рдХрдиреНрд╡реНрд╣рд░реНрдЬрди рдХрд┐рдВрд╡рд╛ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА рдХрд░рдд рдЕрд╕рд╛рд▓, рддрд░ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирд▓рд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА CPU рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд. рдкрд░рдВрддреБ рдмрд╣реБрддреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рдЕрд╕реЗ рдирд╛рд╣реА.

рд╕рд░реНрд╡реНрд╣рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреНрдпрд╛

  1. рднрд╛рдЧ I: рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
  2. рднрд╛рдЧ рджреБрд╕рд░рд╛. рдлреЛрд░реНрдХ рд╕рд░реНрд╡реНрд╣рд░
  3. рднрд╛рдЧ рддрд┐рд╕рд░рд╛. рдкреНрд░реА-рдлреЛрд░реНрдХ рд╕рд░реНрд╡реНрд╣рд░
  4. рднрд╛рдЧ IV. рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рдереНрд░реЗрдбрд╕рд╣ рд╕рд░реНрд╡реНрд╣рд░
  5. рднрд╛рдЧ V. рдкреНрд░реА-рдереНрд░реЗрдбреЗрдб рд╕рд░реНрд╡реНрд╣рд░
  6. рднрд╛рдЧ рд╕рд╣рд╛рд╡рд╛. рдкреЛрд▓-рдЖрдзрд╛рд░рд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
  7. рднрд╛рдЧ VII. рдЗрдкреЛрд▓-рдЖрдзрд╛рд░рд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛