0001 .. SPDX-License-Identifier: GPL-2.0
0002
0003 =====================
0004 The Devpts Filesystem
0005 =====================
0006
0007 Each mount of the devpts filesystem is now distinct such that ptys
0008 and their indicies allocated in one mount are independent from ptys
0009 and their indicies in all other mounts.
0010
0011 All mounts of the devpts filesystem now create a ``/dev/pts/ptmx`` node
0012 with permissions ``0000``.
0013
0014 To retain backwards compatibility the a ptmx device node (aka any node
0015 created with ``mknod name c 5 2``) when opened will look for an instance
0016 of devpts under the name ``pts`` in the same directory as the ptmx device
0017 node.
0018
0019 As an option instead of placing a ``/dev/ptmx`` device node at ``/dev/ptmx``
0020 it is possible to place a symlink to ``/dev/pts/ptmx`` at ``/dev/ptmx`` or
0021 to bind mount ``/dev/ptx/ptmx`` to ``/dev/ptmx``. If you opt for using
0022 the devpts filesystem in this manner devpts should be mounted with
0023 the ``ptmxmode=0666``, or ``chmod 0666 /dev/pts/ptmx`` should be called.
0024
0025 Total count of pty pairs in all instances is limited by sysctls::
0026
0027 kernel.pty.max = 4096 - global limit
0028 kernel.pty.reserve = 1024 - reserved for filesystems mounted from the initial mount namespace
0029 kernel.pty.nr - current count of ptys
0030
0031 Per-instance limit could be set by adding mount option ``max=<count>``.
0032
0033 This feature was added in kernel 3.4 together with
0034 ``sysctl kernel.pty.reserve``.
0035
0036 In kernels older than 3.4 sysctl ``kernel.pty.max`` works as per-instance limit.