|
Lines 265-272
Link Here
|
| 265 |
be usable these days.</para> |
265 |
be usable these days.</para> |
| 266 |
|
266 |
|
| 267 |
<para>&os; development happens in a central CVS repository where only |
267 |
<para>&os; development happens in a central CVS repository where only |
| 268 |
a selected team of so called commiters can write. This repository |
268 |
a selected team of so called committers can write. This repository |
| 269 |
posseses several branches; the most interesting are the HEAD branch, |
269 |
possesses several branches; the most interesting are the HEAD branch, |
| 270 |
in &os; nomenclature called -CURRENT, and RELENG_X branches, where X |
270 |
in &os; nomenclature called -CURRENT, and RELENG_X branches, where X |
| 271 |
stands for a number indicating a major version of &os;. As of |
271 |
stands for a number indicating a major version of &os;. As of |
| 272 |
December 2006, there are development branches for 6.X development |
272 |
December 2006, there are development branches for 6.X development |
|
Lines 799-805
Link Here
|
| 799 |
<title>Atomic operations and memory barriers</title> |
799 |
<title>Atomic operations and memory barriers</title> |
| 800 |
|
800 |
|
| 801 |
<para>Atomic operations are implemented through a set of functions |
801 |
<para>Atomic operations are implemented through a set of functions |
| 802 |
performing simple aritmetics on memory operands in an atomic way |
802 |
performing simple arithmetics on memory operands in an atomic way |
| 803 |
with respect to external events (interrupts, preemption, etc.). |
803 |
with respect to external events (interrupts, preemption, etc.). |
| 804 |
Atomic operations can guarantee atomicity just on small data types |
804 |
Atomic operations can guarantee atomicity just on small data types |
| 805 |
(in the magnitude order of the <literal>.long.</literal> |
805 |
(in the magnitude order of the <literal>.long.</literal> |
|
Lines 1083-1089
Link Here
|
| 1083 |
internal to VFS. The &man.namei.9; syscall can cope with symlinks, |
1083 |
internal to VFS. The &man.namei.9; syscall can cope with symlinks, |
| 1084 |
absolute and relative paths. When a path is looked up using |
1084 |
absolute and relative paths. When a path is looked up using |
| 1085 |
&man.namei.9; it is inputed to the name cache. This behaviour can |
1085 |
&man.namei.9; it is inputed to the name cache. This behaviour can |
| 1086 |
be supressed. This routine is used all over the kernel and its |
1086 |
be suppressed. This routine is used all over the kernel and its |
| 1087 |
performance is very critical.</para> |
1087 |
performance is very critical.</para> |
| 1088 |
</sect4> |
1088 |
</sect4> |
| 1089 |
|
1089 |
|
|
Lines 1735-1741
Link Here
|
| 1735 |
unused. Segments are either stored in a global GDT table or in a |
1735 |
unused. Segments are either stored in a global GDT table or in a |
| 1736 |
local LDT table. LDT is accessed via an entry in the GDT. The |
1736 |
local LDT table. LDT is accessed via an entry in the GDT. The |
| 1737 |
LDT can store more types of segments. LDT can be per process. |
1737 |
LDT can store more types of segments. LDT can be per process. |
| 1738 |
Both tables define upto 8191 entries.</para> |
1738 |
Both tables define up to 8191 entries.</para> |
| 1739 |
</sect3> |
1739 |
</sect3> |
| 1740 |
|
1740 |
|
| 1741 |
<sect3 id="linux-i386"> |
1741 |
<sect3 id="linux-i386"> |
|
Lines 1826-1832
Link Here
|
| 1826 |
fast (the condition variables will probably end up being implemented |
1826 |
fast (the condition variables will probably end up being implemented |
| 1827 |
using signals, i.e. not fast) and simple. In 1:1 model, the |
1827 |
using signals, i.e. not fast) and simple. In 1:1 model, the |
| 1828 |
situation is also quite clear - the threads must be synchronized |
1828 |
situation is also quite clear - the threads must be synchronized |
| 1829 |
using kernel facilites (which is very slow because a syscall must be |
1829 |
using kernel facilities (which is very slow because a syscall must be |
| 1830 |
performed). The mixed M:N scenario just combines the first and |
1830 |
performed). The mixed M:N scenario just combines the first and |
| 1831 |
second approach or rely solely on kernel. Threads synchronization is |
1831 |
second approach or rely solely on kernel. Threads synchronization is |
| 1832 |
a vital part of thread-enabled programming and its performance can |
1832 |
a vital part of thread-enabled programming and its performance can |
|
Lines 2121-2127
Link Here
|
| 2121 |
performed, is. When the <varname>filename</varname> parameter is |
2121 |
performed, is. When the <varname>filename</varname> parameter is |
| 2122 |
absolute <varname>dirfd</varname> is ignored but when the path to |
2122 |
absolute <varname>dirfd</varname> is ignored but when the path to |
| 2123 |
the file is relative, it comes to the play. The |
2123 |
the file is relative, it comes to the play. The |
| 2124 |
<varname>dirfd</varname> paramtere is a directory relative to which |
2124 |
<varname>dirfd</varname> parameter is a directory relative to which |
| 2125 |
the relative pathname is checked. The <varname>dirfd</varname> |
2125 |
the relative pathname is checked. The <varname>dirfd</varname> |
| 2126 |
parameter is a file descriptor of some directory or |
2126 |
parameter is a file descriptor of some directory or |
| 2127 |
<literal>AT_FDCWD</literal>. So for example the |
2127 |
<literal>AT_FDCWD</literal>. So for example the |
|
Lines 2236-2242
Link Here
|
| 2236 |
introduce a small infrastructure. We have the ldebug facility, which |
2236 |
introduce a small infrastructure. We have the ldebug facility, which |
| 2237 |
tells whether a given syscall should be debugged (settable via a |
2237 |
tells whether a given syscall should be debugged (settable via a |
| 2238 |
sysctl). For printing we have LMSG and ARGS macros. Those are used |
2238 |
sysctl). For printing we have LMSG and ARGS macros. Those are used |
| 2239 |
for altering a printable string for uniform debuging messages.</para> |
2239 |
for altering a printable string for uniform debugging messages.</para> |
| 2240 |
</sect3> |
2240 |
</sect3> |
| 2241 |
</sect2> |
2241 |
</sect2> |
| 2242 |
</sect1> |
2242 |
</sect1> |
|
Lines 2256-2262
Link Here
|
| 2256 |
the &linux; programs included in &os; Ports Collection with |
2256 |
the &linux; programs included in &os; Ports Collection with |
| 2257 |
Fedora Core 4 at 2.6.16 and there are some rudimentary |
2257 |
Fedora Core 4 at 2.6.16 and there are some rudimentary |
| 2258 |
reports of success with Fedora Core 6 at 2.6.16. The |
2258 |
reports of success with Fedora Core 6 at 2.6.16. The |
| 2259 |
Fedora Core 6 linux_base was recently commited enabling |
2259 |
Fedora Core 6 linux_base was recently committed enabling |
| 2260 |
some further testing of the emulation layer and giving us some more |
2260 |
some further testing of the emulation layer and giving us some more |
| 2261 |
hints where we should put our effort in implementing missing |
2261 |
hints where we should put our effort in implementing missing |
| 2262 |
stuff.</para> |
2262 |
stuff.</para> |