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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Lentsov                       2:4615/71.10   11 Apr 2002  19:37:25
 To : All
 Subject : URL: http://www.lwn.net/2002/0411/kernel.php3
 -------------------------------------------------------------------------------- 
 
    [1][LWN Logo] 
    [LWN.net]
 
    Sections:
     [2]Main page
     [3]Security
     Kernel
     [4]Distributions
     [5]Development
     [6]Commerce
     [7]Linux in the news
     [8]Announcements
     [9]Letters
    [10]All in one big page
 
    See also: [11]last week's Kernel page.
 
 Kernel development
 
    The current development kernel release is 2.5.7. The current 2.5.8
    prepatch from Linus is [12]2.5.8-pre3; it includes a big PowerPC64
    update, a FireWire update, the new system calls for setting process
    CPU affinity, a bunch of USB updates, a great deal of merging from the
    "dj" series, and more.
 
    Dave Jones's latest prepatch is [13]2.5.7-dj3. There's not much new in
    it; Dave appears to be concentrating more on feeding changes to Linus
    at the moment.
 
    The latest [14]2.5 status summary from Guillaume Boissiere came out on
    April 2.
 
    The current stable kernel release is 2.4.18. The current 2.4.19
    prepatch is [15]2.4.19-pre6. It includes a long list of networking
    fixes, a netfilter update, lots of USB updates, and a vast number of
    other changes. Significantly, this patch also includes a few pieces of
    Andrea Arcangeli's VM update, as reworked by Andrew Morton. Much of
    the reworked VM code remains outside of the main 2.4 kernel, however.
 
    Alan Cox's latest prepatch is [16]2.4.19-pre5-ac3. The most
    interesting part of this prepatch is the inclusion of Pavel Machek's
    software suspend code. If you want to actually play with that code,
    though, you'll also need to apply [17]this patch from Pavel.
 
    Alan has also released [18]2.2.21-rc3, the third 2.2.21 release
    candidate.
 
    Reorganizing USB. It's all Lineo's fault. The company [19]announced
    the contribution of its "USB Device Software" to the Linux kernel.
    This code allows a Linux system to behave as a device (not the host)
    on a USB bus; it is used in the Sharp Zaurus PDA. The code was
    welcomed by all, but it led quickly to the inevitable question: "where
    do we put all that code?"
 
    After some discussion, it was decided that the USB source tree needed
    to be reorganized. The [20]final organization looks like this
    (everything under drivers/usb, of course):
 
      core         The core USB code (including device-side code)
      host                  Controller code for USB hosts
     device            Controller code for USB device systems
      class  Drivers for USB devices with defined 'class' specifications
       net                         Network drivers
      image                        Scanner drivers
      input                         Input drivers
      media                 Media drivers (i.e. cameras)
     serial                        Serial drivers
     storage                       Storage drivers
      misc                         Everything else
 
    The resulting changes were merged in 2.5.8-pre3, resulting in a huge
    patch that, for the most part, just moves files around. The Lineo code
    has not yet been merged, but it's on the list of things to do.
 
    kbuild 2.5 is back. We last heard from the kbuild 2.5 project, which
    is mostly the work of Keith Owens, some months ago. At that point, the
    project had a much improved, cleaner, and more accurate kernel build
    process which provided some interesting new features. There was just
    one little problem: a full kernel build took twice as long. That kind
    of bad news does not get you very far with kernel hackers, who spend a
    lot of time as it is waiting for kernel builds; Keith was essentially
    told, politely, to come back when the performance problems had been
    dealt with. (See [21]the January 3 LWN Kernel Page).
 
    Keith is back. [22]Kbuild 2.5 version 2.0 is now available for 2.4.16,
    with [23]version for the 2.5 kernel available as well. While previous
    versions of kbuild worked with a text file that was read at every step
    in the process, the new kbuild uses a memory-mapped database
    implementation borrowed from BitKeeper. The database code, like a few
    other pieces of BitKeeper, has been released under the GPL, so there
    should be no licensing objections here.
 
    The new code has made a difference. On Keith's system, a full kernel
    build with the traditional kbuild code takes a full 15 minutes (with
    everything configured in). With the new code, that time drops to just
    under nine minutes. If you immediately run a second make on the
    fully-built tree, things look even better. The old kbuild recompiles a
    bunch of stuff unnecessarily, resulting in a "build" time of just over
    two minutes. The new kbuild, instead, figures out that nothing needs
    to be done in 14 seconds. Says Keith:
 
      More accurate kernel build, easier to write and understand
      Makefiles, 30% faster than kbuild 2.4. Now the nay-sayers will have
      to find something else to complain about!
 
    Keith has no plans to try to get the new code into the 2.4 kernel tree
    ("Changing the kernel build on a stable kernel is a bad idea"), but
    there will probably be a renewed push to see it incorporated into 2.5.
    The "nay-sayers" may have to scramble if they want to keep it out.
 
    EVMS 1.0 released. The news is a bit stale (due to the Kernel Page
    taking last week off), but still worth a mention: the Enterprise
    Volume Management System team has [24]announced the release of
    EVMS 1.0, the first full release. EVMS is a high-end system for the
    management of disk drives, partitions, and volumes; in addition to the
    usual nice volume management features it supports snapshots, bad block
    handling, and more. See [25]the EVMS web page for more information.
 
    Tagged command queueing for IDE drives. SCSI drives have supported
    tagged command queueing (TCQ) for many years. TCQ allows a device
    driver to attach an identifying "tag" onto each request passed to a
    drive; the drive will then use that tag when reporting on the status
    of an operation. This tagging allows the drive to have multiple
    requests outstanding, and to satisfy them in any order it chooses. TCQ
    improves performance in a couple of ways:
      * Having multiple operations outstanding reduces idle time by
        ensuring that the drive always has work to do. In a single-request
        mode, the drive must wait after signalling completion until the
        system gets around to handing it another request. In the tagged
        mode, that next request is already available.
      * The drive can optimize the ordering of requests for the best
        performance. The Linux filesystem and driver code already tries to
        perform this optimization, but there limits to how successful the
        host system can be in this regard. The simple cylinders / heads /
        tracks model of a disk drive's block layout has been an
        approximate fiction for years; blocks may not actually be close to
        where the host system thinks they should be. And it is hard for
        the host system to know the current head and platter positions.
        The drive (one hopes) is better informed, and can make better
        decisions.
 
    TCQ support has been a justification for SCSI user smugness for years.
    IDE is catching up, however, and Linux is almost ready: Jens Axboe has
    [26]released a patch which uses TCQ on IDE drives which support that
    feature. With the [27]release of the second version of the patch, Jens
    states: "The code has taken quite a lot of beating, so I'm ready to
    call this beta and ask for more testers. No malfunctions have been
    detected here."
 
    Note that the patch is still a little way from being ready for
    widespread enterprise deployment - among other things, no real
    performance testing has been done yet. Jens has been most concerned
    with issues like data integrity so far - something that most Linux
    users will likely appreciate. It's also worth taking a look at
    [28]this note from Andre Hedrick on the (dismal) state of TCQ support
    in most IDE hardware.
 
    Nonetheless, the TCQ code has begun to find its way into [29]Martin
    Dalecki's IDE patch set, and will thus likely show up in a 2.5
    prepatch before too long.
 
    Dealing with discontiguous memory. Most computers out there organize
    their memory as a single, contiguous array of bytes - or something
    close to that. If there are gaps (such as the x86 memory hole at
    640K), they tend to be small and easily worked around. Linux on most
    systems takes advantage of this contiguous nature by treating memory
    as a simple, linear array.
 
    But what do you do if your hardware is not so reasonable? The Linux
    kernel has had discontiguous memory support for some time, but the
    implementation has not been considered satisfactory by all. Its
    performance is suboptimal, and the code tends to be strongly tied to
    specific architectures.
 
    Daniel Phillips has set out to apply an old computer science axiom to
    this challenge: any problem can be solved by adding another layer of
    indirection. He has posted [30]a patch which makes some interesting
    changes to how the Linux kernel sees the memory it runs on.
 
    In kernel space, there is a fundamental distinction between "virtual"
    and "physical" addresses. Kernel virtual addresses are different from
    user-space virtual addresses; most of the code treats them as if they
    were really physical, hardware addresses. In fact, on most
    architectures, the only difference between (most) kernel virtual
    addresses and the corresponding physical addresses is a constant
    offset. The kernel usually works with virtual addresses, translating
    them to physical addresses only when it is really necessary.
 
    With Daniel's patch, the kernel works with a third address type,
    called a "logical" address. The characteristics of the three address
    types, from lowest-level to highest, now are:
 
    physical Addresses recognized directly by the hardware. They may have
                              significant gaps.
     logical Pseudo-physical addresses as seen by the kernel; the logical
                         address space is contiguous
              virtual Virtual addresses used by most kernel code
 
    The establishment of the logical address space is handled at the
    lowest levels of the kernel; most of the rest of the system is unaware
    of it. By setting up the logical address tables properly, the patch
    takes a system with randomly-organized, discontiguous memory and makes
    that memory look like a nice, linear array. As a result, most of the
    kernel code need not be aware of the real arrangement of the hardware.
 
    This patch is a fundamental change in how Linux deals with its memory.
    Despite that, it is relatively small in size, and it makes it easy for
    the kernel to deal with complicated hardware arrangements. That extra
    layer of indirection hides the complexity of the underlying system.
    Maybe the old axiom is right.
 
    (Here is [31]the latest version of Daniel's patch as of this writing).
 
    SUBTERFUGUE needs a new maintainer. As if in response to the project's
    having been [32]mentioned in NTK, SUBTERFUGUE maintainer Mike Coleman
    has [33]announced that he can no longer maintain the project. Have a
    look if you think you might like to take on this interesting tool.
 
    Other patches and updates released this week include:
 
    Kernel trees:
      * Andrea Arcangeli: [34]2.4.19-pre6-aa1; a number of fixes and
        performance patches.
      * Greg Kroah-Hartman: [35]2.5.7-gregkh-1; includes a great many USB
        patches.
      * Joerg Prante: [36]2.4.19-pre5-jp9; the kitchen sink is missing but
        not much else.
      * Marc-Christian Petersen: [37]2.4.18-WOLK3.3; also includes the
        kitchen sink.
      * Christoph Hellwig: [38]1.0.9-hch1. "After all the discussions
        about VFS races and VM problems and growing bloat in all areas of
        the kernel people seem to have forgotten the good old days of the
        small and simple linux kernels. Even more important the ego of a
        young kernel developer will suffer in the long term if he doesn't
        have his own kernel patchkit, so here it is." Yes, it really is
        based on 1.0.9.
      * J.A. Magallon: [39]2.4.19-pre5-jam2; updated to the latest
        Arcangeli VM.
      * Paul P Komkoff Jr: [40]2.4.19-pre5-ac3-s43.
 
    Core kernel code:
      * Christoph Hellwig: [41]radix tree page cache for 2.5; this is the
        first "release candidate."
      * Robert Love: [42]a new preemptive kernel patch with mostly minor
        changes.
      * Rusty Russell: [43]futex generalization patch, including pthread
        support. Also available is [44]an asynchronous futex extension
        from Hubertus Franke.
      * Andrew Morton: [45]the return of the out-of-memory killer in the
        Arcangeli VM.
      * Robert Love: [46]CPU affinity system calls (merged in 2.5.8-pre3).
      * Rik van Riel: [47]version 12i of the reverse mapping VM.
      * Andrea Arcangeli: [48]vm-33. "I recommend everybody to never use a
        2.4 kernel without first applying this vm patch." Here's [49]his
        explanation for that recommendation.
      * Andreas Gruenbacher: [50]version 0.8.25 of the ACL code; due to
        some changes this patch is considered to be a security fix.
 
    Development tools:
      * Amit Kale: [51]kgdb 1.5, with better support for tracking down
        SMP-related problems.
      * Manoj Iyer: [52]Linux Test Project April 2002 release.
      * Robert Love: [53]preempt-stats, a kernel preemption measurement
        tool.
 
    Device drivers
      * Greg Kroah-Hartman: [54]USB serial console support, merged in
        2.5.8-pre3.
      * Richard Gooch: [55]devfs v199.12 for 2.4.19-pre6 and [56]devfs
        v209 for 2.5.8-pre3.
      * Greg Kroah-Hartman: [57]hotplug scripts 2002-04-01.
      * James Simmons: [58]new frame buffer device API for 2.5.7.
      * Peter Horton: [59]a Radeon frame buffer driver for 2.4.19-pre2.
      * Jeff V. Merkey: [60]Dolphin SCI-PCI driver v1.19.
      * Marc Boucher: [61]Conexant HCF and HSF linmodem drivers.
 
    Filesystems:
      * Anton Altaparmakov: [62]NTFS 2.0.0, a read-only driver for the NT
        filesystem. The patch has since been updated to [63]version 2.0.1.
      * Will Dyson, [64]BeFS 0.92, a Be filesystem driver.
      * Steve Best: [65]JFS 1.0.17.
      * Hirokazu Takahashi: [66]zero copy NFS update.
 
    Miscellaneous:
      * David Welton: [67]a Forth interpreter as a kernel module. "I doubt
        the code itself is of much interest. Actually, I'm pretty
        embarassed about it, but decided to make it available despite
        that."
      * Rick A. Hohensee: [68]another kernel Forth implementation.
      * Erik Kline: [69]a PAM module implementing per-user capability
        sets.
      * Denis Vlasenko: [70]the kernel maintainers file.
      * Neil Brown: [71]mdadm 0.8, a release candidate for this RAID
        administration tool.
 
    Networking:
      * Dmitry Kasatkin: [72]Affix 0.98 (Bluetooth stack for Linux).
      * Kazunori Miyazawa: [73]USAGI 3.1, a stable release from this
        project, which is working to improve Linux IPv6 support.
 
    Ports:
      * Andi Kleen: [74]a new x68-64 snapshot. "It has so many bugs fixed
        over previous kernels that I would recommend every x86-64 user to
        update to this kernel version."
      * Jeff Dike: [75]User-mode Linux 0.56-2.4.18-15.
      * Eric W. Biederman: [76]a set of x86 boot enhancements for better
        support of LinuxBIOS and embedded systems, and more. Additional
        patch parts: [77]2, [78]3, [79]4, [80]5, [81]6, [82]7, [83]8.
 
    Section Editor: [84]Jonathan Corbet
    April 11, 2002
 
                                Sponsored Link
 
    [85]Your Text Ad Here
 
    Purchase your own text ad with our self-serve advertising system.
 
    For other kernel news, see:
      * [86]Kernel traffic
      * [87]Kernel Newsflash
      * [88]Kernel Trap
      * [89]Linux 2.5.x Porting help
      * [90]2.5 Status
    
    Other resources:
      * [91]Kernel Source Reference
      * [92]L-K mailing list FAQ
      * [93]Linux-MM
      * [94]Linux Scalability Effort
      * [95]Kernel Newbies
      * [96]Linux Device Drivers
    
    
 
                                                   [97]Next: Distributions
 
    [98]Eklektix, Inc. Linux powered! Copyright Л 2002 [99]Eklektix, Inc.,
    all rights reserved
    Linux (R) is a registered trademark of Linus Torvalds
 
 References
 
    1. http://lwn.net/
    2. http://lwn.net/2002/0411/
    3. http://lwn.net/2002/0411/security.php3
    4. http://lwn.net/2002/0411/dists.php3
    5. http://lwn.net/2002/0411/devel.php3
    6. http://lwn.net/2002/0411/commerce.php3
    7. http://lwn.net/2002/0411/press.php3
    8. http://lwn.net/2002/0411/announce.php3
    9. http://lwn.net/2002/0411/letters.php3
   10. http://lwn.net/2002/0411/bigpage.php3
   11. http://lwn.net/2002/0404/kernel.php3
   12. http://lwn.net/2002/0411/a/2.5.8-pre3.php3
   13. http://lwn.net/2002/0411/a/2.5.7-dj3.php3
   14. http://lwn.net/2002/0411/a/2.5-status.php3
   15. http://lwn.net/2002/0411/a/2.4.19-pre6.php3
   16. http://lwn.net/2002/0411/a/2.4.19-pre5-ac3.php3
   17. http://lwn.net/2002/0411/a/swsusp-patch.php3
   18. http://lwn.net/2002/0411/a/2.2.21-rc3.php3
   19. http://lwn.net/2002/0411/a/usb-device.php3
   20. http://lwn.net/2002/0411/a/usb-org.php3
   21. http://lwn.net/2002/0103/kernel.php3
   22. http://lwn.net/2002/0411/a/kbuild-2.0.php3
   23. http://lwn.net/2002/0411/a/kbuild-2.0-2.5.php3
   24. http://lwn.net/2002/0411/a/evms.php3
   25. http://evms.sourceforge.net/
   26. http://lwn.net/2002/0411/a/ide-tcq.php3
   27. http://lwn.net/2002/0411/a/ide-tcq2.php3
   28. http://lwn.net/2002/0411/a/ah-tcq.php3
   29. http://lwn.net/2002/0411/a/ide31.php3
   30. http://lwn.net/2002/0411/a/discontig.php3
   31. http://lwn.net/2002/0411/a/discontig2.php3
   32. http://www.ntk.net/2002/04/05/#TRACKING
   33. http://lwn.net/2002/0411/a/subterfugue.php3
   34. http://lwn.net/2002/0411/a/2.4.19-pre6-aa1.php3
   35. http://lwn.net/2002/0411/a/2.5.7-gregkh-1.php3
   36. http://lwn.net/2002/0411/a/2.4.19-pre5-jp9.php3
   37. http://lwn.net/2002/0411/a/2.4.18-WOLK3.3.php3
   38. http://lwn.net/2002/0411/a/1.0.9-hch1.php3
   39. http://lwn.net/2002/0411/a/2.4.19-pre5-jam2.php3
   40. http://lwn.net/2002/0411/a/2.4.19-pre5-ac3-s43.php3
   41. http://lwn.net/2002/0411/a/ratcache.php3
   42. http://lwn.net/2002/0411/a/preempt.php3
   43. http://lwn.net/2002/0411/a/futex.php3
   44. http://lwn.net/2002/0411/a/async-futex.php3
   45. http://lwn.net/2002/0411/a/oom-killer.php3
   46. http://lwn.net/2002/0411/a/affinity.php3
   47. http://lwn.net/2002/0411/a/rmap12i.php3
   48. http://lwn.net/2002/0411/a/vm-33.php3
   49. http://lwn.net/2002/0411/a/vm-33-reason.php3
   50. http://lwn.net/2002/0411/a/acl.php3
   51. http://lwn.net/2002/0411/a/kgdb.php3
   52. http://lwn.net/2002/0411/a/ltp.php3
   53. http://lwn.net/2002/0411/a/preempt-stats.php3
   54. http://lwn.net/2002/0411/a/usb-serial.php3
   55. http://lwn.net/2002/0411/a/devfs.php3
   56. http://lwn.net/2002/0411/a/devfs-209.php3
   57. http://lwn.net/2002/0411/a/hotplug.php3
   58. http://lwn.net/2002/0411/a/fbdev.php3
   59. http://lwn.net/2002/0411/a/radeon-fb.php3
   60. http://lwn.net/2002/0411/a/dolphin.php3
   61. http://lwn.net/2002/0411/a/conexant.php3
   62. http://lwn.net/2002/0411/a/ntfs.php3
   63. http://lwn.net/2002/0411/a/ntfs-2.0.1.php3
   64. http://lwn.net/2002/0411/a/befs.php3
   65. http://lwn.net/2002/0411/a/jfs.php3
   66. http://lwn.net/2002/0411/a/zerocopy-nfs.php3
   67. http://lwn.net/2002/0411/a/forth.php3
   68. http://lwn.net/2002/0411/a/pforth.php3
   69. http://lwn.net/2002/0411/a/pam-capability.php3
   70. http://lwn.net/2002/0411/a/maintainers.php3
   71. http://lwn.net/2002/0411/a/mdadm.php3
   72. http://lwn.net/2002/0411/a/affix.php3
   73. http://lwn.net/2002/0411/a/usagi.php3
   74. http://lwn.net/2002/0411/a/x86-64.php3
   75. http://lwn.net/2002/0411/a/uml.php3
   76. http://lwn.net/2002/0411/a/boot.php3
   77. http://lwn.net/2002/0411/a/boot2.php3
   78. http://lwn.net/2002/0411/a/boot3.php3
   79. http://lwn.net/2002/0411/a/boot4.php3
   80. http://lwn.net/2002/0411/a/boot5.php3
   81. http://lwn.net/2002/0411/a/boot6.php3
   82. http://lwn.net/2002/0411/a/boot7.php3
   83. http://lwn.net/2002/0411/a/boot8.php3
   84. mailto:lwn@lwn.net
   85.
 http://oasis.lwn.net/oasisc.php?s=5&c=5&cb=1800473152&url=http%3A%2F%2Flwn.net%2
 Fcorp%2Fadvertise%2Ftext%2F
   86. http://kt.zork.net/
   87. http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html
   88. http://www.kerneltrap.com/
   89. http://www.osdl.org/archive/rddunlap/linux-port-25x.html
   90. http://kernelnewbies.org/status/
   91. http://lksr.org/
   92. http://www.tux.org/lkml/
   93. http://www.linux.eu.org/Linux-MM/
   94. http://lse.sourceforge.net/
   95. http://www.kernelnewbies.org/
   96. http://www.xml.com/ldd/chapter/book/index.html
   97. http://lwn.net/2002/0411/dists.php3
   98. http://www.eklektix.com/
   99. http://www.eklektix.com/
 
 --- ifmail v.2.14.os7-aks1
  * Origin: Unknown (2:4615/71.10@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 URL: http://www.lwn.net/2002/0411/kernel.php3   Sergey Lentsov   11 Apr 2002 19:37:25 
Архивное /ru.linux/198615ff433eb.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional