ZFS On Linux 在 Linux Kernel 5.0 上陷入了困境……
发布日期:2021-07-14 01:04:01 浏览次数:28 分类:技术文章

本文共 1439 字,大约阅读时间需要 4 分钟。

  hot3.png

,5.0 是一个重要的版本,带来了许多相当吸引人的新功能和改进,但对于那些依赖 ZFS On Linux (ZOL) 的用户,他们可能暂时不会希望尝鲜使用 Linux Kernel 5.0 的候选发布版本。

原因在于,ZFS On Linux 目前无法针对 Linux Kernel 5.0 源码进行构建。这不是由于一个简单的 API 变更而导致的,而是 5.0 内核不会再导出 __kernel_fpu_begin 和 __kernel_fpu_end 符号,恰好 ZOL 内核模块依赖这些符号作为文件系统校验的一部分。

由于与内核源码树外的 ZOL 内核代码存在许可证兼容性问题,所以目前不能马上提供一个简单的解决方案,尤其是不涉及使用 GPL 符号的解决方案。虽然将来肯定会有时间和新代码可以实现解决方案,不过目前看来,似乎上游的内核开发者对任何专门帮助 ZOL 的操作并不感兴趣(或者很少有关于该问题的源码树外模块)。

为此,Linux 内核社区的二把手 Greg KH 也不得不出面来说明他对 ZFS On Linux 的看法以及当前的问题:

我对 ZFS 几乎是零容忍的态度。因为 Sun 曾明确地表示不希望他们的代码在 Linux 上运行,所以为什么我们要做额外的工作来让他们的代码正常运行?

有关 ZFS On Linux 和 Linux Kernel 5.0 的问题,可通过 GitHub 上的进行跟踪。

参考资料:

有热心 oscer @topstop 在新闻评论中给我们普及了 ZFS 和 Sun 公司之间的故事,摘录如下:

Z 文件系统 Z File System(ZFS) 是由 Matthew Ahrens 和 Jeff Bonwick 在 2001 年开发的。ZFS 是作为太阳微系统 Sun MicroSystem 公司的 OpenSolaris 的下一代文件系统而设计的。在 2008 年,ZFS 被移植到了 FreeBSD 。同一年,一个移植 ZFS 到 Linux 的项目也启动了。然而,由于 ZFS 是通用开发和发布许可证 Common Development and Distribution License(CDDL) 许可的,它和 GNU 通用公共许可证不兼容,因此不能将它迁移到 Linux 内核中。为了解决这个问题,绝大多数 Linux 发行版提供了一些方法来安装 ZFS。

在甲骨文公司收购太阳微系统公司之后不久,OpenSolaris 就闭源了,这使得 ZFS 的之后的开发也变成闭源的了。许多 ZFS 开发者对这件事情非常不满。三分之二的 ZFS 核心开发者,包括 Ahrens 和 Bonwick,因为这个决定而离开了甲骨文公司。他们加入了其它公司,并于 2013 年 9 月创立了 OpenZFS 这一项目。该项目引领着 ZFS 的开源开发。

让我们回到上面提到的许可证问题上。既然 OpenZFS 项目已经和 Oracle 公司分离开了,有人可能好奇他们为什么不使用和 GPL 兼容的许可证,这样就可以把它加入到 Linux 内核中了。根据 OpenZFS 官网的介绍,更改许可证需要联系所有为当前 OpenZFS 实现贡献过代码的人(包括初始的公共 ZFS 代码以及 OpenSolaris 代码),并得到他们的许可才行。这几乎是不可能的(因为一些贡献者可能已经去世了或者很难找到),因此他们决定保留原来的许可证

转载地址:https://blog.csdn.net/cpongo3/article/details/89492333 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:微软上线新平台 Try .NET,在线运行 .NET 代码
下一篇:GitLab 发布补丁修复版本 11.9.6

发表评论

最新留言

感谢大佬
[***.8.128.20]2023年06月02日 20时28分15秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

linux 开启端口永久保存,linux 防火墙开启80端口永久保存 2019-08-24 11:20:29
linux运行core控制台程序,如何在Linux中从.NET Core 2.0创建可执行控制台应用程序?... 2019-08-24 11:20:28
linux 用不用虚拟机,2018-06-10-不用虚拟机搭建Linux环境 2019-08-24 11:20:28
linux脚本给变量赋多个值,shell for循环、循环变量值付给其他shell脚本的方法 2019-08-24 11:20:27
linux系统查询数据库密码忘了怎么办,Linux下忘记MySQL数据库密码的解决方法 2019-08-24 11:20:27
linux实时进程定义,Linux进程基本概念 2019-08-24 11:20:26
linux用户进程的栈在用户态,linux的用户态程序栈的跟踪方法 2019-08-24 11:20:26
linux下tomcat部署web,Linux下安装Tomcat服务器和部署Web应用 2019-08-24 11:20:25
oracle 使用 grouping 函数可以,Oracle GROUPING函数的使用 2019-08-24 11:20:25
使用oracle数据库的程序,oracle官方文档之数据库用户使用oracle组件或第三方应用程序时所... 2019-08-24 11:20:24
php怎么写视频审核代码,媒体审核 2019-08-24 11:20:24
oracle avdf fga,Oracle Database Security Assessment Tool (DBSAT) (Doc ID 2138254.1) 2019-08-24 11:20:23
in array php 坑,php – 为什么in_array()返回意外/奇怪的结果? 2019-08-24 11:20:22
oracle的CPU补丁和PSU补丁,[Oracle] Data Guard CPU/PSU补丁安装详细教程 2019-08-24 11:20:22
incarnation oracle,对rman中的incarnation(化身)详解 2019-08-24 11:20:21
oracle11g索引优化器,【oracle 性能优化】组合索引查询。 2019-08-24 11:20:21
jdbc oracle 函数,jdbc中调用oracle函数 2019-08-24 11:20:20
Oracle 中update from,oracle中update的细节 2019-08-24 11:20:20
微信你scope 参数错误 php,微信开发: scope参数错误或没有scope权限解决方法 2019-08-24 11:20:19
php 图片切换间隔时间,js实现多张图片每隔一秒切换一张图片 2019-08-24 11:20:19