\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{mer. févr. 3 10:05:49 CET 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={ptmx},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Pseudo-terminaux maître et esclave},
CreationDate={D:20160203100549},
ModDate={D:20160203100549},
Keywords={Linux}
}}
\begin{document}
 
\begin{center}
{\Huge ptmx, pts }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Pseudo-terminaux maître et esclave}
 
\vspace{10mm}
 
\hspace{1mm}  Le fichier /dev/ptmx est un fichier spécial caractère avec un numéro majeur 5 et un numéro mineur 2, en mode 0666, appartenant à root:root. Il sert à créer une paire de pseudo-terminaux maître et esclave.
\vspace{5mm} \\
 
 
\hspace{1mm}  Lorsqu'un processus ouvre /dev/ptmx, il reçoit un descripteur de fichier pour le pseudo-terminal maître (PTM), et un périphérique est créé pour le pseudo-terminal esclave (PTE) dans le répertoire /dev/pts. Chaque descripteur obtenu en ouvant /dev/ptmx est un PTM indépendant avec son PTE associé, dont le chemin d'accès peut être obtenu en passant le descripteur à ptsname(3).
\vspace{5mm} \\
 
 
\hspace{1mm}  Avant d'ouvrir le pseudo-terminal esclave, vous devez passer le descripteur du maître à grantpt(3) et unlockpt(3). Une fois que les 2 pseudo-terminaux sont ouverts, l'esclave fournit une interface au processus qui est identique au vrai terminal.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les données écrites sur l'esclave se retrouvent en entrée sur le descripteur du maître. Les données écrites sur le maître se retrouvent en entrée sur l'esclave.
\vspace{5mm} \\
 
 
\hspace{1mm}  En pratique les pseudo-terminaux servent à implémenter des émulateurs de terminaux comme xterm(1), dans lesquels les données lues sur le terminal maître sont interprétées par l'application de la même manière que le ferait un vrai terminal, et pour implémenter des programmes de connexion distante comme sshd dans lesquels les données lues sur le PTM sont envoyées sur le réseau à un programme client qui est connecté à un terminal ou un émulateur.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les pseudo-terminaux servent aussi à envoyer des données aux programmes qui refusent de lire des données depuis des tubes (comme us et passwd)
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Notes }
 
\
 
\hspace{1mm}  Le support sous Linux est réalisé en utilisant le système de fichier devpts, qui devrait être monté sous /dev/pts.
\vspace{5mm} \\
 
\end{flushleft}
\end{document}
