GNU/Linux >> Znalost Linux >  >> Linux

Linux – Tty hlavní číslo vašeho Unixu?

V současné době pracuji na knihovně sériových portů, která již používá speciální rámce k získání informací o sériových portech v systému. Ačkoli sériové porty jsou základním návrhem v Unixu – jak dokazuje odpověď, jako je tato – myslel jsem si, že dobrý způsob, jak otestovat, zda je soubor sériový port, je otestovat hlavní režim znakového zařízení
a zkontrolovat zda se skutečně jedná o TTY nebo ne.

Při procházení internetu jsem nenašel žádnou dokumentaci hovořící o hlavních režimech TTY s napříč unices. No, existuje pouze jedna manuálová stránka Linuxu, která uvádí, že ptmx má hlavní režim 5.

Ačkoli jsem se již ptal na podrobnosti implementace znakového zařízení tty na základě této otázky Stack Overflow
, napadlo mě, že bych mohl požádat komunitu Unix Stack Exchange, aby zjistili jak stabilní hodnoty tty jsou napříč variantami Unixu.

Žádám vás tedy o pomoc s vytvořením znalostní báze hlavního režimu všech vašich souborů tty
na vašem systému (systémech), tj. jaký je hlavní režim

  • skutečné sériové porty?
  • pseudoterminál (PTS ) porty?
  • FTDI USB Sériové porty?
  • jiné USB Sériové porty?

Chcete-li získat hodnoty pro hlavní režim znakového zařízení, podívejte se pomocí:

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

nebo pomocí starého dobrého ls :

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

Můžete vložit informace do své vlastní odpovědi nebo rozšířit komunitní wiki odpověď o další informace.

Přijatá odpověď:

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

(zatím tam není pty)

Linux 3.2.0 (debian wheezy).

Poznámka:Můžete je také najít vyhledáním /dev pro vlastněné skupinou tty a dialout . To je věc Debianu.

  • Virtuální konzole
    • /dev/tty[0-9]* :4
  • Skutečné sériové porty:
    • /dev/ttyS[0-9]+ :4
  • Pseudoterminál:
    • /dev/pts/[0-9]+ :136
    • /dev/pts/ptmx :5
  • Sériový port USB FTDI:
    • /dev/ttyUSB[0-9]+ :188
  • Sériový port USB:(USB/Arduino Uno vestavěný AVR )
    • /dev/ttyACM[0-9]+ :166

Linux 3.4.0 (Android 4.4.2 / Nexus 5)

Poznámka:má všechny linuxové plus:

  • ttyACM (řízení mobilního modemu)
    • (ne /dev vstup, zřejmě):166
  • ttyHSL (Bluetooth)
    • /dev/ttyHSL0 :247
  • ttyHS (Bluetooth)
    • /dev/ttyHS99 :248

Darwin 13.1.0 (MacOS 10.9.2):

  • Skutečné sériové porty:
    • /dev/ttys[0-9a-f] :4
  • Pseudoterminál:
    • /dev/ttys[0-9]{3} :16
  • Sériový port USB FTDI:
    • /dev/tty.usbserial.* :18
  • Sériový port USB:(USB/Arduino Uno vestavěný AVR )
    • /dev/tty.usbmodem.* :18

Solaris 10 x86/amd64:

  • Pseudo terminály:

    • /dev/pty[p-r][0-9a-f] (pty master):25
    • /dev/tty[p-r][0-9a-f] (pty slave):26
    • /dev/pts/[0-9]+ :24
    • /dev/ptmx :23
  • Sériová zařízení:

    • /dev/tty[abc...] aka /dev/term/[abc...] nebo /dev/tty0[012..] (seriál uart, také):106
    • také jako /dev/ttyd[012...] ale s jiným rozhraním (vytáčení, modem) také na 106, ale vysoké minority.
Související:Linux – PHP funguje na příkazovém řádku, ale ne v prohlížeči?

OpenBSD 6.0

Jak je zdokumentováno v komentáři v /dev/MAKEDEV

  • Sériové porty PC/AT UART:
    • /dev/tty[0-7][0-9a-f] :8
    • /dev/cua[0-7][0-9a-f] :8
  • Cykladské sériové porty:
    • /dev/ttyc* :38
    • /dev/cuac* :38
  • Sériové porty Virtio:
    • /dev/ttyVI* :94
  • Sériové porty USB:
    • /dev/ttyU[0-3] :66
    • /dev/cuaU[0-3] :66
  • Terminály wscons:
    • /dev/tty[C-J][0-b] :12
  • Pseudoterminál master and slave (jiný než 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 a TrueOS

FreeBSD (a jeho deriváty jako TrueOS) je místo, kde váš nápad ukazuje fatální chybu. neexistuje schéma číslování major+minor zařízení ve FreeBSD.

devfs pseudo-filesystem na FreeBSD, konvenčně připojený na /dev , systém major+minor pro seskupování zařízení do „hlavních“ tříd vůbec nepoužívá. Spíše rdev protože zařízení je stejné jako číslo jeho i-uzlu v pseudo-souborovém systému, přičemž i-uzly jsou jednoduše přiřazeny ve vzestupném pořadí, jak jsou uzly zařízení generovány, v závislosti na přesném hardwaru na daném počítači v daném okamžiku.

Číslo zařízení tedy nelze použít jako zkratku pro isatty() .


Linux
  1. Použijte e-mailového klienta Alpine ve svém linuxovém terminálu

  2. Linux vs. Unix:Jaký je rozdíl?

  3. Jak změnit barvu vašeho terminálu Linux

  1. Je filozofie Linuxu v roce 2019 stále aktuální?

  2. Jsou hlavní, vedlejší číslo jedinečné?

  3. Linux – Jak lze zkontrolovat informace o struktuře adresářů souboru Unix/linux?

  1. Hlavní rozdíly v jádře Linuxu a UNIXu

  2. Jak zobrazit seznam otevřených portů na serveru Linux/Unix

  3. Jaké je maximální číslo portu?