Π£Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅, Π° ΡΡΠ΅Π΄ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π³ΠΎΠ»ΡΠΌ Π΄ΡΠ» Π·Π°Π΅ΠΌΠ° HTTP. ΠΠ·ΡΠ»Π΅Π΄Π²Π°ΠΉΠΊΠΈ Π½ΡΠ°Π½ΡΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° (Dev) ΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ (Ops) ΡΠ°ΠΌΠΎ Π²Π»ΠΎΡΠ°Π²Π° ΡΠΈΡΡΠ°ΡΠΈΡΡΠ°. ΠΠΎ Ρ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΡΠ»ΡΡΡΠ°ΡΠ° DevOps ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° Π½ΠΎΡΡΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΠΊΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΡΡΡ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°ΡΡ Π² Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ Ρ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠ΅Π½Π½ΠΎ, Π°ΠΊΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Ρ ΠΈΠ»ΡΠ΄ΠΈ ΠΈΠ»ΠΈ Π΄Π΅ΡΠ΅ΡΠΊΠΈ Ρ ΠΈΠ»ΡΠ΄ΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½ΠΈΡ.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° Π² ΡΠ΅Π± ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° Π² Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΠΈ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈΠ»ΠΈ ΡΡΡΠ²ΡΡΠΈ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ°Ρ ΡΡ ΠΎΠ΄Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΡΡΠ΅Π΄Π° Ρ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΡΡΡ Π½ΠΎΡΠΎ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»ΡΠ²Π°Π½Π΅ Π² ΠΎΠ±ΡΠΈ Π»ΠΈΠ½ΠΈΠΈ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΎΡΠ΅Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΠ° Π½Π° Π²Π°ΡΠΈΡΠ΅ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΈΡΠ° ΡΠ°Π·ΠΈ ΡΠ΅ΡΠΈΡ ΡΡΠ°ΡΠΈΠΈ Π² ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° Π²ΡΠΏΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΌΠ»Π°Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΡΠ°Π½Π°Ρ Π΄ΠΎΠ±ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ°Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΠΈ. ΠΠ΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ°Ρ ΡΡΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π² Linux, Π±Π΅Π· Π΄Π° ΡΠ΅ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠΈΠΌ Π² ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΡΡ Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΡΠΎΠ·ΠΈ ΡΠΈΠΊΡΠ» ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°ΠΌ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π΄Π΅ΡΠΊΡΠΎΠΏ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ Π±ΡΠ°ΡΠ·ΡΡΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΈ. Π’ΠΎΠ·ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ°Ρ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ Π² Linux ΠΈΠ»ΠΈ Unix ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Ρ Π·Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
Linux Π΅ ΡΡΡΠ²ΡΡΠ½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΠ°Π·ΠΈ ΠΠ‘. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΊΠ°Π·Π²Π°ΠΌ "Linux", ΠΏΡΠ΅Π· ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ ΡΠ²Π΅ΡΠ΅Π½ΠΎΡΡ Π΄Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅, ΡΠ΅ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ. ΠΡΠ΅ ΠΏΠ°ΠΊ, Π½Π΅ ΡΡΠΌ ΡΠ΅ΡΡΠ²Π°Π» ΠΏΡΠΈΠ΄ΡΡΠΆΠ°Π²Π°ΡΠΈΡ ΠΊΠΎΠ΄ Π½Π° Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. Π’Π°ΠΊΠ° ΡΠ΅, Π°ΠΊΠΎ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ FreeBSD ΠΈΠ»ΠΈ OpenBSD, ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π°ΡΠΈΡΠ°. ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΠ±Π²Π°ΠΌ Π½Π΅ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎ Π·Π° Linux, Π°Π· Π³ΠΎ ΠΏΠΎΡΠΎΡΠ²Π°ΠΌ.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΡΠΈΡΠ΅ Π·Π½Π°Π½ΠΈΡ, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ Π½ΡΠ»Π°ΡΠ°, ΠΈ ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ, Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° Π½Π΅ Π³ΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅. ΠΠΊΠΎ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π½ΠΎΠ² ΡΠ΅Π± ΡΡΡΠ²ΡΡ Π½Π° C ΠΈΠ»ΠΈ C++ Π·Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ Π²ΠΈ Π΄Π΅Π½ Π½Π° ΡΠ°Π±ΠΎΡΠ°. ΠΡΠ΅ ΠΏΠ°ΠΊ, ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ ΠΏΡΠΈ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. Π©Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°Π²Π½ΡΠ²Π°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ, Ρ ΡΠ°ΠΊΠΈΠ²Π°, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΏΠΎΡΠΎΡΠΈ, Π° ΡΡΡΠΎ ΠΈ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ. Π©Π΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΈ ΠΎΡΠ΅Π½ΠΈΡΠ΅ Π·Π°ΡΠΎ Nginx ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΎΡ Apache httpd, Π·Π°ΡΠΎ Python ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° Tornado, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Python ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° Django.
ZeroHTTPd: ΡΡΠ΅Π±Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ
Β β ΡΠ΅Π± ΡΡΡΠ²ΡΡ, ΠΊΠΎΠΉΡΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ ΠΎΡ Π½ΡΠ»Π°ΡΠ° Π½Π° C ΠΊΠ°ΡΠΎ ΡΡΠ΅Π±Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΡΠΌΠ° Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Redis. ΠΠΈΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ Redis ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ. ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ-Π΄ΠΎΠ»Ρ.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠ±ΡΡΠΆΠ΄Π°ΠΌΠ΅ ΡΠ΅ΠΎΡΠΈΡ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½ΡΠΌΠ° Π½ΠΈΡΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΠΎΡ ΡΠΎΠ²Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄, Π΄Π° Π³ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΈ Π΄Π° ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ Π½Π° ΡΡΡΠ²ΡΡΠΈ. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄. ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ ZeroHTTPd, ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π²ΡΡΠΊΠ° ΠΎΡ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ: Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΏΠΎΡΠΎΡΠΈ ΠΈ ΡΡΠ±ΠΈΡΠΈΡ. Π©Π΅ ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΡΡΡΠ²ΡΡΠΈ ΠΈ ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΡΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ. ZeroHTTPd Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π² Π΅Π΄ΠΈΠ½ C ΡΠ°ΠΉΠ». Π‘ΡΡΡΠ°Π²ΡΡ Π½Π° ΡΡΡΠ²ΡΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π²ΠΊΠ»ΡΡΠ²Π° , ΠΎΡΠ»ΠΈΡΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π² Π΅Π΄ΠΈΠ½ Π·Π°Π³Π»Π°Π²Π΅Π½ ΡΠ°ΠΉΠ». Π ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ Π½ΡΠΌΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΡΡ.
Π ΠΊΠΎΠ΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ ΠΏΡΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΡΠ΄Π΅ΠΉΠΊΠΈ ΠΏΡΠΎΡΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π° ΠΊΠΎΠ΄, ZeroHTTPd ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π·Π° ΡΠ΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, Π½ΠΎ Π΅ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° ΠΈΠ·Π΄Π°Π²Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΈ βΠ΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈβ ΡΡΡΠ°Π½ΠΈΡΠΈ. Π’ΡΡΠ±Π²Π° Π΄Π° ΠΊΠ°ΠΆΠ°, ΡΠ΅ ZeroHTTPd Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ Π·Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ Linux ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ΅Π± ΡΡΠ»ΡΠ³ΠΈ ΡΠ°ΠΊΠ°Ρ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ Π³ΠΈ ΠΈ Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ZeroHTTPd. Π’ΠΎΠ²Π° Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ. ΠΠ΅ Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π΄ΠΎΠ±ΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π΅Π΄Π²Π° Π»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡ
Π²Π°Π»ΠΈ Ρ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ (ΠΎ Π΄Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ
strcpy) ΠΈΠ»ΠΈ Ρ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΡΡΠΊΠ°ΠΌΠΈ Π½Π° C. ΠΠΎ Ρ Π½Π°Π΄Π΅ΡΡΡ, ΡΠΎΠΉ Π΅ ΡΠΏΡΠ°Π²ΠΈΡΡΡ Ρ Π·Π°Π΄Π°ΡΠ΅ΠΉ.

ΠΠ°ΡΠ°Π»Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π° ZeroHTTPd. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΊΠ½ΠΈΠ³Π° Ρ Π³ΠΎΡΡΠΈ.
Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Ρ Π΄ΠΎ ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π’Π΅ ΠΈΠΌΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ΅ΡΠΎΠ²Π΅ ΠΈ Ρ.Π½. ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΡΠ΅ΡΠ΅Π½ΠΎ βΠΠ½ΠΈΠ³Π° Π·Π° Π³ΠΎΡΡΠΈβ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΎΡΡΠ°Π²ΡΡ Π·Π°ΠΏΠΈΡΠΈ Ρ ΠΈΠΌΠ΅Π½Π°ΡΠ° ΡΠΈ. Π ΠΊΠ½ΠΈΠ³Π°ΡΠ° Π·Π° Π³ΠΎΡΡΠΈ ΡΠ΅ Π·Π°ΠΏΠ°Π·Π²Π°Ρ Π·Π°ΠΏΠΈΡΠΈ, ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΏΠΎ-ΡΠ°Π½ΠΎ. ΠΠΌΠ° ΠΈ Π±ΡΠΎΡΡ Π½Π° ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈΡΠ΅ Π² Π΄ΠΎΠ»Π½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°.

Π£Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ βΠΠ½ΠΈΠ³Π° Π·Π° Π³ΠΎΡΡΠΈβ Π½Π° ZeroHTTPd.
ΠΡΠΎΡΡΡΡ Π½Π° ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΊΠ½ΠΈΠ³Π°ΡΠ° Π·Π° Π³ΠΎΡΡΠΈ ΡΠ΅ ΡΡ Ρ ΡΠ°Π½ΡΡ Π² Redis. ΠΠ° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ Ρ Redis ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π²ΡΠ½ΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠ΅ ΡΡΠΌ Π³ΠΎΠ»ΡΠΌ ΠΏΡΠΈΠ²ΡΡΠΆΠ΅Π½ΠΈΠΊ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠ°ΠΌΠΎΠ΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΈ Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅ΡΡΠ²Π°Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠΎ ΡΠ΅Π»ΡΠ° Π½Π° ZeroHTTPd Π΅ Π΄Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Linux ΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ Π²ΡΠ½ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° HTTP Π·Π°ΡΠ²ΠΊΠΈ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π²Π»ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. Π’ΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π°Π΄ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΡΠ° Ρ Redis Π²ΡΠ² Π²ΡΡΠΊΠ° ΠΎΡ Π½Π°ΡΠΈΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ Π½Π° ΡΡΡΠ²ΡΡΠΈ. Π Π΅Π΄Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ, Π² Π΄ΡΡΠ³ΠΈ - ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ½ΡΠ½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Redis Π½Π΅ Π±ΠΈ ΠΎΡΠΈΠ³ΡΡΠΈΠ»ΠΎ ΡΠ°ΠΊΡΠ² ΠΊΠΎΠ½ΡΡΠΎΠ». ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π½Π°ΡΠΈΡΡ ΠΌΠ°Π»ΡΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ Redis ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠ°; ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ ΠΊΡΠΌ ΠΌΠ°ΡΠΈΠ²). Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ Π½Π° Redis Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΅Π»Π΅Π³Π°Π½ΡΠ΅Π½ ΠΈ ΠΏΡΠΎΡΡ. ΠΠ΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠΈ. Π€Π°ΠΊΡΡΡ, ΡΠ΅ ΡΡΠ»Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Ρ ΠΎΠΊΠΎΠ»ΠΎ ΡΡΠΎ ΡΠ΅Π΄Π° ΠΊΠΎΠ΄, ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΎΠ±ΡΠ΅ Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½.
ΠΠ° ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡ
Π΅ΠΌΠ° ΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ (Π±ΡΠ°ΡΠ·Π΅ΡΡΡ) ΠΏΡΠ°Π²ΠΈ Π·Π°ΡΠ²ΠΊΠ°. /guestbookURL.

ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΊΠ½ΠΈΠ³Π° Ρ Π³ΠΎΡΡΠΈ.
ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·Π΄Π°Π΄Π΅ ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° Π·Π° Π³ΠΎΡΡΠΈ, ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ²ΠΈΠΊ ΠΊΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π·Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΡΡ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΈ ΡΡΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ° ΠΊΡΠΌ Redis. Π€Π°ΠΉΠ»ΡΡ Π½Π° ΡΠ°Π±Π»ΠΎΠ½Π° ΡΡΠ΄ΡΡΠΆΠ° Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°ΡΡ ΠΎΡ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° HTML Π·Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° Π΅ΠΊΡΠ°Π½Π° Π² Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ. Π’Π°ΠΌ ΠΈΠΌΠ° ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Π·Π°ΠΏΡΠ»Π²Π°ΡΠΈ ΠΌΠ΅ΡΡΠ° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ: Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π±ΡΠΎΠΉ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ. ΠΠΈΠ΅ Π³ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΎΡ Redis, Π²ΠΌΡΠΊΠ²Π°ΠΌΠ΅ Π³ΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΈ ΠΈΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡΠΎΡΠΌΠ΅Π½ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π’ΡΠ΅ΡΠΎΡΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ ΠΊΡΠΌ Redis ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ Redis Π²ΡΡΡΠ° Π½ΠΎΠ²ΠΎΡΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΊΠ»ΡΡΠ° ΠΏΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π·Π° Π½Π°ΡΠΈΡ ΡΡΡΠ²ΡΡ Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΡΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π΅ Π΄ΠΎΠ±ΡΠΎ ΠΈΠ·ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π² ΡΡΠ΅Π±Π½ΠΈ ΡΠ΅Π»ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π½ΠΈΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π°ΠΌΠ΅, ΡΠ΅ Redis Π½Π΅ Π½ΠΈ Π΄Π°Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Π±ΡΠΎΡ Π½Π° ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΈ Π³ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅.
Π‘ΡΡΠ²ΡΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ ZeroHTTPd
ΠΠΈΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ ΡΠ΅Π΄Π΅ΠΌ Π²Π΅ΡΡΠΈΠΈ Π½Π° ZeroHTTPd Ρ Π΅Π΄Π½Π°ΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, Π½ΠΎ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ:
- ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½Π°
- Π€ΠΎΡΠΊ ΡΡΡΠ²ΡΡ (Π΅Π΄ΠΈΠ½ Π΄ΡΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅)
- ΠΡΠ΅-ΡΠΎΡΠΊ ΡΡΡΠ²ΡΡ (ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠΎΡΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅)
- Π‘ΡΡΠ²ΡΡ Ρ Π½ΠΈΡΠΊΠΈ (Π΅Π΄Π½Π° Π½ΠΈΡΠΊΠ° Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅)
- Π‘ΡΡΠ²ΡΡ Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Π½ΠΈΡΠΊΠΈ
- ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Π±Π°Π·Π°
poll() - ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Π±Π°Π·Π°
epoll
ΠΠ·ΠΌΠ΅ΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π²ΡΡΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠ°ΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΠΌΠ΅ ΡΡΡΠ²ΡΡΠ° Ρ HTTP Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ. ΠΠΎ ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ Ρ Π²ΠΈΡΠΎΠΊΠ° ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ, Π±ΡΠΎΡΡ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°. Π’Π΅ΡΡΠΎΠ²Π°ΠΌΠ΅ ΡΡΠΈ ΠΏΡΡΠΈ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ ΡΡΠ΅Π΄Π½ΠΎΡΠΎ.
ΠΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅

ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π·Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ZeroHTTPd
ΠΠ°ΠΆΠ½ΠΎ Π΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅, Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΡΡ Π½Π° Π΅Π΄Π½Π° ΠΌΠ°ΡΠΈΠ½Π°. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΠ‘ Π½ΠΎΡΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ ΡΠ΅ ΡΡΡΡΠ΅Π·Π°Π²Π°Ρ Π·Π° CPU. ΠΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ Π²ΡΡΠΊΠ° ΠΎΡ ΠΈΠ·Π±ΡΠ°Π½ΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΠ΅ ΡΠ΅Π»ΠΈ Π½Π° ΡΠΎΠ²Π° ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅. ΠΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠ°Π³ΡΠ±Π½ΠΎ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅.
ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΡΡΡΠ²ΡΡΠΈ
- load.unixism.net: ΡΡΠΊ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅
ab, ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° Apache Benchmark. Π’Ρ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ. - nginx.unixism.net: ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° ΡΡΡΠ²ΡΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°. ΠΠ° ΡΠ΅Π»ΡΠ° ΡΡΡΠ²ΡΡΡΡ Nginx Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΡΠΎ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, ΠΈΠ΄Π²Π°ΡΠΎ ΠΎΡ ab Π½Π°ΡΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ.
- zerohttpd.unixism.net: ΡΡΠΊ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π½Π° ΡΠ΅Π΄Π΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, ΠΏΠΎ Π΅Π΄Π½Π° Π½Π° Π²Π΅Π΄Π½ΡΠΆ.
- redis.unixism.net: Π½Π° ΡΠΎΠ·ΠΈ ΡΡΡΠ²ΡΡ ΡΠ°Π±ΠΎΡΠΈ Π΄Π΅ΠΌΠΎΠ½ Redis, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π² Π³ΠΎΡΡΠ½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΈ Π±ΡΠΎΡΡΠ° Π½Π° ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈΡΠ΅.
ΠΡΠΈΡΠΊΠΈ ΡΡΡΠ²ΡΡΠΈ ΡΠ°Π±ΠΎΡΡΡ Π½Π° Π΅Π΄Π½ΠΎ ΡΠ΄ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΠ΄Π΅ΡΡΠ° Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠ΅Π½ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° Π²ΡΡΠΊΠ° ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈΡΠ΅. ΠΠΎΠ½Π΅ΠΆΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΡΠ²ΡΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΡΠ΅ ΡΠ΅ΡΡΠ²Π°Ρ Π½Π° Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅, ΡΠΎΠ²Π° Π΅ Π±Π°Π·ΠΎΠ²ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π·Π° ΡΡΡ Π½ΠΎΡΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. ΠΠΎΡΡΠ° ΡΠ΅ΡΡΠΎΠ²Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΡΡΠ²ΡΡΠΈ, Π½Π°Π΅ΡΠΈ ΠΎΡ Digital Ocean.
ΠΠ°ΠΊΠ²ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°ΠΌΠ΅?
ΠΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ. ΠΡΠ΅Π½ΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π²ΡΡΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π² ΡΠ°Π·ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΠΉΠΊΠΈ ΡΡΡΠ²ΡΡΠΈΡΠ΅ Ρ Π·Π°ΡΠ²ΠΊΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½ΠΈΠ²Π° Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ: Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π°ΡΠ°ΡΡΠ²Π° ΠΎΡ 20 Π΄ΠΎ 15 000 Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅
ΠΠ° ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½ΠΈΠ²Π° Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ. ΠΠΎ ΠΎΡΡΠ° y β Π±ΡΠΎΠΉ Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, ΠΏΠΎ ΠΎΡΡΠ° x β ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ.



ΠΠΎ-Π΄ΠΎΠ»Ρ Π΅ ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅.
Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°
ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ
ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½
ΡΠΎΡΠΊ
ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅
ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ΅Π½
ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ΅Π½
poll
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Β 000
β
β
Π³ΠΎΠ»ΡΠΌΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅
β
2200
β
2200
11Β 000
β
β
β
β
2200
β
2122
12Β 000
β
β
β
β
970
β
1958
13Β 000
β
β
β
β
730
β
1897
14Β 000
β
β
β
β
590
β
1466
15Β 000
β
β
β
β
532
β
1281
ΠΡ Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ° ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΡΡΠ°Π²Π° ΡΡΠ½ΠΎ, ΡΠ΅ Π½Π°Π΄ 8000 Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡΡΠ°Π²Π°Ρ ΡΠ°ΠΌΠΎ Π΄Π²Π°ΠΌΠ° ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ: ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ epoll. Π‘ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΡΡΡΠ²ΡΡΡΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° poll ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π·Π»Π΅ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΈΡ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π΄ΠΎΡΡΠΎΠΉΠ½Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ Π½Π° epoll: ΡΠΎΠ²Π° ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΠ²Π° Π·Π° ΡΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΎΠ±ΡΠ΅ Linux ΡΠ΄ΡΠΎΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΏΠΎΡΠΎΡΠΈ.
ΠΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π½Π° ZeroHTTPd
ΠΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π½Π° ZeroHTTPd . ΠΠ° Π²ΡΡΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈΠΌΠ° ΠΎΡΠ΄Π΅Π»Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
ZeroHTTPd
β
βββ 01_iterative
β βββ main.c
βββ 02_forking
β βββ main.c
βββ 03_preforking
β βββ main.c
βββ 04_threading
β βββ main.c
βββ 05_prethreading
β βββ main.c
βββ 06_poll
β βββ main.c
βββ 07_epoll
β βββ main.c
βββ Makefile
βββ public
β βββ index.html
β βββ tux.png
βββ templates
βββ guestbook
βββ index.htmlΠ Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠ΅Π΄Π΅ΠΌΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈΠΌΠ° ΠΎΡΠ΅ Π΄Π²Π΅: public ΠΈ templates. Π ΠΏΡΡΠ²Π°ΡΠ° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΡΠ°ΠΉΠ»ΡΡ index.html ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ Π΅ΠΊΡΠ°Π½Π½Π° ΡΠ½ΠΈΠΌΠΊΠ°. Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ, ΠΈ ZeroHTTPd ΡΡΡΠ±Π²Π° Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΡΠ΅Π·ΠΈ ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠΊΠΎ ΠΏΡΡΡΡ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° ΡΡΠ²ΠΏΠ°Π΄Π° Ρ ΠΏΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° public, ZeroHTTPd ΡΡΡΡΠΈ ΡΠ°ΠΉΠ»Π° index.html Π² ΡΠ°Π·ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ. Π‘ΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π³ΠΎΡΡΠΎΠ²Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ. Π’Ρ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π³Π»Π°Π²Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°, ΡΠΈΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΡΠ°ΠΉΠ»Π° βtemplates/guestbook/index.htmlβ. Π ZeroHTTPd Π΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ Π·Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ. ΠΠ΄Π΅ΡΡΠ° Π΅, ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π² ΡΠ°Π·ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈ Π΄Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Ρ ZeroHTTPd ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ.
ΠΠ° Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄Π΅ΠΌ ΡΡΡΠ²ΡΡΠ°, ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ make all ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ β ΠΈ Π²ΡΠΈΡΠΊΠΈ Π±ΠΈΠ»Π΄ΠΎΠ²Π΅ ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ Π² ΡΠ°Π·ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ. ΠΡΠΏΡΠ»Π½ΠΈΠΌΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΡΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈΡΠ΅ public ΠΈ templates Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ°, ΠΎΡ ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ.
Linux API
ΠΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π² ΡΠΎΠ·ΠΈ ΡΠΈΠΊΡΠ» ΠΎΡ ΡΡΠ°ΡΠΈΠΈ, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΎΠΏΠΈΡ Ρ Linux API. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ°, Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ΅ ΡΠ΅ Π΄ΠΎΠΊΠΎΡΠ½Π΅ΠΌ Π΄ΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π½Π° Linux API, Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ Π½ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Π²ΡΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅, Π½ΠΈΡΠΊΠΈΡΠ΅, ΡΡΠ±ΠΈΡΠΈΡΡΠ° ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ΅ΠΊ. ΠΡΠ²Π΅Π½ ΠΊΠ½ΠΈΠ³ΠΈΡΠ΅ ΠΈ ΡΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° Linux API, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ ΡΡΡΠΎ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ
ΠΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΠ°. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ Π½ΡΠΌΠ° Π²ΡΡΠ·ΠΊΠ°. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΡΠ΅Π± ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅, Ρ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π½ΠΎ ΠΊΠΎΡΡΠΎ Π½Π΅ Π΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠ°. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π·Π»Π΅ ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ, Π½ΠΎ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Π΄ΠΎ Π΄Π΅ΡΠ΅ΡΠΊΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π΅ΡΠ΅ΡΠΊΠΈ Ρ ΠΈΠ»ΡΠ΄ΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΡΠ΅ ΠΏΠ°ΠΊ, ΡΡΡΠ΅ΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡΠ½ΠΎ. ΠΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ, ΠΏΠ΅ΡΡΡΡ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° ΡΡΡΠ²ΡΡΠ°, Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΉΠΊΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅.
ΠΠ°Π΄Π°ΡΠΈ CPU ΠΈ I/O
ΠΠ°ΠΊΡΠ°Ρ, Π² ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ° Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΄Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΠΈΠΏΠ° Π·Π°Π΄Π°ΡΠΈ: Π·Π° I/O ΠΈ CPU. ΠΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΏΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ (ΠΌΡΠ΅ΠΆΠΎΠ² Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄), ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (ΠΌΡΠ΅ΠΆΠΎΠ² ΠΈ Π΄ΠΈΡΠΊΠΎΠ² Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄), ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ (ΠΌΡΠ΅ΠΆΠΎΠ² ΠΈ Π΄ΠΈΡΠΊΠΎΠ² Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄) β Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ I/O. ΠΡΠΊΠΎΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠ³Π°Ρ Π»Π΅ΠΊΠΎ Π΄Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Ρ CPU (ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ΅Π΄Π½ΠΎΡΠΎ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ½ΠΎ Π½Π° ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΈ Ρ.Π½.). ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ΅Π½ I/O, Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ ΡΡΠ΄ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° ΠΏΡΠ»Π½Π° ΠΌΠΎΡΠ½ΠΎΡΡ. ΠΠΎΠ³Π°ΡΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅ Π² Π½ΡΠΊΠ°ΠΊΠ²Π° Π·Π°Π΄Π°ΡΠ° Π·Π° Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ CPU, ΡΠΎΠ²Π° Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π° Π»ΠΎΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° CPU ΡΠ΅ Ρ Π°ΡΡΠ°Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΈ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° β ΠΈ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠΠΊΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΠ΄ΠΈΠΎΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠ³Π°Π²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΌΠΎΡΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ CPU. ΠΠΎ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ Π΅ ΡΠ°ΠΊΠ°.
ΠΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π·Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
