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