https://linux.cn/article-3218-1.html
http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html#_Toc333352431