先澄清一点儿。没有一个开源协议允许收费的,也没有一个开源协议禁止收费的。开源协议没有说某某某东西不能拿去赚钱,也没有说不能拿去赚钱。开源协议的用处是控制源代码的分发方式,为了维护作者利益的一个东西。有点儿像版权说明,比如LGPL就是说,你可以拿去用,但是不能改我的源代码,如果改了,必须也按照LGPL协议拿出来给大家看,是禁止其他人利用你的代码进行隐蔽的二次开发,然后还不打算跟大家分享的好办法。BSD就太宽松了,你愿意看就看愿意改就改,只要保留我的协议说明就好了。不同的协议有不同的效果,但是,即便是gpl这种高传染级的开源协议(你如果在项目里用的gpl的东西,那么你整个项目必须无条件使用gpl开源)也没法阻止人们去赚钱,它只是要求在提供产品的时候,必须把源代码也带上,并不妨碍大家写书赚钱,培训赚钱,二次开发赚钱。