A.1.3 在什么平台上学习网络编程(www.cppentry.com)
对于服务端网络编程(www.cppentry.com),我建议在Linux 上学习。
如果在10 年前,这个问题的答案或许是FreeBSD,因为FreeBSD"根正苗红",在2000 年那一次互联网浪潮中扮演了重要角色,是很多公司首选的免费服务器操作系统。2000 年那会儿Linux 还远未成熟,连epoll 都还没有实现。(FreeBSD 在2001年发布4.1 版,加入了kqueue,从此C10k 不是问题。)
10 年后的今天,事情起了一些变化,Linux 成为市场份额最大的服务器操作系统。在Linux 这种大众系统上学网络编程(www.cppentry.com),遇到什么问题会比较容易解决。因为用的人多,你遇到的问题别人多半也遇到过;同样因为用的人多,如果真的有什么内核bug,很快就会得到修复,至少有work around 的办法。如果用别的系统,可能一个问题发到论坛上半个月都不会有人理。从内核源码的风格看,FreeBSD 更干净整洁,注释到位,但是无奈它的市场份额远不如Linux,学习Linux 是更好的技术投资。