|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Sergey Lentsov 2:4615/71.10 14 Oct 2001 14:16:30 To : All Subject : URL: http://www.lwn.net/2001/1011/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 kernel release is 2.4.11, which was [15]released on
October 9. Unlike some 2.4 releases, this one actually seems to be
dedicated to stabilizing things; with the exception of some block
layer, superblock, and partition changes, 2.4.11 consists mostly of
bug fixes and driver updates.
2.4.11 does also contain the code that marks the kernel "tainted" if
non-free loadable modules are used. In some cases, users are getting
warnings when using entirely free code. It's nothing to be worried
about, there just is still some cleaning up to do there.
(Update: see the [16]2.4.12 announcement, which came out just after
LWN's publication, for an update on the "sorry excuse for a kernel"
that Linus now calls 2.4.11).
Alan Cox's latest patch is [17]2.4.10-ac11, which contains a large set
of fixes and updates. According to Alan, "The 2.4.10-ac tree now seems
pretty solid."
For 2.0 users, David Weinehall has released [18]2.0.40-pre2, which
adds another set of fixes to this ancient kernel. Some difficulties
with this patch have been reported, so many users may want to wait for
-pre3.
Where does kernel development stand? The current kernel development
situation is, perhaps, unprecedented in Linux's history. It's
interesting to look at what's going on:
* There are currently two "stable" 2.4 kernel trees, which
[19]differ significantly. The two competing virtual memory
implementations are the biggest difference, of course, but there
are others as well. The "-ac" series contains a number of changes
which have not, yet, made it into the Linus kernel. Merging
changes has been made more difficult by the degree of divergence
between the kernels, meaning that stuff is moving into the Linus
tree at a slower pace.
There is also an increasing level of grumbling from various kernel
developers, who are finding themselves having to support two
different stable trees. There is a fair amount of work
([20]example) going into that support.
* There has been no development kernel since last January. Given
that the kernel was (kind of) in a feature freeze for some time
before the 2.4.0 release, it has been over a year since there has
been a real target for new kernel developments. It's no wonder
that development-like things are finding their way into stable
kernel releases.
Some of the troubles, certainly, could be addressed by opening up the
2.5 series. With a real (single) development kernel to hack on, people
would be less inclined to try to get bleeding-edge stuff into a 2.4
kernel.
But that still leaves the question of what will happen with the 2.4
kernel. Linus generally leaves the stable series behind when he starts
a new development kernel; in the recent past, the responsibility for
the stable kernel has then passed on to Alan Cox. But Alan is
maintaining a different, 2.4-based tree, and [21]intends to continue
doing so. He states that it will take "another 5 or 6 releases" to get
the new VM truly stable, and is thus unlikely to adopt it into his
kernel for some time.
Interestingly, though, most distributors base their kernels off the
"ac" tree, not the mainline Linus kernel. Conceivably, once Linus
moves on to 2.5, his 2.4 series could begin to look like a dead end.
That may look like an unlikely outcome, but, unless somebody backs
down on the VM issue, a unified 2.4 is looking unlikely in the near
future.
Why no 'text file busy' with shared libraries? Linux, like most
Unix-like systems, will not allow an executable file to be overwritten
if it is currently being run by a process. Many people who build or
install programs have been frustrated by the resulting "text file
busy" message. The reasoning behind this restriction is clear: the
file in question is in use as the backing store for one or more live
virtual memory areas; changing it could easily corrupt the processes
using those areas.
An interesting question was [22]asked on the kernel list: why is there
no similar restriction applied to shared library files? They are
mapped in the same way as executables, and form a part of a running
process in the same way. But the kernel will happily allow a user with
appropriate permissions to overwrite an active shared memory, with the
result that a running process could find itself with some pages from
the old version, and others from the new. Anybody who has ever made an
incautious shared library update can attest that the results are
unpleasant.
Some systems, such as those based on the Mach kernel, handle this
problem with a special flag (MAP_COPY) to the mmap() system call. If a
file (such as a shared library) is mapped with MAP_COPY, the mapping
process gets a virtual copy that will never change. Even if the file
is overwritten, the process will see a consistent view of the older
version. Linus, however, [23]doesn't like that idea (to put it
mildly). His objections have to do with the difficulties of
implementing MAP_COPY - it adds a great deal of complexity to a number
of operations, and he sees little or no benefit. So MAP_COPY is
unlikely to show up in the Linux kernel.
Another solution is to block writes to the file, as is already done
with executables. Linux does have a flag (MAP_DENYWRITE) which
requests this behavior, but it is almost always ignored by the VM
subsystem. To do otherwise would be a security problem; if a process
with read access to a file can deny write access to other processes,
there are a number of denial of service possibilities. The classic
exploit is to map the utmp file in this manner, thus denying logins.
The password file and system logs are a couple of other possible
targets for such an attack.
There is, perhaps, a solution in sight, however. As [24]proposed by
Eric Biederman, the MAP_DENYWRITE flag could be safely recognized from
user space if an additional test is met: the mapping process has
execute access to the file. Once shared library images are protected
with the execute bit, it will no longer be possible to overwrite them
when they are in use. A patch along these lines will likely appear in
a future kernel.
Other patches and updates released this week include:
* Keith Owens has released [25]version 1.4 of the 2.5 kernel build
system.
* Greg Kroah-Hartman has [26]released a new version of the Compaq
Hotplug PCI driver.
* Rik van Riel has posted [27]a patch for the "ac" kernel series
which makes the system reclaim cache pages more aggressively. This
should improve performance in situations where a great deal of I/O
is happening. There is [28]another patch from Rik which is
intended to improve interactive performance. Rik is looking for
testers for both patches.
* A [29]new 64-bit PCI patch has been released by David Miller.
* The Functionally Overloaded Kernel Patch is at [30]version 2.3.0.
* [31]kdb 1.9 for the 2.4.11 kernel was released by Keith Owens.
* Jens Axboe has released [32]a new version of his patch enabling
bounce-free DMA from high-memory buffers.
* The [33]October 10 version of the security module patch was
released by Chris Wright.
* Steve Best has [34]released version 1.0.7 of the IBM Journaling
filesystem.
Section Editor: [35]Jonathan Corbet
October 11, 2001
For other kernel news, see:
* [36]Kernel traffic
* [37]Kernel Newsflash
* [38]Kernel Trap
Other resources:
* [39]Kernel Source Reference
* [40]L-K mailing list FAQ
* [41]Linux-MM
* [42]Linux Scalability Effort
* [43]Kernel Newbies
* [44]Linux Device Drivers
[45]Next: Distributions
[46]Eklektix, Inc. Linux powered! Copyright Л 2001 [47]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/1011/
4. http://lwn.net/2001/1011/security.php3
5. http://lwn.net/2001/1011/dists.php3
6. http://lwn.net/2001/1011/desktop.php3
7. http://lwn.net/2001/1011/devel.php3
8. http://lwn.net/2001/1011/commerce.php3
9. http://lwn.net/2001/1011/press.php3
10. http://lwn.net/2001/1011/announce.php3
11. http://lwn.net/2001/1011/history.php3
12. http://lwn.net/2001/1011/letters.php3
13. http://lwn.net/2001/1011/bigpage.php3
14. http://lwn.net/2001/1004/kernel.php3
15. http://lwn.net/2001/1011/a/2.4.11.php3
16. http://lwn.net/2001/1011/a/2.4.12.php3
17. http://lwn.net/2001/1011/a/2.4.10-ac11.php3
18. http://lwn.net/2001/1011/a/2.0.40-pre2.php3
19. http://lwn.net/2001/1011/a/differences.php3
20. http://lwn.net/2001/1011/a/usb-differences.php3
21. http://lwn.net/2001/1011/a/ac-2.4.php3
22. http://lwn.net/2001/1011/a/text-file-busy.php3
23. http://lwn.net/2001/1011/a/lt-map_copy.php3
24. http://lwn.net/2001/1011/a/denywrite.php3
25. http://lwn.net/2001/1011/a/kbuild.php3
26. http://lwn.net/2001/1011/a/hotplug-pci.php3
27. http://lwn.net/2001/1011/a/cache-reclaim.php3
28. http://lwn.net/2001/1011/a/smooth.php3
29. http://lwn.net/2001/1011/a/pci64.php3
30. http://lwn.net/2001/1011/a/folk.php3
31. http://lwn.net/2001/1011/a/kdb.php3
32. http://lwn.net/2001/1011/a/highmem-bounce.php3
33. http://lwn.net/2001/1011/a/sm.php3
34. http://lwn.net/2001/1011/a/jfs.php3
35. mailto:lwn@lwn.net
36. http://kt.zork.net/
37. http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html
38. http://www.kerneltrap.com/
39. http://lksr.org/
40. http://www.tux.org/lkml/
41. http://www.linux.eu.org/Linux-MM/
42. http://lse.sourceforge.net/
43. http://www.kernelnewbies.org/
44. http://www.xml.com/ldd/chapter/book/index.html
45. http://lwn.net/2001/1011/dists.php3
46. http://www.eklektix.com/
47. http://www.eklektix.com/
--- ifmail v.2.14.os7-aks1
* Origin: Unknown (2:4615/71.10@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/19861b8ef6bcb.html, оценка из 5, голосов 10
|