~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/admin-guide/devices.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/admin-guide/devices.rst (Version linux-6.12-rc7) and /Documentation/admin-guide/devices.rst (Version linux-5.17.15)


  1 .. _admin_devices:                                  1 .. _admin_devices:
  2                                                     2 
  3 Linux allocated devices (4.x+ version)              3 Linux allocated devices (4.x+ version)
  4 ======================================              4 ======================================
  5                                                     5 
  6 This list is the Linux Device List, the offici      6 This list is the Linux Device List, the official registry of allocated
  7 device numbers and ``/dev`` directory nodes fo      7 device numbers and ``/dev`` directory nodes for the Linux operating
  8 system.                                             8 system.
  9                                                     9 
 10 The version of this document at lanana.org is  !!  10 The LaTeX version of this document is no longer maintained, nor is
 11 version in the mainline Linux kernel is the ma !!  11 the document that used to reside at lanana.org.  This version in the
 12 shall be sent as patches to the kernel maintai !!  12 mainline Linux kernel is the master document.  Updates shall be sent
                                                   >>  13 as patches to the kernel maintainers (see the
 13 :ref:`Documentation/process/submitting-patches     14 :ref:`Documentation/process/submitting-patches.rst <submittingpatches>` document).
 14 Specifically explore the sections titled "CHAR     15 Specifically explore the sections titled "CHAR and MISC DRIVERS", and
 15 "BLOCK LAYER" in the MAINTAINERS file to find      16 "BLOCK LAYER" in the MAINTAINERS file to find the right maintainers
 16 to involve for character and block devices.        17 to involve for character and block devices.
 17                                                    18 
 18 This document is included by reference into th     19 This document is included by reference into the Filesystem Hierarchy
 19 Standard (FHS).  The FHS is available from htt     20 Standard (FHS).  The FHS is available from https://www.pathname.com/fhs/.
 20                                                    21 
 21 Allocations marked (68k/Amiga) apply to Linux/     22 Allocations marked (68k/Amiga) apply to Linux/68k on the Amiga
 22 platform only.  Allocations marked (68k/Atari)     23 platform only.  Allocations marked (68k/Atari) apply to Linux/68k on
 23 the Atari platform only.                           24 the Atari platform only.
 24                                                    25 
 25 This document is in the public domain.  The au     26 This document is in the public domain.  The authors requests, however,
 26 that semantically altered versions are not dis     27 that semantically altered versions are not distributed without
 27 permission of the authors, assuming the author     28 permission of the authors, assuming the authors can be contacted without
 28 an unreasonable effort.                            29 an unreasonable effort.
 29                                                    30 
 30                                                    31 
 31 .. attention::                                     32 .. attention::
 32                                                    33 
 33   DEVICE DRIVERS AUTHORS PLEASE READ THIS          34   DEVICE DRIVERS AUTHORS PLEASE READ THIS
 34                                                    35 
 35   Linux now has extensive support for dynamic      36   Linux now has extensive support for dynamic allocation of device numbering
 36   and can use ``sysfs`` and ``udev`` (``system     37   and can use ``sysfs`` and ``udev`` (``systemd``) to handle the naming needs.
 37   There are still some exceptions in the seria     38   There are still some exceptions in the serial and boot device area. Before
 38   asking   for a device number make sure you a     39   asking   for a device number make sure you actually need one.
 39                                                    40 
 40   To have a major number allocated, or a minor     41   To have a major number allocated, or a minor number in situations
 41   where that applies (e.g. busmice), please su     42   where that applies (e.g. busmice), please submit a patch and send to
 42   the authors as indicated above.                  43   the authors as indicated above.
 43                                                    44 
 44   Keep the description of the device *in the s     45   Keep the description of the device *in the same format
 45   as this list*. The reason for this is that i     46   as this list*. The reason for this is that it is the only way we have
 46   found to ensure we have all the requisite in     47   found to ensure we have all the requisite information to publish your
 47   device and avoid conflicts.                      48   device and avoid conflicts.
 48                                                    49 
 49   Finally, sometimes we have to play "namespac     50   Finally, sometimes we have to play "namespace police."  Please don't be
 50   offended.  We often get submissions for ``/d     51   offended.  We often get submissions for ``/dev`` names that would be bound
 51   to cause conflicts down the road.  We are tr     52   to cause conflicts down the road.  We are trying to avoid getting in a
 52   situation where we would have to suffer an i     53   situation where we would have to suffer an incompatible forward
 53   change.  Therefore, please consult with us *     54   change.  Therefore, please consult with us **before** you make your
 54   device names and numbers in any way public,      55   device names and numbers in any way public, at least to the point
 55   where it would be at all difficult to get th     56   where it would be at all difficult to get them changed.
 56                                                    57 
 57   Your cooperation is appreciated.                 58   Your cooperation is appreciated.
 58                                                    59 
 59 .. include:: devices.txt                           60 .. include:: devices.txt
 60    :literal:                                       61    :literal:
 61                                                    62 
 62 Additional ``/dev/`` directory entries             63 Additional ``/dev/`` directory entries
 63 --------------------------------------             64 --------------------------------------
 64                                                    65 
 65 This section details additional entries that s     66 This section details additional entries that should or may exist in
 66 the /dev directory.  It is preferred that symb     67 the /dev directory.  It is preferred that symbolic links use the same
 67 form (absolute or relative) as is indicated he     68 form (absolute or relative) as is indicated here.  Links are
 68 classified as "hard" or "symbolic" depending o     69 classified as "hard" or "symbolic" depending on the preferred type of
 69 link; if possible, the indicated type of link      70 link; if possible, the indicated type of link should be used.
 70                                                    71 
 71 Compulsory links                                   72 Compulsory links
 72 ++++++++++++++++                                   73 ++++++++++++++++
 73                                                    74 
 74 These links should exist on all systems:           75 These links should exist on all systems:
 75                                                    76 
 76 =============== =============== ==============     77 =============== =============== =============== ===============================
 77 /dev/fd         /proc/self/fd   symbolic           78 /dev/fd         /proc/self/fd   symbolic        File descriptors
 78 /dev/stdin      fd/0            symbolic           79 /dev/stdin      fd/0            symbolic        stdin file descriptor
 79 /dev/stdout     fd/1            symbolic           80 /dev/stdout     fd/1            symbolic        stdout file descriptor
 80 /dev/stderr     fd/2            symbolic           81 /dev/stderr     fd/2            symbolic        stderr file descriptor
 81 /dev/nfsd       socksys         symbolic           82 /dev/nfsd       socksys         symbolic        Required by iBCS-2
 82 /dev/X0R        null            symbolic           83 /dev/X0R        null            symbolic        Required by iBCS-2
 83 =============== =============== ==============     84 =============== =============== =============== ===============================
 84                                                    85 
 85 Note: ``/dev/X0R`` is <letter X>-<digit 0>-<le     86 Note: ``/dev/X0R`` is <letter X>-<digit 0>-<letter R>.
 86                                                    87 
 87 Recommended links                                  88 Recommended links
 88 +++++++++++++++++                                  89 +++++++++++++++++
 89                                                    90 
 90 It is recommended that these links exist on al     91 It is recommended that these links exist on all systems:
 91                                                    92 
 92                                                    93 
 93 =============== =============== ==============     94 =============== =============== =============== ===============================
 94 /dev/core       /proc/kcore     symbolic           95 /dev/core       /proc/kcore     symbolic        Backward compatibility
 95 /dev/ramdisk    ram0            symbolic           96 /dev/ramdisk    ram0            symbolic        Backward compatibility
 96 /dev/ftape      qft0            symbolic           97 /dev/ftape      qft0            symbolic        Backward compatibility
 97 /dev/bttv0      video0          symbolic           98 /dev/bttv0      video0          symbolic        Backward compatibility
 98 /dev/radio      radio0          symbolic           99 /dev/radio      radio0          symbolic        Backward compatibility
 99 /dev/i2o*       /dev/i2o/*      symbolic          100 /dev/i2o*       /dev/i2o/*      symbolic        Backward compatibility
100 /dev/scd?       sr?             hard              101 /dev/scd?       sr?             hard            Alternate SCSI CD-ROM name
101 =============== =============== ==============    102 =============== =============== =============== ===============================
102                                                   103 
103 Locally defined links                             104 Locally defined links
104 +++++++++++++++++++++                             105 +++++++++++++++++++++
105                                                   106 
106 The following links may be established locally    107 The following links may be established locally to conform to the
107 configuration of the system.  This is merely a    108 configuration of the system.  This is merely a tabulation of existing
108 practice, and does not constitute a recommenda    109 practice, and does not constitute a recommendation.  However, if they
109 exist, they should have the following uses.       110 exist, they should have the following uses.
110                                                   111 
111 =============== =============== ==============    112 =============== =============== =============== ===============================
112 /dev/mouse      mouse port      symbolic          113 /dev/mouse      mouse port      symbolic        Current mouse device
113 /dev/tape       tape device     symbolic          114 /dev/tape       tape device     symbolic        Current tape device
114 /dev/cdrom      CD-ROM device   symbolic          115 /dev/cdrom      CD-ROM device   symbolic        Current CD-ROM device
115 /dev/cdwriter   CD-writer       symbolic          116 /dev/cdwriter   CD-writer       symbolic        Current CD-writer device
116 /dev/scanner    scanner         symbolic          117 /dev/scanner    scanner         symbolic        Current scanner device
117 /dev/modem      modem port      symbolic          118 /dev/modem      modem port      symbolic        Current dialout device
118 /dev/root       root device     symbolic          119 /dev/root       root device     symbolic        Current root filesystem
119 /dev/swap       swap device     symbolic          120 /dev/swap       swap device     symbolic        Current swap device
120 =============== =============== ==============    121 =============== =============== =============== ===============================
121                                                   122 
122 ``/dev/modem`` should not be used for a modem     123 ``/dev/modem`` should not be used for a modem which supports dialin as
123 well as dialout, as it tends to cause lock fil    124 well as dialout, as it tends to cause lock file problems.  If it
124 exists, ``/dev/modem`` should point to the app    125 exists, ``/dev/modem`` should point to the appropriate primary TTY device
125 (the use of the alternate callout devices is d    126 (the use of the alternate callout devices is deprecated).
126                                                   127 
127 For SCSI devices, ``/dev/tape`` and ``/dev/cdr    128 For SCSI devices, ``/dev/tape`` and ``/dev/cdrom`` should point to the
128 *cooked* devices (``/dev/st*`` and ``/dev/sr*`    129 *cooked* devices (``/dev/st*`` and ``/dev/sr*``, respectively), whereas
129 ``/dev/cdwriter`` and /dev/scanner should poin    130 ``/dev/cdwriter`` and /dev/scanner should point to the appropriate generic
130 SCSI devices (/dev/sg*).                          131 SCSI devices (/dev/sg*).
131                                                   132 
132 ``/dev/mouse`` may point to a primary serial T    133 ``/dev/mouse`` may point to a primary serial TTY device, a hardware mouse
133 device, or a socket for a mouse driver program    134 device, or a socket for a mouse driver program (e.g. ``/dev/gpmdata``).
134                                                   135 
135 Sockets and pipes                                 136 Sockets and pipes
136 +++++++++++++++++                                 137 +++++++++++++++++
137                                                   138 
138 Non-transient sockets and named pipes may exis    139 Non-transient sockets and named pipes may exist in /dev.  Common entries are:
139                                                   140 
140 =============== =============== ==============    141 =============== =============== ===============================================
141 /dev/printer    socket          lpd local sock    142 /dev/printer    socket          lpd local socket
142 /dev/log        socket          syslog local s    143 /dev/log        socket          syslog local socket
143 /dev/gpmdata    socket          gpm mouse mult    144 /dev/gpmdata    socket          gpm mouse multiplexer
144 =============== =============== ==============    145 =============== =============== ===============================================
145                                                   146 
146 Mount points                                      147 Mount points
147 ++++++++++++                                      148 ++++++++++++
148                                                   149 
149 The following names are reserved for mounting     150 The following names are reserved for mounting special filesystems
150 under /dev.  These special filesystems provide    151 under /dev.  These special filesystems provide kernel interfaces that
151 cannot be provided with standard device nodes.    152 cannot be provided with standard device nodes.
152                                                   153 
153 =============== =============== ==============    154 =============== =============== ===============================================
154 /dev/pts        devpts          PTY slave file    155 /dev/pts        devpts          PTY slave filesystem
155 /dev/shm        tmpfs           POSIX shared m    156 /dev/shm        tmpfs           POSIX shared memory maintenance access
156 =============== =============== ==============    157 =============== =============== ===============================================
157                                                   158 
158 Terminal devices                                  159 Terminal devices
159 ----------------                                  160 ----------------
160                                                   161 
161 Terminal, or TTY devices are a special class o    162 Terminal, or TTY devices are a special class of character devices.  A
162 terminal device is any device that could act a    163 terminal device is any device that could act as a controlling terminal
163 for a session; this includes virtual consoles,    164 for a session; this includes virtual consoles, serial ports, and
164 pseudoterminals (PTYs).                           165 pseudoterminals (PTYs).
165                                                   166 
166 All terminal devices share a common set of cap    167 All terminal devices share a common set of capabilities known as line
167 disciplines; these include the common terminal    168 disciplines; these include the common terminal line discipline as well
168 as SLIP and PPP modes.                            169 as SLIP and PPP modes.
169                                                   170 
170 All terminal devices are named similarly; this    171 All terminal devices are named similarly; this section explains the
171 naming and use of the various types of TTYs.      172 naming and use of the various types of TTYs.  Note that the naming
172 conventions include several historical warts;     173 conventions include several historical warts; some of these are
173 Linux-specific, some were inherited from other    174 Linux-specific, some were inherited from other systems, and some
174 reflect Linux outgrowing a borrowed convention    175 reflect Linux outgrowing a borrowed convention.
175                                                   176 
176 A hash mark (``#``) in a device name is used h    177 A hash mark (``#``) in a device name is used here to indicate a decimal
177 number without leading zeroes.                    178 number without leading zeroes.
178                                                   179 
179 Virtual consoles and the console device           180 Virtual consoles and the console device
180 +++++++++++++++++++++++++++++++++++++++           181 +++++++++++++++++++++++++++++++++++++++
181                                                   182 
182 Virtual consoles are full-screen terminal disp    183 Virtual consoles are full-screen terminal displays on the system video
183 monitor.  Virtual consoles are named ``/dev/tt    184 monitor.  Virtual consoles are named ``/dev/tty#``, with numbering
184 starting at ``/dev/tty1``; ``/dev/tty0`` is th    185 starting at ``/dev/tty1``; ``/dev/tty0`` is the current virtual console.
185 ``/dev/tty0`` is the device that should be use    186 ``/dev/tty0`` is the device that should be used to access the system video
186 card on those architectures for which the fram    187 card on those architectures for which the frame buffer devices
187 (``/dev/fb*``) are not applicable. Do not use     188 (``/dev/fb*``) are not applicable. Do not use ``/dev/console``
188 for this purpose.                                 189 for this purpose.
189                                                   190 
190 The console device, ``/dev/console``, is the d    191 The console device, ``/dev/console``, is the device to which system
191 messages should be sent, and on which logins s    192 messages should be sent, and on which logins should be permitted in
192 single-user mode.  Starting with Linux 2.1.71,    193 single-user mode.  Starting with Linux 2.1.71, ``/dev/console`` is managed
193 by the kernel; for previous versions it should    194 by the kernel; for previous versions it should be a symbolic link to
194 either ``/dev/tty0``, a specific virtual conso    195 either ``/dev/tty0``, a specific virtual console such as ``/dev/tty1``, or to
195 a serial port primary (``tty*``, not ``cu*``)     196 a serial port primary (``tty*``, not ``cu*``) device, depending on the
196 configuration of the system.                      197 configuration of the system.
197                                                   198 
198 Serial ports                                      199 Serial ports
199 ++++++++++++                                      200 ++++++++++++
200                                                   201 
201 Serial ports are RS-232 serial ports and any d    202 Serial ports are RS-232 serial ports and any device which simulates
202 one, either in hardware (such as internal mode    203 one, either in hardware (such as internal modems) or in software (such
203 as the ISDN driver.)  Under Linux, each serial    204 as the ISDN driver.)  Under Linux, each serial ports has two device
204 names, the primary or callin device and the al    205 names, the primary or callin device and the alternate or callout one.
205 Each kind of device is indicated by a differen    206 Each kind of device is indicated by a different letter.  For any
206 letter X, the names of the devices are ``/dev/    207 letter X, the names of the devices are ``/dev/ttyX#`` and ``/dev/cux#``,
207 respectively; for historical reasons, ``/dev/t    208 respectively; for historical reasons, ``/dev/ttyS#`` and ``/dev/ttyC#``
208 correspond to ``/dev/cua#`` and ``/dev/cub#``.    209 correspond to ``/dev/cua#`` and ``/dev/cub#``. In the future, it should be
209 expected that multiple letters will be used; a    210 expected that multiple letters will be used; all letters will be upper
210 case for the "tty" device (e.g. ``/dev/ttyDP#`    211 case for the "tty" device (e.g. ``/dev/ttyDP#``) and lower case for the
211 "cu" device (e.g. ``/dev/cudp#``).                212 "cu" device (e.g. ``/dev/cudp#``).
212                                                   213 
213 The names ``/dev/ttyQ#`` and ``/dev/cuq#`` are    214 The names ``/dev/ttyQ#`` and ``/dev/cuq#`` are reserved for local use.
214                                                   215 
215 The alternate devices provide for kernel-based    216 The alternate devices provide for kernel-based exclusion and somewhat
216 different defaults than the primary devices.      217 different defaults than the primary devices.  Their main purpose is to
217 allow the use of serial ports with programs wi    218 allow the use of serial ports with programs with no inherent or broken
218 support for serial ports.  Their use is deprec    219 support for serial ports.  Their use is deprecated, and they may be
219 removed from a future version of Linux.           220 removed from a future version of Linux.
220                                                   221 
221 Arbitration of serial ports is provided by the    222 Arbitration of serial ports is provided by the use of lock files with
222 the names ``/var/lock/LCK..ttyX#``. The conten    223 the names ``/var/lock/LCK..ttyX#``. The contents of the lock file should
223 be the PID of the locking process as an ASCII     224 be the PID of the locking process as an ASCII number.
224                                                   225 
225 It is common practice to install links such as    226 It is common practice to install links such as /dev/modem
226 which point to serial ports.  In order to ensu    227 which point to serial ports.  In order to ensure proper locking in the
227 presence of these links, it is recommended tha    228 presence of these links, it is recommended that software chase
228 symlinks and lock all possible names; addition    229 symlinks and lock all possible names; additionally, it is recommended
229 that a lock file be installed with the corresp    230 that a lock file be installed with the corresponding alternate
230 device.  In order to avoid deadlocks, it is re    231 device.  In order to avoid deadlocks, it is recommended that the locks
231 are acquired in the following order, and relea    232 are acquired in the following order, and released in the reverse:
232                                                   233 
233         1. The symbolic link name, if any (``/    234         1. The symbolic link name, if any (``/var/lock/LCK..modem``)
234         2. The "tty" name (``/var/lock/LCK..tt    235         2. The "tty" name (``/var/lock/LCK..ttyS2``)
235         3. The alternate device name (``/var/l    236         3. The alternate device name (``/var/lock/LCK..cua2``)
236                                                   237 
237 In the case of nested symbolic links, the lock    238 In the case of nested symbolic links, the lock files should be
238 installed in the order the symlinks are resolv    239 installed in the order the symlinks are resolved.
239                                                   240 
240 Under no circumstances should an application h    241 Under no circumstances should an application hold a lock while waiting
241 for another to be released.  In addition, appl    242 for another to be released.  In addition, applications which attempt
242 to create lock files for the corresponding alt    243 to create lock files for the corresponding alternate device names
243 should take into account the possibility of be    244 should take into account the possibility of being used on a non-serial
244 port TTY, for which no alternate device would     245 port TTY, for which no alternate device would exist.
245                                                   246 
246 Pseudoterminals (PTYs)                            247 Pseudoterminals (PTYs)
247 ++++++++++++++++++++++                            248 ++++++++++++++++++++++
248                                                   249 
249 Pseudoterminals, or PTYs, are used to create l    250 Pseudoterminals, or PTYs, are used to create login sessions or provide
250 other capabilities requiring a TTY line discip    251 other capabilities requiring a TTY line discipline (including SLIP or
251 PPP capability) to arbitrary data-generation p    252 PPP capability) to arbitrary data-generation processes.  Each PTY has
252 a master side, named ``/dev/pty[p-za-e][0-9a-f    253 a master side, named ``/dev/pty[p-za-e][0-9a-f]``, and a slave side, named
253 ``/dev/tty[p-za-e][0-9a-f]``.  The kernel arbi    254 ``/dev/tty[p-za-e][0-9a-f]``.  The kernel arbitrates the use of PTYs by
254 allowing each master side to be opened only on    255 allowing each master side to be opened only once.
255                                                   256 
256 Once the master side has been opened, the corr    257 Once the master side has been opened, the corresponding slave device
257 can be used in the same manner as any TTY devi    258 can be used in the same manner as any TTY device.  The master and
258 slave devices are connected by the kernel, gen    259 slave devices are connected by the kernel, generating the equivalent
259 of a bidirectional pipe with TTY capabilities.    260 of a bidirectional pipe with TTY capabilities.
260                                                   261 
261 Recent versions of the Linux kernels and GNU l    262 Recent versions of the Linux kernels and GNU libc contain support for
262 the System V/Unix98 naming scheme for PTYs, wh    263 the System V/Unix98 naming scheme for PTYs, which assigns a common
263 device, ``/dev/ptmx``, to all the masters (ope    264 device, ``/dev/ptmx``, to all the masters (opening it will automatically
264 give you a previously unassigned PTY) and a su    265 give you a previously unassigned PTY) and a subdirectory, ``/dev/pts``,
265 for the slaves; the slaves are named with deci    266 for the slaves; the slaves are named with decimal integers (``/dev/pts/#``
266 in our notation).  This removes the problem of    267 in our notation).  This removes the problem of exhausting the
267 namespace and enables the kernel to automatica    268 namespace and enables the kernel to automatically create the device
268 nodes for the slaves on demand using the "devp    269 nodes for the slaves on demand using the "devpts" filesystem.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php