GNU/Linux >> Linux の 問題 >  >> Linux

Linux –あなたのUnixの主要な数は?

私は現在、システムのシリアルポートに関する情報を取得するために特別なフレームワークをすでに使用しているシリアルポートライブラリに取り組んでいます。シリアルポートはUnixの基本的な設計ですが、このような答えが証明しているように、ファイルがシリアルポートであるかどうかをテストする良い方法は、キャラクターデバイスのメジャーモードをテストして確認することだと思いました。
これが実際にTTYであるかどうか かどうか。

インターネットをクロールしていると、TTYの主なモードについて説明しているドキュメントが見つかりませんでした。 ユニス全体。ええと、ptmxにはメジャーモード5があると述べているLinuxのマニュアルページは1つだけです。

このStackOverflowの質問に基づいてtty文字デバイスの実装の詳細についてはすでに質問しましたが
、UnixStackExchangeコミュニティに方法を尋ねるかもしれないと思いました。 安定したtty値はUnixフレーバー全体にあります。

ですから、システム上のすべてのtty
ファイルのメジャーモードのナレッジベースを構築するために、あなたの助けを求めています。つまり、メジャーモードは何ですか

  • 実際のシリアルポート?
  • 擬似端末(PTS )ポート?
  • FTDI USB シリアルポート?
  • その他のUSB シリアルポート?

キャラクターデバイスのメジャーモードの値を取得するには、次を使用して確認する必要があります。

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

または古き良きlsを使用する :

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

独自の回答に情報を追加することも、コミュニティWikiの回答を追加情報で拡張することもできます。

承認された回答:

Unixバージョン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

(まだptyはありません)

Linux 3.2.0(debian wheezy)。

注:/devを検索してこれらを見つけることもできます グループttyが所有する場合 およびdialout 。それはDebianのことです。

  • 仮想コンソール
    • /dev/tty[0-9]* :4
  • 実際のシリアルポート:
    • /dev/ttyS[0-9]+ :4
  • 擬似端末:
    • /dev/pts/[0-9]+ :136
    • /dev/pts/ptmx :5
  • FTDI USBシリアルポート:
    • /dev/ttyUSB[0-9]+ :188
  • USBシリアルポート:(AVR組み込みUSB/ Arduino Uno
    • /dev/ttyACM[0-9]+ :166

Linux 3.4.0(Android 4.4.2 / Nexus 5)

注:すべてのLinuxに加えて:

  • ttyACM(セルモデム制御)
    • /devはありません エントリ、明らかに):166
  • ttyHSL(Bluetooth)
    • /dev/ttyHSL0 :247
  • ttyHS(Bluetooth)
    • /dev/ttyHS99 :248

Darwin 13.1.0(MacOS 10.9.2):

  • 実際のシリアルポート:
    • /dev/ttys[0-9a-f] :4
  • 擬似端末:
    • /dev/ttys[0-9]{3} :16
  • FTDI USBシリアルポート:
    • /dev/tty.usbserial.* :18
  • USBシリアルポート:(AVR組み込みUSB/ Arduino Uno
    • /dev/tty.usbmodem.* :18

Solaris 10 x86 / amd64:

  • 擬似端末:

    • /dev/pty[p-r][0-9a-f] (ptyマスター):25
    • /dev/tty[p-r][0-9a-f] (ptyスレーブ):26
    • /dev/pts/[0-9]+ :24
    • /dev/ptmx :23
  • シリアルデバイス:

    • /dev/tty[abc...] 別名/dev/term/[abc...] または/dev/tty0[012..] (uartシリアル、また):106
    • /dev/ttyd[012...]としても使用できます ただし、106でもインターフェイス(ダイヤル、モデム)が異なりますが、未成年者は多くなります。
関連:Linux – PHPはコマンドラインで動作しますが、ブラウザでは動作しませんか?

OpenBSD 6.0

/dev/MAKEDEVの解説に記載されているとおり

  • PC / AT UARTシリアルポート:
    • /dev/tty[0-7][0-9a-f] :8
    • /dev/cua[0-7][0-9a-f] :8
  • Cycladesシリアルポート:
    • /dev/ttyc* :38
    • /dev/cuac* :38
  • Virtioシリアルポート:
    • /dev/ttyVI* :94
  • USBシリアルポート:
    • /dev/ttyU[0-3] :66
    • /dev/cuaU[0-3] :66
  • wscons端末:
    • /dev/tty[C-J][0-b] :12
  • 擬似端末のマスターとスレーブ(UNIX以外の98)
    • /dev/pty[p-zP-T][0-9a-zA-Z] :6
    • /dev/tty[p-zP-T][0-9a-zA-Z] :5

FreeBSD10.0およびTrueOS

FreeBSD(およびTrueOSなどのその派生物)は、あなたのアイデアが致命的な欠陥を示しているところです。 ありません FreeBSDのメジャー+マイナーデバイス番号スキーム。

devfs FreeBSD上の疑似ファイルシステム。通常は/devにマウントされます。 、デバイスを「メジャー」クラスにグループ化するためにメジャー+マイナーシステムをまったく使用しません。むしろ、 rdev デバイスの場合、疑似ファイルシステムのiノード番号と同じです。デバイスノードが生成されるときに、その時点でのマシンの正確なハードウェアに応じて、iノードが昇順で単純に割り当てられます。

>

そのため、デバイス番号をisatty()のショートカットとして使用することはできません。 。


Linux
  1. Linux端末でAlpine電子メールクライアントを使用する

  2. LinuxとUnix:違いは何ですか?

  3. Linux端末の色を変更する方法

  1. Linuxの哲学は2019年も引き続き関係がありますか?

  2. メジャー、マイナー番号は一意ですか?

  3. Linux – Unix / linuxファイルのディレクトリ構造情報をどのように検査しますか?

  1. Unix / Linuxのマルウェアに関する理論?

  2. Linux/Unix サーバーで開いているポートを一覧表示する方法

  3. 最大ポート番号はいくつですか?