<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 第?18?章?TTY 驅動 一個 tty 設備得名于電傳打字機的很老的簡稱, 并且起初只和連接到一臺 UNIX 機器的物理或者虛擬終端有關聯. 長時間以來, 這個名子還逐漸表示任何串口類型的設備, 因為終端連接也能夠在這樣的一個連接上建立. 一些物理 tty 設備的例子是串口, USB-串口 轉換器, 以及某些類型的需要特殊處理來正確工作的調制解調器(例如傳統的 Win-Modem 類型設備). tty 虛擬設備支持虛擬控制臺以用來登錄到一臺計算機, 或者從鍵盤, 或者從網絡連接, 或者通過一個 xterm 會話. Linux tty 驅動的核心正好位于標準字符驅動級別之下, 并且提供了一些特性集中在為使用終端類型設備提供一個接口. 這個核心負責控制跨越一個 tty 設備的數據流和數據格式. 這允許 tty 驅動以一種一致的方式集中于處理到硬件和出自硬件的數據, 而不必擔心如何控制對用戶空間的接口. 為控制數據流, 有幾個不同的線路規程可以虛擬地"插入"任何一個 tty 設備. 這由不同的 tty 線路規程驅動來完成. 如同圖[tty 核心概覽](# "圖?18.1.?tty 核心概覽")所示, tty 核心從一個用戶獲取將要發送給一個 tty 設備的數據. 它接著傳遞它到一個 tty 線路規程驅動, 接著傳遞它到一個 tty 驅動. 這個 tty 驅動轉換數據為可以發送給硬件的格式. 從 tty 硬件收到的數據向上回流通過 tty 驅動, 進入 tty 線路規程驅動, 再進入 tty 核心, 在這里它被一個用戶獲取. 有時 tty 驅動直接和 tty 核心通訊, 并且 tty 核心直接發送數據到 tty 驅動, 但是常常 tty 線路規程有機會修改在 2 者之間發送的數據. **圖?18.1.?tty 核心概覽** ![tty 核心概覽](https://box.kancloud.cn/2015-09-02_55e6d9e922dcf.png) tty 驅動從未看見 tty 線路規程. 這個驅動不能直接和線路規程通訊, 它甚至也不知道它存在. 驅動的工作是以硬件能夠理解的方式格式化發送給它的數據, 并且從硬件接收數據. tty 線路規程的工作是以特殊的方式格式化從一個用戶或者硬件收到的數據. 這種格式化常常采用一個協議轉換的形式, 例如 PPP 和 Bluetooth. 有 3 種不同類型 tty 驅動: 控制臺, 串口, 和 pty. 控制臺和 pty 驅動硬件已經被編寫以及可能是唯一需要的 tty 驅動的類型. 這使得任何使用 tty 核心來與用戶和系統交互的新驅動作為串口驅動. 為知道什么類型的 tty 驅動當前被加載到內核以及什么 tty 設備當前存在, 查看 /proc/tty/drivers 文件. 這個文件包括一個當前存在的不同 tty 驅動的列表, 顯示驅動的名子, 缺省的節點名子, 驅動的主編號, 這個驅動使用的次編號范圍, 以及 tty 驅動的類型. 下面是一個這個文件的例子: ~~~ /dev/tty /dev/tty 5 0 system:/dev/tty /dev/console /dev/console 5 1 system:console /dev/ptmx /dev/ptmx 5 2 system /dev/vc/0 /dev/vc/0 4 0 system:vtmaster usbserial /dev/ttyUSB 188 0-254 serial serial /dev/ttyS 4 64-67 serial pty_slave /dev/pts 136 0-255 pty:slave pty_master /dev/ptm 128 0-255 pty:master pty_slave /dev/ttyp 3 0-255 pty:slave pty_master /dev/pty 2 0-255 pty:master unknown /dev/tty 4 1-63 console ~~~ /proc/tty/driver/ 目錄給一些 tty 驅動包含了單獨的文件, 如果它們實現這個功能. 缺省的串口驅動創建一個文件在這個目錄中來展示許多串口特定的硬件信息. 如何在這個目錄建立一個文件的信息后面描述. 所有的當前注冊的以及在內核中出現的 tty 設備有它們自己的子目錄在 /sys/class/tty 下面. 在那個子目錄下, 有一個 "dev" 文件包含有分配給那個 tty 設備的主次編號. 如果這個驅動告知內核物理設備和關聯到這個 tty 設備的驅動的所在, 它創建符號連接到它們. 這個樹的一個例子是: ~~~ /sys/class/tty/ |-- console | `-- dev |-- ptmx | `-- dev |-- tty | `-- dev |-- tty0 | `-- dev ... |-- ttyS1 | `-- dev |-- ttyS2 | `-- dev |-- ttyS3 | `-- dev ... |-- ttyUSB0 | |-- dev | |-- device -> ../../../devices/pci0000:00/0000:00:09.0/usb3/3-1/3-1:1.0/ttyUSB0 | `-- driver -> ../../../bus/usb-serial/drivers/keyspan_4 |-- ttyUSB1 | |-- dev | |-- device -> ../../../devices/pci0000:00/0000:00:09.0/usb3/3-1/3-1:1.0/ttyUSB1 | `-- driver -> ../../../bus/usb-serial/drivers/keyspan_4 |-- ttyUSB2 | |-- dev | |-- device -> ../../../devices/pci0000:00/0000:00:09.0/usb3/3-1/3-1:1.0/ttyUSB2 | `-- driver -> ../../../bus/usb-serial/drivers/keyspan_4 `-- ttyUSB3 |-- dev |-- device -> ../../../devices/pci0000:00/0000:00:09.0/usb3/3-1/3-1:1.0/ttyUSB3 `-- driver -> ../../../bus/usb-serial/drivers/keyspan_4 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看