GNU/Linux >> Belajar Linux >  >> Linux

Linux – Jumlah Utama Unix Anda?

Saat ini saya sedang mengerjakan perpustakaan port serial yang sudah menggunakan kerangka kerja khusus untuk mendapatkan informasi tentang port serial pada sistem. Meskipun port serial adalah desain mendasar di Unix—sebagai jawaban seperti ini membuktikan—saya pikir cara yang baik untuk menguji apakah suatu file adalah port serial adalah dengan menguji mode utama perangkat karakter
dan periksa apakah ini sebenarnya TTY atau tidak.

Merangkak di Internet, saya tidak dapat menemukan dokumentasi yang berbicara tentang mode utama TTY s di seluruh kesatuan. Yah, hanya ada satu halaman manual Linux yang menyatakan bahwa ptmx memiliki mode utama 5.

Meskipun saya sudah bertanya tentang detail implementasi perangkat karakter tty berdasarkan pertanyaan Stack Overflow
ini, saya pikir saya mungkin meminta komunitas Unix Stack Exchange untuk mencari tahu bagaimana stabil nilai tty di seluruh rasa Unix.

Jadi, saya meminta bantuan Anda untuk membangun basis pengetahuan mode Utama dari semua file tty
Anda di sistem Anda, yaitu:apa mode utama

  • port serial nyata?
  • terminal semu (PTS ) port?
  • FTDI USB Port serial?
  • USB lainnya Port serial?

Untuk mendapatkan nilai mode utama perangkat karakter, Anda harus mencari menggunakan:

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

atau menggunakan ls . lama yang bagus :

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

Anda dapat memberikan informasi sebagai jawaban Anda sendiri, atau memperluas jawaban wiki komunitas dengan informasi tambahan.

Jawaban yang Diterima:

Unix versi 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

(belum ada pty di sana)

Linux 3.2.0 (debian mengi).

Catatan:Anda juga dapat menemukannya dengan menelusuri /dev untuk dimiliki oleh grup tty dan dialout . Itu masalah Debian.

  • Konsol virtual
    • /dev/tty[0-9]* :4
  • Port serial nyata:
    • /dev/ttyS[0-9]+ :4
  • Terminal semu:
    • /dev/pts/[0-9]+ :136
    • /dev/pts/ptmx :5
  • Port serial USB FTDI:
    • /dev/ttyUSB[0-9]+ :188
  • Port serial USB:(USB tertanam AVR/Arduino Uno )
    • /dev/ttyACM[0-9]+ :166

Linux 3.4.0 (Android 4.4.2 / Nexus 5)

Catatan:memiliki semua linux plus:

  • ttyACM (kontrol modem seluler)
    • (tidak ada /dev entri, tampaknya):166
  • ttyHSL (Bluetooth)
    • /dev/ttyHSL0 :247
  • ttyHS (Bluetooth)
    • /dev/ttyHS99 :248

Darwin 13.1.0 (MacOS 10.9.2):

  • Port serial nyata:
    • /dev/ttys[0-9a-f] :4
  • Terminal semu:
    • /dev/ttys[0-9]{3} :16
  • Port serial USB FTDI:
    • /dev/tty.usbserial.* :18
  • Port serial USB:(USB tertanam AVR/Arduino Uno )
    • /dev/tty.usbmodem.* :18

Solaris 10 x86/amd64:

  • Terminal semu:

    • /dev/pty[p-r][0-9a-f] (pty master):25
    • /dev/tty[p-r][0-9a-f] (budak pty):26
    • /dev/pts/[0-9]+ :24
    • /dev/ptmx :23
  • Perangkat serial:

    • /dev/tty[abc...] alias /dev/term/[abc...] atau /dev/tty0[012..] (serial uart, juga ):106
    • juga sebagai /dev/ttyd[012...] tetapi dengan antarmuka yang berbeda (dial, modem) juga pada 106 tetapi di bawah umur yang tinggi.
Terkait:Linux – PHP bekerja pada baris perintah tetapi tidak di browser?

OpenBSD 6.0

Seperti yang didokumentasikan dalam komentar di /dev/MAKEDEV

  • Port serial PC/AT UART:
    • /dev/tty[0-7][0-9a-f] :8
    • /dev/cua[0-7][0-9a-f] :8
  • Port serial Cyclades:
    • /dev/ttyc* :38
    • /dev/cuac* :38
  • Port serial Virtio:
    • /dev/ttyVI* :94
  • Port serial USB:
    • /dev/ttyU[0-3] :66
    • /dev/cuaU[0-3] :66
  • terminal wscons:
    • /dev/tty[C-J][0-b] :12
  • Master dan slave terminal semu (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 dan TrueOS

FreeBSD (dan turunannya seperti TrueOS) adalah tempat ide Anda menunjukkan kesalahan fatal. tidak ada skema nomor perangkat mayor+minor di FreeBSD.

devfs pseudo-filesystem di FreeBSD, biasanya dipasang di /dev , sama sekali tidak menggunakan sistem mayor+minor untuk mengelompokkan perangkat ke dalam kelas "utama". Sebaliknya, rdev untuk perangkat sama dengan nomor i-node di pseudo-filesystem, dengan i-node hanya ditetapkan dalam urutan menaik saat node perangkat dihasilkan, tergantung dari perangkat keras yang tepat pada mesin yang ada pada saat itu.

Jadi nomor perangkat tidak dapat digunakan sebagai jalan pintas untuk isatty() .


Linux
  1. Gunakan klien email Alpine di terminal Linux Anda

  2. Linux vs. Unix:Apa bedanya?

  3. Cara mengubah warna terminal Linux Anda

  1. Apakah filosofi Linux masih relevan di tahun 2019?

  2. The Theths Tentang Malware Di Unix / Linux?

  3. Perbedaan Utama Linux Vs UNIX Kernel

  1. Apakah Nomor Mayor, Nomor Minor Unik?

  2. Membaca dan menulis ke port serial di C di Linux

  3. Ekstrak nomor seri Linux tanpa sudo