1 |
<?xml version="1.0" encoding="UTF-8"?> |
2 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
3 |
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-kernel.xml,v 1.62 2010/09/06 05:55:00 nightmorph Exp $ --> |
4 |
|
5 |
<guide> |
6 |
<title>Gentoo Linux Kernel Guide</title> |
7 |
|
8 |
<author title="Author"> |
9 |
<mail link="swift@gentoo.org">Sven Vermeulen</mail> |
10 |
</author> |
11 |
<author title="Contributor"> |
12 |
<mail link="lostlogic@gentoo.org">Brandon Low</mail> |
13 |
</author> |
14 |
<author title="Editor"> |
15 |
<mail link="dsd@gentoo.org">Daniel Drake</mail> |
16 |
</author> |
17 |
<author title="Editor"> |
18 |
<mail link="carl@gentoo.org">Carl Anderson</mail> |
19 |
</author> |
20 |
<author title="Editor"> |
21 |
<mail link="peesh@gentoo.org">Jorge Paulo</mail> |
22 |
</author> |
23 |
<author title="Editor"> |
24 |
<mail link="bennyc@gentoo.org">Benny Chuang</mail> |
25 |
</author> |
26 |
<author title="Editor"> |
27 |
<mail link="greg_g@gentoo.org">Gregorio Guidi</mail> |
28 |
</author> |
29 |
<author title="Editor"> |
30 |
<mail link="fox2mike@gentoo.org">Shyam Mani</mail> |
31 |
</author> |
32 |
<author title="Editor"> |
33 |
<mail link="nightmorph@gentoo.org">Joshua Saddler</mail> |
34 |
</author> |
35 |
|
36 |
<abstract> |
37 |
This document gives you an overview on all kernel sources that Gentoo |
38 |
provides through Portage. |
39 |
</abstract> |
40 |
|
41 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
42 |
<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
43 |
<license/> |
44 |
|
45 |
<version>4</version> |
46 |
<date>2012-04-26</date> |
47 |
|
48 |
<chapter> |
49 |
<title>Introduction</title> |
50 |
<section> |
51 |
<body> |
52 |
|
53 |
<p> |
54 |
As with everything else in Gentoo Linux, the philosophy of the Gentoo |
55 |
Kernel team is to give you, the user, as much freedom of choice as |
56 |
possible. If you take a look at the output of <c>emerge -s sources</c> |
57 |
you see a large variety of kernels to choose from. In this document, |
58 |
I will attempt to give you a brief rundown of the goals of each of the |
59 |
patch sets, which we at Gentoo design, and also explain the other kernel |
60 |
sources we make available to you. |
61 |
</p> |
62 |
|
63 |
<p> |
64 |
Linux 2.4 is maintained by Willy Tarreau. Linus Torvalds, the original creator |
65 |
of Linux, handed maintainership of the Linux 2.4 branch over to Marcelo Tosatti |
66 |
when Linus went off to start developing the newer 2.6 kernel tree. Marcelo did a |
67 |
fine job of keeping 2.4 stable and secure, and has since handed over |
68 |
maintainership to Willy. Note that only security and bug fixes are accepted into |
69 |
the 2.4 kernel tree. Actual development happens in the Linux 2.6 kernel tree. |
70 |
</p> |
71 |
|
72 |
<p> |
73 |
Linux 2.6 is maintained by Andrew Morton, who works closely with Linus |
74 |
Torvalds to deliver a fast, powerful, and feature-packed Linux kernel. |
75 |
Development is happening at incredible pace and this kernel tree is now very |
76 |
mature. |
77 |
</p> |
78 |
|
79 |
<p> |
80 |
Some of the more uncommon system architectures are not fully compatible with |
81 |
Linux 2.6, and some users prefer the tried-and-tested Linux 2.4 kernel. However, |
82 |
please note that Linux 2.4 is currently not being developed further - only bug |
83 |
and security fixes are being included in the newer releases. If you are able to, |
84 |
we suggest that you upgrade to Linux 2.6. You may find the <uri |
85 |
link="/doc/en/migration-to-2.6.xml">migration document</uri> useful. |
86 |
</p> |
87 |
|
88 |
</body> |
89 |
</section> |
90 |
</chapter> |
91 |
|
92 |
<chapter> |
93 |
<title>Supported kernel packages</title> |
94 |
<section> |
95 |
<title>genkernel</title> |
96 |
<body> |
97 |
|
98 |
<p> |
99 |
<c>Genkernel</c> is a kernel toolset that can be used to autodetect your |
100 |
hardware and configure your kernel automatically. This is usually recommended |
101 |
for users who do not feel comfortable about compiling a kernel manually. |
102 |
</p> |
103 |
|
104 |
<p> |
105 |
For more information, please read the <uri link="/doc/en/genkernel.xml">Gentoo |
106 |
Linux Genkernel Guide</uri>. |
107 |
</p> |
108 |
|
109 |
</body> |
110 |
</section> |
111 |
<section> |
112 |
<title>General purpose: gentoo-sources</title> |
113 |
<body> |
114 |
|
115 |
<p> |
116 |
For most users, we recommend the <c>gentoo-sources</c> kernel. |
117 |
<c>gentoo-sources</c> is a kernel based on Linux 2.6, lightly patched to fix |
118 |
security problems, kernel bugs, and to increase compatibility with the more |
119 |
uncommon system architectures. |
120 |
</p> |
121 |
|
122 |
<p> |
123 |
The <c>gentoo-sources</c> package absorbs most of the resources of the Gentoo |
124 |
kernel team. They are brought to you by a group of talented developers, which |
125 |
can count on the expertise of popular kernel hacker Greg Kroah-Hartman, |
126 |
maintainer of udev and responsible for the USB and PCI subsystems of the |
127 |
official Linux kernel. |
128 |
</p> |
129 |
|
130 |
</body> |
131 |
</section> |
132 |
<section> |
133 |
<title>For servers: hardened-sources</title> |
134 |
<body> |
135 |
|
136 |
<p> |
137 |
<c>hardened-sources</c> is based on the official Linux kernel and is targeted at |
138 |
our users running Gentoo on server systems. It provides patches for the various |
139 |
subprojects of Gentoo Hardened (such as support for <uri |
140 |
link="http://www.nsa.gov/selinux/">LSM/SELinux</uri> and <uri |
141 |
link="http://grsecurity.net">grsecurity</uri>), together with |
142 |
stability/security-enhancements. Check |
143 |
<uri>http://www.gentoo.org/proj/en/hardened/</uri> for more information. |
144 |
</p> |
145 |
|
146 |
<impo> |
147 |
This kernel provides powerful patches for enhanced security. Please read the |
148 |
<uri link="/proj/en/hardened/">documentation</uri> before you use it. |
149 |
</impo> |
150 |
|
151 |
</body> |
152 |
</section> |
153 |
<section> |
154 |
<title>ck-sources</title> |
155 |
<body> |
156 |
|
157 |
<p> |
158 |
<c>ck-sources</c> is Con Kolivas's kernel patch set. This patchset is primarily |
159 |
designed to improve system responsiveness and interactivity and is configurable |
160 |
for varying workloads (from servers to desktops). The patchset includes a |
161 |
different scheduler, BFS, designed to keep systems responsive and smooth even |
162 |
when under heavy load. Support and information is available at |
163 |
<uri>http://kernel.kolivas.org</uri> and in <c>#ck</c> on <c>irc.oftc.net</c>. |
164 |
</p> |
165 |
|
166 |
</body> |
167 |
</section> |
168 |
<section> |
169 |
<title>git-sources</title> |
170 |
<body> |
171 |
|
172 |
<p> |
173 |
The <c>git-sources</c> package tracks daily snapshots of the upstream |
174 |
development kernel tree. You should run these kernels if you are interested in |
175 |
kernel development or testing. Bugreports should go to the <uri |
176 |
link="http://bugzilla.kernel.org/">Linux Kernel Bug Tracker</uri> or LKML |
177 |
(Linux Kernel Mailing List). |
178 |
</p> |
179 |
|
180 |
</body> |
181 |
</section> |
182 |
<section> |
183 |
<title>xen-sources</title> |
184 |
<body> |
185 |
|
186 |
<p> |
187 |
<c>xen-sources</c> lets you run multiple operating systems on a single physical |
188 |
system. You can create virtual environments in which one or more guest operating |
189 |
systems run on a <uri link="http://www.xensource.com">Xen</uri>-powered host |
190 |
operating system. |
191 |
</p> |
192 |
|
193 |
<p> |
194 |
For more information on Xen and Gentoo, read the <uri |
195 |
link="/doc/en/xen-guide.xml">Gentoo Xen Guide</uri>. |
196 |
</p> |
197 |
|
198 |
</body> |
199 |
</section> |
200 |
<section> |
201 |
<title>Architecture dependent kernels</title> |
202 |
<body> |
203 |
|
204 |
<p> |
205 |
<c>cell-sources</c>, <c>mips-sources</c>, <c>sparc-sources</c>, and |
206 |
<c>xbox-sources</c> are, as their names suggest, patched to run best on specific |
207 |
architectures. They also contain some of the patches for hardware and features |
208 |
support from the other patch sets mentioned above and below. |
209 |
</p> |
210 |
|
211 |
</body> |
212 |
</section> |
213 |
</chapter> |
214 |
|
215 |
<chapter> |
216 |
<title>Unsupported kernel packages</title> |
217 |
<section> |
218 |
<body> |
219 |
|
220 |
<p> |
221 |
Now I'm going to try to briefly describe some of the other |
222 |
<path>sys-kernel/*-sources</path> which you saw scroll by when you ran |
223 |
<c>emerge -s sources</c>. Let's take them in alphabetical order. These |
224 |
kernels are provided as a courtesy only and the various patch sets are not |
225 |
supported by the Gentoo kernel team. |
226 |
</p> |
227 |
|
228 |
</body> |
229 |
</section> |
230 |
<section> |
231 |
<title>pf-sources</title> |
232 |
<body> |
233 |
|
234 |
<p> |
235 |
The <c>pf-sources</c> kernel brings together parts of several different kernel |
236 |
patches. It includes the BFS patchset from <c>ck-sources</c>, the |
237 |
<c>tuxonice</c> patches, <uri link="http://www.linuximq.net">LinuxIMQ</uri>, and |
238 |
the <uri |
239 |
link="http://algo.ing.unimo.it/people/paolo/disk_sched/patches/">BFQ</uri> I/O |
240 |
<uri |
241 |
link="http://kerneltrap.org/Linux/Budget_Fair_Queuing_IO_Scheduler">scheduler</uri>. |
242 |
</p> |
243 |
|
244 |
</body> |
245 |
</section> |
246 |
<section> |
247 |
<title>openvz-sources</title> |
248 |
<body> |
249 |
|
250 |
<p> |
251 |
OpenVZ is a server virtualization solution built on Linux. OpenVZ creates |
252 |
isolated, secure virtual private servers (VPSs) or virtual environments on a |
253 |
single physical server enabling better server utilization and ensuring that |
254 |
applications do not conflict. For more information, see |
255 |
<uri>http://www.openvz.org</uri>. |
256 |
</p> |
257 |
|
258 |
</body> |
259 |
</section> |
260 |
<section> |
261 |
<title>tuxonice-sources</title> |
262 |
<body> |
263 |
|
264 |
<p> |
265 |
The <c>tuxonice-sources</c> (formerly <c>suspend2-sources</c>) are patched with |
266 |
both genpatches which includes the patches found in gentoo-sources, and <uri |
267 |
link="http://www.tuxonice.net">TuxOnIce</uri> which is an improved |
268 |
implementation of suspend-to-disk for the Linux kernel, formerly known as |
269 |
<e>suspend2</e>. |
270 |
</p> |
271 |
|
272 |
<p> |
273 |
This kernel is recommended for laptop users who often rely on being able |
274 |
to suspend their laptop and resume work elsewhere. |
275 |
</p> |
276 |
|
277 |
</body> |
278 |
</section> |
279 |
<section> |
280 |
<title>usermode-sources</title> |
281 |
<body> |
282 |
|
283 |
<p> |
284 |
<c>usermode-sources</c> are the User Mode Linux kernel patches. This |
285 |
kernel is designed to allow Linux to run within Linux to run within Linux |
286 |
to ... User Mode Linux is intended for testing and virtual server support. |
287 |
For more information about this amazing tribute to the stability and |
288 |
scalability of Linux, see <uri>http://user-mode-linux.sourceforge.net</uri>. |
289 |
</p> |
290 |
|
291 |
<p> |
292 |
For more information on UML and Gentoo, read the |
293 |
<uri link="/doc/en/uml.xml">Gentoo UML Guide</uri>. |
294 |
</p> |
295 |
|
296 |
</body> |
297 |
</section> |
298 |
<section> |
299 |
<title>vanilla-sources</title> |
300 |
<body> |
301 |
|
302 |
<p> |
303 |
The next kernel sources that many of you will probably be familiar with as Linux |
304 |
users are the <c>vanilla-sources</c>. These are the official kernel sources |
305 |
released on <uri>http://www.kernel.org/</uri>. Please note that we do not patch |
306 |
these kernels at all - these are purely for people who wish to run a completely |
307 |
unmodified Linux kernel. We recommend that you use <c>gentoo-sources</c> |
308 |
instead. |
309 |
</p> |
310 |
|
311 |
<p> |
312 |
Two versions of the kernel can be found under this package: 2.4 and 2.6. |
313 |
</p> |
314 |
|
315 |
</body> |
316 |
</section> |
317 |
<section> |
318 |
<title>zen-sources</title> |
319 |
<body> |
320 |
|
321 |
<p> |
322 |
<c>zen-sources</c> is designed for desktop systems. It includes code not found |
323 |
in the mainline kernel. The zen kernel has patches that add new features, |
324 |
support additional hardware, and contain various tweaks for desktops. |
325 |
</p> |
326 |
|
327 |
</body> |
328 |
</section> |
329 |
</chapter> |
330 |
|
331 |
<chapter> |
332 |
<title>Previously provided kernel packages</title> |
333 |
<section> |
334 |
<title>aa-sources</title> |
335 |
<body> |
336 |
|
337 |
<p> |
338 |
<c>aa-sources</c> was a heavily modified kernel with all kinds of patches. |
339 |
The upstream maintainer has stopped releasing kernel patchsets, this package |
340 |
was removed as it went out of date. |
341 |
</p> |
342 |
|
343 |
</body> |
344 |
</section> |
345 |
<section> |
346 |
<title>alpha-sources</title> |
347 |
<body> |
348 |
|
349 |
<p> |
350 |
<c>alpha-sources</c> was a 2.4 kernel with patches applied to improve hardware |
351 |
compatibility for the Alpha architecture. These patches have been developed |
352 |
and included in the mainline kernel. Alpha users can now run any recent kernel |
353 |
with no need for extra patches. |
354 |
</p> |
355 |
|
356 |
</body> |
357 |
</section> |
358 |
<section> |
359 |
<title>development-sources</title> |
360 |
<body> |
361 |
|
362 |
<p> |
363 |
<c>development-sources</c>, the official 2.6 kernel from kernel.org, can now |
364 |
be found under the <c>vanilla-sources</c> package. |
365 |
</p> |
366 |
|
367 |
</body> |
368 |
</section> |
369 |
<section> |
370 |
<title>gentoo-dev-sources</title> |
371 |
<body> |
372 |
|
373 |
<p> |
374 |
<c>gentoo-dev-sources</c>, a 2.6 kernel patched with bug, security and |
375 |
stability fixes, can now be found under the <c>gentoo-sources</c> package. |
376 |
</p> |
377 |
|
378 |
</body> |
379 |
</section> |
380 |
<section> |
381 |
<title>grsec-sources</title> |
382 |
<body> |
383 |
|
384 |
<p> |
385 |
The <c>grsec-sources</c> kernel source used to be patched with the latest |
386 |
grsecurity updates (grsecurity version 2.0 and up) which included, amongst |
387 |
other security-related patches, support for PaX. As grsecurity patches are |
388 |
included in <c>hardened-sources</c>, this package is no longer in Portage. |
389 |
</p> |
390 |
|
391 |
</body> |
392 |
</section> |
393 |
<section> |
394 |
<title>hardened-dev-sources</title> |
395 |
<body> |
396 |
|
397 |
<p> |
398 |
<c>hardened-dev-sources</c> can now be found under the <c>hardened-sources</c> |
399 |
package. |
400 |
</p> |
401 |
|
402 |
</body> |
403 |
</section> |
404 |
<section> |
405 |
<title>hppa-sources</title> |
406 |
<body> |
407 |
|
408 |
<p> |
409 |
<c>hppa-sources</c> was a 2.6 kernel with patches applied to improve hardware |
410 |
compatibility for the HPPA architecture. These patches have been developed |
411 |
and included in the mainline kernel. HPPA users can now run any recent kernel |
412 |
with no need for extra patches. |
413 |
</p> |
414 |
|
415 |
</body> |
416 |
</section> |
417 |
<section> |
418 |
<title>mm-sources</title> |
419 |
<body> |
420 |
|
421 |
<p> |
422 |
The <c>mm-sources</c> were based on the <c>vanilla-sources</c> and contained |
423 |
Andrew Morton's patch set. They includde the experimental and bleeding-edge |
424 |
features that were going to be included in the official kernel (or that were |
425 |
going to be rejected because they set your box on fire). They were known to be |
426 |
always moving at a fast pace and can change radically from one week to the |
427 |
other; kernel hackers used them as a testing ground for highly experimental new |
428 |
stuff. |
429 |
</p> |
430 |
|
431 |
</body> |
432 |
</section> |
433 |
<section> |
434 |
<title>rsbac-dev-sources</title> |
435 |
<body> |
436 |
|
437 |
<p> |
438 |
The <c>rsbac-dev-sources</c> kernels can now be found under the |
439 |
<c>rsbac-sources</c> package. |
440 |
</p> |
441 |
|
442 |
</body> |
443 |
</section> |
444 |
<section> |
445 |
<title>rsbac-sources</title> |
446 |
<body> |
447 |
|
448 |
<p> |
449 |
<c>rsbac-sources</c> was a 2.6-based kernel. It contained patches to use Rule |
450 |
Set Based Access Controls (<uri link="http://www.rsbac.org">RSBAC</uri>). It has |
451 |
been removed due to lack of maintainers. Use <c>hardened-sources</c> if you need |
452 |
additional security features. |
453 |
</p> |
454 |
|
455 |
</body> |
456 |
</section> |
457 |
<section> |
458 |
<title>selinux-sources</title> |
459 |
<body> |
460 |
|
461 |
<p> |
462 |
<c>selinux-sources</c>, a 2.4 kernel including lots of security enhancements, |
463 |
has been obsoleted by security development in the 2.6 tree. SELinux |
464 |
functionality can be found in the <c>hardened-sources</c> package. |
465 |
</p> |
466 |
|
467 |
</body> |
468 |
</section> |
469 |
<section> |
470 |
<title>sh-sources</title> |
471 |
<body> |
472 |
|
473 |
<p> |
474 |
<c>sh-sources</c> was a 2.6 kernel with patches applied to improve hardware |
475 |
compatibility for the SuperH architecture. These patches have been developed |
476 |
and included in the mainline kernel. SuperH users can now run any recent kernel |
477 |
with no need for extra patches. |
478 |
</p> |
479 |
|
480 |
</body> |
481 |
</section> |
482 |
<section> |
483 |
<title>uclinux-sources</title> |
484 |
<body> |
485 |
|
486 |
<p> |
487 |
The <c>uclinux-sources</c> are meant for CPUs without MMUs as well as embedded |
488 |
devices. For more information, see <uri>http://www.uclinux.org</uri>. Lack of |
489 |
security patches as well as hardware to test on were the reasons this is no |
490 |
longer in the tree. |
491 |
</p> |
492 |
|
493 |
</body> |
494 |
</section> |
495 |
<section> |
496 |
<title>win4lin-sources</title> |
497 |
<body> |
498 |
|
499 |
<p> |
500 |
<c>win4lin-sources</c> were patched to support the userland win4lin tools |
501 |
that allow Linux users to run many Microsoft Windows (TM) applications |
502 |
at almost native speeds. This was removed due to security issues. |
503 |
</p> |
504 |
|
505 |
</body> |
506 |
</section> |
507 |
</chapter> |
508 |
</guide> |