Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 URL: http://www.lwn.net/2001/1011/kernel.php3   Sergey Lentsov   14 Oct 2001 14:16:30 
Архивное /ru.linux/19861b8ef6bcb.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional