pty(7) Miscellaneous Information Manual pty(7) NUME pty - interfee pseudo-terminale DESCRIERE Un pseudo-terminal (uneori abreviat ,,pty" este o pereche de dispozitive de caractere virtuale care ofera un canal de comunicare bidirecional. Un capat al canalului se numete maestru; iar celalalt capat se numete sclav. Capatul sclav al pseudo-terminalului ofera o interfaa care se comporta exact ca un terminal clasic. Un proces care se ateapta sa fie conectat la un terminal poate deschide capatul sclav al unui pseudo-terminal i apoi poate fi condus de un program care a deschis capatul maestru. Tot ceea ce este scris la capatul maestru este furnizat procesului de la capatul sclav ca i cum ar fi o intrare tastata pe un terminal. De exemplu, scrierea caracterului de intrerupere (de obicei, control-C) pe dispozitivul principal ar determina generarea unui semnal de intrerupere (SIGINT) pentru grupul de procese din prim-plan conectat la sclav. In schimb, tot ceea ce este scris la capatul sclav al pseudo-terminalului poate fi citit de procesul conectat la capatul maestru. Fluxul de date intre maestru i sclav este gestionat in mod asincron, la fel ca fluxul de date cu un terminal fizic. Datele scrise pe sclav vor fi disponibile imediat la maestru, dar este posibil sa nu fie disponibile imediat. In mod similar, este posibil sa existe o mica intarziere de procesare intre momentul in care se efectueaza o scriere catre maestru i momentul in care efectul este vizibil la sclav. Din punct de vedere istoric, au evoluat doua API pseudo-terminale: BSD i System V. SUSv1 a standardizat un API pseudo-terminal bazat pe API System V, iar acest API ar trebui sa fie utilizat in toate programele noi care utilizeaza pseudo-terminale. Linux ofera atat pseudo-terminale de tip BSD, cat i pseudo-terminale de tip System V (standardizate). Terminalele de tip System V sunt denumite in mod obinuit pseudo-terminale UNIX 98 pe sistemele Linux. Incepand cu Linux 2.6.4, pseudo-terminalele de tip BSD sunt considerate demodate: suportul poate fi dezactivat la compilarea nucleului prin dezactivarea opiunii CONFIG_LEGACY_PTYS; (incepand cu Linux 2.6.30, aceasta opiune este dezactivata in mod implicit in nucleul din linia principala de dezvoltare). Pseudo-terminalele UNIX 98 ar trebui utilizate in noile aplicaii. Pseudo-terminale UNIX 98 Un master pseudo-terminal UNIX 98 neutilizat este deschis prin apelarea posix_openpt(3); (aceasta funcie deschide dispozitivul clona master, /dev/ptmx; a se vedea pts(4)). Dupa efectuarea oricaror iniializari specifice programului, modificarea proprietaii i a permisiunilor dispozitivului sclav folosind grantpt(3) i deblocarea sclavului folosind unlockpt(3), dispozitivul sclav corespunzator poate fi deschis prin transmiterea numelui returnat de ptsname(3) intr-un apel la open(2). Nucleul Linux impune o limita a numarului de pseudo-terminale UNIX 98 disponibile. Pana la Linux 2.6.3 inclusiv, aceasta limita este configurata in momentul compilarii nucleului (CONFIG_UNIX98_PTYS), iar numarul permis de pseudo-terminale poate fi de pana la 2048, cu o valoare implicita de 256. Incepand cu Linux 2.6.4, limita este reglabila dinamic prin intermediul /proc/sys/kernel/pty/max, iar un fiier corespunzator, /proc/sys/kernel/pty/nr, indica cate pseudo-terminale sunt utilizate in prezent. Pentru mai multe detalii despre aceste doua fiiere, a se vedea proc(5). Pseudo-terminale BSD Pseudo-terminalele de tip BSD sunt furnizate sub forma de perechi precreate, cu nume de forma /dev/ptyXY (master) i /dev/ttyXY (slave), unde X este o litera din setul de 16 caractere [p-za-e], iar Y este o litera din setul de 16 caractere [0-9a-f]; (gama exacta de litere din aceste doua seturi variaza in funcie de implementarile UNIX). De exemplu, /dev/ptyp1 i /dev/ttyp1 constituie o pereche de pseudo-terminale BSD. Un proces gasete o pereche de pseudo-terminale neutilizate incercand sa open(2) fiecare pseudo-terminal master pana cand o deschidere reuete. Sclavul pseudo-terminal corespunzator ( inlocuiete ,,tty" cu ,,pty" in numele maestrului) poate fi apoi deschis. FIIERE /dev/ptmx dispozitiv clona maestru UNIX 98 /dev/pts/* dispozitive sclave UNIX 98 /dev/pty[p-za-e][0-9a-f] dispozitive master BSD /dev/tty[p-za-e][0-9a-f] dispozitive sclave BSD NOTE Pseudo-terminalele sunt utilizate de aplicaii cum ar fi serviciile de conectare la reea (ssh(1), rlogin(1), telnet(1)), emulatoare de terminale cum ar fi xterm(1), script(1), screen(1), tmux(1), unbuffer(1) i expect(1). O descriere a TIOCPKT ioctl(2), care controleaza funcionarea in modul pachet, poate fi gasita in ioctl_tty(2). Operaiile BSD ioctl(2) TIOCSTOP, TIOCSTART, TIOCUCNTL i TIOCREMOTE nu au fost implementate in Linux. CONSULTAI I ioctl_tty(2), select(2), setsid(2), forkpty(3), openpty(3), termios(3), pts(4), tty(4) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 19 noiembrie 2023 pty(7)