首页 常识
当前位置: 首页> 常识>

兼容是什么意思(兼容与基于的区别)

时间:2024-10-07 09:31:42

兼容在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协议的方式,开源了自己的产品。