Provided by: manpages-pl_4.27.0-1_all bug

NAZWA

       pty - interfejsy pseudoterminala

OPIS

       Pseudoterminal (czas skrótowo nazywany „pty”) stanowi parę wirtualnych urządzeń znakowych, zapewniających
       dwukierunkowy  kanał  komunikacji.  Jeden  koniec  kanału nazywany jest nadrzędnym (ang. master), a drugi
       podrzędnym (ang. slave).

       Końcówka podrzędna pseudoterminala zapewnia interfejs działający dokładnie tak, jak  klasyczny  terminal.
       Proces,  który  oczekuje  na podłączenie do terminala, może otworzyć końcówkę podrzędną pseudoterminala i
       następnie być kierowany przez program, który otworzył końcówkę nadrzędną. Wszystko co  zostanie  zapisane
       po  stronie  nadrzędnej  jest przekazywane procesowi po stronie podrzędnej tak, jak gdyby było to wejście
       wpisane na terminalu. Na przykład wpisanie znaku przerwania  (zwykle  control-C)  na  głównym  urządzeniu
       wygeneruje  sygnał przerwania (SIGINT) dla grupy procesów w tle, podłączonej do urządzenia podrzędnego. I
       odwrotnie, wszystko co jest napisane na końcówce podrzędnej pseudoterminala,  może  być  odczytane  przez
       proces podłączony do końcówki nadrzędnej.

       Przepływ  danych  pomiędzy  urządzeniem nadrzędnym i podrzędnym następuje asynchronicznie, podobnie jak w
       przypadku fizycznych terminali. Dane zapisane na końcówce  podrzędnej  staną  się  dostępne  na  końcówce
       nadrzędnej niezwłocznie, lecz niekoniecznie natychmiastowo. Podobnie, może wystąpić niewielkie opóźnienie
       pomiędzy zapisem na urządzeniu nadrzędnym i uwidocznieniem tego na urządzeniu podrzędnym.

       Historycznie  wyewoluowały  dwa  interfejsy  pseudoterminali:  BSD  i  Systemu  V. SUSv1 zestandaryzowało
       interfejs pseudoterminala w oparciu o API Systemu V, zatem powinno być ono używane przez  wszystkie  nowe
       programy korzystające z pseudoterminali.

       Linux  zapewnia pseudoterminale w stylu BSD i (zgodne ze standardem) w stylu Systemu V. Terminale w stylu
       Systemu V w systemach Linux są często zwane pseudoterminalami UNIX 98.

       Od Linuksa 2.6.4, pseudoterminale w stylu BSD są uważane za przestarzałe, ich obsługę  można  wyłączyć  w
       czasie  budowania  jądra, wyłączając opcję CONFIG_LEGACY_PTYS (od Linuksa 2.6.30, opcja ta jest domyślnie
       wyłączona w standardowym jądrze). W nowych aplikacjach powinno się używać pseudoterminali UNIX 98.

   Pseudoterminale UNIX 98
       Nieużywane urządzenie nadrzędne pseudoterminala UNIX 98 otwiera się wywołując posix_openpt(3) (funkcja ta
       otwiera urządzenie klonowania końcówki nadrzędnej, /dev/ptmx; zob  pts(4)).  Po  dokonaniu  zależnych  od
       programu  inicjalizacji,  zmiany właściciela i uprawnień urządzenia podrzędnego za pomocą grantpt(3) oraz
       odblokowania urządzenia  podrzędnego  poprzez  unlockpt(3)),  odpowiadające  urządzenie  podrzędne  można
       otworzyć przekazując nazwę zwróconą przez ptsname(3) w wywołaniu do open(2).

       Jądro  Linux  narzuca  limit  na  liczbę  dostępnych  pseudoterminali UNIX 98. Do Linuksa 2.6.3 włącznie,
       konfiguruje się go w trakcie kompilacji (CONFIG_UNIX98_PTYS), a  dozwolona  liczba  pseudoterminali  może
       wynosić do 2048, z domyślnym ustawieniem 256. Od Linuksa 2.6.4, limit ten można dostosować dynamicznie za
       pomocą   /proc/sys/kernel/pty/max,   a   odpowiedni  plik  /proc/sys/kernel/pty/nr,  wskazuje  jak  wiele
       pseudoterminali jest obecnie w użyciu. Więcej informacji o tych dwóch plikach znajduje się w  podręczniku
       proc(5).

   Pseudoterminale BSD
       Pseudoterminale  w  stylu BSD są zapewniane jako utworzona wcześniej para, z nazwami w postaci /dev/ptyXY
       (nadrzędne) i /dev/ttyXY (podrzędne), gdzie X jest literą z 16-znakowego zbioru [p-za-e], a Y jest literą
       z 16-znakowego zbioru [0-9a-f]  (dokładny  zakres  liter  w  obu  zbiorach  różni  się  w  poszczególnych
       implementacjach  Uniksa).  Na  przykład /dev/ptyp1 i /dev/ttyp1 stanowią parę pseudoterminali BSD. Proces
       znajdowania nieużywanej pary terminali polega na próbowaniu otwarcia kolejnych  urządzeń  nadrzędnych  za
       pomocą open(2), do momentu aż się to powiedzie. Można wówczas otworzyć odpowiadające urządzenie podrzędne
       (w nazwie nadrzędnej należy zamienić „tty” na „pty”).

PLIKI

       /dev/ptmx
              urządzenie klonowania końcówki nadrzędnej UNIX 98

       /dev/pts/*
              urządzenia podrzędne UNIX 98

       /dev/pty[p-za-e][0-9a-f]
              urządzenia nadrzędne BSD

       /dev/tty[p-za-e][0-9a-f]
              urządzenia podrzędne BSD

UWAGI

       Pseudoterminale  są  używane  przez  aplikacje  takie jak usługi logowania sieciowego (ssh(1), rlogin(1),
       telnet(1)), emulatory terminala m.in. xterm(1), script(1), screen(1), tmux(1), unbuffer(1) i expect(1).

       Opis ioctl(2) TIOCPKT, kontrolującej pakietowy tryb działania można znaleźć w podręczniku ioctl_tty(2).

       Operacji TIOCSTOP, TIOCSTART, TIOCUCNTL i TIOCREMOTE ioctl(2) BSD nie zaimplementowano w Linuksie.

ZOBACZ TAKŻE

       ioctl_tty(2), select(2), setsid(2), forkpty(3), openpty(3), termios(3), pts(4), tty(4)

TŁUMACZENIE

       Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.9.1                            2 maja 2024 r.                                           pty(7)