修正*nix编译问题。
重构代码，增加一些关键逻辑的注释。