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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Lentsov                       2:4615/71.10   03 Jan 2002  18:20:50
 To : All
 Subject : URL: http://www.lwn.net/2002/0103/kernel.php3
 -------------------------------------------------------------------------------- 
 
    [1][LWN Logo] 
    
                                [2]Click Here 
    [LWN.net]
    
    Sections:
     [3]Main page
     [4]Security
     Kernel
     [5]Distributions
     [6]Development
     [7]Commerce
     [8]Linux in the news
     [9]Announcements
     [10]Linux History
     [11]Letters
    [12]All in one big page
    
    See also: [13]last week's Kernel page.
    
 Kernel development
 
    The current development kernel release is 2.5.1. Linus's 2.5.2
    prepatch is up to [14]2.5.2-pre6. This prepatch contains more block
    I/O work, of course, though that effort seems to be winding down - for
    now. So this prepatch includes a number of other things, including a
    merge of many of the fixes from the "dj" patch series, Al Viro's
    namespace patch (described in the [15]March 1, 2001 LWN kernel page),
    some scheduler work from Davide Libenzi, a USB update that includes
    beginning support for USB 2.0, and a number of other things.
    
    One of those "other things" is [16]a 'new and anal' kdev_t type.
    kdev_t, the internal kernel representation for device numbers, has
    traditionally just been the user-space dev_t in disguise. It is now
    defined as a structure as a way of finding all kernel code which
    treats kdev_t as a simple number. Even proper code needs editing,
    however, since the macros which manipulate kdev_t have changed. As of
    -pre6, there is a lot of code which still needs work and which, thus,
    does not compile. The -pre6 prepatch is not for people who are not
    interested in tracking down these sorts of problems.
    
    The current stable kernel release is 2.4.17, [17]released on
    December 21. There was some grumbling that the final 2.4.17 patch
    included a couple of new fixes; Marcelo's policy seems to be that
    obvious, simple bug fixes can go in even after the last release
    candidate.
    
    The [18]first 2.4.18 prepatch came out on December 26; it is a large
    patch with a number of architecture updates.
    
    Other prepatches: Dave Jones's current prepatch is at [19]2.5.1-dj10.
    It tracks the Linus prepatches through 2.5.2-pre5, and, thus, does not
    yet contain the kdev_t work.
    
    Michael Cohen has concluded that the world still needs a 2.4-based
    development tree. So, he has released [20]2.4.17-mjc1 to fill that
    need. It starts with 2.4.17, of course, but then adds Rik van Riel's
    reverse mapping patch, the preemptible kernel patch, software suspend,
    Andre Hedrick's IDE work, and more. Despite all that, Michael claims
    "I'll try to keep this as close to the 2.4.x line as possible."
    
    2.2 users may be interested in [21]2.2.21-pre2 from Alan Cox.
    
    Scheduler tweaks. The debate on what changes should be made to the
    scheduler in 2.5 has not yet really happened. Even so, Linus has
    started merging in tweaks to the existing algorithm, in the form of
    Davide Libenzi's [22]Time Slice Split Scheduler patch. This patch
    changes the way the scheduler handles the "dynamic priority" of
    processes; the result, hopefully, is fairer scheduling with lower
    overhead.
    
    The Linux scheduler has traditionally handled dynamic priority via a
    task structure field called counter; the number stored in counter is,
    essentially, the number of clock ticks left in the process's time
    slice. By using this count as a priority adjustment, the kernel tries
    to divide the processor relatively equally among processes that need
    it; a process which has not managed to use up much of its time slice
    will be selected over another which has exhausted most of its time.
    
    The new scheduler separates dynamic priority from time slice
    accounting by replacing counter with two new task structure fields:
    dyn_prio and time_slice. This change simplifies the time slice
    accounting in the kernel, and makes it easy to adjust the dynamic
    priority for other reasons. For example, a small priority boost can be
    given to a process which has just completed an I/O operation without
    increasing its time slice.
    
    The new code has been steadily tweaked since its inclusion in the
    prepatch, mostly through adjustments to the time slice and dynamic
    priority settings. There have been few complaints, but also few posted
    benchmark results. And this patch does little to address the
    difficulties encountered by the current scheduler on SMP systems. Work
    with the scheduling algorithm is likely to continue for some time.
    
    The kernel development process has been discussed from many angles
    over the last couple of weeks. Perhaps, at the end of a sometimes
    difficult year, developers need to ponder on how to make things
    better. Here's a few things that have come up:
      * Where is aio? Ben LaHaise first submitted his asynchronous I/O
        patches early last year. The AIO code enables user processes to
        queue up I/O operations directly from their buffers (i.e. without
        being copied through the kernel) without having to wait for their
        completion. AIO is a feature that Oracle has wanted for some time,
        as have other authors of high-performance applications.
        Discussion of the AIO patch on the kernel mailing list has been
        light, despite the fact that this patch makes deep and significant
        changes to how things have been done. Ben feels that part of the
        problem, at least, is the fact that these patches - or at least
        the part that reserves the AIO system calls - has not been merged
        into the mainline kernel. So there is no easy and stable platform
        for people to play with.
        Linus likes the AIO patch, but is not ready to merge it, or
        reserve system calls, until it has been more thoroughly discussed
        on the kernel mailing list. The result is a sort of "chicken and
        egg" standoff where AIO never really seems to move forward.
        One possible solution is [23]this patch from Keith Owens, which
        makes it easy for kernel patches to use temporary system call
        numbers. System calls are registered at system boot (or module
        load) time, and they are exported to user space via a /proc
        interface. Properly written applications will be able to find the
        system calls they need, and they will continue to run properly
        even if those numbers change.
      * Units in the kernel. When somebody talks about "kilobytes," what
        unit are they really using? "Kilo" traditionally means 10^3
        (1000), but, in the computing world, it often means 2^10 (1024)
        instead. A similar ambiguity exists for the "mega" prefix (10^6 or
        2^20) as well. For the most part, people have lived with this
        fuzziness without trouble, but there are always those who feel
        that it's better to be exact.
        There is, in fact, [24]a standard for the description of binary
        multiples. According to this standard, a "kilobyte" of memory is
        really a "kibibyte", and should be written "KiB". The standard
        also defines "mebi," "gibi," and so on. These definitions have
        been around since 1998, but their use has been minimal.
        When these units started showing up in the kernel's Configure.help
        file, some [25]complaints started rolling in. Not everybody likes
        these units, to say the least. Eric Raymond, current keeper of
        Configure.help, has [26]stated that he will continue to follow the
        published standards unless there is a clear consensus to the
        contrary. Clear consensus can be a scarce thing on the kernel
        mailing list, however, and no such consensus seems to have emerged
        on this issue.
      * Patch management. Low-level grumbling about patches being dropped
        by Linus (and others) has been a constant linux-kernel feature for
        a while. Patches sent to Linus often seem to just fall into the
        void; they are not applied, and no response comes back. Developers
        will often find that a patch finally goes in after having been
        submitted, without response, several times. It can be demoralizing
        for a hacker to be continually updating a patch to track the
        current kernel releases with no feedback as to whether it will
        eventually be included or not.
        One idea that occasionally comes up is the use of a patch
        management system. That was actually tried once, some years ago,
        but Linus has since stopped using the system. Among other things,
        [27]says Linus, there is not much use in actually tracking patches
        over time. If they are not incorporated into the kernel, they go
        stale in a hurry and can no longer easily be applied. Linus, would
        rather that the job of merging patches with other developments
        stay with the originator of the patch. It also seems that Linus
        would rather work with people who will be persistent enough to
        maintain their patches until they are included, on the theory that
        these people will continue to maintain the code after inclusion.
        
    The patch management issue, in particular, is likely to help drive the
    continuing success of the alternative kernel trees. Increasingly, one
    or more of these trees is likely to become a necessary staging area
    where patches can be tried out before finding their way into the
    mainline kernel. In fact, [28]Linus says that the multiple trees are
    one of the strengths of the kernel development process for a number of
    reasons, one of which is patch management.
    
    The Linux kernel is almost alone in its use of multiple trees as part
    of the development process. Many projects have stable and development
    branches, but few have multiple trees on either the stable or
    development side. It will be interesting to see if the multiple-tree
    idea proves useful enough to spread more widely in the free software
    development world.
    
    The new kernel build implementation remains a topic of interest. Eric
    Raymond has sent out a [29]the state of the new config and build
    system message stating that everything was ready to go whenever Linus
    is. Keith Owens, meanwhile, has released [30]kbuild 1.12 for the 2.5
    kernel. There remains one little problem, however: the new kbuild
    takes about twice as long to execute a full kernel build. Not
    surprisingly, the kernel developers are not entirely enthusiastic
    about this state of affairs. They wait on kernel builds every day and
    have little taste for a change that makes things far slower.
    
    Keith's [31]response to the complaints is essentially this: the new
    kbuild fixes a number of problems, especially with regard to handling
    of dependencies, that exist in the current kbuild system. Correctness
    comes first, with performance to follow. Keith believes that he can
    fix the performance problems, fairly quickly, but only after the
    kbuild code has been integrated into the kernel. Until then, he is
    busy enough just managing the patch and keeping it current with kernel
    releases.
    
      Linus, you have a choice between a known broken build system and a
      clean and reliable system, which is slightly slower in mark 1.
      Please add kbuild 2.5 to the kernel, then I will have time to
      rewrite the core programs for speed. Mark 2 of the core code will
      be significantly faster.
      
    There has been no word from Linus. In the view of many kernel
    developers, however, who have not generally had trouble with the
    existing build system, the new kbuild should not be merged until the
    performance problems have been dealt with. Keith has already made some
    steps in that direction with [32]a new design for the management of
    the data used by the kbuild process.
    
    Other patches and updates released this week include:
    
      * Rusty Russell has posted [33]a new /proc/sys implementation which
        creates a completely new filesystem for single-value items.
      * Pavel Machek has posted [34]a new software suspend patch for
        2.5.1.
      * Jean Tourrilhes continues work on the new wireless driver API; the
        [35]latest patch adds for support for wireless events.
      * [36]kdb 2.0 for 2.4.17 was released by Keith Owens.
      * Dmitri Kassatkine has [37]announced version 0.9pre7 of the affix
        BlueTooth stack. [38][hviz graph] 
      * Jeff Dike has [39]released version 0.54-2.4.7 of the User-mode
        Linux port. Jeff also [40]states that he has sent a UML port off
        to Linus for inclusion in 2.5.
      * Arnaldo Carvalho de Melo has [41]posted a tool which plots the
        dependencies between Linux kernel include files. An example of its
        output may be seen on the right.
      * Christoph Hellwig has [42]released a DRM 4.0 patch for the 2.4.17
        kernel.
      * A new [43]high-resolution timers patch was announced by George
        Anzinger.
      * The [44]Linux Kernel Source Finder is a new web page, maintained
        by David Alan Gilbert, containing pointers to the definitive
        archives for non-x86 Linux kernel sources.
      * [45]Kernel Traffic #148 (December 31) is available.
      * James Bottomley has [46]posted a patch adding support for the NCR
        voyager architecture.
      * Momchil Velikov has posted [47]a patch improving the performance
        of the kernel page cache in a number of ways.
      * Rik van Riel has posted [48]a 2.4.17 VM implementation with
        reverse mapping support. The announcement describes what is in the
        patch, but people who want to actually run the code should use
        [49]version 10a instead.
      * A [50]BeOS filesystem implementation for Linux is available from
        Will Dyson.
      * Andrew Cannon has [51]a filesystem driver for the Radisys RBF
        filesystem.
      * [52]devfs 199.6 (for 2.4.17) and [53]devfs 205 (2.5.1) were
        released by Richard Gooch.
      * Zygo Blaxell has [54]posted a CryptoAPI patch for 2.4.17.
      * CML2 1.9.20 has been [55]released by Eric Raymond.
      * The third stable release of USAGI (the "UniverSAl playGround for
        Ipv6") was [56]announced by Kanda Mitsuru.
        
    Section Editor: [57]Jonathan Corbet
    January 3, 2002
    
    For other kernel news, see:
      * [58]Kernel traffic
      * [59]Kernel Newsflash
      * [60]Kernel Trap
      * [61]Linux 2.5.x Porting help
    
    Other resources:
      * [62]Kernel Source Reference
      * [63]L-K mailing list FAQ
      * [64]Linux-MM
      * [65]Linux Scalability Effort
      * [66]Kernel Newbies
      * [67]Linux Device Drivers
    
    
    
                                                   [68]Next: Distributions
    
    [69]Eklektix, Inc. Linux powered! Copyright Л 2002 [70]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/2002/0103/
    4. http://lwn.net/2002/0103/security.php3
    5. http://lwn.net/2002/0103/dists.php3
    6. http://lwn.net/2002/0103/devel.php3
    7. http://lwn.net/2002/0103/commerce.php3
    8. http://lwn.net/2002/0103/press.php3
    9. http://lwn.net/2002/0103/announce.php3
   10. http://lwn.net/2002/0103/history.php3
   11. http://lwn.net/2002/0103/letters.php3
   12. http://lwn.net/2002/0103/bigpage.php3
   13. http://lwn.net/2001/1220/kernel.php3
   14. http://lwn.net/2002/0103/a/2.5.2-pre6.php3
   15. http://lwn.net/2001/0301/kernel.php3
   16. http://lwn.net/2002/0103/a/kdev_t.php3
   17. http://lwn.net/2002/0103/a/2.4.17.php3
   18. http://lwn.net/2002/0103/a/2.4.18-pre1.php3
   19. http://lwn.net/2002/0103/a/2.5.1-dj10.php3
   20. http://lwn.net/2002/0103/a/2.4.17-mjc1.php3
   21. http://lwn.net/2002/0103/a/2.2.21-pre2.php3
   22. http://lwn.net/2002/0103/a/tsss.php3
   23. http://lwn.net/2002/0103/a/temp-syscall.php3
   24. http://physics.nist.gov/cuu/Units/binary.html
   25. http://lwn.net/2002/0103/a/kibi.php3
   26. http://lwn.net/2002/0103/a/esr-kibi.php3
   27. http://lwn.net/2002/0103/a/lt-patch-mgmt.php3
   28. http://lwn.net/2002/0103/a/lt-trees.php3
   29. http://lwn.net/2002/0103/a/state-of-kbuild.php3
   30. http://lwn.net/2002/0103/a/kbuild.php3
   31. http://lwn.net/2002/0103/a/ko-kbuild.php3
   32. http://lwn.net/2002/0103/a/kbuild-db.php3
   33. http://lwn.net/2002/0103/a/proc.php3
   34. http://lwn.net/2002/0103/a/swsusp.php3
   35. http://lwn.net/2002/0103/a/wireless.php3
   36. http://lwn.net/2002/0103/a/kdb.php3
   37. http://lwn.net/2002/0103/a/affix.php3
   38. http://lwn.net/2002/0103/hviz.php3
   39. http://lwn.net/2002/0103/a/uml.php3
   40. http://lwn.net/2002/0103/a/uml-to-linus.php3
   41. http://lwn.net/2002/0103/a/hviz.php3
   42. http://lwn.net/2002/0103/a/drm.php3
   43. http://lwn.net/2002/0103/a/hrt.php3
   44. http://www.treblig.org/Linux_kernel_source_finder.html
   45. http://kt.zork.net/kernel-traffic/kt20011231_148.html
   46. http://lwn.net/2002/0103/a/voyager.php3
   47. http://lwn.net/2002/0103/a/spc.php3
   48. http://lwn.net/2002/0103/a/rmap-10.php3
   49. http://lwn.net/2002/0103/a/rmap-10a.php3
   50. http://lwn.net/2002/0103/a/befs.php3
   51. http://lwn.net/2002/0103/a/rbf.php3
   52. http://lwn.net/2002/0103/a/devfs.php3
   53. http://lwn.net/2002/0103/a/devfs-205.php3
   54. http://lwn.net/2002/0103/a/cryptoapi.php3
   55. http://lwn.net/2002/0103/a/cml.php3
   56. http://lwn.net/2002/0103/a/usagi.php3
   57. mailto:lwn@lwn.net
   58. http://kt.zork.net/
   59. http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html
   60. http://www.kerneltrap.com/
   61. http://www.osdl.org/archive/rddunlap/linux-port-25x.html
   62. http://lksr.org/
   63. http://www.tux.org/lkml/
   64. http://www.linux.eu.org/Linux-MM/
   65. http://lse.sourceforge.net/
   66. http://www.kernelnewbies.org/
   67. http://www.xml.com/ldd/chapter/book/index.html
   68. http://lwn.net/2002/0103/dists.php3
   69. http://www.eklektix.com/
   70. http://www.eklektix.com/
 
 --- ifmail v.2.14.os7-aks1
  * Origin: Unknown (2:4615/71.10@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 URL: http://www.lwn.net/2002/0103/kernel.php3   Sergey Lentsov   03 Jan 2002 18:20:50 
Архивное /ru.linux/19861166621e4.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional