tra cứu thiết bị từ tập tin tty của nó?


7

Đây là từ Ubuntu của tôi

$ ls /dev/*tty*
/dev/tty    /dev/tty17  /dev/tty26  /dev/tty35  /dev/tty44  /dev/tty53  /dev/tty62      /dev/ttyS12  /dev/ttyS21  /dev/ttyS30
/dev/tty0   /dev/tty18  /dev/tty27  /dev/tty36  /dev/tty45  /dev/tty54  /dev/tty63      /dev/ttyS13  /dev/ttyS22  /dev/ttyS31
/dev/tty1   /dev/tty19  /dev/tty28  /dev/tty37  /dev/tty46  /dev/tty55  /dev/tty7       /dev/ttyS14  /dev/ttyS23  /dev/ttyS4
/dev/tty10  /dev/tty2   /dev/tty29  /dev/tty38  /dev/tty47  /dev/tty56  /dev/tty8       /dev/ttyS15  /dev/ttyS24  /dev/ttyS5
/dev/tty11  /dev/tty20  /dev/tty3   /dev/tty39  /dev/tty48  /dev/tty57  /dev/tty9       /dev/ttyS16  /dev/ttyS25  /dev/ttyS6
/dev/tty12  /dev/tty21  /dev/tty30  /dev/tty4   /dev/tty49  /dev/tty58  /dev/ttyprintk  /dev/ttyS17  /dev/ttyS26  /dev/ttyS7
/dev/tty13  /dev/tty22  /dev/tty31  /dev/tty40  /dev/tty5   /dev/tty59  /dev/ttyS0      /dev/ttyS18  /dev/ttyS27  /dev/ttyS8
/dev/tty14  /dev/tty23  /dev/tty32  /dev/tty41  /dev/tty50  /dev/tty6   /dev/ttyS1      /dev/ttyS19  /dev/ttyS28  /dev/ttyS9
/dev/tty15  /dev/tty24  /dev/tty33  /dev/tty42  /dev/tty51  /dev/tty60  /dev/ttyS10     /dev/ttyS2   /dev/ttyS29
/dev/tty16  /dev/tty25  /dev/tty34  /dev/tty43  /dev/tty52  /dev/tty61  /dev/ttyS11     /dev/ttyS20  /dev/ttyS3

Tôi có 7 bảng điều khiển ảo.

Tôi cũng đã mở một số tab bên trong thiết bị đầu cuối gnome và một số emacs (một số shell đang chạy, nhưng tôi có thể đã đóng tất cả chúng) và các phiên màn hình (nhưng hiện đã đóng).

  1. sự khác biệt giữa là những gì /dev/tty, /dev/tty[[:digit:]]+, /dev/ttyprintk, và /dev/ttyS[[:digit:]]+?
  2. Làm cách nào tôi có thể tìm ra thiết bị nào mà mỗi tệp tty tương ứng?
  3. Một số người nói các tập tin thiết bị cho pseudo tty là / dev / pty , nhưng tại sao không có tập tin pty hoặc dir ở đây:

    $ ls /dev/*pty*
    ls: cannot access /dev/*pty*: No such file or directory
    
  4. Không chắc /dev/*pts*có nghĩa là gì :

    $ ls /dev/*pts* 
    0  1  10  11  12  13  14  15  16  17  18  2  20  21  22  23  24  26  3  4  5  6  7  8  9  ptmx
    

Cảm ơn và trân trọng!


Đối với câu hỏi 3, bạn nhận được đầu ra để làm ls /dev/*pts*gì?
Ramesh

ls: cannot access /dev/*pty*: No such file or directory
Tim

Hãy thử ptsthay vì pty.
Ramesh

Trong chỉnh sửa của tôi bây giờ.
Tim

kiểm tra cập nhật cho câu hỏi 3 và câu hỏi 4.
Ramesh

Câu trả lời:


4

Terminal là gì?

Một thiết bị đầu cuối bao gồm một màn hình và bàn phím mà người ta sử dụng để giao tiếp từ xa với máy tính (máy chủ). Người ta sử dụng nó gần giống như một máy tính cá nhân nhưng thiết bị đầu cuối ở xa máy tính chủ mà nó liên lạc (ở phía bên kia của căn phòng hoặc thậm chí ở phía bên kia của thế giới).

Câu hỏi 1

  1. /dev/ttylà viết tắt của thiết bị đầu cuối điều khiển (nếu có) cho quy trình hiện tại. Để tìm ra tty nào được gắn vào mà quá trình sử dụng ps -alệnh tại dấu nhắc shell (dòng lệnh). Nhìn vào ttycột. Đối với quy trình shell mà bạn tham gia, /dev/ttylà thiết bị đầu cuối mà bạn hiện đang sử dụng.
  2. Trong Linux màn hình máy tính được gọi là giao diện điều khiển và có một số tập tin thiết bị đặc biệt liên kết với nó: tty0, tty1, tty2, vv Khi bạn đăng nhập vào bạn đang ở trên tty1. Để đi tty2nhấn Alt- F2. tty1, tty2v.v. là các thiết bị đầu cuối ảo (đôi khi được gọi là "bảng điều khiển ảo"). Bạn có thể đăng nhập vào các thiết bị đầu cuối ảo khác nhau và do đó có một vài phiên khác nhau với máy tính đang diễn ra cùng một lúc. Bạn chuyển đổi giữa chúng bằng phím Alt- F?trong đó "?" là số thiết bị đầu cuối ảo mà bạn muốn. Bảng điều khiển còn được gọi là /dev/tty0và thông báo hệ thống có thể đi đến thiết bị đó và hiển thị trên bảng điều khiển của bạn. Chỉ có hệ thống hoặc người dùng root có thể viết thư cho /dev/tty0/dev/consoleđôi khi được liên kết.
  3. ttyprintklà trình điều khiển TTY giả, cho phép người dùng tạo printktin nhắn, thông qua đầu ra cho ttyprintkthiết bị.
  4. /dev/tty/S[[:digit:]]đại diện cho các cổng nối tiếp. Mỗi thiết bị đầu cuối được kết nối với một cổng nối tiếp trên máy chủ (thường chỉ là PC). Các cổng có tên / số. Vài đầu tiên là: ttyS0, ttyS1, ttyS2, vv Đây là những đại diện bởi các file đặc biệt được tìm thấy trong /devthư mục (thiết bị). ttyS0tương ứng với COM1 trong DOS hoặc Windows. ttyS1là COM2, v.v.

Câu 3Câu 4 có liên quan. Gilles có một lời giải thích tuyệt vời từ đây . Một số trích đoạn từ câu trả lời của ông là,

Thiết bị đầu cuối giả được cung cấp bởi một trình giả lập thiết bị đầu cuối, đây là một ứng dụng. Một số loại thiết bị đầu cuối giả là:

  • Các ứng dụng GUI như xterm, gnome-terminal, konsole, biến đổi các sự kiện bàn phím và chuột thành kiểu nhập văn bản và hiển thị đầu ra bằng đồ họa ở một số phông chữ.
  • Các ứng dụng ghép kênh như đầu vào và đầu ra rơle màn hình và tmux từ và đến một thiết bị đầu cuối khác, để tách các ứng dụng chế độ văn bản khỏi thiết bị đầu cuối thực tế.
  • Các ứng dụng shell từ xa như sshd, telnetd, rlogind, đầu vào và đầu ra rơle giữa một thiết bị đầu cuối từ xa trên máy khách và pty trên máy chủ.

Ngoài ra, từ trang wiki của thiết bị đầu cuối giả , tôi thấy thông tin bên dưới.

Tệp thiết bị chính, thường có tên của biểu mẫu / dev / pty [p-za-e] [0-9a-f], là điểm cuối để liên lạc với trình giả lập thiết bị đầu cuối. Với sơ đồ đặt tên [p-za-e] này, có thể có tối đa 256 cặp tty. Ngoài ra, việc tìm kiếm chủ nhân pty miễn phí đầu tiên có thể không phù hợp trừ khi kế hoạch khóa được thông qua. Vì lý do đó, các hệ điều hành BSD gần đây, như FreeBSD, triển khai PTY Unix98. [4]

Các PTY BSD đã bị lỗi thời bởi các ptys Unix98 có hệ thống đặt tên không giới hạn số lượng thiết bị đầu cuối giả và quyền truy cập xảy ra mà không gây nguy hiểm cho điều kiện chủng tộc. / dev / ptmx là "bộ ghép kênh chính giả thiết bị đầu cuối". Mở nó trả về một mô tả tập tin của một nút chủ và làm cho một nút nô lệ liên quan / dev / pts / N được tạo ra

Vì vậy, tôi nghi ngờ /dev/ptylà không có sẵn đó là lý do tại sao bạn nhìn thấy /dev/pts.

Người giới thiệu

http://www.tldp.org/HOWTO/Text-Terminal-HOWTO-7.html

Linux: Sự khác biệt giữa / dev / console, / dev / tty và / dev / tty0

http://lkml.iu.edu/hypermail/linux/kernel/1009.0/00333.html


Cảm ơn. "Đối với quy trình shell mà bạn tham gia, /dev/ttylà thiết bị đầu cuối mà bạn hiện đang sử dụng." Khi tôi chuyển sang tab thiết bị đầu cuối gnome khác, echo 1 > /dev/ttyluôn xuất ra 1tab thiết bị đầu cuối gnome hiện tại. Có phải tất cả các tệp tty không bị ràng buộc với các quá trình đầu cuối? Làm thế nào chúng được liên kết với các quá trình thiết bị đầu cuối?
Tim
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.