大家好,c开源服务器相信很多的网友都不是很明白,包括17个开源GIS软件也是一样,不过没有关系,接下来就来为大家分享关于c开源服务器和17个开源GIS软件的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
一、四大开源数据库是哪些
开源世界中的那几个免费数据库
发布时间:2011-11-22 09:34:30来源:CSDN评论:0:1476次【字号:大中小】
QQ空间新浪微*腾讯微*人人网豆瓣网百度空间百度搜藏开心网复制更多 0
开源数据库MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Inter上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源...
开源数据库MySQL
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Inter上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
盘点:开源社区那些免费的数据库软件
MySQL为多种编程语言提供了API,包括C、C++、C#、Delphi、Eiffel、J*a、Perl、PHP、Python、Ruby和Tcl等。而其自身是采用C和C++编写的,使用了多种编译器进行测试,所以,MySQL能够保证源代码具有很强的可移植*。这样的一款数据库,自然能够支持几乎所有的操作系统,从Unix、Linux到Windows,具体包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多种操作系统。最重要的是,它是一个可以处理拥有上千万条记录的大型数据库。
与此同时,MySQL也产生了很多分支版本的数据库也非常值得推荐。
首先是MariaDB,它是一个采用Maria存储引擎的MySQL分支版本,是由原来MySQL的作者 Michael Widenius创办的公司所开发的免费开源的数据库服务器。与MySQL相比较,MariaDB更强的地方在于它拥有更多的引擎,包括Maria存储引擎、PBXT存储引擎、XtraDB存储引擎、FederatedX存储引擎,它能够更快的复制查询处理、运行的速度更快、更好的功能测试以及支持对Unicode的排序等。
其次是rcona,它为MySQL数据库服务器进行了改进,在功能和*能上较MySQL有着很*的提升。该版本提升了在高负载情况下的InnoDB的*能,同时,它还为DBA提供一些非常有用的*能诊断工具,并且提供很多参数和命令来控制服务器行为。
第三是Percona Server,它使用了诸如google-mysql-tools、Proven Scaling和 Open Query对MySQL进行改造。并且,它只包含MySQL的服务器版,并没有提供相应对 MySQL的Connector和GUI工具进行改进。
非关系型数据库NoSQL
从NoSQL的字面上理解,NoSQL就是Not Only SQL,被业界认为是一项全新的数据库革命*运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
盘点:开源社区那些免费的数据库软件
当然,NoSQL也是随着互联网Web2.0网站的兴起才能取得长足的进步。关键的需求在于,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
首先推荐的是Oracle NoSQL Database,这是一个社区版。Oracle的这个NoSQL Database,是在10月4号的甲骨文全球大全上发布的Big Data Appliance的其中一个组件,Big Data Appliance是一个集成了Hadoop、NoSQL Database、Oracle数据库Hadoop适配器、Oracle数据库Hadoop装载器及R语言的系统。
其次推荐的是Membase。Membase是NoSQL家族的一个新的重量级的成员。Membase是开源项目,源代码采用了Apache2.0的使用许可。该项目托管在GitHub.Source tarballs上,目前可以beta版本的Linux二进制包。该产品主要是由North Scale的memcached核心团队成员开发完成,其中还包括Zynga和NHN这两个主要贡献者的工程师,这两个组织都是很大的在线游戏和社区网络空间的供应商。
并且,Membase容易安装、操作,可以从单节点方便的扩展到集群,而且为memcached(有线协议的兼容*)实现了即插即用功能,在应用方面为开发者和经营者提供了一个比较低的门槛。做为缓存解决方案,Memcached已经在不同类型的领域(特别是大容量的Web应用)有了广泛的使用,其中 Memcached的部分基础代码被应用到了Membase服务器的前端。通过兼容多种编程语言和框架,Membase具备了很好的复用*。在安装和配置方面,Membase提供了有效的图形化界面和编程接口,包括可配置的告警信息。
Membase的目标是提供对外的线*扩展能力,包括为了增加集群容量,可以针对统一的节点进行复制。另外,对存储的数据进行再分配仍然是必要的。
第三推荐的是Hibari。Hibari在日语中意思为“云雀”,它是一个专为高可靠*和大数据存储的数据库引擎,可用于云计算环境中,例如 webmail、SNS和其他要求T/P级数据存储的环境中。同时,Hibari也支持J*a,C/C++,Python,Ruby和Erlang语言的客户端。
第四推荐的是memcachedb。这是一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高*能读写速度,但是不需要严格事务约束,能够被持久化保存的应用场景,例如memcachedb被应用在新浪*客上面。
第五推荐的是Leveldb。这是一个Google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。在这个数量级别下还有着非常高的*能,主要归功于它的良好的设计,特别是LSM算法。LevelDB是单进程的服务,*能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的*能每秒钟超过10w。
XML数据库的优势
XML数据库是一种支持对XML格式文档进行存储和查询等操作的数据管理系统。在系统中,开发人员可以对数据库中的XML文档进行查询、导出和指定格式的序列化。目前XML数据库有三种类型:XMLEnabledDatabase(XEDB),即能处理XML的数据库;NativeXMLDatabase(NXD),即纯XML数据库;HybridXMLDatabase(HXD),即混合XML数据库。
关系数据库中的第一代XML支持是切分(或分解)文档,以适应关系表格或将文档原封不动地存储为字符或二进制大对象(CLOB或 BLOB)。这两个方法中的任一种都尝试将XML模型强制转换成关系模型。然而,这两种方法在功能和*能上都有很大的局限*。混合型模型将XML存储在类似于DOM的模型中。XML数据被格式化为缓冲数据页,以便快速导航和执行查询以及简化索引编制。
在这里,首要要推荐的XML数据库是Sedna。它号称是一款原生态的XML数据库,提供了全功能的核心数据库服务,包括持久化存储、ACID事务、索引、安全、热备、UTF8等。实现了 W3C XQuery规范,支持全文搜索以及节点级别的更新操作。
第二款XML数据库是BaseX。这款数据库用来存储紧缩的XML数据,提供了高效的 XPath和XQuery的实现,同时,它还提供一个前端操作界面。
盘点:开源社区那些免费的数据库软件
第三款推荐的是XMLDB。这款数据库使用了关系型数据库来存储任意的XML文档,因为所采用的存储机制,所以文档的搜索速度特别快,同时执行XSL转换也相当快。XMLDB同时还提供了一个PHP的模块,可以应用在Web应用中。
第四块推荐的是X-Hive/DB。它是一个为需要高级XML数据处理和存储功能的软件开发者设计的强大的专属XML数据库。X-Hive/DB J*a API包含存储、查询、检索、转换和发表XML数据的方法。
与传统关系型数据库相比,XML数据库具有以下优势:第一,XML数据库能够对半结构化数据进行有效的存取和管理。如网页内容就是一种半结构化数据,而传统的关系数据库对于类似网页内容这类半结构化数据无法进行有效的管理。第二,提供对标签和路径的操作。传统数据库语言允许对数据元素的值进行操作,不能对元素名称操作,半结构化数据库提供了对标签名称的操作,还包括了对路径的操作。第三,当数据本身具有层次特征时,由于XML数据格式能够清晰表达数据的层次特征,因此XML数据库便于对层次化的数据进行操作。XML数据库适合管理复杂数据结构的数据集,如果己经以XML格式存储信息,则XML数据库利于文档存储和检索;可以用方便实用的方式检索文档,并能够提供高质量的全文搜索引擎。另外XML数据库能够存储和查询异种的文档结构,提供对异种信息存取的支持。
二、C语言初学者,必须要了解的六个开源项目
C语言初学者,必须要了解的六个开源项目
项目一名称:C
项目简介:是的,你没有看错,这个项目的名字就是单个字母C。C是一个宝藏项目,可以说是学习数据结构和刷算法题的利器,因为里面包含了几平各种基础算法、数据结构、以及LeetCode算法题的C语言实现。
项目二名称:libhv
项目简介:libhv类似干libevent、libev和libuv,是一个跨平台的具有非阻塞I/O和计时器的异步事件驱动库,但libhv提供7更加简单易用的API接口并支持更加丰富的网络协议,基干它可以快速驱动HTTP服务端和客户端,从而提供高*能的服务。
主要枝术点或特*:跨平台、事件循环、非阻塞I/O、支持IPv6、使用OpenSSL、支持多种网络协议,对干我们的作用:可以帮助我们理解和实践操作系统的相关知识。
项目三名称:CPlusPlusThings
项目简介:CPlusPlusThings是-个适合初学者的从入门到进阶的仓库,里面包含了大量C++语言的基础和进阶教程、源码剖析、工具推荐、实战练习等等,解决了初学者从入门到深入C++的学习问题。
项目四名称:design-patterns-cpp
项目简介:从项目名称就能够猜出来,这是一个C++语言版的设计模式实现,里面包含了常见设计模式的C++语言实现。
项目五名称:tmux
项目简介:tmuX一个开源免费的的终端复用软件。它的命令行界面非常炫酷易用,支持自由分割窗口,并且可以自由移动和调整,灵活且强大。一个非常强大的使用场景是:当远程连接到服务器使用时,只需要启动tmuX,利用它就可以方便地进行后续操作,而无需打开多个ssh控制台窗口。
项目六名称:data
项目简介:data是一款开源免费的炫酷Linux系统实时*能和运行状况的系统监控工具。data通过使用可交互的仪表盘形式,来提供灵活易用的系统监控。除了支持常见系统平台的安装之外,它还可以非常方便地安装干D0cker容器和集群之中并提供监控服务。
三、17个开源GIS软件***看你用过几个
任何事物都有时空属*,都与空间信息相关,地理信息无处不在。GIS以空间数据为基础,航天、地面、地表、地下等都是GIS所研究的领域。我们在工作和生活中所接触到的各种地图制图工具及在线地图产品,仅仅是GIS的冰山一角。
其实,GIS从最初的地图制图发展至今,已广泛应用于国土、气象、矿产、农林、市政等专业领域,以处理和分析各个行业面临的业务问题并辅助其进行决策。
GIS究竟能做什么呢?
以大众应用为例。GIS首先就是用于收集地理信息,人类的绝大部分活动都与地理位置有关,比如想和朋友找个餐厅吃饭,周末想找个电影院看电影,到一个陌生的城市出差找宾馆……这些都涉及地理信息。
GIS发展至今,紧跟IT相关技术的步伐,从单机桌面工具到互联网Web在线应用,再到移动端便携应用;在各类应用需求的驱动下,从简单的制图到二维GIS应用,从2.5D到3D的进步,甚至全空间真三维的突破。GIS在短短几十年中迅速发展、蜕变。GIS应用渗透到各行各业,分别在横向与纵向逐步扩大应用的广度和深度,成为我们创建智慧城市和智慧地球的中坚力量。
17个常见的开源GIS平台及软件
得益于互联网的发展,WebGIS快速发展前进,开发工具与平台也呈现出百花齐放之势。
更多的人开始关注WebGIS应用,很多开发者投身于GISer大军,催生了众多开源GIS项目,推动WebGIS的普及,在此我们分享17个常见的开源GIS平台及软件,看看你用过几个?
1、uDig
uDig是一个开源的桌面应用程序框架(见图),是构建在Eclipse RCP和 GeoTools(一个开源的J*a GIS工具包)上的桌面GIS。uDig作为一款开源桌面GIS软件,基于J*a和Eclipse平台,可以进行shp格式地图文件的编辑和查看;是一个开源空间数据查看器与编辑器,对OpenGIS标准、WebGIS、网络地图服务器和网络功能服务器有特别的加强。
2、QGIS
QGIS是一个用户界面友好的桌面GIS,可以运行在Linux、UNIX、Mac OSX和 Windows等平台之上。QGIS是基于Qt(跨平台的图形工具软件包),使用C++语言开发的一个用户界面友好、跨平台的开源版桌面地理信息系统,如图所示。
3、GeoServer
GeoServer是 OpenGIS Web服务器规范的J2EE实现,利用GeoServer可以方便地发布地图数据,允许用户对数据进行更新、删除、插入操作,通过GeoServer可以比较容易地在用户之间迅速共享地理信息。GeoServer是社区开源项目,可以通过社区网站相关资料,如图所示。
GeoServer支持OGC标准规范的系列服务,支持PostgreSQL、MySQL等数据库,以及ArcSDE、ShapeFile等中间件和文件资源,能够将网络地图输出为JPEG、PNG、KML等多种图片和数据格,可以运行在任何基于J2EE/Servlet的容器之上,支持多种客户端框架,如Openlayers等。
4、MapServer
MapServer是美国明尼苏达大学在20世纪90年代利用C语言开发的开源WebGIS项目。MapServer是一套基于胖服务器端/瘦客户端模式的实时地图发布系统,客户端发送数据请求时,服务器端实时地处理空间数据,并将生成的数据发送给客户端MapServer时核心部分是C语言编写的地图操作模块,它的许多功能都依赖一些开源或免费的库。MapServer遵循OGC系列规范,可以集成PostGIS和开源数据库PostgreSQL,并对地理空间数括进行存储和SQL查询操作,同时还支持其他客户端API实现地理空间数据的传输与表达。
5、OpenLayers
OpenLayers是一个专为WebGIS客户端开发提供的J*aScript类库包,用于实现地图数据的网络访问。它访问地理空间数据的方法都符合行业标准,支持各种公开的和私有的数据标准和资源。OpenLayers采用纯面向对象的J*aScript方式开发,同时借用了Prototype框架和Rico库的一些组件。
OpenLayers是一个开源的项目,其设计之意是为互联网客户端提供强大的地图展示功能,包括地图数据显示与相关操作,具有灵活的扩展机制。目前,OpenLayers已经成为一个拥有众多开发者和帮助社区的成熟、流行的框架。
目前OpenLayers2已经升级为OpenLayers3,可以从其官方网站相关资源,如图所示。
6、OpenScales
OpenScales是一个基于Flex的优秀的前台地图框架,可以用来开发各种网络版、手机版和桌面版地图程序。OpenScales是基于ActionScript3和 Flex编写的,能够支持各种标准的地图服务,如WMS、WFS、WMTS、OSM等。它是开源的、免费的客户端开发框架,基于LGPL开源协议,它在FlashPlayer中运行,可以在各个浏览器中使用,具有很好的跨平台特*。
OpenScales作为一个开源的GIS客户端框架,具有非常大的应用潜力,可以从其官方网站相关资源。OpenScales可以看成对OpenLayers的 ActionScript翻译,所以在学习OpenScales时可以适当参考OpenLayers的官方教程。相比之下,虽然OpenLayers的教程也是英文的,不过非常详细,提供的示例也远比OpenScales的官方教程丰富。
7、gvSIG
gvSIG也是一个跨平台的桌面GIS软件,于2004年在西班牙成为了开源GIS软件。稳定版本是2.0。
该系统适用于Windows、Linux、OS X操作系统;不仅能够访问本地的矢量数据或者栅格数据,而且也能够通过支持开放地理空间信息联盟(OGC)规范的远程服务器访问该类数据。
支持网络地图服务(WMS)、网络要素服务(WFS)、网络覆盖服务(WCS)、目录服务以及地名辞典服务等一系列地理信息网络服务规范,这是gvSIG与其它地理信息系统的特大区别。此外,它也能够访问ESRI公司的ArcIMS服务提供的远程数据。
gvSIG CAD可以跟踪的几何图形,然后编辑顶点分裂线和多边形;gvSIG移动带来了手机GIS应用,适合现场作业。gvSIG能够支持以下数据格式:矢量格式(Shapefile、DXF、DGN、DWG)、栅格格式(ECW、MrSID、JPEG、jp2、TIFF、geoTIFF、PNG、GIF)和基于XML的格式(KML、GML)。
8、Whitebox GAT
Whitebox GAT是一个地理空间分析工具箱的桌面GIS软件。它主要是将桌面GIS和遥感软件包综合来进行地理空间分析和数据可视化应用。它被认为是替代的地形分析系统(TAS),旨在提供先进的地理空间数据分析,在环境研究和地理信息行业进行应用,也能够进行地理信息教育工具。实际上取代了地形分析系统——hydro-geomorphic应用程序的工具。
通过激光雷达的数据,可以进行转换、分析、管理、缓冲和提取地理空间信息。这个神奇的免费GIS软件在GIS行业几乎是闻所未闻的。
9、SAGA GIS
一个经典的免费系统自动分析的GIS软件。主要进行地形分析、流域提取和可见*分析,尤其地形分析上是其最霸气的应用;它也在环境建模和形态测量方面可以进行地形湿度指数和地形位置分类等应用。SAGA与一个特殊的应用程序编程接口(API的)地理数据处理。这个API可以很容易实施的新算法。它的API支持网格数据,矢量数据,并表。
SAGA GIS的强大还在于它使多个窗口列出你所有的分析(地图、直方图、散点图、属*等),提供了一个友好的GUI和API。总之,快速、可靠和准确是它的魅力。
10、GRASS GIS
GRASS GIS(Geographic Resources Analysis Support System)是开源代码的地理资源分析支持系统,可用于处理栅格、拓扑矢量、影像和图表数据;优势尤其在于选择分析、图像处理、数字地形操作和统计数据。
GRASS最早是由美国陆军工程兵团作为土地管理和环境规划的工具。在GPL下发布,可以在多个平台上运行,包括Mac OS X、Windows和Linux。用户可以通过图形用户界面使用该软件功能;也可以通过改进使用它的模块。当前的GRASS6版本采用新的拓扑2D/3D矢量引擎并支持矢量网络分析。该系统可以胜任3D矢量图形数据和立体像素的可视化,也支持线*参考系统。
GRASS是开源地理空间*会最初的八个软件项目之一。由于它的直观和可靠*,它已经广泛用于不同的领域(学术界、环境咨询公司和政府机构),例NASA、美国国家海洋和大气管理局、美国农业部和美国地质调查局等。
11、MapWindow
MapWindow是一个基于标准的桌面GIS软件,它的90%的用户关注其地图查看器、识别特*、处理工具和打印等特*。
MapWindow GIS项目包含了兼容微软视窗的桌面应用,能够查看shapefile和多种栅格数据格式。它可以通过“GIS工具”插件重生成数据、剪辑、合并,及执行其它地处理。开发用户可以使用任何.NET框架语言书写插件扩展此应用,或使用MapWinGUS ActiveX控制书写GIS软件。其TauDEM功能更是自动描述分水岭。
12、ILWIS
ILWIS是一个土地和水资源综合信息管理的开源GIS软件。它主要被生物学家、水资源管理者和地理空间管理者广泛使用。ILWIS擅长数字化、编辑、显示地理数据和生成地图;也用于遥感图像分类、增强和光谱波段操作。
ILWIS最初是在荷兰的供其研究人员和学生使用。自2007年7月1日,它结合集成的矢量和栅格软件程序,已作为免费软件被许多学生、教师和研究人员使用。ILWIS有非常强大的栅格分析模块、高精密和灵活的向量和点数字化模块,集合多种非常实用的工具。在许多方面与GRASS GIS类似,ILWIS目前只能在微软的Windows下使用。
13、GeoDa
GeoDa是跨平台的开源版本,主要进行空间数据分析。其主要功能是地质统计和空间建模。开源的GeoDa可以在Windows(包括XP,Vista中和7)、Mac OS和Linux上运行。它是哈佛大学,麻省理工大学和康奈尔大学的重要分析工具。
GeoDa具有强大的功能来执行空间分析,多元探索*数据分析,以及全球和当地的空间数据。它还执行基本的线*回归、空间模型,也可用于一系列经济发展健康和房地产等领域。
14、OpenJump
OpenJUMP可以很好地处理大型数据集,并呈现大量的数据图(如饼图、绘制等值线图等)。基于J*A平台可以读取栅格和可视化框架计算机程序。它可以在Windows,Linux和Mac平台上工作,尤其是在运行J*a1.5或更高版本的操作系统上运行。
OpenJUMP的插件增强了其功能,有(绘图和几何)编辑、光栅、印刷、web处理、空间分析、GPS、属*查询、可缩放矢量图形(SVG)格式的影像输出和数据库等应用。它不只是一个免费的演示浏览器,也可以编辑,保存,分析等。它为地理信息系统的API提供了灵活插件结构,从而使新的功能能比较容易进行。
15、Diva GIS
DIVA GIS是用于制图和地理数据分析的GIS软件。它专门从事生物的丰富*和多样*的数据分析;它可以提取气候和土地的所有位置数据、进行统计分析和建模;此外,它可以定位国家的界限,河流,卫星图像,并在观察到动物物种的位置,从而为生物学的研究提供了小面积范围的地图。
16、FalconView
FalconView主要有便携式飞行计划软件(PFPS)的功能,这使得它可以用于战斗飞行计划,所以它的大部分用户来自美国国防部和其他国家地理空间情报机构。它支持各种类型的显示数据,如卫星、激光雷达、频率和MrSID。在SkyView模式中,甚至可以使用MXD文件。
它可以参考各种类型的地图和地理信息,最重要的是在航图、卫星图像和高程图方面。目前用户以军事任务执行人员、飞行员、航空技术支持人员为主。目前的FalconView的一部分XPlan,主要用于美国国防部的任务规划系统和佐治亚技术研究所的计划活动配套方案中。它可用于Windows系列操作系统;而Linux和移动操作系统的版本正在开发中。
17、OrbisGIS
OrbisGIS是一个半成品的开源GIS软件。它提供了新的方法和技术进行建模,它可以处理和共享空间数据,以便于监测地理领土和管理。OrbisGIS能够处理矢量和栅格数据模型。在执行如噪声地图、水文过程等定位应用上,它可以没有任何插件,只是有时间周期限制。
它可以在生态、环境可持续发展的相关*上,使用系统化的方法,进而评估公共政策。但是,这种做法必须考虑到相关的环境、社会和经济因素,以促进其有效的决策和规划。作为包含分析工具,它可以在不同的时间和空间尺度下,计算各项指标,生成综合*的建模;这些都将使OrbisGIS成为不可或缺的工具。
尽管开源的GIS平台为二次开发提供了更多可能*,也给广大GISer带来了便利,但是只能满足一部分webGIS开发需求,无法应对更多面向大众的互联网应用。所以在学习开源GIS平台的同事,也应该熟悉专业的GIS平台,相互补充。