On Sat, Dec 12, 2020 at 05:56:41PM -0800, Jon Steinhart wrote:
My two cents here is that the problem with the evolution of linux is that
many, many people are adding new stuff while the existing stuff is decaying.
Sure, the kernel is pretty stable, but user land is a mess where one has a
choice of many versions of everything, each of which is broken in a different
way. My engineer's perspective is that the overcomplexity from lack of
architecture is resulting in reliability and maintenance issues.
There are areas that are broken, but I suspect you're remember the
past with rose colored classes. I remember plenty of bugs and
short-comings in BSD and commercial Unix systems in the late 80's and
early 90's. They tended to show up for people who used those systems
in ways that were a bit off the beaten path compared to the more
common cases; but isn't that always the case?
And, if you can actually make a better file system,
please go for it, you're
a better person than me. I've looked that that code, and it's huge, has no
clearly defined entry and exit points, and is undocumented. While I've been
too busy to deal with stuff, I found some minor bugs and a possible big
performance improvement just from trying to read the code.
Did you report those bugs and potential performance improements?
Feedback is always gratefully accepted.
As far as documentation is concerned, it's not perfect, but it's
certainly not completely undocumented:
https://www.kernel.org/doc/html/latest/filesystems/index.html
https://www.kernel.org/doc/html/latest/filesystems/ext4/index.html
Again, I suspect that you're remember the past with rose-colored
classes. BSD FFS's fsck (or for that matter, fsck's from any of the
commercial Unix systems that I was able to see soures for) didn't have
regression test suites. Ext2/3/4 was one of the first file system
fsck's that I'm aware with that was created with a regression test
suite from the very beginning. And all of the major file systems in
Linux are developed using a very large library of functional and
stress tests:
https://thunk.org/gce-xfstests
https://thunk.org/android-xfstests
https://github.com/tytso/xfstests-bld/blob/master/Documentation/kvm-xfstest…
Was there anything like this during the "good old days"? I sure don't
remember anything like this when I started with BSD 4.3 back in the
late 80's...
- Ted