ืืืฉืืื ืืื ืืจื ื ื ืืฆืืื ืืขืช ืืฉืืืืฉ ืืื ืืงืื, ืืืื ืื ืคืจืืืืงืืื ืืชืืืืจื, HTTP ืชืืคืก ืืช ืืืงื ืืืจื. ืืืฉืจ ืืืืืื ืืช ืื ืืืื ืกืื ืฉื ืคืืชืื ืืคืืืงืฆืืืช ืืื ืืจื ื, ืจืื ืืื ืฉืื ืืงืืืฉืื ืืขื ืืืื ืชืฉืืืช ืื ืืืขืจืืช ืืืคืขืื ืฉืื ืืืฉืืืื ืืื ืคืืขืืื ืืคืืขื. ืืืคืจืื ืืื ืคืืชืื (Dev) ืืืื ืคืขืืืืช (Ops) ืจืง ืืืืืจื ืืช ืืืฆื. ืืื ืขื ืขืืืืช ืชืจืืืช ื-DevOps, ืืคืชืืื ืืืคืืื ืืืืืช ืืืจืืื ืขื ืืคืขืืช ืืืคืืืงืฆืืืช ืฉืืื ืืขื ื, ืื ืฉืืืื ืฉืืืืฉื ืขืืืจื ืืืืืจ ืืขืืืง ืืช ืืงืฆื ืืืืืจื ืฉื ืืขืจืืช ืืืคืขืื. ืื ืฉืืืืฉื ืืืืืื ืื ืืชื ืื ืกื ืืคืจืืก ืืขืจืืช ืขืืืจ ืืืคื ืื ืขืฉืจืืช ืืืคื ืืืืืจืื ืื ืืื ืืช.
ืืืืืืืช ืืฉืืจืืชื ืืื ืืจื ื ืืืืืช ืืืื ืืืื ืฉืืืคืืืงืฆืืืช ืืืจืืช. ืืื ืื ืื ืืืื ื ืขืืืกืื ืื ืฉืจืชื ืืกื ื ืชืื ืื, ืืื ืืืืฉืืืื ืืืื ืืฉ ืืขืืืช ืืืืืช ืืกืืืื ืืขืืช ืืืฆืืขืื ืืืืืื. ืืื ืช ืืืืืืืช ืืืกืืืืืช ืืืื ืืืืฆื ืืืชืืืจ ืขืืืื ืืืืคื ืืืื, ืชืขืืืจ ืื ืืืขืจืื ืืช ืืืืฆืืขืื ืืืช ืืืืจืืืืช ืฉื ืืืฉืืื ืืืื ืืจื ื ืฉืื.
ืื ื ืืืชื ืืช ืกืืจืช ืืืืืจืื ืืื ืืชืืืื ืืฉืืืืช ืฉื ืืคืชืืื ืฆืขืืจืื ืฉืจืืฆืื ืืืืืช ืืจืืืืงืื ืืขืจืืืช ืืืฉืืืื. ืื ืืคืฉืจ ืืืืื ืืืืจืืจ ืืื ืืงืืช ืืืคืืืืืืฆืื ืฉื ืืืฉืืื ืืื ืืงืก ืืืื ืืฆืืื ืืืกืืืืช ืฉื ืืืคื ืคืขืืืชื ืืจืืช ืืขืจืืช ืืืคืขืื. ืืืจืืช ืฉืืฉื ื ืกืืืื ืจืืื ืฉื ืืืฉืืืื, ืืกืืจื ืื ืื ื ืจืืฆื ืืืงืืจ ืืืฉืืืื ืืืืกืกื ืืื ืืจื ื ืืื ืืืฉืืื ืฉืืืื ืขืืืื ืืืื ืืคืืคื ืื ืขืืจื ืืงืกื. ืืืืจ ืื ืืืืขื ืืืคืชืืื ืืืืจืืืืื ืฉืจืืฆืื ืืืืื ืืืฆื ืคืืขืืืช ืชืืื ืืืช ืืื ืืงืก ืื ืืื ืืงืก ืืืืฆื ืืื ืืช ืืืชื ืืืืฆืืขืื ืืืืืื.
ืืื ืืงืก ืืื ืืืจ ืฉืจืชืื ืืขืจืืช ืืืคืขืื, ืืืจืื ืืืืฉืืืื ืฉืื ืคืืขืืื ืขื ืืขืจืืช ืืคืขืื ืื. ืืืจืืช ืฉืื ื ืืืืจ "ืืื ืืงืก", ืจืื ืืืื ืืคืฉืจ ืืื ืื ืืืืื ืฉืื ื ืืชืืืื ืืื ืืขืจืืืช ืืืคืขืื ืืืืืืช ืืื ืืงืก ืืืืคื ืืืื. ืขื ืืืช, ืื ืืืงืชื ืืช ืืงืื ืื ืืืื ืืืขืจืืืช ืืืจืืช. ืืื, ืื ืืชื ืืขืื ืืื ื-FreeBSD ืื OpenBSD, ืืชืืฆืืืช ืฉืื ืขืฉืืืืช ืืืฉืชื ืืช. ืืฉืื ื ืื ืกื ืืฉืื ืกืคืฆืืคื ืืืื ืืงืก, ืื ื ืืฆืืื ืืืชื.
ืืื ื ืืชื ืืืื ืืืฉืชืืฉ ืืืืข ืืื ืืื ืืื ืืช ืืคืืืงืฆืื ืืืคืก ืืืื ืชืขืืืจ ืืืคืืืืืืฆืื ืืืฉืืืช, ืืื ืขืืืฃ ืื ืืขืฉืืช ืืืช. ืื ืืชื ืืืชื ืฉืจืช ืืื ืืจื ื ืืืฉ ื-C ืื C++ ืขืืืจ ืืืืฉืื ืืขืกืงื ืฉื ืืืจืืื ืฉืื, ืื ืขืฉืื ืืืืืช ืืืื ืืืืจืื ืฉืื ืืขืืืื. ืขื ืืืช, ืืืจืช ืืืื ื ืฉื ืืืฉืืืื ืืื ืชืขืืืจ ืืืืืจืช ืชืืื ืืืช ืงืืืืืช. ืชืืื ืืืฉืืืช ืืื ืืขืจืืืช ืืืืกืกืืช ืชืืืืืื ืืืขืจืืืช ืืืืกืกืืช ืคืชืื ืืื ืืืขืจืืืช ืืืืกืกืืช ืืืจืืขืื. ืืชื ืชืืื ืืชืขืจืื ืืืืข Nginx ืืชืคืงื ืืื ืืืชืจ ืืืฉืจ Apache httpd, ืืืืข ืืืฉืื Python ืืืืกืก Tornado ืืืื ืืฉืจืช ืืืชืจ ืืฉืชืืฉืื ืืืฉืืืื ืืืืฉืื Python ืืืืกืก Django.
ZeroHTTPd: ืืื ืืืืื
ืืืจืืช ืฉื ืืื ืืืื ืืืจืืืืช ืืชืืืืจืื, ืืื ืืืจ ืืื ืืืชืจ ืืืืชืื ืงืื, ืืืจืืฅ ืืืชื ืืืืฉืืืช ืืช ืื ืืจืืืืงืืืจืืช ืืฉืจืช ืืื ืืื. ืื ืืฉืืื ืืืจืืจื ืืืืชืจ. ืืื, ื ืืชืื ืฉืจืช ืืื ืืจื ื ืคืฉืื ZeroHTTPd ืืืืฆืขืืช ืื ืืื: ืืืืกืก ืชืืืืืื, ืืืืกืก ืฉืจืฉืืจ ืืืืืกืก ืืืจืืขืื. ืืื ื ืืืืง ืื ืืื ืืืฉืจืชืื ืืืื ืื ืจืื ืืืฆื ืื ืคืืขืืื ืืืฉืืืื ืื ืืื. ZeroHTTPd ืืืืฉื ืืงืืืฅ C ืืืื. ืืฉืจืช ืืืืืกืก ืขื ืืืจืืขืื ืืืื
ืืฉ ืืจืื ืืขืจืืช ืืงืื ืฉืืขืืจื ืื ืืืืื. ืืืืืชื ืฉืจืช ืืื ืืจื ื ืคืฉืื ืืืื ืฉืืจืืช ืงืื, 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 ืจืื ืขืืฆืื. ืืื ืขืืืจ ืจืื ืืืืฉืืืื ืื ืื ืืืงืจื.
ืืืืืข ื ืืกืฃ ืขื ืืจืืืืงืืืจืืช ืฉืจืชืื
ืืืง ื': ืืจืืืืงืืืจื ืืืืจืืืืืช ืืืง ืฉื ื. ืฉืจืชื ืืืื ืืืง ื'. ืฉืจืชื ืืจืื ืืืื ืืืง ื'. ืฉืจืชืื ืขื ืคืชืืืื ืฉื ืืืฆืืข ืืืง V. ืฉืจืชืื ืืืฉืจืื ืืจืืฉ ืืืง ื'. ืืจืืืืงืืืจื ืืืืกืกืช ืคืื ืืืง VII. ืืจืืืืงืืืจื ืืืืกืกืช epol
ืืงืืจ: www.habr.com