rm -r fs/ext3
A few eyebrows went up when Jan Kara posted a
patch removing the ext3 filesystem recently. Some users clearly
thought the move represented a forced upgrade to ext4; Randy Dunlap remarked that "this looks like an
April 1 joke to me
". In truth, it is neither a joke nor a
forced upgrade; it is, however, an interesting story to look back at.
Nine years ago, in the middle of 2006, the premier filesystem for most users was ext3, but that filesystem was showing its age in a few ways. Its 32-bit block pointers limited maximum filesystem size to 8TB, a limit that was not too restrictive for most users at the time, but which would be highly problematic today. The filesystem tracks blocks in files with individual pointers, leading to large amounts of metadata overhead and poor performance on larger files. These problems, along with a number of missing features, had long since convinced developers that something newer and better was required.
For a while, some thought that might be a filesystem called reiser4, but that story failed to work out well even before that filesystem's primary developer left the development community.
The ext3 developers came up with a number of patches aimed at easing its scalability problems. These patches were made directly against the ext3 filesystem, with the idea that ext3 would evolve in the direction that was needed. There was, however, some resistance to the idea of making major changes to ext3 from developers who valued that filesystem in its current, stable form. One of those developers, it turned out, was Linus who, as we all know, has a relatively strong voice in such decisions.
And so it came to be that the ext3 developers announced their intent to create a new
filesystem called "ext4"; all new-feature development would be done there.
Actually, the new filesystem was first called "ext4dev" to emphasize its
experimental nature; the plan was to rename it to "ext4" once things were
stable, "probably in 6-9 months
". In the real world, that renaming
happened nearly 28 months later and was merged for the 2.6.28 kernel.
Since then, of course, ext4 has become the primary Linux filesystem for many users. It has seen many new features added, and it is not clear that this process will stop, even though ext4 is now in the same position that ext3 was nine years ago. Through this entire history, though, ext4 has retained the ability to mount and manage ext2 and ext3 filesystems; it can be configured to do so transparently in the absence of the older ext2 and ext3 modules. And, indeed, many distributions now don't bother to build the older filesystem modules, relying on ext4 to manage all three versions of the filesystem.
Back when ext4 was created, it was envisioned that the older filesystem
code would eventually become unnecessary. The plan was that when this
happened, "
One might well wonder whether we will see a similar story in the future and
the addition of an ext5 filesystem. For the time being, that does not seem
to be in the works. Ext4 has picked up a number of features in recent
years, with encryption as the most recent
example, but there has been no talk of moving development to a new source
base. Over the years, perhaps, the ext4 developers have done well enough
at not breaking things that users are less worried about new development
than they once might have been.
At the other end, there is the question of the ext2 filesystem. That code,
too, could be replaced by ext4, but there seems to be no pressure to do
so. Ext2 is small, weighing in at less than 10,000 lines of code; ext3 and
the associated JBD journaling code come in at 28,000, while ext4
and JBD2 add up to closer to 60,000 lines. The
simplicity of ext2
makes it a good filesystem for developers to experiment with, and its
maintenance cost is nearly zero. So there is no real reason to take it out
anytime soon.
Ext3, being rather larger than ext2, is a more promising target to remove,
though Jan
said that its maintenance cost was pretty
low. The fact that this code has been so thoroughly replaced makes the
removal decision relatively easy — but that decision still took nine years
to come about. Even so, if all old kernel code were this easy to
get rid of, the kernel would be quite a bit smaller than it is today.perhaps 12-18 months out
", the ext3 code would be
removed. Once again, reality had something different to say, and the ext3
code endured for over nine years. Unless something surprising happens,
though, that record is about to come to an end; ext3 could be removed as
soon as the 4.3 development cycle, taking some 28,000 lines of code with
it. And most users, even those with ext3 filesystems, will not even
notice.
Index entries for this article Kernel Filesystems/ext3
Posted Jul 23, 2015 6:39 UTC (Thu)
by davidstrauss (guest, #85867)
[Link] (5 responses)
Understatement much?
Posted Jul 23, 2015 7:14 UTC (Thu)
by fishface60 (subscriber, #88700)
[Link] (4 responses)
Posted Jul 23, 2015 16:08 UTC (Thu)
by davidstrauss (guest, #85867)
[Link] (3 responses)
I agree. I don't think, either, that the article should have gone into details. I'm just amused that the wording suggests that it was Reiser's decision by omission of the circumstances. I'd feel the same if anyone wrote that George Coe would "no longer be performing as Woodhouse in any future Archer episodes." *Usually*, when someone leaves a development community, it's a personal, interpersonal, or work-related decision.
Posted Jul 23, 2015 16:16 UTC (Thu)
by rahulsundaram (subscriber, #21946)
[Link] (2 responses)
I think it is fair to say it was his personal decision that resulted in him unable to be part of the development community or society itself.
Posted Nov 2, 2015 19:00 UTC (Mon)
by jcm (subscriber, #18262)
[Link] (1 responses)
Posted Nov 2, 2015 19:13 UTC (Mon)
by rahulsundaram (subscriber, #21946)
[Link]
Posted Jul 23, 2015 19:04 UTC (Thu)
by linusw (subscriber, #40300)
[Link] (10 responses)
Details:
Now grandpa will stop rambling.
Posted Jul 23, 2015 19:28 UTC (Thu)
by pbonzini (subscriber, #60935)
[Link] (1 responses)
Posted Jul 23, 2015 22:07 UTC (Thu)
by linusw (subscriber, #40300)
[Link]
Posted Jul 23, 2015 21:54 UTC (Thu)
by aeruder (guest, #22597)
[Link]
Posted Jul 24, 2015 0:30 UTC (Fri)
by JdGordy (subscriber, #70103)
[Link] (3 responses)
Posted Jul 24, 2015 1:50 UTC (Fri)
by dlang (guest, #313)
[Link] (1 responses)
getting the rest of the distro to install along with the kernel so that you can use it.
Posted Jul 24, 2015 1:56 UTC (Fri)
by JdGordy (subscriber, #70103)
[Link]
Posted Jul 28, 2015 22:30 UTC (Tue)
by linusw (subscriber, #40300)
[Link]
Posted Jul 24, 2015 2:46 UTC (Fri)
by hobarrera (guest, #101888)
[Link]
There's no need to run the latest kernel, and I don't think you'll be using that hardware for much more than copying your data.
Posted Jul 24, 2015 12:42 UTC (Fri)
by jezuch (subscriber, #52988)
[Link]
A less extreme example is my NAS, which has a PATA port with a flash drive installed. It requires the "Legacy PATA" driver to work... slowly. Unfortunately stock Debian kernel does not have this module enabled so I'm forced to compile special kernels for this one machine.
Posted Jul 24, 2015 19:21 UTC (Fri)
by utoddl (guest, #1232)
[Link]
Posted Aug 1, 2015 14:38 UTC (Sat)
by kenieevan (guest, #84691)
[Link]
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
http://dflund.se/~triad/krad/linux-on-pentium-mmx.html
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
rm -r fs/ext3
I very recently pulled a SCSI hard drive out of my old Amiga 3000 and was able to get linux to mount the Amiga partitioned 5 volumes and read the whole 200MB of data there, some of which was actually useful to have again. I'm very glad those old linux kernel pieces were still available to make this possible. (It's not like the Amiga end of things has changed much in the last 20 years.)
rm -r fs/ext3
rm -r fs/ext3