病毒产生的原因有哪些