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

WordPress 和 GPL – 您需要了解的一切


如果您使用 WordPress,GPL 对您来说应该很重要,您也应该了解它。查看有关 WordPress 和 GPL 的最全面指南。

您可能听说过 GPL(通常被称为 WordPress 的权利法案),但很可能并不完全了解它。这是有道理的–这是一个复杂的话题,你的时间无疑更应该用来谋生,而不是研究产品许可。

不过,如果您使用 WordPress,GPL 对您来说应该很重要,您应该了解它。为什么呢?因为 GPL 规定了用户和开发者使用 WordPress 的方式。

有鉴于此,这本简明指南将为您揭示与 WordPress 有关的 GPL 许可方面的所有知识,其中不涉及任何法律术语或不必要的复杂语言。阅读完毕后,您将了解什么是 GPL,为什么 WordPress 要获得相应的许可,GPL 如何惠及最终用户和 WordPress 开发者,以及最终为什么 WordPress 的 “衍生 “作品(即主题和插件)应该(甚至必须)获得 GPL 许可。

GNU 通用公共许可证释义

从了解您的目标开始
GNU 通用公共许可证(以下简称 “GPL”)由计算机程序员理查德-斯托尔曼(Richard Stallman)创建,是对专有软件迅猛发展的一种反叛。它被命名为 “GNU” GPL,因为 Stallman 最初用它来许可 GNU 操作系统。

GPL 是一种自由软件许可证。与大众的理解不同,”自由软件” 中的 “自由” 一词指的不是价格,而是(根据 Stallman 的定义)用户使用、修改和发布软件(及任何衍生作品)的自由。

与 “自由软件” 运动相关的四项自由是对 GPL 的最好概括:

为任何目的运行程序的自由。
研究程序如何运行的自由,以及修改程序使其按照你的意愿运行的自由。
重新分发拷贝的自由,这样你就可以帮助你的邻居。
改进程序的自由,并向公众发布你的改进版本(以及一般的修改版本),从而使整个社区受益。
换句话说,GPL 是 Windows 或 iOS 等专有软件的对立面。它赋予最终用户权力,但并不一定符合开发者的最佳利益。不过,正如我们将发现的那样,它确实适用于 WordPress 开发者(如果不是有意为之)。

为什么 WordPress 采用 GPL 许可

WordPress 之所以能成为今天的 WordPress,与 GPL 是分不开的。这个世界上最流行的内容管理系统从诞生之初到现在,一直受益于成千上万人的投入,这是专有软件无法做到的。

事实上,如果没有自由软件的概念,WordPress根本不可能存在–它最初是b2/cafelog的一个分叉,而b2/cafelog本身就是 “自由软件”。

分叉开发 (GPL)

WordPress 的联合创始人马特-穆伦维格(Matt Mullenweg)可以说是世界上 “自由软件” 领域的领军人物之一。他创建 WordPress.com 的使命很明确:”出版民主化“。GPL 的原则对他来说意义重大(您会发现这一点)。

如果 WordPress 是一个国家,我们的权利法案就是 GPL,因为它保护我们的核心自由。-马特-穆伦维格,WordPress 联合创始人

为什么您可能喜欢 GPL

道德
作为最终用户,从 “道德” 的角度来看,GPL 有很多值得称道之处。只要读一读 Stallman 关于软件 “所有权” 的慷慨激昂的散文,您就会明白 GPL 对软件用户来说有多么强大:

[专有软件]意味着使用计算机的第一步就是承诺不帮助你的邻居。一个合作的社区是被禁止的。专有软件的所有者制定的规则是:”如果你与邻居分享,你就是盗版。如果你想做任何修改,请求我们来做。”

专有软件的社会制度–规定你不得分享或更改软件的制度–是反社会的,是不道德的,是错误的,这种观点可能会让一些读者感到惊讶。但是,对于这种以分裂公众和让用户束手无策为基础的制度,我们还能说什么呢?

在一个越来越容易获取的世界里(无论好坏),GPL代表着软件开发的真正透明度。

社区的力量
使 GPL 如此强大的不仅仅是透明度。Chris Lema 在他关于 GPL WordPress 主题和插件的文章中说得最清楚:

……如果软件是开放的,它就能得到更快更好的修复、改进和扩展。当更多的人可以分享它、检查它、调整它、传递它时,你就会得到更好、更强大的软件。-
克里斯-勒马公众人物,演讲人兼博主

人们有理由认为,WordPress 的 GPL 许可是其指数式增长的主要催化剂。WordPress 社区的规模及其受欢迎程度是无与伦比的。这要归功于它的 GPL 地位。

安心
从更实际的角度来看,GPL让WordPress的最终用户高枕无忧。WordPress不仅是免费的(两种意义上的),而且所有与WordPress有关的商标都归WordPress基金会所有–这是一个慈善组织,其成立的唯一目的就是 “确保我们所支持的软件项目永久免费”。换句话说,WordPress 始终并将永远以我们习惯的方式免费提供给我们。

为什么您可能不喜欢 GPL

从最终用户的角度来看,没有理由不喜欢 GPL。它是一种光荣的授权。

然而,典型的 WordPress 企业家可能会对更全面地了解 GPL 产生消极的膝跳反应,其主要原因是从商业角度来看 GPL 意味着什么。毕竟,如果 GPL 允许 “自由使用、修改和分发软件(以及任何 ‘衍生’ 作品)”,那么这对高级 WordPress 主题和插件意味着什么呢?

从理论上讲,WordPress 的 GPL 许可对于那些试图创造 “衍生” 产品的人来说意味着两件事:

  • 任何人都可以不受限制地自由使用、修改和分发你的产品。
  • 你能提供的唯一价值就是高级支持和自动更新。

支持和更新

然而,事情并非如此简单。实际上,GPL 对 WordPress 开发人员也 “有效”。

GPL 的法律效力

但在此之前,我们先从法律角度来看看 GPL 的威力。截至本文撰写之时,GPL 许可在很大程度上尚未得到法院的证实。实际上,这意味着两件事:

1. “衍生作品”的含义不明确

主题和插件在法律上是否被视为 “衍生” 作品(这将决定它们是否符合 GPL 标准)并不明确。

不过,你会发现有很多人愿意并随时准备反对这种说法。Mullenweg 甚至咨询了软件自由法律中心的法律意见。

Software Freedom Law Center

他们的结论(如 Mullenweg 所总结的)似乎是绝对的:”WordPress 主题中的 PHP 必须是 GPL,美工和 CSS 可以是,但不是必需的”。

Tomaž Zaman 在他关于 WordPress 和 GPL 的 Codeable 文章中采用了同样强烈的观点:

WordPress 插件和主题的 PHP 代码是 WordPress 的衍生作品,这意味着它们必须获得 GPL 许可。- Tomaž Zaman,Codeable 创始人

这一切似乎都相当令人信服,但最重要的是,这些都没有在法庭上得到证实。没有法律先例,因此,任何确定性的说法实际上都是不确定的。法律上的确定性是通过法律先例来实现的–而 GPL 许可证在这一特定主题上恰恰缺乏这一点。

2. 降低法律诉讼风险

有人可能会说,缺乏法律先例表明,不合规不太可能导致法律诉讼。布莱恩-克罗斯加德(Brian Krogsgard)对此作了很好的解释:

很少有律师愿意成为第一个在法庭上试验的人。如果有许多案例为你提供指导,你就更容易立案。GPL 有所谓的 “有限指导”,这意味着它未经检验,因此在美国 GPL 案件的结果可能很难预测。- 布莱恩-克罗斯加德,Post Status编辑

虽然争论上述问题很容易,但将自己置于火线(可以这么说)则完全是另一回事!我们个人不建议你藐视 GPL,以为没有法律先例就是某种 “保护”。

综上所述,我们可以得出一个简单的结论: 从法律上讲,GPL 对 WordPress 主题和插件的影响还没有定论。

话虽如此,虽然提及 GPL 的法律方面很重要,但从实际角度来看,这并不是真正重要的。

GPL 如何对 WordPress 最终用户和开发者有利

作为 WordPress 创业者,很容易担心 GPL 会对自己的业务造成什么影响,但观察其实际效果却更有价值。历史证明,WordPress 社区并不像愤世嫉俗者所期望的那样运作,主要有以下三个原因:
在这里插入图片描述
诚实地支付

大多数人本质上都是诚实的。对于每一个乐于 “偷窃” 产品的人(尽管根据 GPL 许可,这样做是不可能的),有更多的人乐于为出售的东西付费–即使他们可以免费获得。


了解 GPL

许多人不了解 GPL。这需要一定程度的精明才能(a)理解某样东西是免费提供的,以及(b)知道如何免费获得它。如果一个插件被宣传为 “高级”,普通用户不会从 Github 下载它,如果它在那里可用的话–他们会从最明显的来源获取它。

更新支持

购买高级 GPL 产品有附加价值。虽然 GPL 高级插件可能是 “免费” 提供的,但 “出售” 最终用户可能认为非常有用的相关服务(如支持和自动更新)是完全可以接受的。您会发现,许多现代高级主题和插件开发商–虽然没有公开宣传他们的产品在 GPL 许可证下免费提供–都采用这种模式进行销售。

我们强烈建议您阅读这篇相关文章: 为什么应该停止使用无效的 WordPress 插件和主题?

综上所述,作为开发者,您可以从 GPL 的所有优点(道德、社区精神和力量)中获益,但不会遭受任何可能令人担忧的负面影响。

对于面向客户的 WordPress 开发人员来说,还有一个更好的消息:GPL 不会影响非分布式工作,这包括您为单个客户所做的定制工作。如果你做的是这类工作,就不必担心 GPL 合规性问题。

您应该采用 GPL 许可证的其他原因

您将与关键影响者保持一致
虽然大多数 WordPress 用户甚至都没听说过 GPL,但它对 WordPress 社区中的所有关键影响者都极为重要–最好的例子莫过于 WordPress 的联合创始人兼 Automattic 首席执行官 Matt Mullenweg。

影响者

他对 GPL 确实充满热情,并不惧怕对其进行相应的保护。这样的例子比比皆是,最近(也是最公开的)就是 Automattic 与 Thesis 之争。

采用 GPL 许可证,就意味着您与 WordPress 社区中一些最重要的人物在道德和哲学立场上保持一致。既然 WordPress 是一个社区,那么这样做就是明智之举。

您可以获得更大的曝光率
WordPress.org 主题和插件库对于最终用户来说是非凡的资源,对于开发者来说则是非凡的营销工具。任何开发者都有机会免费上传他们的主题和/或插件,并将它们展示给 WordPress 社区。但有一个问题: “您的插件(或主题)必须与 GNU 通用公共许可证 v2 或任何后续版本兼容。


获得曝光

很简单,对于免费主题和插件开发者来说:没有 GPL,就没有在 WordPress.org 上的曝光率。

这是 “正确” 的做法
GPL 许可可以从更实际的角度来考虑:如果没有 WordPress,您的插件或主题就不会存在,也无法利用这样一个巨大的平台进行改编和曝光。因此,虽然采用 GPL 并不是绝对必要的,但在其他条件相同的情况下,这是 “正确” 的做法。

小结

现在,您已经了解了关于 WordPress 和 GPL的一切。你明白了作为最终用户它对你的重要性,也明白了作为开发者采用它最终会给你带来什么好处。有人可能会合理地认为,GPL对你造成损害的唯一方式就是你拒绝采用它;不是因为许可本身,而是因为它对你的限制、社区内的影响以及你可能招来的敌人。撇开这一点不谈,从道德的角度来看,GPL 还是有很多可取之处的。WordPress所选择的许可证表明,我们有可能以完全透明的方式创建和发布软件,同时收获社区的利益,并顺便赚点钱。这不是皆大欢喜吗?

相关文章:

WordPress 和 GPL – 您需要了解的一切

如果您使用 WordPress,GPL 对您来说应该很重要,您也应该了解它。查看有关 WordPress 和 GPL 的最全面指南。 您可能听说过 GPL(通常被称为 WordPress 的权利法案),但很可能并不完全了解它。这是有道理的–这是一个复杂…...

机器人示教操作

机器人基础操作 **ES机器人试教操作知识** **1. 视角移动** **1.1 基础模式** - 关节轴控制:通过关节1至关节6实现单轴正反转移动 - 直线移动:通过X/Y/Z坐标轴沿指定方向直线移动 - 旋转移动:通过RX/RY/RZ坐标轴绕指定轴旋转 **1.2 步进模式…...

【python】UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xb2

报错 C:\Users\zhangbin\AppData\Local\Programs\Python\Python310\python.exe D:\XTRANS\cuda\03-graph-db\04-cmkg\pdf2zh-v1.9.9-with-assets-win64\pdf2zh\gui.py Traceback (most recent call last): File “D:\XTRANS\cuda\03-graph-db\04-cmkg\pdf2zh-v1.9.9-with-asset…...

[python] python静态方法,类方法,实例方法实现及其区别

一 静态方法 格式: 使用 staticmethmod 装饰器修饰 应用: 某个方法既不需要使用实例属性也不需要使用类属性时,就可以考虑使用静态方法 注意: 静态方法与类无关,可以被转换成函数使用,属于类本身 1.1 经典示例 创建一个与日期相关的辅助函数,这些函数不需要访问或修改类的…...

Kite AI 自动机器人部署教程

最近比较火的AI赛道,每日自动对话训练AI,赚积分 一个个用于 Kite AI 平台的自动交互机器人,支持多钱包和代理。 登记 注册链接 🌟 功能 多钱包支持(手动输入或基于文件) 代理支持(HTTP/HTTP…...

50. Pow(x, n)

50. Pow(x, n) 分治法的基本思想是将一个大问题分解成若干个相同或相似的小问题,递归地解决这些小问题,然后将这些小问题的解合并起来得到原问题的解。 class Solution:def myPow(self, x: float, n: int) -> float:# 内部定义了一个嵌套的辅助函数…...

Go 语言 sqlx 库使用:对 MySQL 增删改查

MySQL 作为目前最流行的开源关系型数据库,其 SQL 语法体系已形成行业标准,相关知识体系庞大且成熟,本文不再对 SQL 基础进行详细展开,建议尚未掌握的读者先行系统学习。本文聚焦于如何使用 Go 语言进行 MySQL 数据库操作&#xff…...

反射, 注解, 动态代理

文章目录 单元测试什么是单元测试咱们之前是如何进行单元测试的? 有啥问题 ?现在使用方法进行测试优点Junit单元测试的使用步骤删除不需要的jar包总结 反射认识反射、获取类什么是反射反射具体学什么?反射第一步:或者Class对象 获…...

继续预训练 LLM ——数据筛选的思路

GPT生成数据微调qwen-2.5多模态模型实战项目 作者:柠檬养乐多 原文地址:https://zhuanlan.zhihu.com/p/30645776656 qwen2.5-vl是阿里通义实验室推出的qwen系列最新多模态大模型,在许多指标上已经超过或接近了gpt-4o。更为方便的是&#xff0…...

深入解析 PostgreSQL 外部数据封装器(FDW)的 SELECT 查询执行机制

引言 PostgreSQL 中的外部数据封装器(Foreign Data Wrapper, FDW)是一种扩展,允许您像访问 PostgreSQL 数据库中的表一样,访问和操作存储在外部数据源中的数据。FDW 使 PostgreSQL 能够与多种数据存储系统(包括关系型…...

数据库系统概论|第六章:关系数据理论—课程笔记2

前言 前文我们介绍了规划化的基本概念,同时引入了关于规范化的相关定义与基本概念,低一级范式的关系模式,通过模式分解,可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。本文将围绕范式展开讨论&…...

package-lock.json能否直接删除?

package-lock.json能否直接删除? package-lock.json 生成工具:由 npm 自动生成。 触发条件:当运行 npm install 时,如果不存在 package-lock.json,npm 会创建它;如果已存在,npm 会根据它精确安…...

Ubuntu磁盘空间分析:du命令及常用组合

1、du命令的作用 du(Disk Usage)是 Ubuntu 系统中用于查看目录或文件磁盘使用情况的命令,主要用于分析磁盘空间占用。 2、语法 du [选项] [目录/文件路径]常用选项 2.1、-h 以 KB、MB、GB 等人性化可读格式(Human-readable&am…...

《数据库原理》部分习题解析1

《数据库原理》部分习题解析1 1. 名词解释 (1)关系(2)属性(3)域(4)元组(5)码(6)分量(7)关系模式 &#xff0…...

汇川Easy系列PLC数据值改变功能块(随动增益改变判断)

PLC值改变事件 值改变触发功能块 PLC值改变事件 值改变触发功能块(SCL ST完整源代码)-CSDN博客文章浏览阅读1.1k次。本文介绍了在PLC中处理值改变事件的方法,包括值改变触发功能块的实现,详细讲解了FB接口定义、ST代码,并提供了在博途平台上的实现。此外,还分享了如何利用…...

数据清洗的艺术:如何为AI模型准备高质量数据集?

数据清洗的艺术:如何为AI模型准备高质量数据集? 引言 在人工智能和机器学习领域,我们常常听到"垃圾进,垃圾出"(Garbage in, garbage out)这句格言。无论你的模型架构多么精妙,算法多么先进,如果…...

怎么查看当前vue项目,要求的node.js版本

怎么查看当前vue项目,要求的node.js版本 找到 package.json package-lock.json 搜索 node...

游戏引擎学习第278天:将实体存储移入世界区块

总结并为今天的内容做好铺垫 今天的内容是关于开发一个完整的实体系统,目标是让这个系统更加实际和有效。之前讨论了如何通过一个模拟区域来处理无限大的世界。最初,使用浮动点数而不是双精度浮点数来避免潜在的精度问题,因为一些平台&#…...

计算机组成与体系结构:缓存设计概述(Cache Design Overview)

目录 Block Placement(块放置) Block Identification(块识别) Block Replacement(块替换) Write Strategy(写策略) 总结: 高速缓存设计包括四个基础核心概念&#xf…...

在Linux中如何使用Kill(),向进程发送发送信号

kill()函数 #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); 函数参数和返回值含义如下: pid:参数 pid 为正数的情况下,用于指定接收此信号的进程 pid;除此之外,参数 pid 也可设置为 0 或-1 以及小于-1 等不同值,稍后给说明。 …...

ElasticSearch重启之后shard未分配问题的解决

以下是Elasticsearch重启后分片未分配问题的完整解决方案&#xff0c;结合典型故障场景与最新实践&#xff1a; 一、快速诊断定位 ‌检查集群状态 GET /_cluster/health?pretty # status为red/yellow时需关注unassigned_shards字段值 ‌ 2.查看未分配分片详情 …...

基于 Spring Boot 瑞吉外卖系统开发(十四)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;十四&#xff09; 查询订单 在管理端的首页&#xff0c;单击左侧菜单栏中的“订单明细”&#xff0c;会在右侧打开订单明细页面。 请求路径&#xff1a;/order/page 请求方法&#xff1a;GET 参数&#xff1a;page pageSize …...

【软件测试】第二章·软件测试的基本概念

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a;&#x1f3c0;软件测试与软件项目管理_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 …...

部署安装gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm

目录 ​编辑 实验环境 所需软件 实验开始 安装部署gitlab171.配置清华源仓库&#xff08;版本高的系统无需做&#xff09;vim /etc/yum.repos.d/gitlab-ce.repo 2.提前下载包dnf localinstall gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm --rocklinux 3.修改配…...

2025五一杭州西湖三天游

2025五一杭州西湖三天游 文章目录 2025五一杭州西湖三天游一、前言二、杭州游玩记录三、杭州三日游小结四、杭州美食街1、河坊街2、胜利河美食街3、高银街4、中山南路美食街5、武林夜市6、啦喜街美食广场7、大兜路美食街 五、豆包推荐的杭州三日游攻略三天主要行程**第一天&…...

实验五:以太网UDP全协议栈的实现(通过远程实验系统)

文章目录 FPGA以太网:从ARP到UDP的完整协议栈一、引言二、核心模块详解1. ARP协议处理模块1.1 `arp_cache`:ARP缓存模块1.2 `arp_tx`:ARP请求与应答发送模块1.3 `arp_rx`:ARP接收与解析模块2. MAC层处理模块2.1 `mac_layer`:MAC层顶层模块2.2 `mac_tx_mode`:MAC发送模式选…...

现代计算机图形学Games101入门笔记(八)

三角形三点已经知道在uv的位置了&#xff0c;那三角形内部的点&#xff0c;怎么算。 先看A 任一点 面积比求 根据三点坐标属性差值出内部点的位置。 纹理太小了&#xff0c;映射处理方式&#xff0c;取邻近的Nearest感觉一格格的&#xff0c;取周围4个权重Bilinear,取4*4Bicubi…...

C语言学习之文件操作

经过前面的学习&#xff0c;我们已经基本掌握了如何去写一个C语言的代码了。但是在实际的项目中&#xff0c;我们不可能不需要文件去操作。因为如果没有文件&#xff0c;我们写的程序是存储在电脑的内存中的。如果程序推出&#xff0c;内存回收数据就随之丢失了。如果我们要对数…...

《AI大模型应知应会100篇》第63篇:AutoGPT 与 BabyAGI:自主代理框架探索

第63篇&#xff1a;AutoGPT 与 BabyAGI&#xff1a;自主代理框架探索 摘要 随着大语言模型&#xff08;LLM&#xff09;技术的不断演进&#xff0c;自主代理&#xff08;Autonomous Agent&#xff09; 正在成为 AI 应用的新范式。它不仅能够理解用户意图&#xff0c;还能自主规…...

使用大模型预测急性结石性疾病技术方案

目录 1. 数据预处理与特征工程伪代码 - 数据清洗与特征处理数据预处理流程图2. 大模型构建与训练伪代码 - 模型训练模型训练流程图3. 术前预测系统伪代码 - 术前风险评估术前预测流程图4. 术中实时调整系统伪代码 - 术中风险预警术中调整流程图5. 术后护理系统伪代码 - 并发症预…...

基于运动补偿的前景检测算法

这段代码实现了基于运动补偿的前景检测算法。 主要功能包括&#xff1a; 运动补偿模块&#xff1a;使用基于网格的 KLT 特征跟踪算法计算两帧之间的运动&#xff0c;然后通过单应性变换实现帧间运动补偿。前景检测模块&#xff1a;结合两帧运动补偿结果&#xff0c;通过帧间差…...

鸿蒙OSUniApp开发富文本编辑器组件#三方框架 #Uniapp

使用UniApp开发富文本编辑器组件 富文本编辑在各类应用中非常常见&#xff0c;无论是内容创作平台还是社交软件&#xff0c;都需要提供良好的富文本编辑体验。本文记录了我使用UniApp开发一个跨平台富文本编辑器组件的过程&#xff0c;希望对有类似需求的开发者有所启发。 背景…...

W5500使用SocketTool工具测试

W5500使用SocketTool工具测试 1、按“WINR” 2、输入“IPCONFIG”&#xff0c;得到计算机的IP地址&#xff0c;子网掩码和网关 3、设置W5500设备网络参数如下&#xff1a; 本地网关&#xff1a;192.168.1.1 本地子网掩码: 255.255.255.0 本地物理地址&#xff1a;0C 2…...

《Python星球日记》 第71天:命名实体识别(NER)与关系抽取

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、命名实体识别&#xff08;NER&#xff09;基础1. 什么是命名实体识别&#…...

双向长短期记忆网络-BiLSTM

5月14日复盘 二、BiLSTM 1. 概述 双向长短期记忆网络&#xff08;Bi-directional Long Short-Term Memory&#xff0c;BiLSTM&#xff09;是一种扩展自长短期记忆网络&#xff08;LSTM&#xff09;的结构&#xff0c;旨在解决传统 LSTM 模型只能考虑到过去信息的问题。BiLST…...

CentOS7原有磁盘扩容实战记录(LVM非LVM)【针对GPT分区】

一、环境 二、命令及含义 fdisk ‌ ‌ fdisk‌是一个较老的分区表创建和管理工具&#xff0c;主要支持MBR&#xff08;Master Boot Record&#xff09;格式的分区表。MBR分区表支持的硬盘单个分区最大容量为2TB&#xff0c;最多可以有4个主分区。fdisk通过命令行界面进行操…...

如何在终端/命令行中把PDF的每一页转换成图片(PNG)

今天被对象安排了一个任务&#xff1a; 之前自己其实也有这个需要&#xff0c;但是吧&#xff0c;我懒&#xff1a;量少拖拽&#xff0c;量大就放弃。但这次躲不过去了&#xff0c;所以研究了一下有什么工具可以做到这个需求。 本文记录我这次发现的使用 XpdfReader 的方法。…...

【0415】Postgres内核 释放指定 memory context 中所有内存 ④

1. frees all memory (memory context) Postgres内核中由函数 AllocSetReset() 完成该功能。即 “释放给定set中分配的所有内存。” 它应当将所有已分配的chunks标记为已释放,但不一定需要归还set所拥有的全部资源。我们的实际实现是,除了“保留”块(“keeper” block)(…...

2025年Flutter初级工程师技能要求

在2025年&#xff0c;随着移动应用市场的持续增长和跨平台开发需求的不断增加&#xff0c;Flutter已经成为许多公司构建高性能、跨平台应用的首选框架。对于初入职场的Flutter初级工程师来说&#xff0c;掌握以下技能要求是必不可少的。这些技能不仅能够帮助你在工作中快速上手…...

AWS技术助力企业满足GDPR合规要求

GDPR(通用数据保护条例)作为欧盟严格的数据保护法规,给许多企业带来了合规挑战。本文将探讨如何利用AWS(亚马逊云服务)的相关技术来满足GDPR的核心要求,帮助企业实现数据保护合规。 一、GDPR核心要求概览 GDPR的主要目标是保护欧盟公民的个人数据和隐私权。其核心要求包括: 数…...

MVCC:数据库并发控制的利器

在并发环境下&#xff0c;数据库需要处理多个事务同时访问和修改数据的情况。为了保证数据的一致性和隔离性&#xff0c;数据库需要采用一些并发控制机制。MVCC (Multi-Version Concurrency Control&#xff0c;多版本并发控制) 就是一种常用的并发控制技术&#xff0c;它通过维…...

第二章、Isaaclab强化学习包装器(3):SKRL Wrapper

0 前言 官方文档&#xff1a;https://isaac-sim.github.io/IsaacLab/main/source/api/lab_rl/isaaclab_rl.html#module-isaaclab_rl.skrl https://skrl.readthedocs.io/en/latest/intro/getting_started.html 在本节中&#xff0c;您将学习如何使用 skrl 库的各种组件来创建强…...

AI数字人实现原理

随着人工智能与数字技术的快速发展&#xff0c;AI数字人&#xff08;Digital Human&#xff09;作为新一代人机交互媒介&#xff0c;正在多个行业中快速落地。无论是在虚拟主播、在线客服、教育培训&#xff0c;还是在数字代言、元宇宙中&#xff0c;AI数字人都扮演着越来越重要…...

RBTree的模拟实现

1&#xff1a;红黑树的概念 红⿊树是⼀棵⼆叉搜索树&#xff0c;他的每个结点增加⼀个存储位来表⽰结点的颜⾊&#xff0c;可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束&#xff0c;红⿊树确保没有⼀条路径会⽐其他路径⻓出2倍&#xff0c;因…...

ssh connect to remote gitlab without authority

ssh connect to remote gitlab without authority 1 this command can produce a ssh key for authority ssh-keygen -t ed25519 -C "your_emailexample.com"2 this command can get the comment about the key cat ~/.ssh/id_ed25519.pubcopy all content !!!...

gitlab提交测试分支的命令和流程

写在前面 先npm run lint:eslint 先走一遍代码校验然后再提交先把检验跑了再add commit push那些注意一下这个问题:git commit规范不对导致报错subject may not be empty[subject-empty]type may not be empty[type-empty]. 配置lint检查后&#xff0c; 使用commitlint之后报…...

序列化和反序列化hadoop实现

### Hadoop 中序列化与反序列化的实现机制 Hadoop 提供了自己的轻量级序列化接口 Writable&#xff0c;用于高效地在网络中传输数据或将其存储到磁盘。以下是关于其核心概念和实现方式的详细介绍&#xff1a; --- #### 1. **Hadoop 序列化的核心原理** Hadoop 的序列化是一…...

[操作系统] 策略模式进行日志模块设计

文章目录 [toc]一、什么是设计模式&#xff1f;二、日志系统的基本构成三、策略模式在日志系统中的落地实现✦ 1. 策略基类 LogStrategy✦ 2. 具体策略类▸ 控制台输出&#xff1a;ConsoleLogStrategy▸ 文件输出&#xff1a;FileLogStrategy 四、日志等级枚举与转换函数五、日…...

LeetCode 每日一题 3341. 到达最后一个房间的最少时间 I + II

3341. 到达最后一个房间的最少时间 I II 有一个地窖&#xff0c;地窖中有 n x m 个房间&#xff0c;它们呈网格状排布。 给你一个大小为 n x m 的二维数组 moveTime &#xff0c;其中 moveTime[i][j] 表示在这个时刻 以后 你才可以 开始 往这个房间 移动 。你在时刻 t 0 时从…...

《Python星球日记》 第68天:BERT 与预训练模型

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、BERT模型基础1. 什么是BERT?2. BERT 的结构3.预训练和微调对比二、BERT 的预训练任务1. 掩码语言模型 (MLM)2. 下一句预测 (NSP)三、微调 …...