Sun Microsystems created ZFS for the proprietary Solaris operating system. It appeared as a replacement for UFS, which was supposed to cover any needs from the file system for a long time (the very name ZFS is typical – Zettabyte File System, a hint of unattainable volumes)
After the product began to be distributed with open source under the CDDL license and the name OpenSolaris
Then Oracle bought Sun Microsystems, and the project was transferred back to the proprietary category. Before this, FreeBSD managed to attract the code; Apple had some developments; they even built the implementation into the standard distribution but abandoned it, eventually introducing their analog of AFS. At the same time, a fork appeared that turned into OpenZFS. First, those who wished to work on OpenSolaris then created OpenZFS, under which they gathered all the efforts within Illumos (a fork of OpenSolaris).
ZFS on Linux has a different story. The US Livermore National Laboratory used Luster FS as a distributed file system for supercomputers. Its peculiarity is that on each node under it, another local Ldiskfs file system is used – this is a patched Ext3, the developments of which served as the basis for Ext4. Ldiskfs had several shortcomings, and ZFS was supposed to replace this file system, so the ZFS on Linux project was born.
OpenZFS has a versioning issue. There is ZFS from Oracle, and there is OpenZFS; the latter cannot repeat the proprietary version, nor is it trivial to get its source code. Initially, both the pool and the dataset in ZFS had a version; when updating Solaris, you could raise the corresponding version. After the upgrade, the pool may not be imported in the old code at all, or it may be imported in read-only mode.
The OpenZFS project already had many implementations: FreeBSD, Linux, Solaris, macOS; it was necessary to link all the developments. For this, they came up with feature flags, the so-called. Functional flags. For example, you check the box that the pool supports LZ4 compression, and then you look at it from the code – the feature is supported / not supported (that is, is it possible to import the pool).
Each flag has a signature – is it possible to import a pool with it in read-only mode since many things are important only when data changes on media. Each implementation began to acquire its feature flags, and platforms transferred them between each other through backports.
ZFS is not included in the Linux kernel, and other filesystems in Linux come out of the box, i.e., in the core. The issue of inclusion in the kernel is a license issue; this is a complex issue. However, there is a separate kernel module it can be updated without problems, regardless of the kernel version.
The difference comes from the package: the source code as in DKMS or the binary file as in KMOD.
Also Read: What Is a Software Application And What Is It Used For
The existence of several accounts in miscellaneous social networks allowed me to understand that one…
Introduction Access to new technologies and artificial intelligence has become vital in today's digital era.…
Google Chrome is the most used browser today due to its speed, reliability, and versatility…
Staying relevant in the dynamic digital environment is impossible. Besides influencers, small business owners, and…
A college education is now of great significance, and technology is the key factor in…
How2Invest is a tool that can give you inside information and professional money advice. Like…