Linjedisciplin
En linjedisciplin ( LDISC ) är ett lager i terminalundersystemet i vissa Unix-liknande system. Terminalundersystemet består av tre lager: det övre lagret för att tillhandahålla teckenenhetsgränssnittet , det nedre hårdvarudrivrutinen för att kommunicera med hårdvaran eller pseudoterminalen och mittlinjedisciplinen för att implementera beteende som är gemensamt för terminalenheter.
Linjedisciplinen limmar enhetsdrivrutinkoden på låg nivå med de generiska gränssnittsrutinerna på hög nivå (såsom read(2), write(2) och ioctl (2)), och är ansvarig för att implementera semantiken som är associerad med enheten. Policyn är separerad från enhetsdrivrutinen så att samma seriella hårdvarudrivrutin kan användas av enheter som kräver annan datahantering.
Till exempel bearbetar standardlinjedisciplinen data den tar emot från hårdvarudrivrutinen och från applikationer som skriver till enheten enligt kraven för en terminal på ett Unix-liknande system. Vid inmatning hanterar den specialtecken som avbrottstecken (vanligtvis Control-C ) och radera och döda tecken (typiskt backsteg eller radera respektive Control-U) och vid utmatning ersätter den alla LF- tecken med en CR / LF- sekvens.
En seriell port kan också användas för en uppringd Internetanslutning med ett seriellt modem och PPP . I detta fall skulle en PPP-linjedisciplin användas; den skulle ackumulera indata från den seriella linjen till PPP-indatapaket, leverera dem till nätverksstacken snarare än till teckenenheten, och skulle överföra paket som levereras till den av nätverksstacken på serielinjen.
Vissa Unix-liknande system använder STREAMS för att implementera linjediscipliner.
- ^ TTY:en avmystifierade
- ^ FreeBSD Kernel Interfaces Manual –