|
|
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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/19861e1e40fb3.html, оценка из 5, голосов 10
|