.\" -*- coding: UTF-8 -*-
.\" Copyright (C) 2005 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH pty 7 "4 grudnia 2022 r." "Linux man\-pages 6.03" 
.SH NAZWA
pty \- interfejsy pseudoterminala
.SH OPIS
Pseudoterminal (czas skrótowo nazywany \[Bq]pty\[rq]) stanowi parę
wirtualnych urządzeń znakowych, zapewniających dwukierunkowy kanał
komunikacji. Jeden koniec kanału nazywany jest \fInadrzędnym\fP
(ang. \fImaster\fP), a drugi \fIpodrzędnym\fP (ang. \fIslave\fP).
.PP
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 (\fBSIGINT\fP) 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.
.PP
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.
.PP
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.
.PP
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.
.PP
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ę
\fBCONFIG_LEGACY_PTYS\fP (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.
.SS "Pseudoterminale UNIX 98"
Nieużywane urządzenie nadrzędne pseudoterminala UNIX 98 otwiera się
wywołując \fBposix_openpt\fP(3) (funkcja ta otwiera urządzenie klonowania
końcówki nadrzędnej, \fI/dev/ptmx\fP; zob \fBpts\fP(4)). Po dokonaniu zależnych od
programu inicjalizacji, zmiany właściciela i uprawnień urządzenia
podrzędnego za pomocą \fBgrantpt\fP(3) oraz odblokowania urządzenia podrzędnego
poprzez \fBunlockpt\fP(3)), odpowiadające urządzenie podrzędne można otworzyć
przekazując nazwę zwróconą przez \fBptsname\fP(3) w wywołaniu do \fBopen\fP(2).
.PP
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
(\fBCONFIG_UNIX98_PTYS\fP), 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ą \fI/proc/sys/kernel/pty/max\fP, a odpowiedni
plik \fI/proc/sys/kernel/pty/nr\fP, wskazuje jak wiele pseudoterminali jest
obecnie w użyciu. Więcej informacji o tych dwóch plikach znajduje się w
podręczniku \fBproc\fP(5).
.SS "Pseudoterminale BSD"
Pseudoterminale w stylu BSD są zapewniane jako utworzona wcześniej para, z
nazwami w postaci \fI/dev/ptyXY\fP (nadrzędne) i \fI/dev/ttyXY\fP (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 \fI/dev/ptyp1\fP i
\fI/dev/ttyp1\fP stanowią parę pseudoterminali BSD. Proces znajdowania
nieużywanej pary terminali polega na próbowaniu otwarcia kolejnych urządzeń
nadrzędnych za pomocą \fBopen\fP(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ć \[Bq]tty\[rq] na \[Bq]pty\[rq]).
.SH PLIKI
.TP 
\fI/dev/ptmx\fP
urządzenie klonowania końcówki nadrzędnej UNIX 98
.TP 
\fI/dev/pts/*\fP
urządzenia podrzędne UNIX 98
.TP 
\fI/dev/pty[p\-za\-e][0\-9a\-f]\fP
urządzenia nadrzędne BSD
.TP 
\fI/dev/tty[p\-za\-e][0\-9a\-f]\fP
urządzenia podrzędne BSD
.SH UWAGI
Pseudoterminale są używane przez aplikacje takie jak usługi logowania
sieciowego (\fBssh\fP(1), \fBrlogin\fP(1), \fBtelnet\fP(1)), emulatory terminala
m.in. \fBxterm\fP(1), \fBscript\fP(1), \fBscreen\fP(1), \fBtmux\fP(1), \fBunbuffer\fP(1) i
\fBexpect\fP(1).
.PP
Opis \fBioctl\fP(2) \fBTIOCPKT\fP, kontrolującej pakietowy tryb działania można
znaleźć w podręczniku \fBioctl_tty\fP(2).
.PP
Operacji \fBTIOCSTOP\fP, \fBTIOCSTART\fP, \fBTIOCUCNTL\fP i \fBTIOCREMOTE\fP \fBioctl\fP(2)
BSD nie zaimplementowano w Linuksie.
.SH "ZOBACZ TAKŻE"
\fBioctl_tty\fP(2), \fBselect\fP(2), \fBsetsid\fP(2), \fBforkpty\fP(3), \fBopenpty\fP(3),
\fBtermios\fP(3), \fBpts\fP(4), \fBtty\fP(4)
.PP
.SH TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika:
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
