GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:il massimo numero di Unix?

Attualmente sto lavorando su una libreria di porte seriali che utilizza già framework speciali per ottenere informazioni sulle porte seriali sul sistema. Sebbene le porte seriali siano un progetto fondamentale in Unix, come dimostra una risposta come questa, ho pensato che un buon modo per verificare se un file è una porta seriale è testare la modalità principale del dispositivo a caratteri
e controllare se questo è effettivamente un TTY oppure no.

Scansionando su Internet, non sono riuscito a trovare alcuna documentazione che parlasse delle principali modalità di TTY s attraverso unice. Bene, c'è solo una pagina man di Linux che afferma che ptmx ha la modalità principale 5.

Anche se ho già chiesto i dettagli di implementazione del dispositivo di caratteri tty sulla base di questa domanda Stack Overflow
, ho pensato di chiedere alla community di Unix Stack Exchange di scoprire come stabile i valori tty sono tra le versioni Unix.

Quindi, chiedo il tuo aiuto per creare una base di conoscenza della modalità principale di tutti i tuoi file tty
sui tuoi sistemi, ovvero:qual è la modalità principale di

  • porte seriali reali?
  • pseudo terminale (PTS ) porte?
  • FTDI USB Porte seriali?
  • altro USB Porte seriali?

Per ottenere i valori per la modalità principale di un dispositivo personaggio, devi guardare usando:

% stat -f " * %N: %Hr%n" /dev/tty* /dev/pts/*
 * /dev/ttys001: 16
                 ^^- major mode

o usando il buon vecchio ls :

% ls -l /dev/ttys001
crw--w----  1 <user>  tty   16,   1 Apr 30 03:25 /dev/ttys001
                major mode -^^   ^^- minor mode

Puoi inserire le informazioni nella tua risposta o estendere la risposta del wiki della community con informazioni aggiuntive.

Risposta accettata:

Unix versione 7 (1979):

# ls -l /dev/console /dev/tty?*
crw--w--w- 1 root    0,  0 Sep 22 06:46 /dev/console
crw-rw-r-- 1 root    0,  1 Sep 22 05:47 /dev/tty1
crw-rw-r-- 1 root    0,  2 Sep 22 05:47 /dev/tty2

(non c'è ancora niente)

Linux 3.2.0 (debian wheezy).

Nota:puoi trovarli anche cercando /dev per di proprietà del gruppo tty e dialout . Questa è una cosa Debian.

  • Console virtuali
    • /dev/tty[0-9]* :4
  • Porte seriali reali:
    • /dev/ttyS[0-9]+ :4
  • Pseudo terminali:
    • /dev/pts/[0-9]+ :136
    • /dev/pts/ptmx :5
  • Porta seriale USB FTDI:
    • /dev/ttyUSB[0-9]+ :188
  • Porta seriale USB:(USB integrato AVR/Arduino Uno )
    • /dev/ttyACM[0-9]+ :166

Linux 3.4.0 (Android 4.4.2 / Nexus 5)

Nota:ha tutti quelli Linux più:

  • ttyACM (controllo modem cellulare)
    • (nessun /dev voce, a quanto pare):166
  • ttyHSL (Bluetooth)
    • /dev/ttyHSL0 :247
  • ttyHS (Bluetooth)
    • /dev/ttyHS99 :248

Darwin 13.1.0 (MacOS 10.9.2):

  • Porte seriali reali:
    • /dev/ttys[0-9a-f] :4
  • Pseudo terminali:
    • /dev/ttys[0-9]{3} :16
  • Porta seriale USB FTDI:
    • /dev/tty.usbserial.* :18
  • Porta seriale USB:(USB integrato AVR/Arduino Uno )
    • /dev/tty.usbmodem.* :18

Solaris 10 x86/amd64:

  • Pseudo terminali:

    • /dev/pty[p-r][0-9a-f] (pty maestro):25
    • /dev/tty[p-r][0-9a-f] (pty schiavo):26
    • /dev/pts/[0-9]+ :24
    • /dev/ptmx :23
  • Dispositivi seriali:

    • /dev/tty[abc...] alias /dev/term/[abc...] o /dev/tty0[012..] (uart seriale, anche ):106
    • anche come /dev/ttyd[012...] ma con interfaccia diversa (dial, modem) anche su 106 ma minori alti.
Correlati:Linux – PHP funziona sulla riga di comando ma non nel browser?

OpenBSD 6.0

Come documentato nel commento in /dev/MAKEDEV

  • Porte seriali PC/AT UART:
    • /dev/tty[0-7][0-9a-f] :8
    • /dev/cua[0-7][0-9a-f] :8
  • Porte seriali delle Cicladi:
    • /dev/ttyc* :38
    • /dev/cuac* :38
  • Porte seriali Virtio:
    • /dev/ttyVI* :94
  • Porte seriali USB:
    • /dev/ttyU[0-3] :66
    • /dev/cuaU[0-3] :66
  • Terminali di wscons:
    • /dev/tty[C-J][0-b] :12
  • Pseudo terminale master e slave (non UNIX 98)
    • /dev/pty[p-zP-T][0-9a-zA-Z] :6
    • /dev/tty[p-zP-T][0-9a-zA-Z] :5

FreeBSD 10.0 e TrueOS

FreeBSD (e i suoi derivati ​​come TrueOS) è dove la tua idea mostra un difetto fatale. Non c'è non c'è schema numero dispositivo maggiore+minore in FreeBSD.

Gli devfs pseudo-filesystem su FreeBSD, convenzionalmente montato su /dev , non utilizza affatto un sistema maggiore+minore per raggruppare i dispositivi in ​​classi "principali". Piuttosto, il rdev poiché il dispositivo è lo stesso del suo numero i-node nello pseudo-filesystem, con gli i-node semplicemente assegnati in ordine crescente man mano che i nodi del dispositivo vengono generati, a seconda dell'esatto hardware sulla macchina in uso in quel momento.

Quindi il numero del dispositivo non può essere usato come scorciatoia per isatty() .


Linux
  1. Usa il client di posta elettronica Alpine nel tuo terminale Linux

  2. Linux vs. Unix:qual è la differenza?

  3. Come cambiare il colore del tuo terminale Linux

  4. Come elencare le porte aperte sul server Linux/Unix

  5. Estrai il numero di serie di Linux senza sudo

Esegui la riga di comando di Linux sul tuo iPad

Rilassati accanto al fuoco sul tuo terminale Linux

Qual è la differenza tra Linux e Unix?

Come trovare il numero di porta di un servizio in Linux

Come controllare tutte le porte aperte nel tuo sistema Linux

Linux vs Unix