当前位置: 首页 > news >正文

关于 Eclipse 的一场 “三角关系”

上个世纪 90 年代,世界上的计算机要么不联网,要么在企业内部联网。但是,在互联网的概念下,计算机之间共享信息和资源的需求成为了必要。

1995 年 5 月,Java 横空出世。Java 的父亲是当时凭借 Solaris 操作系统风头正盛的 SUN 公司。当时,大多数高级语言的程序在运行前需要根据不同的计算机进行编译,然后才能运行。Java 这种高级程序语言不需要与硬件相关的编译器,而是在运行时边解释边运行。如此一来,Java 程序就不受计算平台限制,正好满足了共享的需求。

可想而知,Java 的流行是个必然。但是,Eclipse 的大火却是大家没想到的。Java 好用,但相应的编译器却不好用。而且,当时的编译器少得可怜,一款开源且好用的 Java IDE Eclipse 打遍天下无敌手。

那时候,开源基金会也少得可怜。2004 年,Eclipse 成立基金会,摇身一变成为全球知名的开源基金会。再然后,随着 SUN 被 Oracle 收购,Oracle 又将 Java EE 捐赠给 Eclipse,它由此成为 Java 大本营的重要基石。

如今,Java 已被唱衰多年,多少新涌现的语言说要取代 Java。现在,开源基金会也像雨后春笋一般,Eclipse 基金会几经重大变化。还会有人对他们的故事感兴趣吗?

一段三角关系

如果不去特意追溯,任谁也想不到 Eclipse 开源基金会背后站着的是蓝色巨人 IBM。

IBM 一直是专利大户,多年来都是拥有专利最多的公司,甚至没有之一。他们养了一支庞大的知识产权律师团队,对侵犯专利者重拳出击。似乎,IBM 与开源天生绝缘。

但利益是永恒的。1996 年,IBM 收购了开发 Smalltalk 和 Java 集成开发环境 VisualAge 的 OIT(Object Technology International)。据说,当时 VisualAge 的代码价值 4000 万美元,IBM 眼都没眨就说要消除不兼容的开发环境这个市场痛点,要增加这些环境中通用组件的重用性。2001 年,一个天生为开发环境集成平台而设计的产品诞生了,它日后成为了整个 IBM 工具策略的基础。

IBM 给这个产品取名为 “Eclipse”,有 “日食” 的意思。很多人说这个是非常糟糕的名字,在此之前有 Eclipse 汽车,有 Eclipse 口香糖,还有 Eclipse 女子足球组。IBM 的律师也反对这个已经烂大街的名字。 

但 IBM 一意孤行。2001 年 11 月,IBM 用一个让人无法拒绝的价格从足球队手里购买了 eclipse.org 域名,非要用这个名字。更想不到的是,Eclipse 是开源的,IBM 为它建立了开放源代码许可和运营模式,不仅贡献大量源码、开发者,还有关于开源协议的法律咨询援助。

这是 IBM 最大胆的开源 “赌注”。

—— IT 咨询公司 Illuminata 分析师 James Governor

IBM 的开源决定是一次革命性的举措。那个时候,软件开源协作开发还是十分新颖的想法,Eclipse 的成功展示了开源模式的优势。

—— Eclipse 基金会执行董事 Mike Milinkovich

话说回来,这个名字多少带点针对 SUN(太阳)公司的意思。SUN 对此一直耿耿于怀,与此同时,Eclipse 展现了强大的能力,让 SUN 自带的编译器 NetBeans 黯然失色,逐渐成长为 Java IDE 的老大。

2004 年,Eclipse 正式宣告独立出来,成立 Eclipse 开源基金会,而且总部设立是在加拿大渥太华,不再依赖于创始者 IBM,而是转向行业,让其它技术供货商、甚至是 IBM 的对手加入 Eclipse 董事会,协助决定未来方向。

面对这一邀请,SUN 公司的第一反应是不。据知,在 Eclipse 基金会成立前夕,SUN 就在考量要不要加入,除了技术层面外,其中最主要的一个关注就是 Eclipse 这个名字。SUN 表示,如果基金会不同意改名字,他们就不准备加入。还有该公司高管也表示,不会加入一个名字中带有要消亡 SUN 公司的组织。

当时,业界普遍认为 IBM 独占 Eclipse 主导地位,想要推动自家的 Java 软件,这让 IBM 与 SUN 之间产生间隙。但那时,IBM 主管也曾驳斥传言,说取名 Eclispe 不是克制 SUN 的意思,请不要自作多情。

第三者微软,在 2005 年才浮出水面。2005 年 3 月 EclipseCon 大会的主题演讲中,IBM Rational 软件部门 CTO 兼设计、构建和测试工具副总裁的 Lee Nackman 表示,微软公司才是 IBM 想要 “吞噬” 的公司。

我们的目标是微软。微软是市场的领导者,并且正在成为主导市场的工具平台。显然,我们需要争夺更多的开发者群体。所以,在 1998 年左右,我们觉得应用服务器和中间件的竞争是关键,我们需要把开发者带回到基于 Java 的中间件上来。

2001 年初,IBM 看到 Visual Studio 和微软生态不断成长,非常困扰。我们决定与 Windows 和 Visual Studio 进行竞争。因此,Eclipse 的目标过去是,现在也是微软,而不是 SUN 公司。

好一出峰回路转的单箭头大戏,任谁都会说一句 IBM “不娶何撩”?但是,冷静想想,一切又似乎都有迹可循。

不谈 IBM 与微软那笔 DOS 操作系统的 “旧债”。21 世纪初,互联网爆发,依靠个人电脑崛起的微软如日中天,Windows 在手之外,它还要开发 C# 语言和 .Net 平台,要与 Java 一争高低。这在重仓 Java 的 IBM 眼里,可谓是 “旧债加新仇”。

2004 年 Eclipse 基金会成立,就有不少人猜测,这将有助于抵挡微软工具与 Windows-based 软件的竞争。要想增强竞争力,IBM 或者是 Eclipse 必须拿出更强势的产品。

然而,IBM、SUN 和微软之间的三角关系并没想象中那么简单。因为微软与 SUN 之间也曾有一段 “爱恨情仇”,这佐证了微软就是在打压 Java。

Java 一降生,SUN 就抱有通过 Java 实现跨操作系统平台的梦想,这让微软很是眼馋。1996 年,微软向 SUN 公司购买了 Java 的授权。但是,微软并没有依合同向用户提供用 Java 开发的产品,而是通过 SUN 的技术,搞自己的类似产品。

为此,SUN 把微软告上法庭。这场官司直到 2001 年才以 SUN 获得胜利告终,当时法院判定:微软误导 Java 开发者、阻碍他们开发兼容 Java 技术的产品,从而打压 Java。然而,此时微软的 ASP 已经获得了更大的市场占有率。

一滴时代的眼泪

战胜 Visual Studio 和微软生态那个点,Eclipse 曾经一度非常接近过。可惜,却无疾而终。在知乎相关问题中,排名第一的答案多少有点情怀向了。

的确,Eclipse IDE 是 Eclipse 基金会的第一个王牌项目。当年,Java 开发没有统一天下的 IDE,稀少又昂贵,Eclipse IDE 以开源和免费的姿态出现在大家面前,而且速度相对更快,又有 Google 支持,还在各种教科书中备受推崇,让不少人如获至宝,口碑极盛。

下面这两张图, Eclipse 基金会执行董事 Mike Milinkovich 在多个演讲中都拿出来过,以佐证 Eclipse IDE 曾经一骑绝尘:

转折点出现在 2014 年 Eclipse 4.4 Luna 的发行。如果说之前的 Eclipse IDE 瑕不掩瑜,那么后几年中发展中,它的弊端就渐渐显现出来了。曾有一篇唱衰 Eclipse 的文章直指这一版本:

如果说有一个时间点,标志着 Eclipse 的死亡,那这个时间点一定是 Eclipse 4 的发布。在 Eclipse 3.x 时代,Eclipse 做的很不错,统治着所有开发工具。但是突然间,好像他们决定要亲手终结自己的生命,他们改写了所有 UI 代码。

在 3.x 时代,Eclipse 是一个速度非常快的 IDE,每一次 Release,它都添加了各种实用的功能。而 Eclipse 4,一切都变了,运行速度变慢,UI 错误不断,而且还很丑陋。好像 Eclipse 一下退步了好几年。

有些人将原因归结于 Eclipse 不再看重 IDE 产品,而更乐忠于推广 Eclipse 基金会;也有人认为 Intellij 才是 Eclipse 式微的真正元凶:“每一次在使用 Eclipse 的时候,你都会感到,你还在使用它的唯一原因,就是太穷,买不起 Intellij。”

此前,2013 年 6 月的 Google I/O 大会上,Google 推出新的 Android IDE “Android Studio”。本来,是与 Eclipse 合作开发;随后,谷歌 “反水”,投身 IntelliJ,打造出今天的 Android Studio。由此,这次大会上的 “Android Studio”,最大的转变就是从 Eclipse 切换到了 IntelliJ IDEA。

2013 年~ 2014 年,似乎成为了 Eclipse 及其基金会的分水岭。资料显示,2012~2014 年 Eclipse 基金会出于财务亏损状态。

旋即,2015 年 6 月,Google 重点决定建设 Android Studio,并宣布在年底停止支持其他集成开发环境,比如 Eclipse。8 月,Eclipse 基金会开始向个人或组织寻求捐助来为它的开源项目提供资金。

与此同时,Eclipse 基金会也表示,初期他们的重点放在改进核心 Eclipse 平台、JDT 和 Web 工具,未来会扩展到更多项目。这是一个转型的信号。

如今,据 2022 年 5 月份的数据来看,Eclipse IDE 依旧占据在榜单第二的位置,受到了 14.21% 份额的关注度,似乎并没有像别人所鼓吹的那般滑落神坛。

https://pypl.github.io/IDE.html

但是,他们似乎已经放弃了追赶微软的计划。在 2021 年的年度报告中,他们的战略目标包括:传达 Eclipse 基金会的差异化价值主张、将 Eclipse 基金会建立为卓越的欧洲 OSS 组织、培育新兴技术的项目和工作组等等。

要知道,曾经十余年中,他们的年度报告战略位置,排在第一的永远都是 “成为首选开发者平台” 这样类似的表述。

一场失败的谈判

2018 年是 Java 社区发生重大变化的一年,因为企业 Java 的管理权从 Oracle 和 Java Community Process (JCP) 手中被转移到了 Eclipse 基金会。有必要提一嘴的是,之所以是 Oracle,是因为 SUN 在 2010 年被它收购了。

Mike Milinkovich 在一场采访中如此表述这项转移:

我们绝对欢迎 Java EE 加入 Eclipse 基金会。虽然这是一项繁重的工作,但 Eclipse 基金会在 Java 社区和企业中有着深厚的根基。

我们觉得这是天作之合,也是我们的绝佳机会。除此之外,我认为 Jakarta EE 会促使许多开发人员最终认识到 Eclipse 基金会还有我们的 Java IDE 以外的项目。

很明显,在 Eclipse 基金会看来这是一件好事,这巩固了 Eclipse 基金会在 Java 世界中的重要地位。但不知道大家发现一个 “华点” 没有,转移后的 Java EE 被改名为 Jakarta EE 了。这缘于一次失败的谈判

简单来说,Oracle 捐赠 Java EE 给 Eclipse 基金会有几个条件:

1)Eclipse 基金会发行的产品(如 Eclipse IDE)必须只能捆绑由 Oracle 认证(而不是任何其他供应商认证)的 Java 运行。这一条会损坏了该基金会 “供应商中立” 的立场。

2)Oracle 要求 Eclipse 基金会不能修改旧的代码,如需修改则要重命名,包括项目名称和软件包的名称。这意味着现有的应用程序无法在没有重构和重新编辑的情况下运行在更新后的平台上。

有点霸王条款的意思的了。不少人在当时劝 Oracle 允许 Eclipse 基金会继续使用 Java 的名字,毕竟 Java EE 之前就是从 J2EE 改名过来的,频繁地改名会造成使用者的困扰,导致市场混乱。

但 Oracle 没有让步。在长达数月的谈判之后,两者最后达成的共识是:Jakarta EE 不能发布针对基础库 javax 的修改包,Jakarta EE 规范也不能使用包括 Java 商标的现有规范名称。

因此,有人担忧 Oracle 会在一定程度上杀死 Java EE。但最重要的是,这凸显了开源基金会在大企业面前的弱势地位。

一次搬家的背后

2020 年 5 月,Eclipse 基金会宣布将总部搬往欧洲的比利时布鲁塞尔。

在计划中,2020 年 7 月这一搬迁就要完成。届时,Eclipse 基金会将在比利时、加拿大和美国设立总部,但其官方总部将设在欧洲。而 Eclipse 和 Eclipse Foundation 的名称、商标和品牌将由新的比利时实体控制。而且,未来 Eclipse 基金会的会费以欧元计价。

除此之外,Eclipse 基金会还正在建立一个基于 GitLab 的新平台,托管在欧洲的服务器上。

这让人不得不联想到 2019 年的微软收购 GitHub 事件。当时,微软 —— 这个 Eclipse 的宿敌正在史无前例地加大对开源的支持力度。这让 Mike Milinkovich 感到担忧:

微软正在走向另一种形式上的完全垄断,可能危及包括 Eclipse IDE 等在内的其它公司和项目。GitHub + VS Code 的组合已经非常流行,这种单一性文化会引发忧虑。 

当然,我们也不能将 Eclipse 基金会的这次搬家归结于微软,这次行动的确有战略上的必要性:

首先,Eclipse 基金会有三分之二的提交者位于欧洲国家。Mike Milinkovich 表示, Eclipse 基金会已经是欧洲最大的开源组织;

其次,Mike Milinkovich 认为欧洲越来越重视开源和开发的价值,而且尽管欧洲有一些开源组织,但它们主要坚持单一项目,并没有托管数百个项目这样体量的开源基金会。这对 Eclipse 基金会是个机会,让它建立起一个真正的全球开源机构。

我们(Eclipse Foundation)在美国的工作多少有些局限了自己。在美国,我们的确和一定数量的研究实验室和政府机构和合作,一些美国资助的研究机构也和我们有联系。

然而,在我看来,欧洲在政策层面上是要比美国先进的,欧洲的研究机构更加愿意从外部去拥抱开源。近来,欧洲越来越倾向于使用开源的方法来达成研究成果的发表和传播。多年来,他们一直鼓励研究者或者开发者建立社区。

—— Mike Milinkovich

结语:物是人非,分久必合。

日转星移。IBM/Eclipse、SUN 和微软之间的爱恨情仇,似乎已经随风飘散了。

2010 年,SUN 公司被 Oracle 公司收购。2018 年那场与 Oracle 谈判虽然失败,但那早已与 SUN 无关了。Eclipse 拿到了 Java EE,进一步巩固了自己在 Java 社区中的权威。

2021 年 8 月,微软宣布
将成为 Eclipse 基金会的战略成员,并且加入其董事会。

其实,早在 2016 年,微软就以解决方案成员的身份加入了 Eclipse 基金会,并在当时提供了一套开发工具和服务。现在,两者之间的合作更加紧密了。微软盛赞 Eclipse 基金会:

1)Eclipse 基金会在供应商中立治理、基础设施、营销、社区建设和开发人员倡导工作方面拥有深厚的专业知识。

2)Eclipse 基金会仍然是 Java 生态系统的重要基石,与 Java 社区的核心部分有着密切的联系。

3)Eclipse 基金会正在通过工作组扩大其作用,其中许多工作组对 Microsoft 及其合作伙伴很重要。

果然啊,三十年河东,三十年河西。

相关文章:

关于 Eclipse 的一场 “三角关系”

上个世纪 90 年代,世界上的计算机要么不联网,要么在企业内部联网。但是,在互联网的概念下,计算机之间共享信息和资源的需求成为了必要。 1995 年 5 月,Java 横空出世。Java 的父亲是当时凭借 Solaris 操作系统风头正盛…...

koa 使用 Mongoose 查询数据

Mongosee 操作符koa 使用 Mongoose 进行 翻页查询koa 使用 Mongoose 进行 多条件查询 mongosee 操作符 在使用 Koa 和 Mongoose 进行数据库查询时,你可以使用以下常用的操作符来构建查询条件: $eq:等于 示例:{ field: { $eq: valu…...

前后端分离------后端创建笔记(10)用户修改

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…...

K8S系列文章之 Docker安装使用Kafka

通过Docker拉取镜像的方式进行安装 照例先去DockerHub找一下镜像源,看下官方提供的基本操作(大部分时候官方教程比网上的要清晰一些,并且大部分教程可能也是翻译的官方的操作步骤,所以直接看官方的就行) 老实说Kafka…...

js如何获取字符串大小是几M

js如何获取字符串大小是几M 在JavaScript中,可以使用以下方法来获取字符串的大小(以字节为单位): function getStringSizeInBytes(str) {// 使用UTF-8编码计算字符串的字节长度let totalBytes new Blob([str]).size;// 将字节长…...

服务器托管中1U是什么意思?

U的概念 U是一种表示服务器外部尺寸的单位,是unit的缩略语。 1U4.44514.445cm 2U4.44528.89cm 4U4.445*413.335cm 在托管服务器时,服务商经常说的“1U”是外形满足EIA(美国电子工业协会)规格、厚度为4.445cm的产品,设…...

Golang自定义类型与类型别名

type myInt int32 与 type myInt int32,概念并不相同 自定义类型:type myInt int32 通过这种方式定义的类型是一个全新的类型,这个新类型与int32有相同的底层结构,但是却与int32类型不兼容。 type myInt int32var a int32 5 var…...

golang环境搭建

1. 下载、安装 wget -O go.tar.gz https://golang.google.cn/dl/go1.21.0.linux-amd64.tar.gz sudo rm -rf /usr/local/go && sudo tar -zxvf go.tar.gz -C /usr/local2.创建工作目录 cd mkdir -p go/{bin,pkg,src}3.添加环境变量 sudo vim /etc/profile写入以下…...

一套优质的MES系统,应该具备哪些特质?

企业如何在众多的MES系统中,选择最合适自己的产品呢?也就是说,一套优质的MES,因该具备哪些特质呢?下面有SAP代理商哲讯智能科技详细介绍: 随着经济全球化趋势不断加强以及中美贸易战的愈演愈烈,…...

常见的路由协议之RIP协议与OSPF协议

目录 RIP OSPF 洪泛和广播的区别 路由协议是用于在网络中确定最佳路径的一组规则。它们主要用于在路由器之间交换路由信息,以便找到从源到目标的最佳路径。 常见的路由协议: RIP (Routing Information Protocol):RIP 是一种基于距离向量算…...

使用ip2region获取客户端地区

目录 从gitee拉取ip2region.xdb资源文件 写测试类 注意要写对资源路径 本地测试结果 ​编辑 远端测试结果 从gitee拉取ip2region.xdb资源文件 git clone https://gitee.com/lionsoul/ip2region.git 将xdb放入resources资源文件夹 引入依赖 <dependency><groupId&…...

RH850从0搭建Autosar开发环境【24】- Davinci Configurator之DEM模块配置详解(上)

DEM模块配置详解 - 上 一、Autosar中DEM模块简介1.DEM对其他模块的依赖2.DEM模块架构2.1 DEM模块Dem Satellite(s) 和Master2.2 诊断事件处理2.2.1 基于计数器的算法2.2.2 基于时间的算法三、配置错误项处理3.1 容器DemEventParameter3.2 容器DemOperationCycleRef3.3 容器DemO…...

uniapp封装接口

uniapp封装接口 在本篇技术博文中&#xff0c;我们将深入探讨 Uniapp 框架中如何封装接口&#xff0c;以简化开发流程并提高效率。接口封装是一种重要的开发策略&#xff0c;它不仅可以减少代码量&#xff0c;还能提高代码的复用性和维护性。 通过阅读本文&#xff0c;你将深…...

Android布局【TableLayout】

文章目录 说明常见属性子控件设置属性 项目结构主要代码 说明 TableLayout也称为表格布局 常见属性 android:collapseColumns&#xff1a;设置需要被隐藏的列的序列号&#xff0c;从0开始android:stretchColumns&#xff1a;设置允许被拉伸的列的列序号&#xff0c;从0开始&…...

C/C++中static关键字详解

静态变量作用范围在一个文件内&#xff0c;程序开始时分配空间&#xff0c;结束时释放空间&#xff0c;默认初始化为0&#xff0c;使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它&#xff0c;它的名字在其它文件中不可见。用法1&#xff1a;函数内部声明…...

Memory Analyzer(MAT)分析内存

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、 使用3.1 hprof 文件准备3.1.1 Android sutdi…...

计算机网络面试题

目录 OSI 的五层模型分别是&#xff1f;各自的功能是什么&#xff1f; 应用层 传输层 网络层 数据链路层 物理层 OSI 的七层模型分别是&#xff1f; TCP连接的建立 三次握手中客户端和服务端是什么状态 为什么是三次&#xff0c;不是两次&#xff1f; 四次…...

【LeetCode75】第三十题 奇偶链表

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个链表&#xff0c;让我们把奇索引和偶索引的节点区分开来 &#xff0c;参考示例给出的图我们应该就能很清晰地知道题目是什么…...

docker 学习--03 环境安装(本人使用的win10 Linux也是在win10下模拟)

docker 学习–03 环境安装&#xff08;本人使用的win10 Linux也是在win10下模拟&#xff09; docker 学习-- 01 基础知识 docker 学习-- 02 常用命令 文章目录 docker 学习--03 环境安装&#xff08;本人使用的win10 Linux也是在win10下模拟&#xff09;[TOC](文章目录) 1. wi…...

【代码质量】认知复杂度(COGNITIVE COMPLEXITY)一种衡量可理解性的新方法

白皮书地址 摘要&#xff1a;圈复杂度最初是作为“可测试性和模块控制流的“可维护性”。虽然它擅长于衡量前者&#xff0c;但它的数学模型不能产生一个令人满意的值来衡量后者。本文描述一种打破数学度量模型的新度量模型来评估代码&#xff0c;以弥补圈复杂度的缺点&#xf…...

软件工程:如何做好软件产品

1、什么是产品 从项目到产品 产品&#xff1a;满足行业共性需求的标准产品。即要能够做到配置化的开发&#xff0c;用同一款产品最大限度地满足不同客户的需求&#xff0c;同时让产品具有可以快速响应客户需求变化的能力。 好的产品一定吸收了多个项目的共性&#xff0c;一定是…...

Zookeeper 和 Kafka 版本与 JDK 要求

Apache Zookeeper 和 Apache Kafka 在不同版本中对 JDK 的要求如下表所示(基于官方文档和历史版本记录整理): 1. Zookeeper 版本与 JDK 要求 Zookeeper 版本要求的最低 JDK 版本说明3.4.x 系列JDK 6生产环境建议用 JDK 8(旧版兼容性强)。3.5.x 系列(3.5.5+)JDK 83.5.0 …...

在 Ubuntu 24.04 LTS 上安装 Jenkins 并配置全局工具(Git、JDK、Maven)

在 Ubuntu 24.04 LTS 上安装 Jenkins 并配置全局工具(Git、JDK、Maven) Jenkins 是一款开源的持续集成和持续交付(CI/CD)工具,在 DevOps 实践中有着广泛的应用。本文将手把手带你在 Ubuntu 24.04 LTS 系统中完成 Jenkins 的安装,并配置所需的全局工具:Git、JDK 和 Maven…...

vscode .husky/pre-commit: line 4: npx: command not found

目录 1. 修复 npx 路径问题&#xff08;90% 的解决方案&#xff09;2. 显式加载环境变量&#xff08;nvm 用户必选&#xff09;3. 修复全局 PATH 配置4. 重装 Husky 与钩子5. 使用 HUSKY_DEBUG 调试执行流程 &#x1f527; 核心解决方法&#xff08;按优先级排序&#xff09; …...

护网行动面试试题(1)

文章目录 1、描述外网打点的流程&#xff1f;2、举几个 FOFA 在外网打点过程中的使用小技巧&#xff1f;3、如何识别 CDN&#xff1f;4、判断出靶标的 CMS&#xff0c;对外网打点有什么意义&#xff1f;5、Apache Log4j2 的漏洞原理是什么&#xff1f;6、如何判断靶标站点是 wi…...

《Linux运维总结:宝德服务器RAID开启(方式一)》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;Linux运维实战总结 一、背景信息 说明&#xff1a;从客户那里退回来的一台宝德服务器&#xff0c;硬盘不见了&#xff0c;现在需要用两个2T的硬盘…...

Windows系统中如何使用符号链接将.vscode等配置文件夹迁移到D盘(附 CMD PowerShell 双版本命令)

在日常开发和使用中&#xff0c;很多应用程序都会在 Windows 用户目录&#xff08;如 C:\Users\你的用户名\&#xff09;下创建一些以点开头的隐藏配置文件夹&#xff0c;例如&#xff1a; .vscode — Visual Studio Code 的设置和插件数据.cursor — Cursor 编辑器的缓存和设…...

GPU加速与非加速的深度学习张量计算对比Demo,使用PyTorch展示关键差异

import torch import time # 创建大型随机张量 (10000x10000) tensor_size 10000 x_cpu torch.randn(tensor_size, tensor_size) x_gpu x_cpu.cuda() # 转移到GPU # CPU矩阵乘法 start time.time() result_cpu torch.mm(x_cpu, x_cpu.t()) cpu_time time.time() - sta…...

MidJourney入门学习

1. 引言 MidJourney 是一款由美国科技公司开发的先进文本到图像生成 AI 工具,自 2022 年推出以来迅速在创意产业和社交媒体领域引发轰动。与 Stable Diffusion 不同,MidJourney 以其独特的美学风格、高度细节化的图像生成能力和强大的创意引导功能著称,成为设计师、艺术家和…...

ubuntu 端口复用

需求描述&#xff1a;复用服务器的 80端口&#xff0c;同时处理 ssh 和 http 请求&#xff0c;也就是 ssh 连接和 http 访问服务器的时候都可以指定 80 端口&#xff0c;然后服务器可以正确分发请求给 ssh 或者 http。 此时&#xff0c;ssh 监听的端口为 22&#xff0c;而 htt…...