|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Sergey Lentsov 2:4615/71.10 01 Mar 2001 18:11:10 To : All Subject : URL: http://lwn.net/2001/0301/kernel.php3 -------------------------------------------------------------------------------- [1][LWN Logo] [2]Click Here [LWN.net] Sections: [3]Main page [4]Security Kernel [5]Distributions [6]On the Desktop [7]Development [8]Commerce [9]Linux in the news [10]Announcements [11]Linux History [12]Letters [13]All in one big page See also: [14]last week's Kernel page. Kernel development The current stable kernel release is still 2.4.2. Linus has issued no 2.4.3 prepatches as yet. Alan Cox has not slowed down, however; his prepatch series is up to [15]2.4.2ac6. As usual, it contains a great many fixes, including another important ReiserFS "zero byte" fix. A question went out on the differences between Linus's releases and the "ac" patches. There is no definitive list of patches that are unique to one or the other (Alan has no time to maintain one). The "ac" series does tend to pick up everything that goes into the official Linus release, but the reverse is certainly not true. Linus [16]characterized the difference between the two releases thusly: The two series are fairly disparate, as they have different intentions. Alan accepts some stuff that I would be nervous about, and sometimes I say "to hell with it, we need to fix this" and make Alan nervous. Alan, instead, [17]described it this way: I think the key word is actually probably 'predictability'. The Linus tree is conservative. (IMHO too conservative and probably in his not conservative enough 8)) It looks like we'll have two stable development series for a while. Meanwhile, the 2.2.19 prepatch is up to [18]2.2.19pre16. In [19]a separate posting, Alan stated that the real 2.2.19 release is about one week away. A patch to make NFS work well with ReiserFS was [20]posted by Neil Brown. As was discussed in [21]last week's kernel page, the changes involved are significant. So, as Neil states: Alan Cox has suggested that these changes may not be appropriate for 2.4, so we might have to wait for 2.5 to see them on kernel.org, but we don't have to wait till then to find the bugs. That announcement brought out a (predictable, perhaps) set of complaints about yet another stable kernel series with NFS problems. With 2.2, much of the trouble only really got cleared up with 2.2.18, released late last year. And there are still some interoperability problems that will only be fixed when 2.2.19 comes out. On the 2.4 front, some patience will be required. The Powers That Be may well eventually relent and include Neil's patch if the need appears to be strong enough. But it certainly will not happen until the 2.4 series appears to be rock solid, and experience says that could take a little while yet. Per-process namespaces are now available for Linux, thanks to [22]a patch posted by Alexander Viro ("He's back. And this time he's got a chainsaw."). The idea is based on the [23]Plan9 concept by the same name. Essentially, every process in the system gets its own view of the filesystem. Filesystems can be mounted for one process while being entirely invisible to others. Namespaces can be thought of as a much more flexible form of the chroot() system call. Alexander has also posted [24]a tiny program which starts a shell running in its own namespace, which is useful for testing out the idea. And, of course, he is looking for testers who can find the problems with the patch. Those waiting for a stable version will do so for a while - this patch is intended for the 2.5 series, once it gets started. Directory indexes for ext2 are another topic that was discussed last week in this space. The discussion continued, but branched off into a couple of interesting areas. One is in the area of hashing functions. The directory index function depends heavily on a good hashing function to spread the entries evenly across the index. So several candidates have been evaluated by running them in a usermode Linux kernel; the results have been [25]summarized by Daniel Phillips. The executive summary is that Daniel's own hash function won. In the process, it handily beat the dentry hash function, used since the 2.1 days in the dentry cache. Linus was [26]not entirely surprised by this result: It looks like the hash function was done rather early on in the dcache lifetime (one of the first things), back when nobody cared about whether it was really good or not because there were many much more complicated questions like "how the h*ll will this all ever work" ;) So, as a side result, expect to see some work done on the dentry hash function in the near future. Even more soundly beaten was the "R5" hash used in ReiserFS. In this case, the problem is not that R5 is a poor hash function; it was, instead, written to satisfy a different set of objectives. R5 will put similar filenames next to each other, which makes the ReiserFS lookup algorithm faster. For the ext2 directory index, however, it is more important to spread things out evenly, so a different function is called for. The "hash wars" are not done yet; though. Expect some new contenders to show up before too long. Meanwhile, people started talking about backward compatibility. Ted Ts'o [27]pointed out that, with a very small change to the way the index is stored on disk, full compatibility can be maintained with older ext2 implementations. The cost, in the form of lost space in the directory index, is quite small - less than 1%. Daniel Phillips has not adopted the compatible mode completely, however - he plans to support it as an option in the code so that people can choose the implementation they like better. When the discussion moved on to tail-block fragmentation, however, Linus felt the need to jump in and argue against backward compatibility. Tail-block recursion is the process of splitting up blocks in the filesystem to allow them to hold the last parts of multiple files. Imagine you have an ext2 filesystem with a 4096-byte block size, and a 5000-byte file to store there. That file will occupy two blocks, with only 904 bytes being stored in the second. Thus, almost half of the space used is wasted. In filesystems that store a lot of small files (netnews partitions being the classic example), large amounts of space can be lost. ReiserFS will store small files efficiently, but ext2 has never had that capability. When Mr. Phillips mentioned plans to provide tail-block fragmentation for ext2, Linus [28]jumped in and asked that it not be done. He has no objection to the technique, it's just that he thinks a whole new filesystem should be created. Rather than just graft on tail-block fragmentation, a complete rethink should be done to create a better, extent-based filesystem with a vary large block size. And it should not be called "ext2." In [29]another posting he explained his reasoning in more detail; it is an interesting look at his philosophy for the evolution of the Linux code. Essentially, creating a new code base makes it easier to eventually get rid of the old one, leading to better long-term maintainability. A transition to a completely new filesystem can be done on the user's own time, and can happen relatively smoothly. In comparison, if you have "new features in X, which also handles the old cases of X" situation, you not only bind yourself to backwards compatibility, but you also cause yourself to be unable to ever phase out the old code. Which means that eventually the whole system is a piece of crap, full of old garbage that nobody needs to use, but that is part of the new stuff that everybody _does_ use. This is why, for example, Stephen Tweedie's journaling filesystem is called "ext3." Will Mosix go into the kernel? [30]Mosix is a fancy clustering system which implements a lot of nice features, such as process migration. Many folks would like to see Mosix, or other clustering implementations, go into the standard kernel sometime in the 2.5 development series. There is, of course, no way to know if that will happen at this point. However, Rik van Riel has [31]created a mailing list where representatives of the various clustering projects can discuss the idea together. Other patches and updates released this week include: * Folkert van Heusden has posted [32]a patch which implements the generation of random process ID numbers. * A [33]boot log from a 64-bit PowerPC system was posted by Peter Bergner of IBM. * David Miller has posted [34]beta 3 of the zero-copy networking patch * Keith Owens has released [35]modutils 2.4.3, "just a small collection of bug fixes." Keith has also released [36]version 1.8 of the "kdb" kernel debugger. * IBM has turned loose [37]jfs 0.1.6, the latest release of its journaling filesystem. * Greg KH has [38]announced a new hotplug scripts release. * Douglas Gilbert has [39]posted a driver for a new 'scsiinfo' device which implements initial support for hotplugging of SCSI hardware. Section Editor: [40]Jonathan Corbet March 1, 2001 For other kernel news, see: * [41]Kernelnotes * [42]Kernel traffic * [43]Kernel Newsflash * [44]Kernel Trap Other resources: * [45]Kernel Source Reference * [46]L-K mailing list FAQ * [47]Linux-MM * [48]Linux Scalability Project [49]Next: Distributions [50]Eklektix, Inc. Linux powered! Copyright Л 2001 [51]Eklektix, Inc., all rights reserved Linux (R) is a registered trademark of Linus Torvalds References 1. http://lwn.net/ 2. http://ads.tucows.com/click.ng/pageid=001-012-132-000-000-003-000-000-012 3. http://lwn.net/2001/0301/ 4. http://lwn.net/2001/0301/security.php3 5. http://lwn.net/2001/0301/dists.php3 6. http://lwn.net/2001/0301/desktop.php3 7. http://lwn.net/2001/0301/devel.php3 8. http://lwn.net/2001/0301/commerce.php3 9. http://lwn.net/2001/0301/press.php3 10. http://lwn.net/2001/0301/announce.php3 11. http://lwn.net/2001/0301/history.php3 12. http://lwn.net/2001/0301/letters.php3 13. http://lwn.net/2001/0301/bigpage.php3 14. http://lwn.net/2001/0222/kernel.php3 15. http://lwn.net/2001/0301/a/2.4.2ac6.php3 16. http://lwn.net/2001/0301/a/lt-releases.php3 17. http://lwn.net/2001/0301/a/ac-releases.php3 18. http://lwn.net/2001/0301/a/2.2.19pre16.php3 19. http://lwn.net/2001/0301/a/ac-oneweek.php3 20. http://lwn.net/2001/0301/a/knfsd-patch.php3 21. http://lwn.net/2001/0222/kernel.php3 22. http://lwn.net/2001/0301/a/namespaces.php3 23. http://plan9.bell-labs.com/plan9dist/ 24. http://lwn.net/2001/0301/a/rfork.c.php3 25. http://lwn.net/2001/0301/a/hashes.php3 26. http://lwn.net/2001/0301/a/lt-dentry-hash.php3 27. http://lwn.net/2001/0301/a/tt-compatibility.php3 28. http://lwn.net/2001/0301/a/lt-tail-block.php3 29. http://lwn.net/2001/0301/a/lt-compatibility.php3 30. http://www.mosix.cs.huji.ac.il/ 31. http://lwn.net/2001/0301/a/cluster-list.php3 32. http://lwn.net/2001/0301/a/random-pid.php3 33. http://lwn.net/2001/0301/a/powerpc64.php3 34. http://lwn.net/2001/0301/a/zerocopy.php3 35. http://lwn.net/2001/0301/a/modutils.php3 36. http://lwn.net/2001/0301/a/kdb.php3 37. http://lwn.net/2001/0301/a/jfs.php3 38. http://lwn.net/2001/0301/a/hotplug.php3 39. http://lwn.net/2001/0301/a/scsiinfo.php3 40. mailto:lwn@lwn.net 41. http://www.kernelnotes.org/ 42. http://kt.zork.net/ 43. http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html 44. http://www.kerneltrap.com/ 45. http://lksr.org/ 46. http://www.tux.org/lkml/ 47. http://www.linux.eu.org/Linux-MM/ 48. http://www.citi.umich.edu/projects/linux-scalability/ 49. http://lwn.net/2001/0301/dists.php3 50. http://www.eklektix.com/ 51. http://www.eklektix.com/ --- ifmail v.2.14.os7-aks1 * Origin: Unknown (2:4615/71.10@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/203086578b8c2.html, оценка из 5, голосов 10
|