开源软件包含哪些方面