ื‘ื™ืฆื•ืขื™ ื™ื™ืฉื•ืžื™ ืจืฉืช ืœื™ื ื•ืงืก. ืžื‘ื•ื

ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ื ืžืฆืื™ื ื›ืขืช ื‘ืฉื™ืžื•ืฉ ื‘ื›ืœ ืžืงื•ื, ื•ื‘ื™ืŸ ื›ืœ ืคืจื•ื˜ื•ืงื•ืœื™ ื”ืชื—ื‘ื•ืจื”, HTTP ืชื•ืคืก ืืช ื—ืœืงื• ื”ืืจื™. ื›ืืฉืจ ืœื•ืžื“ื™ื ืืช ื”ื ื™ื•ืื ืกื™ื ืฉืœ ืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช ืื™ื ื˜ืจื ื˜, ืจื•ื‘ ื”ืื ืฉื™ื ืžืงื“ื™ืฉื™ื ืžืขื˜ ืžืื•ื“ ืชืฉื•ืžืช ืœื‘ ืœืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉื‘ื” ื™ื™ืฉื•ืžื™ื ืืœื• ืคื•ืขืœื™ื ื‘ืคื•ืขืœ. ื”ื”ืคืจื“ื” ื‘ื™ืŸ ืคื™ืชื•ื— (Dev) ืœื‘ื™ืŸ ืคืขื•ืœื•ืช (Ops) ืจืง ื”ื—ืžื™ืจื” ืืช ื”ืžืฆื‘. ืื‘ืœ ืขื ืขืœื™ื™ืช ืชืจื‘ื•ืช ื”-DevOps, ืžืคืชื—ื™ื ื”ื•ืคื›ื™ื ืœื”ื™ื•ืช ืื—ืจืื™ื ืขืœ ื”ืคืขืœืช ื”ืืคืœื™ืงืฆื™ื•ืช ืฉืœื”ื ื‘ืขื ืŸ, ื›ืš ืฉืžืื•ื“ ืฉื™ืžื•ืฉื™ ืขื‘ื•ืจื ืœื”ื›ื™ืจ ืœืขื•ืžืง ืืช ื”ืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื”. ื–ื” ืฉื™ืžื•ืฉื™ ื‘ืžื™ื•ื—ื“ ืื ืืชื” ืžื ืกื” ืœืคืจื•ืก ืžืขืจื›ืช ืขื‘ื•ืจ ืืœืคื™ ืื• ืขืฉืจื•ืช ืืœืคื™ ื—ื™ื‘ื•ืจื™ื ื‘ื• ื–ืžื ื™ืช.

ื”ืžื’ื‘ืœื•ืช ื‘ืฉื™ืจื•ืชื™ ืื™ื ื˜ืจื ื˜ ื“ื•ืžื•ืช ืžืื•ื“ ืœืืœื• ืฉื‘ืืคืœื™ืงืฆื™ื•ืช ืื—ืจื•ืช. ื‘ื™ืŸ ืื ื–ื” ืžืื–ื ื™ ืขื•ืžืกื™ื ืื• ืฉืจืชื™ ืžืกื“ ื ืชื•ื ื™ื, ืœื›ืœ ื”ื™ื™ืฉื•ืžื™ื ื”ืœืœื• ื™ืฉ ื‘ืขื™ื•ืช ื“ื•ืžื•ืช ื‘ืกื‘ื™ื‘ื” ื‘ืขืœืช ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื. ื”ื‘ื ืช ื”ืžื’ื‘ืœื•ืช ื”ื™ืกื•ื“ื™ื•ืช ื”ืœืœื• ื•ื›ื™ืฆื“ ืœื”ืชื’ื‘ืจ ืขืœื™ื”ืŸ ื‘ืื•ืคืŸ ื›ืœืœื™, ืชืขื–ื•ืจ ืœืš ืœื”ืขืจื™ืš ืืช ื”ื‘ื™ืฆื•ืขื™ื ื•ืืช ื”ืžื“ืจื’ื™ื•ืช ืฉืœ ื™ื™ืฉื•ืžื™ ื”ืื™ื ื˜ืจื ื˜ ืฉืœืš.

ืื ื™ ื›ื•ืชื‘ ืืช ืกื“ืจืช ื”ืžืืžืจื™ื ื”ื–ื• ื‘ืชื’ื•ื‘ื” ืœืฉืืœื•ืช ืฉืœ ืžืคืชื—ื™ื ืฆืขื™ืจื™ื ืฉืจื•ืฆื™ื ืœื”ื™ื•ืช ืืจื›ื™ื˜ืงื˜ื™ ืžืขืจื›ื•ืช ืžื•ืฉื›ืœื™ื. ืื™ ืืคืฉืจ ืœื”ื‘ื™ืŸ ื‘ื‘ื™ืจื•ืจ ื˜ื›ื ื™ืงื•ืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื™ื™ืฉื•ืžื™ ืœื™ื ื•ืงืก ืžื‘ืœื™ ืœืฆืœื•ืœ ืœื™ืกื•ื“ื•ืช ืฉืœ ืื•ืคืŸ ืคืขื•ืœืชืŸ ื‘ืจืžืช ืžืขืจื›ืช ื”ื”ืคืขืœื”. ืœืžืจื•ืช ืฉื™ืฉื ื ืกื•ื’ื™ื ืจื‘ื™ื ืฉืœ ื™ื™ืฉื•ืžื™ื, ื‘ืกื“ืจื” ื–ื• ืื ื™ ืจื•ืฆื” ืœื—ืงื•ืจ ื™ื™ืฉื•ืžื™ื ืžื‘ื•ืกืกื™ ืื™ื ื˜ืจื ื˜ ื•ืœื ื™ื™ืฉื•ืžื™ ืฉื•ืœื—ืŸ ืขื‘ื•ื“ื” ื›ื’ื•ืŸ ื“ืคื“ืคืŸ ืื• ืขื•ืจืš ื˜ืงืกื˜. ื—ื•ืžืจ ื–ื” ืžื™ื•ืขื“ ืœืžืคืชื—ื™ื ื•ืื“ืจื™ื›ืœื™ื ืฉืจื•ืฆื™ื ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืคื•ืขืœื•ืช ืชื•ื›ื ื™ื•ืช ืœื™ื ื•ืงืก ืื• ื™ื•ื ื™ืงืก ื•ื›ื™ืฆื“ ืœื‘ื ื•ืช ืื•ืชืŸ ืœื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื.

ืœื™ื ื•ืงืก ื”ื™ื ื—ื“ืจ ืฉืจืชื™ื ืžืขืจื›ืช ื”ื”ืคืขืœื”, ื•ืœืจื•ื‘ ื”ื™ื™ืฉื•ืžื™ื ืฉืœืš ืคื•ืขืœื™ื ืขืœ ืžืขืจื›ืช ื”ืคืขืœื” ื–ื•. ืœืžืจื•ืช ืฉืื ื™ ืื•ืžืจ "ืœื™ื ื•ืงืก", ืจื•ื‘ ื”ื–ืžืŸ ืืคืฉืจ ืœื”ื ื™ื— ื‘ื‘ื˜ื—ื” ืฉืื ื™ ืžืชื›ื•ื•ืŸ ืœื›ืœ ืžืขืจื›ื•ืช ื”ื”ืคืขืœื” ื“ืžื•ื™ื•ืช ื™ื•ื ื™ืงืก ื‘ืื•ืคืŸ ื›ืœืœื™. ืขื ื–ืืช, ืœื ื‘ื“ืงืชื™ ืืช ื”ืงื•ื“ ื”ื ืœื•ื•ื” ื‘ืžืขืจื›ื•ืช ืื—ืจื•ืช. ืœื›ืŸ, ืื ืืชื” ืžืขื•ื ื™ื™ืŸ ื‘-FreeBSD ืื• OpenBSD, ื”ืชื•ืฆืื•ืช ืฉืœืš ืขืฉื•ื™ื•ืช ืœื”ืฉืชื ื•ืช. ื›ืฉืื ื™ ืžื ืกื” ืžืฉื”ื• ืกืคืฆื™ืคื™ ืœืœื™ื ื•ืงืก, ืื ื™ ืžืฆื™ื™ืŸ ืื•ืชื•.

ืืžื ื ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื™ื“ืข ื”ื–ื” ื›ื“ื™ ืœื‘ื ื•ืช ืืคืœื™ืงืฆื™ื” ืžืืคืก ื•ื”ื™ื ืชืขื‘ื•ืจ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืžื•ืฉืœืžืช, ืื‘ืœ ืขื“ื™ืฃ ืœื ืœืขืฉื•ืช ื–ืืช. ืื ืืชื” ื›ื•ืชื‘ ืฉืจืช ืื™ื ื˜ืจื ื˜ ื—ื“ืฉ ื‘-C ืื• C++ ืขื‘ื•ืจ ื”ื™ื™ืฉื•ื ื”ืขืกืงื™ ืฉืœ ื”ืืจื’ื•ืŸ ืฉืœืš, ื–ื” ืขืฉื•ื™ ืœื”ื™ื•ืช ื”ื™ื•ื ื”ืื—ืจื•ืŸ ืฉืœืš ื‘ืขื‘ื•ื“ื”. ืขื ื–ืืช, ื”ื›ืจืช ื”ืžื‘ื ื” ืฉืœ ื™ื™ืฉื•ืžื™ื ืืœื” ืชืขื–ื•ืจ ื‘ื‘ื—ื™ืจืช ืชื•ื›ื ื™ื•ืช ืงื™ื™ืžื•ืช. ืชื•ื›ืœ ืœื”ืฉื•ื•ืช ื‘ื™ืŸ ืžืขืจื›ื•ืช ืžื‘ื•ืกืกื•ืช ืชื”ืœื™ื›ื™ื ืœืžืขืจื›ื•ืช ืžื‘ื•ืกืกื•ืช ืคืชื™ืœ ื•ื›ืŸ ืœืžืขืจื›ื•ืช ืžื‘ื•ืกืกื•ืช ืื™ืจื•ืขื™ื. ืืชื” ืชื‘ื™ืŸ ื•ืชืขืจื™ืš ืžื“ื•ืข Nginx ืžืชืคืงื“ ื˜ื•ื‘ ื™ื•ืชืจ ืžืืฉืจ Apache httpd, ืžื“ื•ืข ื™ื™ืฉื•ื Python ืžื‘ื•ืกืก Tornado ื™ื›ื•ืœ ืœืฉืจืช ื™ื•ืชืจ ืžืฉืชืžืฉื™ื ื‘ื”ืฉื•ื•ืื” ืœื™ื™ืฉื•ื Python ืžื‘ื•ืกืก Django.

ZeroHTTPd: ื›ืœื™ ืœืžื™ื“ื”

ZeroHTTPd ื”ื•ื ืฉืจืช ืื™ื ื˜ืจื ื˜ ืฉื›ืชื‘ืชื™ ืžืืคืก ื‘-C ื›ื›ืœื™ ื”ื•ืจืื”. ืื™ืŸ ืœื• ืชืœื•ืช ื—ื™ืฆื•ื ื™ืช, ื›ื•ืœืœ ื’ื™ืฉื” ืœ-Redis. ืื ื• ืžื ื”ืœื™ื ืืช ื ื”ืœื™ Redis ืžืฉืœื ื•. ืจืื” ืœืžื˜ื” ืœืคืจื˜ื™ื ื ื•ืกืคื™ื.

ืœืžืจื•ืช ืฉื ื•ื›ืœ ืœื“ื•ืŸ ื‘ืืจื™ื›ื•ืช ื‘ืชื™ืื•ืจื™ื”, ืื™ืŸ ื“ื‘ืจ ื˜ื•ื‘ ื™ื•ืชืจ ืžืœื›ืชื•ื‘ ืงื•ื“, ืœื”ืจื™ืฅ ืื•ืชื• ื•ืœื”ืฉื•ื•ืช ืืช ื›ืœ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื”ืฉืจืช ื‘ื™ื ื™ื”ืŸ. ื–ื• ื”ืฉื™ื˜ื” ื”ื‘ืจื•ืจื” ื‘ื™ื•ืชืจ. ืœื›ืŸ, ื ื›ืชื•ื‘ ืฉืจืช ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ZeroHTTPd ื‘ืืžืฆืขื•ืช ื›ืœ ื“ื’ื: ืžื‘ื•ืกืก ืชื”ืœื™ื›ื™ื, ืžื‘ื•ืกืก ืฉืจืฉื•ืจ ื•ืžื‘ื•ืกืก ืื™ืจื•ืขื™ื. ื”ื‘ื” ื ื‘ื“ื•ืง ื›ืœ ืื—ื“ ืžื”ืฉืจืชื™ื ื”ืœืœื• ื•ื ืจืื” ื›ื™ืฆื“ ื”ื ืคื•ืขืœื™ื ื‘ื”ืฉื•ื•ืื” ื–ื” ืœื–ื”. ZeroHTTPd ืžื™ื•ืฉื ื‘ืงื•ื‘ืฅ C ื™ื—ื™ื“. ื”ืฉืจืช ื”ืžื‘ื•ืกืก ืขืœ ืื™ืจื•ืขื™ื ื›ื•ืœืœ ืื•ืฉืฉ, ื™ื™ืฉื•ื ื˜ื‘ืœืช hash ืžืขื•ืœื” ืฉืžื’ื™ืข ื‘ืงื•ื‘ืฅ ื›ื•ืชืจืช ื‘ื•ื“ื“. ื‘ืžืงืจื™ื ืื—ืจื™ื, ืื™ืŸ ืชืœื•ืช, ื›ื“ื™ ืœื ืœืกื‘ืš ืืช ื”ืคืจื•ื™ืงื˜.

ื™ืฉ ื”ืจื‘ื” ื”ืขืจื•ืช ื‘ืงื•ื“ ืฉื™ืขื–ืจื• ืœืš ืœื”ื‘ื™ืŸ. ื‘ื”ื™ื•ืชื• ืฉืจืช ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ื‘ื›ืžื” ืฉื•ืจื•ืช ืงื•ื“, ZeroHTTPd ื”ื•ื ื’ื ืžืกื’ืจืช ืžื™ื ื™ืžืœื™ืช ืœืคื™ืชื•ื— ืืชืจื™ื. ื™ืฉ ืœื• ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืžื•ื’ื‘ืœืช, ืื‘ืœ ื”ื•ื ืžืกื•ื’ืœ ืœื”ื’ื™ืฉ ืงื‘ืฆื™ื ืกื˜ื˜ื™ื™ื ื•ื“ืคื™ื "ื“ื™ื ืžื™ื™ื" ืคืฉื•ื˜ื™ื ืžืื•ื“. ืื ื™ ื—ื™ื™ื‘ ืœื•ืžืจ ืฉ-ZeroHTTPd ื˜ื•ื‘ ืœืœืžื™ื“ื” ื›ื™ืฆื“ ืœื™ืฆื•ืจ ื™ื™ืฉื•ืžื™ ืœื™ื ื•ืงืก ื‘ืขืœื™ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื. ื‘ื’ื“ื•ืœ, ืจื•ื‘ ืฉื™ืจื•ืชื™ ื”ืื™ื ื˜ืจื ื˜ ืžื—ื›ื™ื ืœื‘ืงืฉื•ืช, ื‘ื•ื“ืงื™ื ืื•ืชืŸ ื•ืžืขื‘ื“ื™ื ืื•ืชืŸ. ื–ื” ื‘ื“ื™ื•ืง ืžื” ืฉ- ZeroHTTPd ื™ืขืฉื”. ื–ื”ื• ื›ืœื™ ืœืœืžื™ื“ื”, ืœื ืœื”ืคืงื”. ื–ื” ืœื ืžืขื•ืœื” ื‘ื˜ื™ืคื•ืœ ื‘ืฉื’ื™ืื•ืช ื•ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื”ื•ื ืœื ืžืชื”ื“ืจ ื‘ืฉื™ื˜ื•ืช ืื‘ื˜ื—ื” ืžื•ืžืœืฆื•ืช (ืื” ื›ืŸ, ื”ืฉืชืžืฉืชื™ strcpy) ืื• ื”ื˜ืจื™ืงื™ื ื”ื—ื›ืžื™ื ืฉืœ ืฉืคืช C. ืื‘ืœ ืื ื™ ืžืงื•ื•ื” ืฉื”ื™ื ืขื•ืฉื” ืืช ื”ืขื‘ื•ื“ื” ืฉืœื” ื”ื™ื˜ื‘.

ื‘ื™ืฆื•ืขื™ ื™ื™ืฉื•ืžื™ ืจืฉืช ืœื™ื ื•ืงืก. ืžื‘ื•ื
ื“ืฃ ื”ื‘ื™ืช ืฉืœ ZeroHTTPd. ื–ื” ื™ื›ื•ืœ ืœื”ืคื™ืง ืกื•ื’ื™ ืงื‘ืฆื™ื ืฉื•ื ื™ื ื›ื•ืœืœ ืชืžื•ื ื•ืช

ื™ื™ืฉื•ื ืกืคืจ ืื•ืจื—ื™ื

ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ืžื•ื“ืจื ื™ื™ื ื‘ื“ืจืš ื›ืœืœ ืื™ื ื ืžื•ื’ื‘ืœื™ื ืœืงื‘ืฆื™ื ืกื˜ื˜ื™ื™ื. ื™ืฉ ืœื”ื ืื™ื ื˜ืจืืงืฆื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืขื ืžืกื“ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื, ืžื˜ืžื•ื ื™ื ื•ื›ื•'. ืœื›ืŸ ื ื™ืฆื•ืจ ื™ื™ืฉื•ื ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ื‘ืฉื "ืกืคืจ ืื•ืจื—ื™ื" ืฉื‘ื• ืžื‘ืงืจื™ื ืžืฉืื™ืจื™ื ืขืจื›ื™ื ืชื—ืช ืฉืžื. ืกืคืจ ื”ืื•ืจื—ื™ื ืฉื•ืžืจ ืขืจื›ื™ื ืฉื ืฉืืจื• ืงื•ื“ื ืœื›ืŸ. ื™ืฉ ื’ื ืžื•ื ื” ืžื‘ืงืจื™ื ื‘ืชื—ืชื™ืช ื”ืขืžื•ื“.

ื‘ื™ืฆื•ืขื™ ื™ื™ืฉื•ืžื™ ืจืฉืช ืœื™ื ื•ืงืก. ืžื‘ื•ื
ืืคืœื™ืงืฆื™ื™ืช ืื™ื ื˜ืจื ื˜ "ืกืคืจ ืื•ืจื—ื™ื" ZeroHTTPd

ื“ืœืคืง ื”ืžื‘ืงืจื™ื ื•ืจืฉื•ืžื•ืช ืกืคืจ ื”ืื•ืจื—ื™ื ืžืื•ื—ืกื ื™ื ื‘ืจื“ื™ืก. ืขื‘ื•ืจ ืชืงืฉื•ืจืช ืขื Redis, ื ื”ืœื™ื ืžืฉืœื• ืžื™ื•ืฉืžื™ื; ื”ื ืื™ื ื ืชืœื•ื™ื™ื ื‘ืกืคืจื™ื™ื” ื”ื—ื™ืฆื•ื ื™ืช. ืื ื™ ืœื ืžืขืจื™ืฅ ื’ื“ื•ืœ ืฉืœ ื”ืคืขืœืช ืงื•ื“ ื‘ื™ืชื™ ื›ืฉื™ืฉ ืคืชืจื•ื ื•ืช ื–ืžื™ื ื™ื ืœืฆื™ื‘ื•ืจ ื•ื‘ื“ื•ืงื™ื ื”ื™ื˜ื‘. ืื‘ืœ ื”ืžื˜ืจื” ืฉืœ ZeroHTTPd ื”ื™ื ืœืœืžื•ื“ ืืช ื‘ื™ืฆื•ืขื™ ืœื™ื ื•ืงืก ื•ื’ื™ืฉื” ืœืฉื™ืจื•ืชื™ื ื—ื™ืฆื•ื ื™ื™ื, ื‘ืขื•ื“ ืฉืœืฉืจืช ื‘ืงืฉื•ืช HTTP ื™ืฉ ื”ืฉืคืขื” ืจืฆื™ื ื™ืช ืขืœ ื‘ื™ืฆื•ืขื™ื. ืขืœื™ื ื• ืœืฉืœื•ื˜ ื‘ืื•ืคืŸ ืžืœื ื‘ืชืงืฉื•ืจืช ืขื Redis ื‘ื›ืœ ืื—ืช ืžืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื”ืฉืจืชื™ื ืฉืœื ื•. ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืžืกื•ื™ืžื•ืช ืื ื• ืžืฉืชืžืฉื™ื ื‘ืฉื™ื—ื•ืช ื—ืกื™ืžื”, ื‘ืื—ืจื•ืช ืื ื• ืžืฉืชืžืฉื™ื ื‘ืคืจื•ืฆื“ื•ืจื•ืช ืžื‘ื•ืกืกื•ืช ืื™ืจื•ืขื™ื. ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื™ืช ืœืงื•ื— ื—ื™ืฆื•ื ื™ืช ืฉืœ Redis ืœื ื™ืกืคืง ืฉืœื™ื˜ื” ื–ื•. ื‘ื ื•ืกืฃ, ืœืงื•ื— Redis ื”ืงื˜ืŸ ืฉืœื ื• ืžื‘ืฆืข ืจืง ื›ืžื” ืคื•ื ืงืฆื™ื•ืช (ืงื‘ืœื”, ื”ื’ื“ืจื” ื•ื”ื’ื“ืœื” ืฉืœ ืžืคืชื—; ืงื‘ืœืช ื•ื”ื•ืกืคื” ืœืžืขืจืš). ื‘ื ื•ืกืฃ, ืคืจื•ื˜ื•ืงื•ืœ Redis ืืœื’ื ื˜ื™ ื•ืคืฉื•ื˜ ื‘ืžื™ื•ื—ื“. ืืชื” ืืคื™ืœื• ืœื ืฆืจื™ืš ืœืœืžื“ ืืช ื–ื” ื‘ืžื™ื•ื—ื“. ืขืฆื ื”ืขื•ื‘ื“ื” ืฉื”ืคืจื•ื˜ื•ืงื•ืœ ืขื•ืฉื” ืืช ื›ืœ ื”ืขื‘ื•ื“ื” ื‘ื›ืžืื” ืฉื•ืจื•ืช ืงื•ื“ ืžืจืื” ืขื“ ื›ืžื” ื”ื•ื ืžื—ื•ืฉื‘.

ื”ืื™ื•ืจ ื”ื‘ื ืžืจืื” ืžื” ื”ืืคืœื™ืงืฆื™ื” ืขื•ืฉื” ื›ืืฉืจ ื”ืœืงื•ื— (ื”ื“ืคื“ืคืŸ) ืžื‘ืงืฉ /guestbookURL.

ื‘ื™ืฆื•ืขื™ ื™ื™ืฉื•ืžื™ ืจืฉืช ืœื™ื ื•ืงืก. ืžื‘ื•ื
ื›ื™ืฆื“ ืคื•ืขืœืช ืืคืœื™ืงืฆื™ื™ืช ืกืคืจ ื”ืื•ืจื—ื™ื

ื›ืฉืฆืจื™ืš ืœื”ื•ืฆื™ื ื“ืฃ ืกืคืจ ืื•ืจื—ื™ื, ื™ืฉ ืงืจื™ืื” ืื—ืช ืœืžืขืจื›ืช ื”ืงื‘ืฆื™ื ืœืงืจื•ื ืืช ื”ืชื‘ื ื™ืช ืœื–ื™ื›ืจื•ืŸ ื•ืฉืœื•ืฉ ืงืจื™ืื•ืช ืจืฉืช ืœืจื“ื™ืก. ืงื•ื‘ืฅ ื”ืชื‘ื ื™ืช ืžื›ื™ืœ ืืช ืจื•ื‘ ืชื•ื›ืŸ ื”-HTML ืขื‘ื•ืจ ื”ื“ืฃ ื‘ืฆื™ืœื•ื ื”ืžืกืš ืœืžืขืœื”. ื™ืฉื ื ื’ื ืžืฆื™ื™ื ื™ ืžื™ืงื•ื ืžื™ื•ื—ื“ื™ื ืœื—ืœืง ื”ื“ื™ื ืžื™ ืฉืœ ื”ืชื•ื›ืŸ: ืคื•ืกื˜ื™ื ื•ืžื•ื ื” ืžื‘ืงืจื™ื. ืื ื—ื ื• ืžืงื‘ืœื™ื ืื•ืชื ืžืจื“ื™ืก, ืžื›ื ื™ืกื™ื ืื•ืชื ืœืขืžื•ื“ ื•ืžืกืคืงื™ื ืœืœืงื•ื— ืชื•ื›ืŸ ืžืœื. ื ื™ืชืŸ ืœื”ื™ืžื ืข ืžื”ืงืจื™ืื” ื”ืฉืœื™ืฉื™ืช ืœ-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 ืžืฉืชืžืฉื™ื ื‘ืžืงื‘ื™ืœ.

ืชื•ืฆืื•ืช ื”ื‘ื“ื™ืงื”

ื”ืชืจืฉื™ื ื”ื‘ื ืžืฆื™ื’ ืืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืฉืจืชื™ื ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืฉื•ื ื•ืช ื‘ืจืžื•ืช ืฉื•ื ื•ืช ืฉืœ ืžืงื‘ื™ืœื™ื•ืช. ืฆื™ืจ ื”-y ื”ื•ื ืžืกืคืจ ื”ื‘ืงืฉื•ืช ืœืฉื ื™ื™ื”, ืฆื™ืจ ื”-x ื”ื•ื ื—ื™ื‘ื•ืจื™ื ืžืงื‘ื™ืœื™ื.

ื‘ื™ืฆื•ืขื™ ื™ื™ืฉื•ืžื™ ืจืฉืช ืœื™ื ื•ืงืก. ืžื‘ื•ื

ื‘ื™ืฆื•ืขื™ ื™ื™ืฉื•ืžื™ ืจืฉืช ืœื™ื ื•ืงืก. ืžื‘ื•ื

ื‘ื™ืฆื•ืขื™ ื™ื™ืฉื•ืžื™ ืจืฉืช ืœื™ื ื•ืงืก. ืžื‘ื•ื

ืœื”ืœืŸ ื˜ื‘ืœื” ืขื ื”ืชื•ืฆืื•ืช.

ื‘ืงืฉื•ืช ืœืฉื ื™ื™ื”

ื‘ืžืงื‘ื™ืœ
ืื™ื˜ืจื˜ื™ื‘ื™
ืžื–ืœื’
ืžืจืืฉ ืžื–ืœื’
ื ึฐื”ึดื™ืจึธื”
ืกื˜ืจื™ืžื™ื ื’ ืžืจืืฉ
ื‘ื•
ืืคื•ืœ

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 ื‘ืงืฉื•ืช ื‘ื• ื–ืžื ื™ืช ื ื•ืชืจื• ืœื ื• ืจืง ืฉื ื™ ืฉื—ืงื ื™ื: pre-fork ื•-epoll. ื›ื›ืœ ืฉื”ืขื•ืžืก ื’ื“ืœ, ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืฉืจืช ืžื‘ื•ืกืก ืกืงืจื™ื ื’ืจื•ืขื™ื ื™ื•ืชืจ ืžืฉืจืช ืกื˜ืจื™ืžื™ื ื’. ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”-Thread-Pre-Creation ื”ื™ื ืžืชื—ืจื” ืจืื•ื™ื” ืœ-epoll, ืขื“ื•ืช ืขื“ ื›ืžื” ืœื™ื‘ืช ืœื™ื ื•ืงืก ืžืชื–ืžื ืช ืžืกืคืจ ืจื‘ ืฉืœ ืฉืจืฉื•ืจื™ื.

ืงื•ื“ ืžืงื•ืจ ZeroHTTPd

ืงื•ื“ ืžืงื•ืจ ZeroHTTPd ื›ืืŸ. ื™ืฉ ืกืคืจื™ื™ื” ื ืคืจื“ืช ืœื›ืœ ืืจื›ื™ื˜ืงื˜ื•ืจื”.

ZeroHTTPd โ”‚ โ”œโ”€โ”€ 01_iterative โ”‚ โ”œโ”€โ”€ main.c โ”œโ”€โ”€ 02_forking โ”‚ โ”œโ”€โ”€ main.c โ”œโ”€โ”€ 03_preforking โ”€ โ”€c _ ื”ืฉืจืฉื•ืจ โ”‚ โ”œโ”€โ”€ main.c โ”œโ”€โ”€ 04_prethreading โ”‚ โ”œโ”€โ”€ main.c โ”œโ”€โ”€ 05_poll โ”‚ โ”œโ”€โ”€ main.c โ”œโ”€โ”€ 06_epoll โ”‚ โ””โ”€โ”€ main.c โ”œ ื”ืคื•ืš ืœืฆื™ื‘ื•ืจื™ โ”€ โ”œโ”€โ”€ index .html โ”‚ โ””โ”€โ”€ tux . png โ””โ”€โ”€ ืชื‘ื ื™ื•ืช โ””โ”€โ”€ ืกืคืจ ืื•ืจื—ื™ื โ””โ”€โ”€ index.html

ื‘ื ื•ืกืฃ ืœืฉื‘ืข ืกืคืจื™ื•ืช ืœื›ืœ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช, ื™ืฉื ืŸ ืฉืชื™ ืกืคืจื™ื•ืช ื ื•ืกืคื•ืช ื‘ืกืคืจื™ื™ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื”: ืฆื™ื‘ื•ืจื™ืช ื•ืชื‘ื ื™ื•ืช. ื”ืจืืฉื•ืŸ ืžื›ื™ืœ ืืช ื”ืงื•ื‘ืฅ index.html ื•ืืช ื”ืชืžื•ื ื” ืžืฆื™ืœื•ื ื”ืžืกืš ื”ืจืืฉื•ืŸ. ืืชื” ื™ื›ื•ืœ ืœืฉื™ื ืฉื ืงื‘ืฆื™ื ื•ืชื™ืงื™ื•ืช ืื—ืจื™ื, ื•- ZeroHTTPd ืืžื•ืจ ืœืฉืจืช ืืช ื”ืงื‘ืฆื™ื ื”ืกื˜ื˜ื™ื™ื ื”ืืœื” ืœืœื ื‘ืขื™ื•ืช. ืื ื”ื ืชื™ื‘ ื‘ื“ืคื“ืคืŸ ืชื•ืื ืœื ืชื™ื‘ ื‘ืชื™ืงื™ื™ื” ื”ืฆื™ื‘ื•ืจื™ืช, ืื– ZeroHTTPd ืžื—ืคืฉ ืืช ื”ืงื•ื‘ืฅ index.html ื‘ืกืคืจื™ื™ื” ื–ื•. ื”ืชื•ื›ืŸ ืฉืœ ืกืคืจ ื”ืื•ืจื—ื™ื ื ื•ืฆืจ ื‘ืื•ืคืŸ ื“ื™ื ืžื™. ื™ืฉ ืœื• ืจืง ื“ืฃ ื‘ื™ืช, ื•ื”ืชื•ื›ืŸ ืฉืœื• ืžื‘ื•ืกืก ืขืœ ื”ืงื•ื‘ืฅ 'templates/guestbook/index.html'. ZeroHTTPd ืžื•ืกื™ืฃ ื‘ืงืœื•ืช ื“ืคื™ื ื“ื™ื ืžื™ื™ื ืœื”ืจื—ื‘ื”. ื”ืจืขื™ื•ืŸ ื”ื•ื ืฉืžืฉืชืžืฉื™ื ื™ื›ื•ืœื™ื ืœื”ื•ืกื™ืฃ ืชื‘ื ื™ื•ืช ืœืกืคืจื™ื™ื” ื”ื–ื• ื•ืœื”ืจื—ื™ื‘ ืืช ZeroHTTPd ืœืคื™ ื”ืฆื•ืจืš.

ื›ื“ื™ ืœื‘ื ื•ืช ืืช ื›ืœ ืฉื‘ืขืช ื”ืฉืจืชื™ื, ื”ืคืขืœ make all ืžื”ืกืคืจื™ื™ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื” - ื•ื›ืœ ื”-builds ื™ื•ืคื™ืขื• ื‘ืกืคืจื™ื™ื” ื–ื•. ืงื‘ืฆื™ ื”ืคืขืœื” ืžื—ืคืฉื™ื ืืช ื”ืกืคืจื™ื•ืช ื”ืฆื™ื‘ื•ืจื™ื•ืช ื•ื”ืชื‘ื ื™ื•ืช ื‘ืกืคืจื™ื™ื” ืฉืžืžื ื” ื”ื ืžื•ืคืขืœื™ื.

API ืฉืœ ืœื™ื ื•ืงืก

ืื™ื ืš ืฆืจื™ืš ืœื”ื™ื•ืช ื‘ืงื™ ื‘-API ืฉืœ Linux ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื”ืžื™ื“ืข ื‘ืกื“ืจืช ืžืืžืจื™ื ื–ื•. ืขื ื–ืืช, ืื ื™ ืžืžืœื™ืฅ ืœืงืจื•ื ืขื•ื“ ืขืœ ื ื•ืฉื ื–ื”; ื™ืฉื ื ืžืฉืื‘ื™ ืขื™ื•ืŸ ืจื‘ื™ื ื‘ืื™ื ื˜ืจื ื˜. ืœืžืจื•ืช ืฉื ื™ื’ืข ื‘ืžืกืคืจ ืงื˜ื’ื•ืจื™ื•ืช ืฉืœ ืžืžืฉืงื™ API ืฉืœ ืœื™ื ื•ืงืก, ื”ื”ืชืžืงื“ื•ืช ืฉืœื ื• ืชื”ื™ื” ื‘ืขื™ืงืจ ื‘ืชื”ืœื™ื›ื™ื, ืฉืจืฉื•ืจื™ื, ืื™ืจื•ืขื™ื ื•ืขืจื™ืžืช ื”ืจืฉืช. ื‘ื ื•ืกืฃ ืœืกืคืจื™ื ื•ืžืืžืจื™ื ืขืœ ื”-API ืฉืœ Linux, ืื ื™ ืžืžืœื™ืฅ ื’ื ืœืงืจื•ื ืžืื ื” ืขื‘ื•ืจ ืงืจื™ืื•ืช ืžืขืจื›ืช ื•ืคื•ื ืงืฆื™ื•ืช ืกืคืจื™ื™ื” ื‘ืฉื™ืžื•ืฉ.

ื‘ื™ืฆื•ืขื™ื ื•ืžื“ืจื’ื™ื•ืช

ื”ืขืจื” ืื—ืช ืœื’ื‘ื™ ื‘ื™ืฆื•ืขื™ื ื•ืžื“ืจื’ื™ื•ืช. ืชื™ืื•ืจื˜ื™ืช, ืื™ืŸ ืงืฉืจ ื‘ื™ื ื™ื”ื. ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ืฉื™ืจื•ืช ืื™ื ื˜ืจื ื˜ ืฉืขื•ื‘ื“ ื˜ื•ื‘ ืžืื•ื“, ืขื ื–ืžืŸ ืชื’ื•ื‘ื” ืฉืœ ื›ืžื” ืืœืคื™ื•ืช ืฉื ื™ื•ืช, ืื‘ืœ ื”ื•ื ืœื ืžืฉืชื ื” ื‘ื›ืœืœ. ื‘ืื•ืคืŸ ื“ื•ืžื”, ื™ื™ืชื›ืŸ ืฉื™ืฉ ืืคืœื™ืงืฆื™ื™ืช ืื™ื ื˜ืจื ื˜ ืขื ื‘ื™ืฆื•ืขื™ื ื’ืจื•ืขื™ื ืฉืœื•ืงื— ื›ืžื” ืฉื ื™ื•ืช ืœื”ื’ื™ื‘, ืื‘ืœ ื”ื•ื ื’ื“ืœ ื‘ืขืฉืจื•ืช ื›ื“ื™ ืœื˜ืคืœ ื‘ืขืฉืจื•ืช ืืœืคื™ ืžืฉืชืžืฉื™ื ื‘ื• ื–ืžื ื™ืช. ืขื ื–ืืช, ื”ืฉื™ืœื•ื‘ ืฉืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื•ืžื“ืจื’ื™ื•ืช ื”ื•ื ืฉื™ืœื•ื‘ ื—ื–ืง ืžืื•ื“. ื™ื™ืฉื•ืžื™ื ื‘ืขืœื™ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื‘ื“ืจืš ื›ืœืœ ืžืฉืชืžืฉื™ื ื‘ืžืฉืื‘ื™ื ื‘ืžืฉื•ืจื” ื•ื‘ื›ืš ืžืฉืจืชื™ื ื‘ื™ืขื™ืœื•ืช ืžืฉืชืžืฉื™ื ื‘ื•-ื–ืžื ื™ื™ื ื™ื•ืชืจ ื‘ืฉืจืช, ื•ืžืคื—ื™ืชื™ื ืขืœื•ื™ื•ืช.

ืžืฉื™ืžื•ืช ืžืขื‘ื“ ื•-I/O

ืœื‘ืกื•ืฃ, ื‘ืžื—ืฉื•ื‘ ื™ืฉ ืชืžื™ื“ ืฉื ื™ ืกื•ื’ื™ื ืืคืฉืจื™ื™ื ืฉืœ ืžืฉื™ืžื•ืช: ืขื‘ื•ืจ I/O ื•-CPU. ืงื‘ืœืช ื‘ืงืฉื•ืช ื“ืจืš ื”ืื™ื ื˜ืจื ื˜ (ืจืฉืช I/O), ื”ื’ืฉืช ืงื‘ืฆื™ื (ืจืฉืช ื•ื“ื™ืกืง I/O), ืชืงืฉื•ืจืช ืขื ืžืกื“ ื”ื ืชื•ื ื™ื (ืจืฉืช ื•ื“ื™ืกืง I/O) ื”ืŸ ื›ืœ ืคืขื™ืœื•ื™ื•ืช I/O. ื›ืžื” ืฉืื™ืœืชื•ืช ืžืกื“ ื ืชื•ื ื™ื ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžืขื˜ ืื™ื ื˜ื ืกื™ื‘ื™ื•ืช ืฉืœ ืžืขื‘ื“ (ืžื™ื•ืŸ, ืžืžื•ืฆืข ืฉืœ ืžื™ืœื™ื•ืŸ ืชื•ืฆืื•ืช ื•ื›ื•'). ืจื•ื‘ ื™ื™ืฉื•ืžื™ ื”ืื™ื ื˜ืจื ื˜ ืžื•ื’ื‘ืœื™ื ืขืœ ื™ื“ื™ ื”-I/O ื”ืžืงืกื™ืžืœื™ ื”ืืคืฉืจื™, ื•ืœืขืชื™ื ืจื—ื•ืงื•ืช ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžืขื‘ื“ ื‘ืงื™ื‘ื•ืœืช ืžืœืื”. ื›ืฉืืชื” ืจื•ืื” ืฉืžืฉื™ืžืช ืงืœื˜/ืคืœื˜ ื›ืœืฉื”ื™ ืžืฉืชืžืฉืช ื‘ืžืขื‘ื“ ืจื‘, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื–ื” ืกื™ืžืŸ ืœืืจื›ื™ื˜ืงื˜ื•ืจืช ื™ื™ืฉื•ืžื™ื ืœืงื•ื™ื”. ื”ืžืฉืžืขื•ืช ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืฉืžืฉืื‘ื™ CPU ืžื‘ื•ื–ื‘ื–ื™ื ืขืœ ื ื™ื”ื•ืœ ืชื”ืœื™ื›ื™ื ื•ื”ื—ืœืคืช ื”ืงืฉืจ - ื•ื–ื” ืœื ืœื’ืžืจื™ ืฉื™ืžื•ืฉื™. ืื ืืชื” ืขื•ืฉื” ืžืฉื”ื• ื›ืžื• ืขื™ื‘ื•ื“ ืชืžื•ื ื”, ื”ืžืจืช ืงื‘ืฆื™ ืื•ื“ื™ื• ืื• ืœืžื™ื“ืช ืžื›ื•ื ื”, ื”ื™ื™ืฉื•ื ื“ื•ืจืฉ ืžืฉืื‘ื™ CPU ืจื‘ื™ ืขื•ืฆืžื”. ืื‘ืœ ืขื‘ื•ืจ ืจื•ื‘ ื”ื™ื™ืฉื•ืžื™ื ื–ื” ืœื ื”ืžืงืจื”.

ืœืžื™ื“ืข ื ื•ืกืฃ ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืฉืจืชื™ื

  1. ื—ืœืง ื': ืืจื›ื™ื˜ืงื˜ื•ืจื” ืื™ื˜ืจื˜ื™ื‘ื™ืช
  2. ื—ืœืง ืฉื ื™. ืฉืจืชื™ ืžื–ืœื’
  3. ื—ืœืง ื’'. ืฉืจืชื™ ื˜ืจื•ื ืžื–ืœื’
  4. ื—ืœืง ื“'. ืฉืจืชื™ื ืขื ืคืชื™ืœื™ื ืฉืœ ื‘ื™ืฆื•ืข
  5. ื—ืœืง V. ืฉืจืชื™ื ืžื•ืฉืจื™ื ืžืจืืฉ
  6. ื—ืœืง ื•'. ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื‘ื•ืกืกืช ืคื•ืœ
  7. ื—ืœืง VII. ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื‘ื•ืกืกืช epol

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”