Una disciplina de línea ( LDISC ) es una capa en el subsistema de terminal en algunos sistemas similares a Unix. [1] El subsistema de terminal consta de tres capas: la capa superior para proporcionar la interfaz del dispositivo de caracteres , el controlador de hardware inferior para comunicarse con el hardware o pseudo terminal , y la disciplina de la línea media para implementar el comportamiento común a los dispositivos terminales.
La disciplina de línea pega el código del controlador del dispositivo de bajo nivel con las rutinas de interfaz genéricas de alto nivel (como leer (2), escribir (2) y ioctl (2)), y es responsable de implementar la semántica asociada con el dispositivo. [2] La política está separada del controlador de dispositivo para que el mismo controlador de hardware en serie pueda ser utilizado por dispositivos que requieren un manejo de datos diferente.
Por ejemplo, la disciplina de línea estándar procesa los datos que recibe del controlador de hardware y de las aplicaciones que escriben en el dispositivo de acuerdo con los requisitos de un terminal en un sistema similar a Unix . En la entrada, maneja caracteres especiales como el carácter de interrupción (típicamente Control-C ) y los caracteres de borrar y matar (típicamente retroceder o eliminar , y Control-U, respectivamente) y, en la salida, reemplaza todos los caracteres LF con un Secuencia CR / LF .
También se puede utilizar un puerto en serie para una conexión de acceso telefónico a Internet mediante un módem en serie y PPP . En este caso, se utilizaría una disciplina de línea PPP; acumularía datos de entrada de la línea serie en paquetes de entrada PPP, entregándolos a la pila de red en lugar de al dispositivo de caracteres, y transmitiría los paquetes entregados por la pila de red en la línea serie.
Algunos sistemas similares a Unix usan STREAMS para implementar disciplinas de línea.
Referencias
- ^ El TTY desmitificado
- ^ Manual de interfaces del kernel de FreeBSD -