Sự khác biệt chính xác giữa 'thiết bị đầu cuối', 'vỏ', 'tty' và 'bàn điều khiển' là gì?


1235

Tôi nghĩ rằng các thuật ngữ này gần như đề cập đến cùng một điều, khi được sử dụng một cách lỏng lẻo:

  • thiết bị đầu cuối
  • vỏ
  • tty
  • bảng điều khiển

Chính xác thì mỗi điều khoản này đề cập đến điều gì?



28
Tôi muốn thêm 'dòng lệnh' vào đó :-)
teeks99

1
Dòng lệnh chỉ đơn giản là ngôn ngữ được sử dụng để gửi lệnh đến trình thông dịch dòng lệnh đang chạy trong trình bao từ trình mô phỏng đầu cuối / đầu cuối.
Marty Fried

1
Máy điện báo (TTY) lần đầu tiên được đưa vào hoạt động và được trưng bày tại Viện Cơ học ở New York vào năm 1844. en.wikipedia.org/wiki/Teleprinter
Serge Stroobandt

Hai liên kết hữu ích khác - feyrer.de/NetBSD/ttys.htmlquora.com/ cho
Nishant

Câu trả lời:


1198

Một thiết bị đầu cuối nằm ở cuối dây điện, vỏ là nhà của một con rùa, tty là một từ viết tắt kỳ lạ và một bàn điều khiển là một loại tủ.

Vâng, về mặt từ nguyên, dù sao đi nữa.

Trong thuật ngữ unix, câu trả lời ngắn gọn là

  • terminal = tty = môi trường nhập / xuất văn bản
  • bàn điều khiển = thiết bị đầu cuối vật lý
  • shell = trình thông dịch dòng lệnh

Bảng điều khiển, thiết bị đầu cuối và tty có liên quan chặt chẽ. Ban đầu, chúng có nghĩa là một thiết bị mà qua đó bạn có thể tương tác với máy tính: trong những ngày đầu của unix, điều đó có nghĩa là một thiết bị kiểu teleprinter giống như một máy đánh chữ, đôi khi được gọi là máy đánh chữ, hay viết tắt là viết tắt. Cái tên của thiết bị đầu cuối có tên là 'xuất phát từ quan điểm điện tử' Rất sớm trong lịch sử unix, bàn phím và màn hình điện tử đã trở thành tiêu chuẩn cho các thiết bị đầu cuối.

Trong thuật ngữ unix, tty là một loại tệp thiết bị cụ thể thực hiện một số lệnh bổ sung ( ioctls ) ngoài việc đọc và ghi. Trong ý nghĩa phổ biến nhất của nó, thiết bị đầu cuối đồng nghĩa với tty. Một số tty được cung cấp bởi kernel thay mặt cho một thiết bị phần cứng, ví dụ với đầu vào đến từ bàn phím và đầu ra đi đến màn hình chế độ văn bản, hoặc với đầu vào và đầu ra được truyền qua một dòng nối tiếp. Các ttys khác, đôi khi được gọi là giả giả , được cung cấp (thông qua lớp nhân mỏng) bởi các chương trình được gọi là trình giả lập đầu cuối , chẳng hạn như Xterm (chạy trong Hệ thống cửa sổ X ), Màn hình(cung cấp một lớp cách ly giữa một chương trình và một thiết bị đầu cuối khác), Ssh (kết nối một thiết bị đầu cuối trên một máy với các chương trình trên máy khác), Expect (cho các tương tác thiết bị đầu cuối kịch bản), v.v.

Thiết bị đầu cuối từ cũng có thể có ý nghĩa truyền thống hơn của một thiết bị thông qua đó một thiết bị tương tác với máy tính, thường là với bàn phím và màn hình. Ví dụ, thiết bị đầu cuối X là một loại máy khách mỏng , máy tính chuyên dùng với mục đích duy nhất là điều khiển bàn phím, màn hình, chuột và đôi khi các thiết bị ngoại vi tương tác khác của con người, với các ứng dụng thực tế chạy trên một máy tính khác mạnh hơn.

Bàn điều khiển nói chung là một thiết bị đầu cuối theo nghĩa vật lý, theo định nghĩa nào đó, thiết bị đầu cuối chính được kết nối trực tiếp với máy. Bảng điều khiển xuất hiện cho hệ điều hành dưới dạng tty (được triển khai bằng kernel). Trên một số hệ thống, chẳng hạn như Linux và FreeBSD, bảng điều khiển xuất hiện dưới dạng một số ttys (tổ hợp phím đặc biệt chuyển đổi giữa các ttys này); Chỉ cần nhầm lẫn các vấn đề, tên được đặt cho mỗi tty cụ thể có thể là bộ điều khiển của bộ điều khiển, bộ điều khiển ảo, bộ điều khiển ảo, bộ điều khiển ảo, và các biến thể khác.

Xem thêm Tại sao lại là một Virtual Terminal ảo Virtual, và cái gì / tại sao / ở đâu là Terminal Terminal thực sự? .


Một vỏ là giao diện chính mà người dùng nhìn thấy khi họ đăng nhập, mà mục đích chính là để bắt đầu chương trình khác. (Tôi không biết liệu ẩn dụ ban đầu là shell là môi trường gia đình cho người dùng hay shell đó là những gì các chương trình khác đang chạy.)

Trong các vòng tròn unix, shell có nghĩa là vỏ dòng lệnh , tập trung vào việc nhập tên của ứng dụng mà người ta muốn bắt đầu, theo sau là tên của các tệp hoặc các đối tượng khác mà ứng dụng sẽ hành động và nhấn phím Enter. Các loại môi trường khác không sử dụng từ "shell shell"; ví dụ, các hệ thống cửa sổ liên quan đến các trình quản lý cửa sổ của Wikipedia và các môi trường máy tính để bàn , và không phải là một lớp vỏ.

Có nhiều vỏ unix khác nhau. Các shell phổ biến để sử dụng tương tác bao gồm Bash (mặc định trên hầu hết các cài đặt Linux), zsh (nhấn mạnh sức mạnh và khả năng tùy biến) và (nhấn mạnh sự đơn giản).

Các shell dòng lệnh bao gồm các cấu trúc điều khiển luồng để kết hợp các lệnh. Ngoài việc gõ các lệnh tại dấu nhắc tương tác, người dùng có thể viết các tập lệnh. Các shell phổ biến nhất có cú pháp chung dựa trên Bourne_shell . Khi thảo luận về chương trình shell shell của Cameron , lớp vỏ này hầu như luôn được ngụ ý là một kiểu vỏ Bourne. Một số shell thường được sử dụng để viết kịch bản nhưng thiếu các tính năng tương tác nâng cao bao gồm shell Korn (ksh) và nhiều biến thể tro . Khá nhiều hệ thống giống Unix có vỏ kiểu Bourne được cài đặt như /bin/sh, thường là tro, ksh hoặc bash.

Trong quản trị hệ thống unix, shell của người dùng là chương trình được gọi khi họ đăng nhập. Tài khoản người dùng bình thường có vỏ dòng lệnh, nhưng người dùng có quyền truy cập hạn chế có thể có vỏ bị hạn chế hoặc một số lệnh cụ thể khác (ví dụ: truyền tệp tài khoản -only).


Sự phân công lao động giữa thiết bị đầu cuối và vỏ không hoàn toàn rõ ràng. Dưới đây là nhiệm vụ chính của họ.

  • Đầu vào: thiết bị đầu cuối chuyển đổi các khóa thành các chuỗi điều khiển (ví dụ Left\e[D). Shell chuyển đổi các chuỗi điều khiển thành các lệnh (ví dụ \e[Dbackward-char).
  • Chỉnh sửa dòng, lịch sử đầu vào và hoàn thành được cung cấp bởi shell.
    • Thay vào đó, thiết bị đầu cuối có thể cung cấp chỉnh sửa, lịch sử và hoàn thành dòng riêng của mình và chỉ gửi một dòng tới trình bao khi nó sẵn sàng để được thực thi. Thiết bị đầu cuối phổ biến duy nhất hoạt động theo cách này là M-x shelltrong Emacs.
  • Đầu ra: shell phát ra các hướng dẫn, chẳng hạn như màn hình hiển thị foo, Thay đổi màu nền trước thành màu xanh lá cây, màu xanh lá cây di chuyển con trỏ sang dòng tiếp theo, v.v. Thiết bị đầu cuối hoạt động theo các hướng dẫn này.
  • Dấu nhắc hoàn toàn là một khái niệm vỏ.
  • Shell không bao giờ nhìn thấy đầu ra của các lệnh mà nó chạy (trừ khi được chuyển hướng). Lịch sử đầu ra (scrollback) hoàn toàn là một khái niệm đầu cuối.
  • Sao chép liên ứng dụng được cung cấp bởi thiết bị đầu cuối (thường là bằng chuột hoặc các chuỗi chính như Ctrl+ Shift+ Vhoặc Shift+ Insert). Shell cũng có thể có cơ chế sao chép nội bộ riêng (ví dụ Meta+ WCtrl+ Y).
  • Kiểm soát công việc (khởi chạy các chương trình trong nền và quản lý chúng) hầu hết được thực hiện bởi trình bao. Tuy nhiên, đó là thiết bị đầu cuối xử lý các tổ hợp phím như Ctrl+ Cđể giết công việc tiền cảnh và Ctrl+ Ztạm dừng nó.

50
Chỉ ngụy biện: Tôi sẽ nói rằng cả hai loại ttys đều được cung cấp bởi hạt nhân. Sự khác biệt tôi muốn nhấn mạnh là các ttys phần cứng (ví dụ: các dòng nối tiếp và bảng điều khiển chế độ văn bản tích hợp) có một đầu được kết nối với phần cứng và một đầu được kết nối với phần mềm (ví dụ: chương trình đăng nhập và / hoặc shell) trong khi giả cả hai đầu được kết nối với phần mềm (ví dụ: trình giả lập thiết bị đầu cuối ở một đầu và vỏ ở đầu kia).
Chris Johnsen

12
@phunehehe: Phải, đó là một ý nghĩa khác của vỏ shell, được sử dụng phổ biến trong thiết kế hệ điều hành: vỏ là phần bên ngoài của hạt nhân. Đó không phải là thuật ngữ unix: hạt nhân Unix không có xu hướng có một thành phần mà người ta có thể gọi là vỏ.
Gilles

24
Đây là hình ảnh trong tâm trí của tôi cho ẩn dụ vỏ.
ændrük

12
Ngoài ra còn có một ý nghĩa khác của "bàn điều khiển" trong Linux. Bảng điều khiển (chỉ có một) là nơi printkcó mức độ ưu tiên đủ (ví dụ: hoảng loạn hạt nhân). Nó được thiết lập bằng cách truyền console=DEVICE,...vào dòng lệnh kernel (ví dụ, console=ttyS0,115200đối với cổng nối tiếp đầu tiên, ở mức 115.200 bps). Thông thường nó mặc định là thiết bị đầu cuối ảo, nhưng điều đó có thể được thay đổi khi kernel được biên dịch.
derobert

19
Thiết bị đầu cuối có thể xử lý các tổ hợp phím như Ctrl + C để tiêu diệt công việc nền trước và Ctrl + Z để tạm dừng nó. Không hoàn toàn: thiết bị đầu cuối vẫn chỉ gửi các ký tự điều khiển, đó là thiết bị tty quyết định cách xử lý chúng . Theo mặc định, thiết bị tty chuyển đổi các ký tự điều khiển thành tín hiệu được gửi đến trình bao (và các quá trình khác).
Chris Trang

194

Một thiết bị đầu cuối hoặc một giao diện điều khiển là một phần của phần cứng, sử dụng mà người dùng có thể tương tác với một máy chủ. Về cơ bản một bàn phím kết hợp với màn hình văn bản.
Ngày nay, gần như tất cả các thiết bị đầu cuối và bảng điều khiển đại diện cho những cái "ảo".

Các tập tin đại diện cho một thiết bị đầu cuối, theo truyền thống, được gọi là một tập tin tty . Nếu bạn xem trong thư mục "/ dev" của hệ thống UNIX, bạn sẽ tìm thấy rất nhiều tệp tty được kết nối với bảng điều khiển ảo (ví dụ: tty1 trên linux), thiết bị đầu cuối ảo (ví dụ: pts / 0) hoặc phần cứng được kết nối vật lý (ví dụ: ttyS0 là thiết bị đầu cuối nối tiếp vật lý, nếu có, được gắn trên cổng nối tiếp đầu tiên của máy chủ).

Một bàn điều khiển phải là một phần cứng được kết nối vật lý với (hoặc một phần) của máy chủ. Nó có một vai trò đặc biệt trong hệ thống: đó là điểm chính để truy cập hệ thống để bảo trì và một số thao tác đặc biệt chỉ có thể được thực hiện từ bảng điều khiển (ví dụ: xem single user mode). Một thiết bị đầu cuối có thể, và thường là, một phần cứng từ xa.

Cuối cùng, nhưng không kém phần quan trọng, shell là một chương trình đặc biệt tương tác với người dùng thông qua một tty kiểm soát và cung cấp, cho người dùng, cách khởi chạy các chương trình khác (ví dụ: bash, csh, tcsh).

Một giả lập thiết bị đầu cuối là một chương trình giả lập một thiết bị đầu cuối vật lý (ví dụ như xterm, gnome-terminal, minicom).

Vì vậy, khi bạn tìm đến một "cửa sổ văn bản" trên hệ thống linux của bạn (dưới X11), bạn đang tìm kiếm: một trình giả lập thiết bị đầu cuối , được kết nối với một thiết bị đầu cuối ảo , được xác định bởi một tệp tty , bên trong chạy shell .


2
Bất kỳ máy tính để bàn nào cũng có bảng điều khiển hệ thống (trong năm 2015 hoặc năm 2010 của tôi, không quan trọng). Như đã nói chính xác, đó là một phần cứng. Nhưng nói rằng, hiện tại, gần như tất cả các máy chơi game của đại diện cho những người chơi "ảo" gần như mâu thuẫn và rõ ràng là không tốt.
Incni Mrsi

1
"Thiết bị đầu cuối hoặc bàn điều khiển là một phần cứng, sử dụng mà người dùng có thể tương tác với máy chủ. Về cơ bản, bàn phím được ghép nối với màn hình văn bản." khám phá tuyệt vời bởi khía cạnh cụ thể của nó
Webdess

@andcoz - "Cửa sổ văn bản" nghĩa là gì? Không phải là một trình giả lập thiết bị đầu cuối một thiết bị đầu cuối ảo? Nếu tôi chạy theo lệnh ttytrong trình giả lập đầu cuối như Konsole KDE, thì đầu ra là / dev / pts / 0.
Động lực

1
@IncnisMrsi - Không phải máy tính để bàn là bàn điều khiển ? Nếu không, ý của bạn là nó có bảng điều khiển hệ thống?
Động lực

2
@Motivated /dev/pts/0là một tệp tty, một trình xử lý cho giao diện lập trình được hiển thị bởi kernel. Thông qua trình xử lý này, một chương trình (ví dụ shell) có thể tương tác với một thiết bị đầu cuối (thực hoặc ảo). Trình giả lập thiết bị đầu cuối là một phần mềm mô phỏng thiết bị đầu cuối. Trình giả lập yêu cầu kernel tạo một trình xử lý để cho phép các chương trình tương tác với chính nó (xem man openpty). Vì vậy, thông tin chảy từ thiết bị đầu cuối (trình giả lập) đến trình xử lý kernel tty, đến chương trình (và ngược lại). Các chương trình và thiết bị đầu cuối không nói chuyện trực tiếp với nhau mà chỉ thông qua tệp tty (trình xử lý).
andcoz

48

Giải thích NGẮN:

Bảng điều khiển là một thiết bị đầu cuối. Một hệ thống đã có một bàn điều khiển và có khả năng nhiều thiết bị đầu cuối. Bảng điều khiển thường là giao diện chính để quản lý máy tính, ví dụ như trong khi nó vẫn đang khởi động.

Thiết bị đầu cuối là một phiên có thể nhận và gửi đầu vào và đầu ra cho các chương trình dòng lệnh. Bảng điều khiển là một trường hợp đặc biệt trong số này.

TTY về cơ bản là một thiết bị giả, gọi nó là tài nguyên hạt nhân, được sử dụng bởi các quy trình để truy cập vào một thiết bị đầu cuối cụ thể. TTY có thể được gắn với phần cứng như cổng nối tiếp hoặc có thể là ảo, ví dụ: được tạo khi người dùng đăng nhập qua mạng

Shell là một chương trình được sử dụng để kiểm soát và chạy các chương trình. Nó thường được sử dụng tương tác, thông qua một thiết bị đầu cuối. Một số chương trình Shell tồn tại, Bash được cho là trình bao được sử dụng phổ biến nhất hiện nay. Các shell khác, không theo thứ tự cụ thể, bao gồm Bourne Shell, C-shell, Dash, Tsch, Ksh và zsh ngày càng phổ biến. Chúng còn nhiều nữa.

Khi bạn có GUI, bạn có thể sử dụng chương trình thiết bị đầu cuối để vẽ đường viền có thể thay đổi kích thước đẹp, thêm thanh cuộn và định dạng văn bản, v.v., cho phiên cuối. Thông thường chúng được gọi là trình giả lập thiết bị đầu cuối và đôi khi chúng có thể xử lý nhiều phiên thông qua khái niệm TAB. Trình mô phỏng đầu cuối thường khởi động Shell để cho phép bạn tương tác làm việc trên một dòng lệnh.


1
PTY là một TTY giả. TTY có thể, nhưng về cơ bản không phải là thiết bị đầu cuối ảo (hoặc giả).
Luciano

35

Một TTY (tức là T ele TY pewriter) là một thiết bị đặc biệt cho phép những người bị điếc, khiếm thính, hay lời nói khiếm sử dụng điện thoại để giao tiếp, bằng cách cho phép họ để gõ tin nhắn văn bản. Một TTY được yêu cầu ở cả hai đầu của cuộc trò chuyện để giao tiếp.
HOẶC
TTYthiết bị đầu cuối được sử dụng để nhập tin nhắn văn bản.


Shell : phần bảo vệ bên ngoài bao phủ một phần của hạt giống như hạt nhân.
HOẶC
khung hoặc cấu trúc bên ngoài đến phần trung tâm hoặc thiết yếu của hệ thống.
nhập mô tả hình ảnh ở đây


Bảng điều khiển có nghĩa là bàn phím và màn hình đính kèm vật lý vào máy tính.


28

Hiện đã có hai câu trả lời hay, nhưng chúng tôi muốn thêm thông tin về cụm từ thiết bị đầu cuối ảo ảo . Nói chung, nó có nghĩa là một cái gì đó cung cấp sự xuất hiện / chức năng của một thiết bị đầu cuối, i. e. một theo nghĩa rộng. Nhưng trong những ngày đầu của Linux (1994, 95 ) , được một số nhà phát triển sử dụng đồng nghĩa với bộ điều khiển ảo ảo (một số giao diện người dùng không liên quan) . Việc sử dụng này vẫn tồn tại trong tài liệu; hai thuật ngữ khác nhau được (và đang) được sử dụng để chỉ các điều tty1, tty2. Ngày nay (kể từ ≈ 1996), thiết bị đầu cuối ảo ảo cũng có thể đề cập đến các trình giả lập thiết bị đầu cuối dựa trên .

Linux vt(trình điều khiển của bảng điều khiển hệ thống chế độ văn bản) là phần đầu tiên của kernel. Ban đầu nó được sử dụng để kết nối với các máy tính lớn và theo nghĩa này, nó là một thiết bị đầu cuối ảo ảo, do đó có tên. Mã kiểm soát bảng điều khiển ảo cũng nằm trongvt.c . Các kỹ sư nhân Linux luôn sử dụng từ bảng điều khiển từ bảng điều khiển, để biểu thị tiền tố tty1, tty2, và sử dụng tiền tố Vc_ Cảnh cho họ. Ví dụ, có một vc_allocatechức năng. Mặt khác, các nhà phát triển của các công cụ không gian người dùng như kbdvà đã console-toolssử dụng bộ điều khiển ảo ảo (VC) và đầu cuối ảo ảo (VT) thay thế cho nhau. Đã liên lạc với Andries E. Brouwervà yêu cầu anh ta làm rõ thuật ngữ được sử dụng bởi các nhà phát triển đầu tiên (1994 Nên95). Andries vui lòng cung cấp một số câu trả lời. Ông nói rằng VT và VC là từ đồng nghĩa và viết tắt không thể tách rời. -> Nói chung, bảng điều khiển ảo là thiết bị đầu cuối ảo, nhưng điều ngược lại không đúng. Những “bến ảo” mà không phải là console ảo có thực sự pseudoterminals (như Andries khẳng định, những không phải là VT ). Không giống như các bảng điều khiển ảo, trong đó kernel cung cấp chức năng đầu cuối cho ứng dụng bảng điều khiển, các giả hành sử dụng các thiết bị PTY kèm theo để sắp xếp giao tiếp giữa các ứng dụng bảng điều khiển và chương trình tạo thiết bị đầu cuối chạy trong không gian người dùng . Ví dụ là trình giả lập thiết bị đầu cuối dựa trên X vàsshd, phân bổ một giả cho mỗi phiên đăng nhập. Một giả hành có thể không được gọi là điều khiển điều khiển - đó là một sai lầm.


14
  • Terminal = Giao diện cung cấp màn hình hiển thị đầu ra và bảng phím để nhập vào phiên shell.

  • Shell = Trình thông dịch thực thi các lệnh được nhập dưới dạng chuỗi

  • Bảng điều khiển: Trên thực tế có hai loại bảng điều khiển chúng tôi sử dụng

    • Bảng điều khiển vật lý = Màn hình phần cứng và bàn phím được sử dụng để tương tác với hệ thống

    • Bảng điều khiển ảo = Một trong nhiều bảng điều khiển logic có thể hỗ trợ phiên đăng nhập độc lập.

  • tty (teletype tức là thiết bị đầu cuối). = Một thiết bị đầu cuối về cơ bản chỉ là một thiết bị giao diện người dùng sử dụng văn bản cho input và output.message.


Một tty là gì? - nếu không, câu trả lời của bạn là người duy nhất tôi đọc
loxaxs

8

Bạn cần phải đi sâu vào lịch sử.

Có những thiết bị giống như máy đánh chữ bằng giấy và bàn phím. Chúng được gọi là teletypes (có nghĩa là "gõ từ xa", vì "tele" có nghĩa là "từ xa") hoặc viết tắt là ttys . Vào những năm 70, chúng đã bị lỗi thời bởi các thiết bị có màn hình CRT được gọi là ttys thủy tinh .

Bất kỳ máy tính nào cũng cần một số cách để báo cáo trạng thái và lỗi của nó (và, có lẽ, chấp nhận các lệnh). Nó được thực hiện thông qua giao diện điều khiển hầu như luôn được kết nối trực tiếp với máy tính. Vì vậy, có 2 ý nghĩa cho giao diện điều khiển : một cái gì đó được sử dụng để báo cáo trạng thái và một cái gì đó được kết nối trực tiếp.

UNIX là một hệ thống tương tác: một số người dùng có thể kết nối với nó và bắt đầu các ứng dụng. Các máy tính đầu tiên sử dụng teletypes ( tty ) cho điều đó: mỗi người dùng có teletype được kết nối với máy có kết nối đường truyền nối tiếp. Teletype như vậy được gọi là thiết bị đầu cuối . UNIX cũng có hệ thống con đặc biệt để xử lý "người dùng ngồi sau thiết bị đầu cuối", còn được gọi là tty vì thiết bị đầu cuối đầu tiên là teletypes. Mỗi quá trình có thể được kết nối với tty trong Unix. Điều đó có nghĩa là có một người dùng ở đâu đó ngồi gần thiết bị đầu cuối. Xem http://www.linusakesson.net/programming/tty/ để biết thêm thông tin.

Người dùng cần một số cách để nói kernel chạy ứng dụng. shell (sh, bash, csh, ksh, v.v.) được sử dụng cho điều đó. shell chạy trên tty , chấp nhận các lệnh từ người dùng và yêu cầu kernel chạy một số ứng dụng.

Nhưng các thiết bị đầu cuối không phải lúc nào cũng được kết nối vật lý với máy. Có thể có một số ứng dụng "mô phỏng" thiết bị đầu cuối chấp nhận tổ hợp phím từ người dùng và gửi chúng đi đâu đó (xterm và ssh là những ví dụ điển hình). Có một API trong Kernel gọi là pseudo terminal cho điều đó. Vì vậy, tty của bạn thực sự có thể được kết nối với một số ứng dụng thay vì thiết bị đầu cuối thực sự. Xterm sử dụng X11 để hiển thị văn bản và ssh sử dụng kết nối mạng cho nó.

IBM PC có bàn phím và thẻ video ( đôi khi chúng còn được gọi là bàn điều khiển ). Linux có thể làm những điều khác nhau với nó:

  • Sử dụng nó làm "công cụ báo cáo lỗi và trạng thái": Bảng điều khiển Linux. Nếu bạn chuyển giao bàn điều khiển = / dev / ttyS0 cho kernel, nó sẽ sử dụng thứ gì đó được kết nối với COM1 làm bàn điều khiển và nếu bạn không sử dụng bảng điều khiển PC.
  • Sử dụng nó để mô phỏng thiết bị đầu cuối, vì vậy được gọi là thiết bị đầu cuối ảo (vty).

Nó cũng có thể dừng thiết bị đầu cuối giả lập trên bàn điều khiển và cung cấp cho một số ứng dụng. Ứng dụng có thể chuyển chế độ video của nó và sử dụng độc quyền (X11 hoặc svgalib có thể làm điều đó).

Vì vậy, đây là những ý nghĩa hiện đại:

  • thiết bị đầu cuối: Một cái gì đó với người dùng thực sự ngồi đằng sau nó. Có thể là thiết bị đầu cuối vật lý (hiếm) hoặc thiết bị đầu cuối giả (xterm, ssh) hoặc thiết bị đầu cuối ảo (vty trong Linux)
  • shell: application (bash, tcsh, v.v.) giúp người dùng tương tác với hệ thống.
  • tty: hoặc thiết bị con hoặc hệ thống con kernel để hỗ trợ các thiết bị đầu cuối.
  • bảng điều khiển: một cái gì đó trong đó trạng thái và lỗi được báo cáo ( /dev/console) hoặc bàn phím và màn hình video vật lý được kết nối với máy tính.

7

Đây là câu trả lời ngắn gọn -

Kernel - phần trong cùng của bất kỳ hệ điều hành hiện đại nào nói chuyện trực tiếp với phần cứng thực tế.

Shell - trình bao bọc xung quanh Kernel thực tế. Bất cứ khi nào chúng ta chạy lệnh, chúng ta thực sự nói chuyện với shell, từ đó gọi ra các lệnh Kernel thích hợp. Ngoài ra, shell có khả năng thực hiện một số nội dung khác như tìm chương trình phù hợp trong khi có lệnh, một số tên tệp tay ngắn, lệnh đường ống, v.v.

Terminal - trong kỷ nguyên của điện toán trước đó, máy tính (được gọi là Mainframe) là khổng lồ. Vì vậy, thật dễ dàng để có một đơn vị xử lý và kết nối nó từ nhiều nơi. Terminal là phần cứng thực tế với bàn phím và thiết bị đầu ra được kết nối với máy tính lớn.

Bảng điều khiển - Loại thiết bị đầu cuối đặc biệt được kết nối trực tiếp với Mainframe cho mục đích Quản trị hệ điều hành.

tty - TeleTypewriter được sử dụng để gửi và nhận dữ liệu đến và từ Mainframe. Được sử dụng trước khi thiết bị đầu cuối video có sẵn. Nhưng thông thường nó vẫn được đặt tên là tty. Ngay cả đồng nghiệpstty

Câu trả lời chi tiết dài có ở đây - Terminal, Console, Shell, Kernel, Commands - Các phần khác nhau của máy tính


cảm ơn nhưng về cơ bản nếu thiết bị đầu cuối tồn tại, tại sao vẫn tồn tại trong hệ thống Ubuntu cho máy tính cá nhân, có thể truy cập bằng alt + f-1/6, tôi không thể tìm ra tiện ích của chúng trên thực tế chúng có thể được truy cập mà không cần sử dụng hệ thống đồ họa nếu tôi đã hiểu rõ
Webdess

1
@Webdess - Tôi đã cấu hình hệ thống của mình để chỉ cho phép truy cập vào roottài khoản thông qua sudohoặc thông qua đăng nhập bảng điều khiển. Bảng điều khiển thường có một đặc quyền địa điểm đặc biệt khôn ngoan vì một người có quyền truy cập vào họ nhất thiết phải có quyền truy cập vật lý vào máy tính mà họ giao tiếp. Họ cũng là phương pháp truy cập cuối cùng. Nếu HĐH ở trạng thái bị hỏng một phần (như trình điều khiển ethernet bị hỏng), bạn vẫn có thể truy cập bàn điều khiển. Đây là thiết bị giao diện con người nên LUÔN LUÔN có sẵn, bất kể hệ thống đang ở trạng thái nào.
Omnifarious

@Omnifarious cảm ơn câu trả lời của bạn "Máy chơi game thường có đặc quyền địa điểm đặc biệt vì một người có quyền truy cập vào họ nhất thiết phải có quyền truy cập vật lý vào máy tính mà họ giao tiếp với" bạn có nghĩa là TTY thường có đặc quyền địa điểm đặc biệt?
Nữ web

@Webdess - Không, bảng điều khiển. Một TTY thường không được kết nối trực tiếp với máy tính. Và một giao diện điều khiển thường không phải là một TTY theo nghĩa truyền thống. Khi tôi đến U của MN vào cuối những năm 80, có một mạng chuyên biệt toàn trường mà tôi không chạy Giao thức Internet (còn gọi là IP) để kết nối TTY ngẫu nhiên với các máy tính ngẫu nhiên. Các máy tính lớn của IBM có một điều tương tự đang diễn ra và đó là một trong những lý do lớn khiến IBM tạo ra SNA. Và một PC bình thường, ngay cả khi nó chỉ hiển thị văn bản, rất không giống với TTY theo nhiều cách, do đó, bảng điều khiển PC không thực sự là TTY chính xác.
Omnifarious

@Webdess - Tính năng xác định của bảng điều khiển là nó có kết nối trực tiếp với phần cứng chạy hệ điều hành. Ý tưởng này có phần mờ nhạt với 'máy ảo' hiện đại, nhưng đó là ý tưởng cơ bản.
Omnifarious

6

Ngoài câu trả lời được chấp nhận và bài viết làm sáng tỏ TTY , tôi thực sự thích đọc hai bài viết này:

Điều này dựa trên NetBSD.

Quay trở lại thời kỳ đồ đá của Unix, các hệ thống máy tính bao gồm một máy tính lớn, một hộp đèn nhấp nháy lớn có bộ nhớ, bộ lưu trữ khối và máy tính và chạy các quy trình được bắt đầu bởi người dùng hoặc nhà khai thác. Vì phần cứng rất đắt tiền, các hệ thống được sử dụng như các hệ thống nhiều người dùng thực sự, với nhiều người tương tác với hệ thống cùng một lúc. Những gì nó thường không có - không giống như các máy trạm Unix ngày nay - là một màn hình và bàn phím cố định. Thay vào đó, việc ban hành các lệnh cho máy và truy xuất đầu ra được thực hiện trên các đường nối tiếp, trước tiên sử dụng các thiết bị teletypers và các đầu cuối CRT (ống tia catôt). Teletypers - đó là nơi "ttys" trong Unix đến từ - là những máy đánh chữ điện tử gửi các phím được nhấn trên dòng nối tiếp đến máy chủ,

Cái này dựa trên Linux.

Thiết bị đầu cuối là thiết bị cung cấp khả năng đầu vào / đầu ra nâng cao ngoài những gì có thể đạt được chỉ với các tệp, ống dẫn và ổ cắm thông thường. Các tính năng này được thiết kế để giúp con người dễ dàng tương tác với máy tính hơn và vô dụng đối với các chương trình cố gắng nói chuyện với nhau.


1

Hãy để tôi giải quyết vấn đề này ... Tôi sẽ sử dụng Unix và Linux ít nhiều đồng nghĩa trong việc này. Nếu tôi đang đề cập đến một cái gì đó lịch sử có trước sự tồn tại của Linux, tôi thường sẽ viết "Unix" và nếu tôi đang nói về một cái gì đó gần đây hơn, hoặc một cái gì đó đặc trưng cho hương vị Linux của Unix, tôi thường sẽ viết "Linux ".

Vỏ

Điều duy nhất trong danh sách của bạn là một khái niệm rời rạc không có sự trùng lặp với các khái niệm khác là 'vỏ'. Shell là một chương trình mà mục đích của họ là giao tiếp với người dùng và thực hiện các hoạt động của hệ điều hành thay mặt họ.

Các shell phổ biến nhất sử dụng một kỹ thuật gọi là 'dòng lệnh' bao gồm gửi cho người dùng một số loại dấu nhắc, chờ người dùng gõ một lệnh văn bản, sau đó thực hiện lệnh đó. Nhưng có các shell dựa trên menu và thậm chí cả shell đồ họa (như Windows File Explorer) mặc dù không có người Unix tự trọng nào có thể gọi một thứ như vậy là 'shell'.

Trong Unix, nếu ai đó gọi một cái gì đó là 'shell' thì gần như chắc chắn họ có nghĩa là một dạng giao diện dòng lệnh như tôi vừa mô tả. Và thật kỳ quặc trong thế giới Unix khi đề cập đến bất cứ thứ gì như một 'vỏ' nếu nó không giao tiếp với người dùng bằng mô hình tty mà tôi mô tả thêm.

TTY

Đây là một điều khó hiểu bởi vì nó có thể đề cập đến một vài loại khác nhau.

Trong Linux, có một loại thiết bị gọi là 'tty'. Nó là một thiết bị trừu tượng dự kiến ​​sẽ được sử dụng để liên lạc hai chiều với một thứ gì đó là người dùng hoặc đang lấy đầu vào từ người dùng theo một cách nào đó. Đôi khi thiết bị trừu tượng đó có thể tương ứng trực tiếp với một số thiết bị vật lý. Đôi khi nó có thể là một chương trình giới thiệu ai đó với một cửa sổ trong đó giao tiếp xuất hiện và người dùng có thể nhập vào.

Nhưng, lý do thiết bị trừu tượng này tồn tại và lý do nó được gọi là 'tty' là 'tty' là viết tắt của 'teletype', là một thiết bị vật lý thực tế có máy in được in trên giấy kết hợp với bàn phím. Mô hình mà thiết bị 'tty' trừu tượng trình bày cho các chương trình đang sử dụng nó về cơ bản là có một kiểu điện thoại ở đầu bên kia. Bạn gửi cho nó các ký tự và các ký tự đó xuất hiện trên teletype. Khi bạn đọc các ký tự từ nó, các ký tự đó đại diện cho các phím được gõ trên bàn phím.

Các ttys dựa trên máy in giấy cũ đã nhanh chóng được thay thế bằng các tty video. Trên đó, tất nhiên, không có cuộn giấy. Và, trên thực tế, có thể ghi đè lên bất kỳ nhân vật nào trên màn hình. Nhưng, thay vì trình bày một số loại giao diện 'màn hình' trừu tượng cho các chương trình, thay vào đó, các chương trình dự kiến ​​sẽ gửi các luồng ký tự đặc biệt gọi là chuỗi thoát thực hiện nhiều nhiệm vụ khác nhau. Thông thường, có một thứ trừu tượng gọi là 'con trỏ' có thể được di chuyển xung quanh màn hình và bất kỳ ký tự nào được gửi sẽ thay thế bất cứ thứ gì ở con trỏ và con trỏ sẽ di chuyển thêm một ký tự. Thường thì bạn có thể thay đổi màu sắc của một nhân vật sắp được in với các chuỗi thoát.

Có 'ttys thủy tinh' không theo mô hình này và do đó được xử lý kém trong thế giới Unix. Họ thiết bị đầu cuối video IBM 3270 thuộc loại này.

Cái mà mọi người Linux / Unix thường gọi là 'cửa sổ shell' là sự mô phỏng của một tty thủy tinh bằng giao diện người dùng đồ họa. Trong nội bộ, các chương trình chạy bên trong cửa sổ shell đang nói chuyện với một thiết bị tty ảo đôi khi được gọi là pseudo-tty hoặc pseudo-terminal (hay còn gọi là pty).

Thiết bị đầu cuối

Một thiết bị đầu cuối chỉ là nơi mà máy tính và con người có nhiệm vụ giao tiếp. Thiết bị đầu cuối có thể hoàn toàn là đồ họa và không theo mô hình tty theo bất kỳ cách nào, mặc dù một chương trình có thể sử dụng khả năng của chúng để mô phỏng điều này. Tất cả các ttys vật lý thực tế (thủy tinh hoặc cách khác) là thiết bị đầu cuối.

Bảng điều khiển

Bàn điều khiển là một loại thiết bị đầu cuối đặc biệt thường được cho là được gắn theo một cách an toàn trực tiếp nào đó với phần cứng mà hệ điều hành đang chạy.

Trong Linux, bàn điều khiển được ảo hóa theo một cách nhỏ cho phép bạn sử dụng tổ hợp phím đặc biệt để chuyển đổi giữa các bảng điều khiển ảo. Nhưng ảo hóa này được thực hiện với một phần cứng thực sự bằng phần mềm trong kernel.

Có nhiều cách để sử dụng Linux thông qua cái gọi là 'bàn điều khiển nối tiếp', đó là bàn điều khiển được gắn vào máy tính thông qua cổng nối tiếp như cổng USB (hoặc, trên một số máy tính rất nhỏ và / hoặc rất cũ, cổng RS-232 một số loại) và theo mô hình teletype cũ một cách khá nghiêm ngặt.

Một lần nữa, ý tưởng là bảng điều khiển này được kết nối theo cách vật lý trực tiếp với máy tính thay vì thông qua một loại mạng nào đó có thể cho phép bất kỳ ai kết nối.

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.