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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Lentsov                       2:4615/71.10   10 May 2002  19:55:07
 To : All
 Subject : URL: http://www.lwn.net/2002/0509/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 is 2.5.14, [12]released on May 6. This
    release includes the usual IDE reworking, a big Bluetooth update, an
    NTFS update, and a bunch of VM/buffer management work. As Linus
    [13]points out, many of the changes in this kernel affect fundamental
    layers of the VM and buffer management subsystems; "backups are always
    a good idea." There have been few complaints, however.
 
    The buffer management changes, which have been working their way in
    over the last few development kernel releases, make substantial
    progress toward the goal of eliminating the buffer cache as such. The
    "buffer head" data structure, increasingly, is used for I/O management
    and little else. With the recent patches (by Andrew Morton), writeback
    of dirty I/O pages is done directly out of the page cache, rather than
    by scanning a list of buffer heads. In a subtle (but important)
    change, page writeback is now done without locking the page, allowing
    certain other concurrent uses and reducing lock contention. The change
    improves performance, but requires kernel developers to be aware that
    an unlocked page could have write I/O operations active on it. Other
    changes include hashed wait queues for buffer heads (saving a chunk of
    memory) and a new way of handling readahead values, which eliminates
    another ugly global array from the block layer.
 
    The latest prepatch from Dave Jones is [14]2.5.14-dj2, which adds a
    reworking of the x86 initialization code and a relatively small set of
    other patches.
 
    The latest [15]2.5 Status Summary from Guillaume Boissiere is dated
    May 7.
 
    The current stable kernel release is 2.4.18. After a long pause, a new
    2.4.19 prepatch ([16]2.4.19-pre8) came out on May 2. Marcelo says that
    there will be just one more prepatch before the first 2.4.19 release
    candidate. -pre8 includes a big m68k update, many patches from the -ac
    series, and lots of other fixes.
 
    Alan Cox has released [17]2.4.19-pre8-ac1, which merges with -pre8 but
    adds no other changes.
 
    The end of /proc/ide. The week would not be complete without some
    discontent over Martin Dalecki's IDE changes. The problematic change
    this time around was his [18]IDE 57 patch, which removes the code
    implementing /proc/ide. This directory, and those beneath it, provide
    a wealth of information about the IDE drives on the system: their
    geometry, how they are configured, etc.
 
    Martin has a couple of complaints about how /proc/ide works. The most
    important of those is that changing drive settings requires a fair
    amount of attention to return values, error handling, etc. which "is
    very unlikely to be implemented in bash." The ability to tweak drive
    settings should be limited to "real" programs using the ioctl()
    interface. The other complaint is, simply, that the /proc/ide code is
    large, about 34KB.
 
    The thing is, of course, that some people like to have the information
    available in /proc/ide. Some of that information can be obtained from
    the hdparm command, but not all of it. Until somebody steps in and
    fills the gap, it is going to be harder to look into the IDE
    subsystem.
 
    While some people complain about the continual flux and removal of
    features in the IDE subsystem, Linus [19]thinks it's a good thing:
 
      Who cares? Have you found _anything_ that Martin removed that was
      at all worthwhile? I sure haven't.
 
      Guys, you have to realize that the IDE layer has eight YEARS of
      absolute crap in it. Seriously. It's _never_ been cleaned up
      before. It has stuff so distasteful that it's scary.
 
    So the IDE reworking process is likely to continue.
 
    Is kbuild 2.5 really ready for inclusion? LWN recently stated that,
    with the solving of the kbuild 2.5 performance problems, detractors
    were going to have to find some other reason to keep the new system
    out of the kernel. Well, it seems they have been trying.
 
    The big complaint now is that modversions does not work in kbuild 2.5.
    Modversions, of course, is a mechanism which attempts to make binary
    modules loadable into multiple kernel versions without recompilation;
    it is much appreciated by distributors, binary software vendors, and
    users who like to be able to upgrade kernels without having to rebuild
    their external modules.
 
    Essentially, modversions works as follows. A utility program shipped
    with the kernel (genksyms) is run as part of the kernel build process.
    It looks at every interface exported by the kernel, and calculates a
    checksum based on the types used in that interface. Thus, for example,
    it may look at the prototype for kmalloc():
         void *kmalloc (size_t size, int flags);
 
    From the name, the void * return type, and the types of the arguments
    it generates (say) a checksum of 93d4cfe6. Through a bit of a long
    process, any module which is compiled for this kernel will include a
    definition (essentially) like:
         #define kmalloc kmalloc_R93d4cfe6
 
    The module will thus expect to link against the mangled version of the
    name, not straight kmalloc.
 
    The mangled names are not used for hard linking within the kernel.
    They do, however, find their way into the kernel symbol table (and can
    thus be seen in /proc/ksyms). When insmod is used to load a module, it
    checks the mangled names against the symbol table, and will only load
    the module if they match. Thus, if the interface to some function has
    changed, the insert will fail and the module will have to be
    recompiled.
 
    In practice, it doesn't always work quite that well. genksyms can find
    interface changes, but it is unaware of numerous other changes which
    can make a module unsuitable for insertion into any given kernel. One
    of these issues (SMP versus uniprocessor) is handled in the kernel
    makefiles, since it is a common and devastating case. But other
    options - preemptable kernel, memory model, etc. - are not caught, and
    can result in the loading of a module which brings down the system.
    There are also [20]scenarios where modversions can fail to catch an
    interface change if the user is not careful.
 
    Kernel developers themselves rarely turn on modversions; it does not
    normally help them, adds extra processing, and it has a hackish feel
    that [21]turns people off. So it is surprising to see complaints about
    modversions not working in kbuild 2.5, especially since kbuild
    developer Keith Owens has [22]said that he plans to fix it once kbuild
    is part of the mainline kernel. In fact, he plans to fix it right,
    using the same emphasis on getting the right result that he has
    applied to the rest of the kbuild system. So modversions will be back
    for the next stable series, which is the only time it really matters.
 
    SELinux as a Linux Security Module. The NSA's [23]Security Enhanced
    Linux is one of the better-known high-security Linux distributions.
    SELinux was also one of the first demonstrations of a security
    structure built upon the Linux Security Module (LSM) patch. The
    SELinux hackers have now [24]posted a report describing how SELinux
    was implemented over LSM. It's worthwhile reading for anybody who is
    interested in how the LSM patch works, or in how a high-security
    system can be built over the Linux kernel.
 
    Other patches and updates released this week include:
 
    Kernel trees:
      * Andrea Arcangeli: [25]2.4.19-pre8-aa2.
      * J.A. Magallon: [26]2.4.19-pre8-jam1.
 
    Core kernel code:
      * Matthew Dobson: NUMA interface ([27]1, [28]2, [29]3, [30]4). "The
        API implements such features as binding processes to CPUs...
        binding to memory blocks, setting launch policies for processes,
        and rudimentary topology features." The full description is on
        [31]the LSE web site.
      * Tim Schmielau: 64-bit jiffies on 32-bit systems ([32]1, and
        [33]2).
      * Rusty Russell: [34]Futex update making them usable for pthreads.
      * Rik van Riel: [35]reverse-mapping VM 13a.
      * Dipankar Sarma: [36]preemptable read-copy-update capability.
      * Chris Wright: [37]Linux Security Module 2002_05_08.
 
    Development tools:
      * Matt Robinson: [38]Linux Kernel Crash Dumps 4.1 for 2.4.17.
      * Manoj Iyer: [39]LTP test suite ltp-20020507.
 
    Device drivers
      * Jens Axboe: [40]tagged command queueing for IDE, #2. Jens has also
        released [41]a version for 2.4.19-pre8.
      * Martin Dalecki: IDE reworking ( [42]49, [43]50, [44]51, [45]52,
        [46]53, [47]54, [48]55, [49]56, and [50]57)
      * Jan Stifter: [51]PCTel linmodem driver 0.9.2.
 
    Filesystems:
      * Anton Altaparmakov: [52]NTFS 2.0.6.
      * Pawel Kot: [53]port of NTFS 2.0.6 to 2.4.18.
      * Kevin Corry: [54]EVMS 1.0.1.
      * Norbert Sendetzky: [55]Secure Internet File System, alpha version,
        read-only.
 
    Kernel building:
      * Keith Owens: [56]kbuild 2.5 r2.4 core 11.
 
    Miscellaneous:
      * Denis Vlasenko: [57]kernel maintainers file.
      * Eric Biederman: x86 boot enhancements ([58]description, [59]1,
        [60]2, [61]3, [62]4, [63]5, [64]6, [65]7, [66]8, [67]9, [68]10,
        and [69]11).
      * Jeff Dike: [70]User-mode Linux is now self hosting.
      * [71]Kernel Traffic #165 is available.
 
    Networking:
      * Maksim Krasnyanskiy: [72]Bluetooth update.
 
    Section Editor: [73]Jonathan Corbet
    May 9, 2002
 
             [74]Work on the world's most powerful Linux computer
 
    Kernel programmers: Come work on the world's most powerful Linux
    supercomputer. Pacific Northwest National Laboratory (operated by
    Battelle for the U.S. Department of Energy) is interested in hard
    working people to join our team. Everything produced will remain GPL.
 
    [75]Interested candidates can apply online immediately.
 
    [76]Learn more about this computer.
 
    PNNL is an EEO/AA employer and values diversity in the workplace.
    F/M/D/V are encouraged to apply.
 
    For other kernel news, see:
      * [77]Kernel traffic
      * [78]Kernel Newsflash
      * [79]Kernel Trap
      * [80]2.5 Status
    
    Other resources:
      * [81]L-K mailing list FAQ
      * [82]Linux-MM
      * [83]Linux Scalability Effort
      * [84]Kernel Newbies
      * [85]Linux Device Drivers
    
    
 
                                                   [86]Next: Distributions
 
    [87]Eklektix, Inc. Linux powered! Copyright Л 2002 [88]Eklektix, Inc.,
    all rights reserved
    Linux (R) is a registered trademark of Linus Torvalds
 
 References
 
    1. http://lwn.net/
    2. http://lwn.net/2002/0509/
    3. http://lwn.net/2002/0509/security.php3
    4. http://lwn.net/2002/0509/dists.php3
    5. http://lwn.net/2002/0509/devel.php3
    6. http://lwn.net/2002/0509/commerce.php3
    7. http://lwn.net/2002/0509/press.php3
    8. http://lwn.net/2002/0509/announce.php3
    9. http://lwn.net/2002/0509/letters.php3
   10. http://lwn.net/2002/0509/bigpage.php3
   11. http://lwn.net/2002/0502/kernel.php3
   12. http://lwn.net/2002/0509/a/2.5.14.php3
   13. http://lwn.net/2002/0509/a/lt-2.5.14.php3
   14. http://lwn.net/2002/0509/a/2.5.14-dj2.php3
   15. http://lwn.net/2002/0509/a/2.5-status.php3
   16. http://lwn.net/2002/0509/a/2.4.19-pre8.php3
   17. http://lwn.net/2002/0509/a/2.4.19-pre8-ac1.php3
   18. http://lwn.net/2002/0509/a/ide-57.php3
   19. http://lwn.net/2002/0509/a/lt-ide.php3
   20. http://lwn.net/2002/0509/a/ko-broken.php3
   21. http://lwn.net/2002/0509/a/md-modversions.php3
   22. http://lwn.net/2002/0509/a/ko-modversions.php3
   23. http://www.nsa.gov/selinux/
   24. http://www.nsa.gov/selinux/module-abs.html
   25. http://lwn.net/2002/0509/a/2.4.19-pre8-aa2.php3
   26. http://lwn.net/2002/0509/a/2.4.19-pre8-jam1.php3
   27. http://lwn.net/2002/0509/a/numa-1.php3
   28. http://lwn.net/2002/0509/a/numa-2.php3
   29. http://lwn.net/2002/0509/a/numa-3.php3
   30. http://lwn.net/2002/0509/a/numa-4.php3
   31. http://lse.sourceforge.net/numa/numa_api.html
   32. http://lwn.net/2002/0509/a/jiffies-1.php3
   33. http://lwn.net/2002/0509/a/jiffies-2.php3
   34. http://lwn.net/2002/0509/a/futex.php3
   35. http://lwn.net/2002/0509/a/rmap.php3
   36. http://lwn.net/2002/0509/a/rcu.php3
   37. http://lwn.net/2002/0509/a/lsm.php3
   38. http://lwn.net/2002/0509/a/lkcd.php3
   39. http://lwn.net/2002/0509/a/ltp.php3
   40. http://lwn.net/2002/0509/a/ide-tcq.php3
   41. http://lwn.net/2002/0509/a/ide-tcq-2.4.php3
   42. http://lwn.net/2002/0509/a/ide-49.php3
   43. http://lwn.net/2002/0509/a/ide-50.php3
   44. http://lwn.net/2002/0509/a/ide-51.php3
   45. http://lwn.net/2002/0509/a/ide-52.php3
   46. http://lwn.net/2002/0509/a/ide-53.php3
   47. http://lwn.net/2002/0509/a/ide-54.php3
   48. http://lwn.net/2002/0509/a/ide-55.php3
   49. http://lwn.net/2002/0509/a/ide-56.php3
   50. http://lwn.net/2002/0509/a/ide-57.php3
   51. http://lwn.net/2002/0509/a/pctel.php3
   52. http://lwn.net/2002/0509/a/ntfs.php3
   53. http://lwn.net/2002/0509/a/ntfs-2.4.php3
   54. http://lwn.net/2002/0509/a/evms.php3
   55. http://lwn.net/2002/0509/a/sifs.php3
   56. http://lwn.net/2002/0509/a/kbuild.php3
   57. http://lwn.net/2002/0509/a/maintainers.php3
   58. http://lwn.net/2002/0509/a/x86-boot.php3
   59. http://lwn.net/2002/0509/a/boot-1.php3
   60. http://lwn.net/2002/0509/a/boot-2.php3
   61. http://lwn.net/2002/0509/a/boot-3.php3
   62. http://lwn.net/2002/0509/a/boot-4.php3
   63. http://lwn.net/2002/0509/a/boot-5.php3
   64. http://lwn.net/2002/0509/a/boot-6.php3
   65. http://lwn.net/2002/0509/a/boot-7.php3
   66. http://lwn.net/2002/0509/a/boot-8.php3
   67. http://lwn.net/2002/0509/a/boot-9.php3
   68. http://lwn.net/2002/0509/a/boot-10.php3
   69. http://lwn.net/2002/0509/a/boot-11.php3
   70. http://lwn.net/2002/0509/a/uml.php3
   71. http://kt.zork.net/kernel-traffic/kt20020506_165.html
   72. http://lwn.net/2002/0509/a/bluetooth.php3
   73. mailto:lwn@lwn.net
   74.
 http://oasis.lwn.net/oasisc.php?s=5&c=30&cb=504529794&url=http%3A%2F%2Fjobs.pnl.
 gov%2Fasp%2FReqDescr%2FReqDescr.asp%3Fv_ReqNbr%3D103909%26company%3DPNL
   75.
 http://oasis.lwn.net/oasisc.php?s=5&c=30&cb=504529794&url=http%3A%2F%2Fjobs.pnl.
 gov%2Fasp%2FReqDescr%2FReqDescr.asp%3Fv_ReqNbr%3D103909%26company%3DPNL
   76.
 http://oasis.lwn.net/oasisc.php?s=5&c=30&cb=504529794&url=http%3A%2F%2Fwww.pnl.g
 ov%2Fnews%2F2002%2Fcomputer.htm
   77. http://kt.zork.net/
   78. http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html
   79. http://www.kerneltrap.com/
   80. http://kernelnewbies.org/status/
   81. http://www.tux.org/lkml/
   82. http://linux-mm.org/
   83. http://lse.sourceforge.net/
   84. http://www.kernelnewbies.org/
   85. http://www.xml.com/ldd/chapter/book/index.html
   86. http://lwn.net/2002/0509/dists.php3
   87. http://www.eklektix.com/
   88. http://www.eklektix.com/
 
 --- ifmail v.2.14.os7-aks1
  * Origin: Unknown (2:4615/71.10@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 URL: http://www.lwn.net/2002/0509/kernel.php3   Sergey Lentsov   10 May 2002 19:55:07 
Архивное /ru.linux/19861e1e40fb3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional