.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH pty 7 "17 maja 2025 r." "Linux man\-pages 6.15" .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). .P 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. .P 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. .P 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. .P 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. .P 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). .P 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). .P Opis \fBioctl\fP(2) \fBTIOCPKT\fP, kontrolującej pakietowy tryb działania można znaleźć w podręczniku \fBioctl_tty\fP(2). .P 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 . .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 .