devpts.rst 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. .. SPDX-License-Identifier: GPL-2.0
  2. =====================
  3. The Devpts Filesystem
  4. =====================
  5. Each mount of the devpts filesystem is now distinct such that ptys
  6. and their indicies allocated in one mount are independent from ptys
  7. and their indicies in all other mounts.
  8. All mounts of the devpts filesystem now create a ``/dev/pts/ptmx`` node
  9. with permissions ``0000``.
  10. To retain backwards compatibility the a ptmx device node (aka any node
  11. created with ``mknod name c 5 2``) when opened will look for an instance
  12. of devpts under the name ``pts`` in the same directory as the ptmx device
  13. node.
  14. As an option instead of placing a ``/dev/ptmx`` device node at ``/dev/ptmx``
  15. it is possible to place a symlink to ``/dev/pts/ptmx`` at ``/dev/ptmx`` or
  16. to bind mount ``/dev/ptx/ptmx`` to ``/dev/ptmx``. If you opt for using
  17. the devpts filesystem in this manner devpts should be mounted with
  18. the ``ptmxmode=0666``, or ``chmod 0666 /dev/pts/ptmx`` should be called.
  19. Total count of pty pairs in all instances is limited by sysctls::
  20. kernel.pty.max = 4096 - global limit
  21. kernel.pty.reserve = 1024 - reserved for filesystems mounted from the initial mount namespace
  22. kernel.pty.nr - current count of ptys
  23. Per-instance limit could be set by adding mount option ``max=<count>``.
  24. This feature was added in kernel 3.4 together with
  25. ``sysctl kernel.pty.reserve``.
  26. In kernels older than 3.4 sysctl ``kernel.pty.max`` works as per-instance limit.