编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

兼容与基于的区别(兼容和融合的区别)

wxchong 2024-07-16 10:17:03 开源技术 10 ℃ 0 评论

兼容在IT圈,主要指软件与软件之间、硬件与硬件之间、以及软件与硬件的兼容适配。


举个例子:


用SuperMap和打开ArcGIS的Shapefile、CAD的dwg、SketchUp的SKP、这是软件格式间的兼容。


一张RTX3080Ti显卡,可以安装在不同牌子的主板上,这是硬件之间的兼容


同样是GIS Server软件既可以部署在X86芯片的,也可以部署在Arm架构、MIPS架构下,这个就是软件与硬件的兼容适配,也叫跨平台。


还有一种“兼容”更难一些,那就是对于格式没有完全开放的,需要借助第三方的接口,去兼容第三方软件的格式。最常见的就是开发一些插件去兼容,比如借助 ArcObjects的接口,可以实现MXD地图文档与其他GIS平台软件的兼容。类似的还有CAD、3dsMax、BIM软件与GIS软件的兼容。


图 :CAD加载GIS数据


”基于“(based on)


说白了,就是以...为基础的意思,在...的基础之上做功能的延申,这个在开源软件领域非常常见,开源界是非常鼓励大家做自己的fork的,也鼓励大家用开源组件做自己的项目,只要遵守开源协议都可以,开源协议大致分成了几类:GPL、MPL、LGPL、Apache License,MIT、BSD


我引用小新子的文章图片解释下他们之间的区别


?开源协议区别与联系

顺便举几个例子,说一下我们常用的一些开源软件的协议:


GPL:GeoServer、QGIS、PostGIS、MySQL、Linux


LGPL:GeoTools


Apache License:Cesium、cesium-unreal、Apache Tomcat、Docker、kubernetes、Spark、Hadoop、OpenHarmony、echarts、tensorflow、draco、zookeeper、Shiro、Dubbo、Kafka、HBase、Hive


MIT:GDAL、Proj4、AntV、Turfjs、VUE、react、bootstrap、element、JQuery、.NET Core 、angular、Node


BSD:Leaflet、OpenLayers、MapboxGL、maptalks.js、Redis


而在我们GIS领域,很多GIS厂商基于开源组件,在符合对应开源协议的要求下,做自己的产品,这是一种"基于”,举个例子,很多GIS厂商基于OpenLayer、Turf、Echarts等组件扩展了开发了自己的客户端产品,增加了多种服务端的空间分析、网络分析能力,也扩展客户端标绘等能力,并同样以Apache License协议的方式,开源了自己的产品。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表